@tylertech/forge 2.0.0 → 2.1.0

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 (444) hide show
  1. package/README.md +30 -13
  2. package/dist/esm/accordion/index.js +39 -0
  3. package/dist/esm/accordion/index.js.map +7 -0
  4. package/dist/esm/app-bar/help-button/index.js +58 -0
  5. package/dist/esm/app-bar/help-button/index.js.map +7 -0
  6. package/dist/esm/app-bar/index.js +136 -0
  7. package/dist/esm/app-bar/index.js.map +7 -0
  8. package/dist/esm/app-bar/menu-button/index.js +41 -0
  9. package/dist/esm/app-bar/menu-button/index.js.map +7 -0
  10. package/dist/esm/app-bar/notification-button/index.js +46 -0
  11. package/dist/esm/app-bar/notification-button/index.js.map +7 -0
  12. package/dist/esm/app-bar/profile-button/index.js +51 -0
  13. package/dist/esm/app-bar/profile-button/index.js.map +7 -0
  14. package/dist/esm/app-bar/search/index.js +43 -0
  15. package/dist/esm/app-bar/search/index.js.map +7 -0
  16. package/dist/esm/autocomplete/index.js +77 -0
  17. package/dist/esm/autocomplete/index.js.map +7 -0
  18. package/dist/esm/avatar/index.js +33 -0
  19. package/dist/esm/avatar/index.js.map +7 -0
  20. package/dist/esm/backdrop/index.js +28 -0
  21. package/dist/esm/backdrop/index.js.map +7 -0
  22. package/dist/esm/badge/index.js +31 -0
  23. package/dist/esm/badge/index.js.map +7 -0
  24. package/dist/esm/banner/index.js +45 -0
  25. package/dist/esm/banner/index.js.map +7 -0
  26. package/dist/esm/bottom-sheet/index.js +45 -0
  27. package/dist/esm/bottom-sheet/index.js.map +7 -0
  28. package/dist/esm/busy-indicator/index.js +37 -0
  29. package/dist/esm/busy-indicator/index.js.map +7 -0
  30. package/dist/esm/button/index.js +29 -0
  31. package/dist/esm/button/index.js.map +7 -0
  32. package/dist/esm/button-toggle/button-toggle/index.js +33 -0
  33. package/dist/esm/button-toggle/button-toggle/index.js.map +7 -0
  34. package/dist/esm/button-toggle/button-toggle-group/index.js +32 -0
  35. package/dist/esm/button-toggle/button-toggle-group/index.js.map +7 -0
  36. package/dist/esm/button-toggle/index.js +46 -0
  37. package/dist/esm/button-toggle/index.js.map +7 -0
  38. package/dist/esm/calendar/calendar-dropdown/index.js +35 -0
  39. package/dist/esm/calendar/calendar-dropdown/index.js.map +7 -0
  40. package/dist/esm/calendar/calendar-menu/index.js +48 -0
  41. package/dist/esm/calendar/calendar-menu/index.js.map +7 -0
  42. package/dist/esm/calendar/core/index.js +13 -0
  43. package/dist/esm/calendar/core/index.js.map +7 -0
  44. package/dist/esm/calendar/index.js +199 -0
  45. package/dist/esm/calendar/index.js.map +7 -0
  46. package/dist/esm/card/index.js +22 -0
  47. package/dist/esm/card/index.js.map +7 -0
  48. package/dist/esm/checkbox/index.js +44 -0
  49. package/dist/esm/checkbox/index.js.map +7 -0
  50. package/dist/esm/chip-field/index.js +51 -0
  51. package/dist/esm/chip-field/index.js.map +7 -0
  52. package/dist/esm/chips/chip/index.js +42 -0
  53. package/dist/esm/chips/chip/index.js.map +7 -0
  54. package/dist/esm/chips/chip-set/index.js +42 -0
  55. package/dist/esm/chips/chip-set/index.js.map +7 -0
  56. package/dist/esm/chips/index.js +55 -0
  57. package/dist/esm/chips/index.js.map +7 -0
  58. package/dist/esm/chunks/chunk.2F6PST3N.js +476 -0
  59. package/dist/esm/chunks/chunk.2F6PST3N.js.map +7 -0
  60. package/dist/esm/chunks/chunk.2FXYTBYG.js +1450 -0
  61. package/dist/esm/chunks/chunk.2FXYTBYG.js.map +7 -0
  62. package/dist/esm/chunks/chunk.2LQMHAC7.js +187 -0
  63. package/dist/esm/chunks/chunk.2LQMHAC7.js.map +7 -0
  64. package/dist/esm/chunks/chunk.2LSEVYAC.js +342 -0
  65. package/dist/esm/chunks/chunk.2LSEVYAC.js.map +7 -0
  66. package/dist/esm/chunks/chunk.2NUAEZY7.js +221 -0
  67. package/dist/esm/chunks/chunk.2NUAEZY7.js.map +7 -0
  68. package/dist/esm/chunks/chunk.35U3UPDV.js +70 -0
  69. package/dist/esm/chunks/chunk.35U3UPDV.js.map +7 -0
  70. package/dist/esm/chunks/chunk.3KCCCXWS.js +344 -0
  71. package/dist/esm/chunks/chunk.3KCCCXWS.js.map +7 -0
  72. package/dist/esm/chunks/chunk.3NOZRZ7R.js +145 -0
  73. package/dist/esm/chunks/chunk.3NOZRZ7R.js.map +7 -0
  74. package/dist/esm/chunks/chunk.3ZKORL4I.js +212 -0
  75. package/dist/esm/chunks/chunk.3ZKORL4I.js.map +7 -0
  76. package/dist/esm/chunks/chunk.4BG22DGY.js +317 -0
  77. package/dist/esm/chunks/chunk.4BG22DGY.js.map +7 -0
  78. package/dist/esm/chunks/chunk.4HQ5VELO.js +793 -0
  79. package/dist/esm/chunks/chunk.4HQ5VELO.js.map +7 -0
  80. package/dist/esm/chunks/chunk.4JURZYE4.js +410 -0
  81. package/dist/esm/chunks/chunk.4JURZYE4.js.map +7 -0
  82. package/dist/esm/chunks/chunk.4UKSUUTX.js +296 -0
  83. package/dist/esm/chunks/chunk.4UKSUUTX.js.map +7 -0
  84. package/dist/esm/chunks/chunk.4V5O2CPU.js +417 -0
  85. package/dist/esm/chunks/chunk.4V5O2CPU.js.map +7 -0
  86. package/dist/esm/chunks/chunk.52F6VUCF.js +273 -0
  87. package/dist/esm/chunks/chunk.52F6VUCF.js.map +7 -0
  88. package/dist/esm/chunks/chunk.5EEEKOOK.js +552 -0
  89. package/dist/esm/chunks/chunk.5EEEKOOK.js.map +7 -0
  90. package/dist/esm/chunks/chunk.5NXVVSTU.js +243 -0
  91. package/dist/esm/chunks/chunk.5NXVVSTU.js.map +7 -0
  92. package/dist/esm/chunks/chunk.5VKAVHLM.js +610 -0
  93. package/dist/esm/chunks/chunk.5VKAVHLM.js.map +7 -0
  94. package/dist/esm/chunks/chunk.6KTLOA7V.js +6 -0
  95. package/dist/esm/chunks/chunk.6KTLOA7V.js.map +7 -0
  96. package/dist/esm/chunks/chunk.6V463G4I.js +105 -0
  97. package/dist/esm/chunks/chunk.6V463G4I.js.map +7 -0
  98. package/dist/esm/chunks/chunk.7FC5CPLE.js +603 -0
  99. package/dist/esm/chunks/chunk.7FC5CPLE.js.map +7 -0
  100. package/dist/esm/chunks/chunk.7G2S3DCM.js +458 -0
  101. package/dist/esm/chunks/chunk.7G2S3DCM.js.map +7 -0
  102. package/dist/esm/chunks/chunk.7I2XNJBL.js +593 -0
  103. package/dist/esm/chunks/chunk.7I2XNJBL.js.map +7 -0
  104. package/dist/esm/chunks/chunk.7KILTPJ6.js +72 -0
  105. package/dist/esm/chunks/chunk.7KILTPJ6.js.map +7 -0
  106. package/dist/esm/chunks/chunk.7XGNGXLR.js +648 -0
  107. package/dist/esm/chunks/chunk.7XGNGXLR.js.map +7 -0
  108. package/dist/esm/chunks/chunk.7Y4NHCJH.js +338 -0
  109. package/dist/esm/chunks/chunk.7Y4NHCJH.js.map +7 -0
  110. package/dist/esm/chunks/chunk.AHQ6QX3J.js +716 -0
  111. package/dist/esm/chunks/chunk.AHQ6QX3J.js.map +7 -0
  112. package/dist/esm/chunks/chunk.AYOZGYGO.js +21 -0
  113. package/dist/esm/chunks/chunk.AYOZGYGO.js.map +7 -0
  114. package/dist/esm/chunks/chunk.BKMWXPAS.js +439 -0
  115. package/dist/esm/chunks/chunk.BKMWXPAS.js.map +7 -0
  116. package/dist/esm/chunks/chunk.BOWCSPCH.js +2428 -0
  117. package/dist/esm/chunks/chunk.BOWCSPCH.js.map +7 -0
  118. package/dist/esm/chunks/chunk.BYN27JXZ.js +51 -0
  119. package/dist/esm/chunks/chunk.BYN27JXZ.js.map +7 -0
  120. package/dist/esm/chunks/chunk.BZPQIDQP.js +602 -0
  121. package/dist/esm/chunks/chunk.BZPQIDQP.js.map +7 -0
  122. package/dist/esm/chunks/chunk.C2MR3RDF.js +202 -0
  123. package/dist/esm/chunks/chunk.C2MR3RDF.js.map +7 -0
  124. package/dist/esm/chunks/chunk.C64YUJHS.js +55 -0
  125. package/dist/esm/chunks/chunk.C64YUJHS.js.map +7 -0
  126. package/dist/esm/chunks/chunk.CGHKW6S6.js +683 -0
  127. package/dist/esm/chunks/chunk.CGHKW6S6.js.map +7 -0
  128. package/dist/esm/chunks/chunk.CKS5A4YN.js +6 -0
  129. package/dist/esm/chunks/chunk.CKS5A4YN.js.map +7 -0
  130. package/dist/esm/chunks/chunk.COF6DD6T.js +293 -0
  131. package/dist/esm/chunks/chunk.COF6DD6T.js.map +7 -0
  132. package/dist/esm/chunks/chunk.D4XU5MZN.js +1203 -0
  133. package/dist/esm/chunks/chunk.D4XU5MZN.js.map +7 -0
  134. package/dist/esm/chunks/chunk.D5DMZ7ZG.js +350 -0
  135. package/dist/esm/chunks/chunk.D5DMZ7ZG.js.map +7 -0
  136. package/dist/esm/chunks/chunk.DB7ZQBES.js +244 -0
  137. package/dist/esm/chunks/chunk.DB7ZQBES.js.map +7 -0
  138. package/dist/esm/chunks/chunk.E4NCI7MS.js +6 -0
  139. package/dist/esm/chunks/chunk.E4NCI7MS.js.map +7 -0
  140. package/dist/esm/chunks/chunk.EA7XMXI5.js +200 -0
  141. package/dist/esm/chunks/chunk.EA7XMXI5.js.map +7 -0
  142. package/dist/esm/chunks/chunk.EARNUKJ2.js +401 -0
  143. package/dist/esm/chunks/chunk.EARNUKJ2.js.map +7 -0
  144. package/dist/esm/chunks/chunk.EKIW7VYG.js +419 -0
  145. package/dist/esm/chunks/chunk.EKIW7VYG.js.map +7 -0
  146. package/dist/esm/chunks/chunk.EL6B2ODN.js +52 -0
  147. package/dist/esm/chunks/chunk.EL6B2ODN.js.map +7 -0
  148. package/dist/esm/chunks/chunk.ETP6HSXO.js +513 -0
  149. package/dist/esm/chunks/chunk.ETP6HSXO.js.map +7 -0
  150. package/dist/esm/chunks/chunk.ETQIBLKP.js +978 -0
  151. package/dist/esm/chunks/chunk.ETQIBLKP.js.map +7 -0
  152. package/dist/esm/chunks/chunk.EWQENJ4W.js +505 -0
  153. package/dist/esm/chunks/chunk.EWQENJ4W.js.map +7 -0
  154. package/dist/esm/chunks/chunk.EY57VTRF.js +33 -0
  155. package/dist/esm/chunks/chunk.EY57VTRF.js.map +7 -0
  156. package/dist/esm/chunks/chunk.FBUQQD2T.js +732 -0
  157. package/dist/esm/chunks/chunk.FBUQQD2T.js.map +7 -0
  158. package/dist/esm/chunks/chunk.FMMPWQKC.js +439 -0
  159. package/dist/esm/chunks/chunk.FMMPWQKC.js.map +7 -0
  160. package/dist/esm/chunks/chunk.FWJ7SIFA.js +433 -0
  161. package/dist/esm/chunks/chunk.FWJ7SIFA.js.map +7 -0
  162. package/dist/esm/chunks/chunk.FZQCBRPK.js +6 -0
  163. package/dist/esm/chunks/chunk.FZQCBRPK.js.map +7 -0
  164. package/dist/esm/chunks/chunk.G6FY472A.js +658 -0
  165. package/dist/esm/chunks/chunk.G6FY472A.js.map +7 -0
  166. package/dist/esm/chunks/chunk.GS2AXUCN.js +150 -0
  167. package/dist/esm/chunks/chunk.GS2AXUCN.js.map +7 -0
  168. package/dist/esm/chunks/chunk.HHHMDDTU.js +297 -0
  169. package/dist/esm/chunks/chunk.HHHMDDTU.js.map +7 -0
  170. package/dist/esm/chunks/chunk.HZISALRH.js +20 -0
  171. package/dist/esm/chunks/chunk.HZISALRH.js.map +7 -0
  172. package/dist/esm/chunks/chunk.IBH5GL7A.js +258 -0
  173. package/dist/esm/chunks/chunk.IBH5GL7A.js.map +7 -0
  174. package/dist/esm/chunks/chunk.IWXT6VVJ.js +222 -0
  175. package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +7 -0
  176. package/dist/esm/chunks/chunk.J6LOWXOG.js +654 -0
  177. package/dist/esm/chunks/chunk.J6LOWXOG.js.map +7 -0
  178. package/dist/esm/chunks/chunk.JICZQ2BO.js +168 -0
  179. package/dist/esm/chunks/chunk.JICZQ2BO.js.map +7 -0
  180. package/dist/esm/chunks/chunk.JKC5PU23.js +42 -0
  181. package/dist/esm/chunks/chunk.JKC5PU23.js.map +7 -0
  182. package/dist/esm/chunks/chunk.JQQOZMKQ.js +2994 -0
  183. package/dist/esm/chunks/chunk.JQQOZMKQ.js.map +7 -0
  184. package/dist/esm/chunks/chunk.JVQP6BJ3.js +1591 -0
  185. package/dist/esm/chunks/chunk.JVQP6BJ3.js.map +7 -0
  186. package/dist/esm/chunks/chunk.K2PCTUVN.js +139 -0
  187. package/dist/esm/chunks/chunk.K2PCTUVN.js.map +7 -0
  188. package/dist/esm/chunks/chunk.KCK3G74Y.js +634 -0
  189. package/dist/esm/chunks/chunk.KCK3G74Y.js.map +7 -0
  190. package/dist/esm/chunks/chunk.KI3IHPS2.js +801 -0
  191. package/dist/esm/chunks/chunk.KI3IHPS2.js.map +7 -0
  192. package/dist/esm/chunks/chunk.KRW2IAIU.js +445 -0
  193. package/dist/esm/chunks/chunk.KRW2IAIU.js.map +7 -0
  194. package/dist/esm/chunks/chunk.KZ2QNQK2.js +21 -0
  195. package/dist/esm/chunks/chunk.KZ2QNQK2.js.map +7 -0
  196. package/dist/esm/chunks/chunk.KZATVOA6.js +68 -0
  197. package/dist/esm/chunks/chunk.KZATVOA6.js.map +7 -0
  198. package/dist/esm/chunks/chunk.LCWRP2UI.js +59 -0
  199. package/dist/esm/chunks/chunk.LCWRP2UI.js.map +7 -0
  200. package/dist/esm/chunks/chunk.LM5TVNZY.js +71 -0
  201. package/dist/esm/chunks/chunk.LM5TVNZY.js.map +7 -0
  202. package/dist/esm/chunks/chunk.MAGJQ2PP.js +964 -0
  203. package/dist/esm/chunks/chunk.MAGJQ2PP.js.map +7 -0
  204. package/dist/esm/chunks/chunk.MEFT5FQC.js +158 -0
  205. package/dist/esm/chunks/chunk.MEFT5FQC.js.map +7 -0
  206. package/dist/esm/chunks/chunk.MHEJZJT3.js +6 -0
  207. package/dist/esm/chunks/chunk.MHEJZJT3.js.map +7 -0
  208. package/dist/esm/chunks/chunk.MMIZOYAS.js +147 -0
  209. package/dist/esm/chunks/chunk.MMIZOYAS.js.map +7 -0
  210. package/dist/esm/chunks/chunk.MNFGVNDI.js +6 -0
  211. package/dist/esm/chunks/chunk.MNFGVNDI.js.map +7 -0
  212. package/dist/esm/chunks/chunk.NQOD2XB3.js +840 -0
  213. package/dist/esm/chunks/chunk.NQOD2XB3.js.map +7 -0
  214. package/dist/esm/chunks/chunk.NRI7SWVX.js +1347 -0
  215. package/dist/esm/chunks/chunk.NRI7SWVX.js.map +7 -0
  216. package/dist/esm/chunks/chunk.NX5SKZLU.js +50 -0
  217. package/dist/esm/chunks/chunk.NX5SKZLU.js.map +7 -0
  218. package/dist/esm/chunks/chunk.O6UHX6FK.js +463 -0
  219. package/dist/esm/chunks/chunk.O6UHX6FK.js.map +7 -0
  220. package/dist/esm/chunks/chunk.OJI6ZRYW.js +561 -0
  221. package/dist/esm/chunks/chunk.OJI6ZRYW.js.map +7 -0
  222. package/dist/esm/chunks/chunk.OQRMHHPB.js +1335 -0
  223. package/dist/esm/chunks/chunk.OQRMHHPB.js.map +7 -0
  224. package/dist/esm/chunks/chunk.OYO6NUZY.js +52 -0
  225. package/dist/esm/chunks/chunk.OYO6NUZY.js.map +7 -0
  226. package/dist/esm/chunks/chunk.P43Z3YAS.js +507 -0
  227. package/dist/esm/chunks/chunk.P43Z3YAS.js.map +7 -0
  228. package/dist/esm/chunks/chunk.P7NOYP4O.js +73 -0
  229. package/dist/esm/chunks/chunk.P7NOYP4O.js.map +7 -0
  230. package/dist/esm/chunks/chunk.PBGL3BRX.js +27 -0
  231. package/dist/esm/chunks/chunk.PBGL3BRX.js.map +7 -0
  232. package/dist/esm/chunks/chunk.PCYIY5OY.js +461 -0
  233. package/dist/esm/chunks/chunk.PCYIY5OY.js.map +7 -0
  234. package/dist/esm/chunks/chunk.Q4YMHFRY.js +155 -0
  235. package/dist/esm/chunks/chunk.Q4YMHFRY.js.map +7 -0
  236. package/dist/esm/chunks/chunk.QD7EPCL6.js +144 -0
  237. package/dist/esm/chunks/chunk.QD7EPCL6.js.map +7 -0
  238. package/dist/esm/chunks/chunk.QQDDGRY6.js +6 -0
  239. package/dist/esm/chunks/chunk.QQDDGRY6.js.map +7 -0
  240. package/dist/esm/chunks/chunk.RNPIV3BY.js +540 -0
  241. package/dist/esm/chunks/chunk.RNPIV3BY.js.map +7 -0
  242. package/dist/esm/chunks/chunk.RR7HDQU6.js +236 -0
  243. package/dist/esm/chunks/chunk.RR7HDQU6.js.map +7 -0
  244. package/dist/esm/chunks/chunk.RV3E762Y.js +73 -0
  245. package/dist/esm/chunks/chunk.RV3E762Y.js.map +7 -0
  246. package/dist/esm/chunks/chunk.RWCC6E4O.js +52 -0
  247. package/dist/esm/chunks/chunk.RWCC6E4O.js.map +7 -0
  248. package/dist/esm/chunks/chunk.SJZ54RE3.js +56 -0
  249. package/dist/esm/chunks/chunk.SJZ54RE3.js.map +7 -0
  250. package/dist/esm/chunks/chunk.SKISCNSC.js +559 -0
  251. package/dist/esm/chunks/chunk.SKISCNSC.js.map +7 -0
  252. package/dist/esm/chunks/chunk.SKLCDWYQ.js +6 -0
  253. package/dist/esm/chunks/chunk.SKLCDWYQ.js.map +7 -0
  254. package/dist/esm/chunks/chunk.SNAZ6JSS.js +22 -0
  255. package/dist/esm/chunks/chunk.SNAZ6JSS.js.map +7 -0
  256. package/dist/esm/chunks/chunk.ST3R6JEE.js +73 -0
  257. package/dist/esm/chunks/chunk.ST3R6JEE.js.map +7 -0
  258. package/dist/esm/chunks/chunk.TLCGGWBO.js +6 -0
  259. package/dist/esm/chunks/chunk.TLCGGWBO.js.map +7 -0
  260. package/dist/esm/chunks/chunk.U35QQZVK.js +422 -0
  261. package/dist/esm/chunks/chunk.U35QQZVK.js.map +7 -0
  262. package/dist/esm/chunks/chunk.U6FJJGO3.js +6 -0
  263. package/dist/esm/chunks/chunk.U6FJJGO3.js.map +7 -0
  264. package/dist/esm/chunks/chunk.VAPJ75PS.js +21 -0
  265. package/dist/esm/chunks/chunk.VAPJ75PS.js.map +7 -0
  266. package/dist/esm/chunks/chunk.VHO7NUMI.js +37 -0
  267. package/dist/esm/chunks/chunk.VHO7NUMI.js.map +7 -0
  268. package/dist/esm/chunks/chunk.VK6LIH3B.js +13 -0
  269. package/dist/esm/chunks/chunk.VK6LIH3B.js.map +7 -0
  270. package/dist/esm/chunks/chunk.VTXXZ5KT.js +450 -0
  271. package/dist/esm/chunks/chunk.VTXXZ5KT.js.map +7 -0
  272. package/dist/esm/chunks/chunk.WAJDLUSQ.js +56 -0
  273. package/dist/esm/chunks/chunk.WAJDLUSQ.js.map +7 -0
  274. package/dist/esm/chunks/chunk.WF2MFLG4.js +6 -0
  275. package/dist/esm/chunks/chunk.WF2MFLG4.js.map +7 -0
  276. package/dist/esm/chunks/chunk.WINL2C7Q.js +6 -0
  277. package/dist/esm/chunks/chunk.WINL2C7Q.js.map +7 -0
  278. package/dist/esm/chunks/chunk.WIYLQTSX.js +3550 -0
  279. package/dist/esm/chunks/chunk.WIYLQTSX.js.map +7 -0
  280. package/dist/esm/chunks/chunk.WT4W2IFT.js +92 -0
  281. package/dist/esm/chunks/chunk.WT4W2IFT.js.map +7 -0
  282. package/dist/esm/chunks/chunk.WXFCZJJI.js +52 -0
  283. package/dist/esm/chunks/chunk.WXFCZJJI.js.map +7 -0
  284. package/dist/esm/chunks/chunk.XEF6G5NS.js +248 -0
  285. package/dist/esm/chunks/chunk.XEF6G5NS.js.map +7 -0
  286. package/dist/esm/chunks/chunk.XGMOOPIE.js +136 -0
  287. package/dist/esm/chunks/chunk.XGMOOPIE.js.map +7 -0
  288. package/dist/esm/chunks/chunk.XIDZXGD4.js +912 -0
  289. package/dist/esm/chunks/chunk.XIDZXGD4.js.map +7 -0
  290. package/dist/esm/chunks/chunk.XJVLHRVJ.js +59 -0
  291. package/dist/esm/chunks/chunk.XJVLHRVJ.js.map +7 -0
  292. package/dist/esm/chunks/chunk.XO3XVXWW.js +72 -0
  293. package/dist/esm/chunks/chunk.XO3XVXWW.js.map +7 -0
  294. package/dist/esm/chunks/chunk.XY3ZHN7Y.js +649 -0
  295. package/dist/esm/chunks/chunk.XY3ZHN7Y.js.map +7 -0
  296. package/dist/esm/chunks/chunk.Y2TDQIA4.js +307 -0
  297. package/dist/esm/chunks/chunk.Y2TDQIA4.js.map +7 -0
  298. package/dist/esm/chunks/chunk.YCW56AVX.js +176 -0
  299. package/dist/esm/chunks/chunk.YCW56AVX.js.map +7 -0
  300. package/dist/esm/chunks/chunk.YDPSV74L.js +742 -0
  301. package/dist/esm/chunks/chunk.YDPSV74L.js.map +7 -0
  302. package/dist/esm/chunks/chunk.YJ5X3WZ4.js +110 -0
  303. package/dist/esm/chunks/chunk.YJ5X3WZ4.js.map +7 -0
  304. package/dist/esm/chunks/chunk.ZABF5CI6.js +760 -0
  305. package/dist/esm/chunks/chunk.ZABF5CI6.js.map +7 -0
  306. package/dist/esm/chunks/chunk.ZG4NZM2P.js +173 -0
  307. package/dist/esm/chunks/chunk.ZG4NZM2P.js.map +7 -0
  308. package/dist/esm/chunks/chunk.ZUM5YLB2.js +291 -0
  309. package/dist/esm/chunks/chunk.ZUM5YLB2.js.map +7 -0
  310. package/dist/esm/circular-progress/index.js +28 -0
  311. package/dist/esm/circular-progress/index.js.map +7 -0
  312. package/dist/esm/color-picker/index.js +49 -0
  313. package/dist/esm/color-picker/index.js.map +7 -0
  314. package/dist/esm/core/base/index.js +21 -0
  315. package/dist/esm/core/base/index.js.map +7 -0
  316. package/dist/esm/core/delegates/index.js +20 -0
  317. package/dist/esm/core/delegates/index.js.map +7 -0
  318. package/dist/esm/core/index.js +83 -0
  319. package/dist/esm/core/index.js.map +7 -0
  320. package/dist/esm/core/mask/index.js +26 -0
  321. package/dist/esm/core/mask/index.js.map +7 -0
  322. package/dist/esm/core/utils/index.js +46 -0
  323. package/dist/esm/core/utils/index.js.map +7 -0
  324. package/dist/esm/date-picker/index.js +62 -0
  325. package/dist/esm/date-picker/index.js.map +7 -0
  326. package/dist/esm/date-range-picker/index.js +64 -0
  327. package/dist/esm/date-range-picker/index.js.map +7 -0
  328. package/dist/esm/dialog/index.js +44 -0
  329. package/dist/esm/dialog/index.js.map +7 -0
  330. package/dist/esm/divider/index.js +22 -0
  331. package/dist/esm/divider/index.js.map +7 -0
  332. package/dist/esm/drawer/base/index.js +25 -0
  333. package/dist/esm/drawer/base/index.js.map +7 -0
  334. package/dist/esm/drawer/drawer/index.js +25 -0
  335. package/dist/esm/drawer/drawer/index.js.map +7 -0
  336. package/dist/esm/drawer/index.js +56 -0
  337. package/dist/esm/drawer/index.js.map +7 -0
  338. package/dist/esm/drawer/mini-drawer/index.js +25 -0
  339. package/dist/esm/drawer/mini-drawer/index.js.map +7 -0
  340. package/dist/esm/drawer/modal-drawer/index.js +30 -0
  341. package/dist/esm/drawer/modal-drawer/index.js.map +7 -0
  342. package/dist/esm/expansion-panel/index.js +38 -0
  343. package/dist/esm/expansion-panel/index.js.map +7 -0
  344. package/dist/esm/file-picker/index.js +41 -0
  345. package/dist/esm/file-picker/index.js.map +7 -0
  346. package/dist/esm/floating-action-button/index.js +29 -0
  347. package/dist/esm/floating-action-button/index.js.map +7 -0
  348. package/dist/esm/floating-label/index.js +23 -0
  349. package/dist/esm/floating-label/index.js.map +7 -0
  350. package/dist/esm/icon/index.js +53 -0
  351. package/dist/esm/icon/index.js.map +7 -0
  352. package/dist/esm/icon-button/index.js +37 -0
  353. package/dist/esm/icon-button/index.js.map +7 -0
  354. package/dist/esm/index.js +1275 -0
  355. package/dist/esm/index.js.map +7 -0
  356. package/dist/esm/inline-message/index.js +22 -0
  357. package/dist/esm/inline-message/index.js.map +7 -0
  358. package/dist/esm/keyboard-shortcut/index.js +41 -0
  359. package/dist/esm/keyboard-shortcut/index.js.map +7 -0
  360. package/dist/esm/label-value/index.js +32 -0
  361. package/dist/esm/label-value/index.js.map +7 -0
  362. package/dist/esm/linear-progress/index.js +24 -0
  363. package/dist/esm/linear-progress/index.js.map +7 -0
  364. package/dist/esm/list/index.js +44 -0
  365. package/dist/esm/list/index.js.map +7 -0
  366. package/dist/esm/list/list/index.js +33 -0
  367. package/dist/esm/list/list/index.js.map +7 -0
  368. package/dist/esm/list/list-item/index.js +31 -0
  369. package/dist/esm/list/list-item/index.js.map +7 -0
  370. package/dist/esm/list-dropdown/index.js +55 -0
  371. package/dist/esm/list-dropdown/index.js.map +7 -0
  372. package/dist/esm/menu/index.js +53 -0
  373. package/dist/esm/menu/index.js.map +7 -0
  374. package/dist/esm/open-icon/index.js +37 -0
  375. package/dist/esm/open-icon/index.js.map +7 -0
  376. package/dist/esm/page-state/index.js +22 -0
  377. package/dist/esm/page-state/index.js.map +7 -0
  378. package/dist/esm/paginator/index.js +66 -0
  379. package/dist/esm/paginator/index.js.map +7 -0
  380. package/dist/esm/popup/index.js +31 -0
  381. package/dist/esm/popup/index.js.map +7 -0
  382. package/dist/esm/product-icon/index.js +29 -0
  383. package/dist/esm/product-icon/index.js.map +7 -0
  384. package/dist/esm/profile-card/index.js +37 -0
  385. package/dist/esm/profile-card/index.js.map +7 -0
  386. package/dist/esm/quantity-field/index.js +46 -0
  387. package/dist/esm/quantity-field/index.js.map +7 -0
  388. package/dist/esm/radio/index.js +26 -0
  389. package/dist/esm/radio/index.js.map +7 -0
  390. package/dist/esm/ripple/index.js +32 -0
  391. package/dist/esm/ripple/index.js.map +7 -0
  392. package/dist/esm/scaffold/index.js +22 -0
  393. package/dist/esm/scaffold/index.js.map +7 -0
  394. package/dist/esm/select/core/index.js +60 -0
  395. package/dist/esm/select/core/index.js.map +7 -0
  396. package/dist/esm/select/index.js +114 -0
  397. package/dist/esm/select/index.js.map +7 -0
  398. package/dist/esm/select/option/index.js +28 -0
  399. package/dist/esm/select/option/index.js.map +7 -0
  400. package/dist/esm/select/option-group/index.js +22 -0
  401. package/dist/esm/select/option-group/index.js.map +7 -0
  402. package/dist/esm/select/select/index.js +63 -0
  403. package/dist/esm/select/select/index.js.map +7 -0
  404. package/dist/esm/select/select-dropdown/index.js +59 -0
  405. package/dist/esm/select/select-dropdown/index.js.map +7 -0
  406. package/dist/esm/skeleton/index.js +22 -0
  407. package/dist/esm/skeleton/index.js.map +7 -0
  408. package/dist/esm/slider/index.js +35 -0
  409. package/dist/esm/slider/index.js.map +7 -0
  410. package/dist/esm/stepper/index.js +55 -0
  411. package/dist/esm/stepper/index.js.map +7 -0
  412. package/dist/esm/stepper/step/index.js +40 -0
  413. package/dist/esm/stepper/step/index.js.map +7 -0
  414. package/dist/esm/stepper/stepper/index.js +43 -0
  415. package/dist/esm/stepper/stepper/index.js.map +7 -0
  416. package/dist/esm/switch/index.js +34 -0
  417. package/dist/esm/switch/index.js.map +7 -0
  418. package/dist/esm/table/index.js +57 -0
  419. package/dist/esm/table/index.js.map +7 -0
  420. package/dist/esm/tabs/index.js +61 -0
  421. package/dist/esm/tabs/index.js.map +7 -0
  422. package/dist/esm/tabs/tab/index.js +33 -0
  423. package/dist/esm/tabs/tab/index.js.map +7 -0
  424. package/dist/esm/tabs/tab-bar/index.js +47 -0
  425. package/dist/esm/tabs/tab-bar/index.js.map +7 -0
  426. package/dist/esm/text-field/index.js +39 -0
  427. package/dist/esm/text-field/index.js.map +7 -0
  428. package/dist/esm/theme/index.js +17 -0
  429. package/dist/esm/theme/index.js.map +7 -0
  430. package/dist/esm/time-picker/index.js +92 -0
  431. package/dist/esm/time-picker/index.js.map +7 -0
  432. package/dist/esm/toast/index.js +42 -0
  433. package/dist/esm/toast/index.js.map +7 -0
  434. package/dist/esm/toolbar/index.js +22 -0
  435. package/dist/esm/toolbar/index.js.map +7 -0
  436. package/dist/esm/tooltip/index.js +34 -0
  437. package/dist/esm/tooltip/index.js.map +7 -0
  438. package/dist/esm/utils/index.js +17 -0
  439. package/dist/esm/utils/index.js.map +7 -0
  440. package/dist/esm/view-switcher/index.js +40 -0
  441. package/dist/esm/view-switcher/index.js.map +7 -0
  442. package/dist/esm/view-switcher/view/index.js +22 -0
  443. package/dist/esm/view-switcher/view/index.js.map +7 -0
  444. package/package.json +1 -1
@@ -0,0 +1,2428 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import {
7
+ createPredicate,
8
+ findWhere,
9
+ getPropertyValue,
10
+ matchesPredicate
11
+ } from "./chunk.RV3E762Y.js";
12
+ import {
13
+ CHECKBOX_CONSTANTS
14
+ } from "./chunk.KCK3G74Y.js";
15
+ import {
16
+ EXPANSION_PANEL_CONSTANTS,
17
+ ExpansionPanelComponent
18
+ } from "./chunk.KRW2IAIU.js";
19
+ import {
20
+ getEventPath
21
+ } from "./chunk.EY57VTRF.js";
22
+ import {
23
+ tylIconArrowDownward
24
+ } from "./chunk.GS2AXUCN.js";
25
+ import {
26
+ TOOLTIP_CONSTANTS
27
+ } from "./chunk.NX5SKZLU.js";
28
+ import {
29
+ ICON_CONSTANTS,
30
+ IconComponent,
31
+ IconRegistry
32
+ } from "./chunk.P43Z3YAS.js";
33
+ import {
34
+ FormFieldComponentDelegate
35
+ } from "./chunk.HZISALRH.js";
36
+ import {
37
+ BaseAdapter
38
+ } from "./chunk.KZATVOA6.js";
39
+ import {
40
+ FoundationProperty
41
+ } from "./chunk.MMIZOYAS.js";
42
+ import {
43
+ COMPONENT_NAME_PREFIX,
44
+ CustomElement
45
+ } from "./chunk.35U3UPDV.js";
46
+ import {
47
+ BaseComponent
48
+ } from "./chunk.VK6LIH3B.js";
49
+ import {
50
+ defineCustomElement
51
+ } from "./chunk.K2PCTUVN.js";
52
+ import {
53
+ addClass,
54
+ removeAllChildren,
55
+ removeClass,
56
+ removeElement,
57
+ replaceElement,
58
+ safeCssWidth,
59
+ toggleClass
60
+ } from "./chunk.4JURZYE4.js";
61
+ import {
62
+ coerceBoolean,
63
+ coerceNumber,
64
+ debounce,
65
+ isDefined,
66
+ isFunction,
67
+ isNumber,
68
+ isObject,
69
+ isString
70
+ } from "./chunk.MEFT5FQC.js";
71
+ import {
72
+ __decorateClass,
73
+ __spreadValues
74
+ } from "./chunk.LM5TVNZY.js";
75
+
76
+ // node_modules/@tylertech/forge-core/esm/utils/item-manager.js
77
+ var ItemManager = class {
78
+ constructor(_key) {
79
+ this._key = _key;
80
+ this._items = [];
81
+ }
82
+ getItems() {
83
+ return [...this._items];
84
+ }
85
+ count() {
86
+ return this._items.length;
87
+ }
88
+ setKey(key) {
89
+ this._key = key;
90
+ }
91
+ add(data) {
92
+ if (!(data instanceof Array)) {
93
+ data = [data];
94
+ }
95
+ data.forEach((item) => {
96
+ if (!this.exists(item)) {
97
+ this._items.push(item);
98
+ }
99
+ });
100
+ return this;
101
+ }
102
+ remove(data) {
103
+ if (!(data instanceof Array)) {
104
+ data = [data];
105
+ }
106
+ for (let i = data.length - 1; i >= 0; i--) {
107
+ if (this.exists(data[i])) {
108
+ this._items.splice(this._items.indexOf(this._getItem(data[i])), 1);
109
+ }
110
+ }
111
+ return this;
112
+ }
113
+ clear() {
114
+ this._items = [];
115
+ return this;
116
+ }
117
+ exists(data) {
118
+ return this._getItem(data) !== null;
119
+ }
120
+ _getItem(data) {
121
+ if (this._key) {
122
+ return findWhere(this._items, createPredicate(this._key, data)) || null;
123
+ } else {
124
+ return this._items.find((item) => item === data) || null;
125
+ }
126
+ }
127
+ };
128
+
129
+ // dist/build/lib/staging/src/table/table-constants.ts
130
+ var elementName = `${COMPONENT_NAME_PREFIX}table`;
131
+ var classes = {
132
+ TABLE: "forge-table",
133
+ TABLE_DENSE: "forge-table--dense",
134
+ TABLE_ROOMY: "forge-table--roomy",
135
+ TABLE_RESIZABLE: "forge-table--resizable",
136
+ TABLE_RESIZING: "forge-table--resizing",
137
+ TABLE_RESIZE_HANDLE: "forge-table__resize-handle",
138
+ TABLE_NO_WRAP_CONTENT: "forge-table--no-wrap-content",
139
+ TABLE_LAYOUT_FIXED: "forge-table--layout-fixed",
140
+ TABLE_FILTER_VISIBLE: "forge-table--filter-visible",
141
+ TABLE_FIXED: "forge-table--fixed",
142
+ TABLE_HEAD: "forge-table-head",
143
+ TABLE_HEAD_ROW: "forge-table-head__row",
144
+ TABLE_HEAD_ROW_FILTER: "forge-table-head__row__filter",
145
+ TABLE_HEAD_CELL: "forge-table-head__cell",
146
+ TABLE_HEAD_CELL_CONTAINER: "forge-table-head__cell-container",
147
+ TABLE_HEAD_CELL_SORTABLE: "forge-table-head__cell--sortable",
148
+ TABLE_HEAD_CELL_SORT_ICON: "forge-table-head__cell-sort-icon",
149
+ TABLE_HEAD_CELL_TEXT: "forge-table-head__cell-text",
150
+ TABLE_HEAD_CELL_SORT_ICON_ACTIVE: "forge-table-head__cell-sort-icon--active",
151
+ TABLE_HEAD_CELL_SORTED_ASCENDING: "forge-table-head__cell--sorted-ascending",
152
+ TABLE_HEAD_CELL_SORTED_DESCENDING: "forge-table-head__cell--sorted-descending",
153
+ TABLE_HEAD_CELL_SORT_ORDER: "forge-table-head__cell__sort-order",
154
+ TABLE_HEAD_CELL_SORT_ORDER_HIDDEN: "forge-table-head__cell__sort-order--hidden",
155
+ TABLE_BODY: "forge-table-body",
156
+ TABLE_BODY_ROW: "forge-table-body__row",
157
+ TABLE_BODY_ROW_SELECTED: "forge-table-body__row--selected",
158
+ TABLE_BODY_ROW_CLICKABLE: "forge-table-body__row--clickable",
159
+ TABLE_BODY_CELL: "forge-table-body__cell",
160
+ TABLE_ROW: "forge-table-row",
161
+ TABLE_ROW_EXPANDED: "forge-table-row--expanded",
162
+ TABLE_ROW_EXPANDABLE_CONTENT: "forge-table-row__expandable-content",
163
+ TABLE_ROW_EXPANDABLE_CONTENT_CELL: "forge-table-row__expandable-content-cell",
164
+ TABLE_CELL: "forge-table-cell",
165
+ TABLE_CELL_SELECT: "forge-table-cell__select",
166
+ TABLE_CELL_SELECT_CHECKBOX: "forge-table-cell__select-checkbox",
167
+ TABLE_CELL_SELECT_CHECKBOX_CONTAINER: "forge-table-cell__select-checkbox-container",
168
+ TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_RIGHT: "forge-table-cell__select-checkbox-container--align-right",
169
+ TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_LEFT: "forge-table-cell__select-checkbox-container--align-left",
170
+ TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_CENTER: "forge-table-cell__select-checkbox-container--align-center",
171
+ TABLE_CELL_CONTAINER: "forge-table-cell__container",
172
+ TABLE_CELL_CONTAINER_TEXT: "forge-table-cell__container-text",
173
+ TABLE_CELL_CENTER: "forge-table-cell--center",
174
+ TABLE_CELL_RIGHT: "forge-table-cell--right",
175
+ TABLE_CELL_RESIZABLE: "forge-table-cell--resizing"
176
+ };
177
+ var selectors = {
178
+ TABLE: ".forge-table",
179
+ CHECKBOX_INPUT: "forge-checkbox > input[type=checkbox]:not([forge-ignore])",
180
+ SELECT_ALL_TEMPLATE_CHECKBOX_INPUT: "input[type=checkbox]:not([forge-ignore])",
181
+ ROW_SELECTED: `.${classes.TABLE_BODY_ROW_SELECTED}`
182
+ };
183
+ var attributes = {
184
+ SELECT: "select",
185
+ MULTISELECT: "multiselect",
186
+ SELECT_KEY: "select-key",
187
+ DENSE: "dense",
188
+ ROOMY: "roomy",
189
+ FILTER: "filter",
190
+ FIXED_HEADERS: "fixed-headers",
191
+ LAYOUT_TYPE: "layout-type",
192
+ WRAP_CONTENT: "wrap-content",
193
+ RESIZABLE: "resizable",
194
+ MIN_RESIZE_WIDTH: "min-resize-width",
195
+ ALLOW_ROW_CLICK: "allow-row-click",
196
+ MULTI_COLUMN_SORT: "multi-column-sort",
197
+ SELECT_CHECKBOX_ALIGNMENT: "select-checkbox-alignment",
198
+ TOOLTIP_SELECT: "tooltip-select",
199
+ TOOLTIP_SELECT_ALL: "tooltip-select-all",
200
+ CHECKBOX_TYPE: "forge-checkbox-type",
201
+ CUSTOM_CELL_TEMPLATE: "data-cell-template",
202
+ CUSTOM_CELL_TEMPLATE_STOP_PROPAGATION: "data-cell-template-stop-propagation"
203
+ };
204
+ var events = {
205
+ ROW_CLICK: `${elementName}-row-click`,
206
+ SELECT: `${elementName}-select`,
207
+ SELECT_DOUBLE: `${elementName}-select-double`,
208
+ SELECT_ALL: `${elementName}-select-all`,
209
+ SORT: `${elementName}-sort`,
210
+ FILTER: `${elementName}-filter`,
211
+ INITIALIZED: `${elementName}-initialized`,
212
+ COLUMN_RESIZE: `${elementName}-column-resize`
213
+ };
214
+ var strings = {
215
+ SELECT_ALL: "select-all",
216
+ SELECT_ROW: "select-row",
217
+ DEFAULT_LAYOUT_TYPE: "auto"
218
+ };
219
+ var icons = {
220
+ SORT_DOWN: "arrow_downward"
221
+ };
222
+ var numbers = {
223
+ DEFAULT_FILTER_DEBOUNCE_TIME: 750,
224
+ MIN_RESIZE_WIDTH: 100,
225
+ RESIZE_HOVER_DURATION: 150
226
+ };
227
+ var TABLE_CONSTANTS = {
228
+ elementName,
229
+ classes,
230
+ selectors,
231
+ attributes,
232
+ events,
233
+ strings,
234
+ icons,
235
+ numbers
236
+ };
237
+
238
+ // dist/build/lib/staging/src/table/types.ts
239
+ var CellAlign = /* @__PURE__ */ ((CellAlign2) => {
240
+ CellAlign2["Left"] = "left";
241
+ CellAlign2["Right"] = "right";
242
+ CellAlign2["Center"] = "center";
243
+ return CellAlign2;
244
+ })(CellAlign || {});
245
+ var SortDirection = /* @__PURE__ */ ((SortDirection2) => {
246
+ SortDirection2["Ascending"] = "ASC";
247
+ SortDirection2["Descending"] = "DESC";
248
+ SortDirection2["Unset"] = "UNSET";
249
+ return SortDirection2;
250
+ })(SortDirection || {});
251
+ var TableFilterType = /* @__PURE__ */ ((TableFilterType2) => {
252
+ TableFilterType2["InputText"] = "text";
253
+ TableFilterType2["InputNumber"] = "number";
254
+ TableFilterType2["Select"] = "select";
255
+ TableFilterType2["SelectMultiple"] = "select-multiple";
256
+ TableFilterType2["Date"] = "date";
257
+ TableFilterType2["DateRange"] = "date-range";
258
+ return TableFilterType2;
259
+ })(TableFilterType || {});
260
+
261
+ // dist/build/lib/staging/src/table/table-utils.ts
262
+ function isTemplateResultObject(val) {
263
+ return val && typeof val === "object" && "content" in val;
264
+ }
265
+ var TableUtils = class {
266
+ static createTable(configuration) {
267
+ TableUtils._resetTable(configuration.tableElement);
268
+ const thead = TableUtils._createTableHead(configuration);
269
+ const tbody = TableUtils._createTableBody(configuration);
270
+ if (configuration.clickListener) {
271
+ TableUtils._attachRowClickListeners(tbody, configuration.clickListener, configuration.doubleClickListener);
272
+ TableUtils._addRowClickAttributes(tbody);
273
+ }
274
+ if (configuration.fixedHeaders) {
275
+ TableUtils.setFixedHeaders(configuration);
276
+ }
277
+ if (configuration.resizable) {
278
+ TableUtils.setResizable(configuration);
279
+ }
280
+ if (configuration.dense) {
281
+ TableUtils.setDenseState(configuration.tableElement, configuration.dense);
282
+ }
283
+ if (configuration.wrapContent) {
284
+ TableUtils.setWrapContentState(configuration.tableElement, configuration.wrapContent);
285
+ }
286
+ if (configuration.selectListener) {
287
+ TableUtils._addSelectColumn(thead, tbody, configuration.selectListener, configuration.selectAllListener, configuration.selectAllTemplate, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
288
+ }
289
+ if (configuration.resizable || configuration.columnConfigurations.some((c) => !!c.sortable)) {
290
+ TableUtils._attachHeadRowMouseDownListener(thead, configuration.headRowMouseDownListener);
291
+ if (TableUtils._isMac()) {
292
+ TableUtils._attachHeadRowContextMenuListener(thead, configuration.headRowContextMenuListener);
293
+ }
294
+ }
295
+ TableUtils.setLayoutType(configuration);
296
+ TableUtils._setTableHead(configuration.tableElement, thead);
297
+ if (configuration.filter) {
298
+ TableUtils.setFilterRow(configuration);
299
+ }
300
+ TableUtils._setTableBody(configuration.tableElement, tbody);
301
+ }
302
+ static _setTableHead(tableElement, thead) {
303
+ if (tableElement.tHead) {
304
+ replaceElement(thead, tableElement.tHead);
305
+ } else {
306
+ tableElement.appendChild(thead);
307
+ }
308
+ }
309
+ static _setTableBody(tableElement, tbody) {
310
+ if (tableElement.tBodies.length) {
311
+ replaceElement(tbody, tableElement.tBodies[0]);
312
+ } else {
313
+ tableElement.appendChild(tbody);
314
+ }
315
+ }
316
+ static recreateTableBody(configuration) {
317
+ const tbody = TableUtils._createTableBody(configuration);
318
+ if (configuration.clickListener) {
319
+ TableUtils._attachRowClickListeners(tbody, configuration.clickListener, configuration.doubleClickListener);
320
+ }
321
+ if (configuration.selectListener) {
322
+ TableUtils._createBodySelectColumn(tbody, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
323
+ TableUtils._attachRowSelectListeners(tbody, configuration.selectListener);
324
+ }
325
+ TableUtils._setTableBody(configuration.tableElement, tbody);
326
+ }
327
+ static _resetTable(tableElement) {
328
+ removeAllChildren(tableElement);
329
+ }
330
+ static _createMultisortTooltip() {
331
+ const tooltip = document.createElement(TOOLTIP_CONSTANTS.elementName);
332
+ tooltip.textContent = "Ctrl + click to sort multiple columns";
333
+ tooltip.position = "bottom";
334
+ tooltip.delay = 0;
335
+ return tooltip;
336
+ }
337
+ static _createTableHead(tableConfiguration) {
338
+ const thead = document.createElement("thead");
339
+ const tr = thead.insertRow();
340
+ addClass([TABLE_CONSTANTS.classes.TABLE_ROW, TABLE_CONSTANTS.classes.TABLE_HEAD_ROW], tr);
341
+ let setInitialSort = false;
342
+ for (let i = 0; i < tableConfiguration.columnConfigurations.length; i++) {
343
+ const columnConfig = tableConfiguration.columnConfigurations[i];
344
+ const th = document.createElement("th");
345
+ th.scope = "col";
346
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL], th);
347
+ const cellContainer = document.createElement("div");
348
+ cellContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_CONTAINER);
349
+ if (tableConfiguration.multiColumnSort) {
350
+ const tooltip = TableUtils._createMultisortTooltip();
351
+ cellContainer.appendChild(tooltip);
352
+ }
353
+ if (columnConfig.align) {
354
+ TableUtils._setCellAlignmentClass(cellContainer, columnConfig.align);
355
+ }
356
+ if (isDefined(columnConfig.width)) {
357
+ const width = safeCssWidth(columnConfig.width);
358
+ if (width) {
359
+ th.style.width = width;
360
+ }
361
+ }
362
+ if (tableConfiguration.resizable && columnConfig.resizable !== false) {
363
+ const resizeHandle = document.createElement("div");
364
+ resizeHandle.classList.add(TABLE_CONSTANTS.classes.TABLE_RESIZE_HANDLE);
365
+ th.appendChild(resizeHandle);
366
+ }
367
+ if (isDefined(columnConfig.headerCellStyle) && isObject(columnConfig.headerCellStyle)) {
368
+ Object.assign(th.style, columnConfig.headerCellStyle);
369
+ Object.assign(cellContainer.style, columnConfig.headerCellStyle);
370
+ }
371
+ const span = document.createElement("span");
372
+ span.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_TEXT);
373
+ span.textContent = columnConfig.header && typeof columnConfig.header === "string" ? columnConfig.header.trim() : "";
374
+ if (columnConfig.sortable) {
375
+ th.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTABLE);
376
+ const sortOrderElement = document.createElement("span");
377
+ addClass([TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ORDER_HIDDEN, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ORDER], sortOrderElement);
378
+ const iconElement = document.createElement(ICON_CONSTANTS.elementName);
379
+ iconElement.name = TABLE_CONSTANTS.icons.SORT_DOWN;
380
+ addClass([TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON], iconElement);
381
+ if (tableConfiguration.multiColumnSort) {
382
+ if (typeof columnConfig.initialSort === "object" && columnConfig.initialSort.sortOrder) {
383
+ sortOrderElement.textContent = columnConfig.initialSort.sortOrder.toString();
384
+ if (tableConfiguration.columnConfigurations.filter((c) => typeof c.initialSort === "object").length > 1) {
385
+ removeClass(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ORDER_HIDDEN, sortOrderElement);
386
+ }
387
+ th.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING);
388
+ iconElement.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON_ACTIVE);
389
+ TableUtils._setColumnSortDirection(th, columnConfig.initialSort.direction);
390
+ }
391
+ } else {
392
+ if (tableConfiguration.sortedColumn === i && !setInitialSort && !tableConfiguration.multiColumnSort) {
393
+ th.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING);
394
+ iconElement.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON_ACTIVE);
395
+ TableUtils._setColumnSortDirection(th, tableConfiguration.sortDirection);
396
+ setInitialSort = true;
397
+ }
398
+ }
399
+ cellContainer.appendChild(iconElement);
400
+ cellContainer.appendChild(sortOrderElement);
401
+ }
402
+ if (typeof columnConfig.headerTemplate === "function") {
403
+ Promise.resolve(columnConfig.headerTemplate(i, cellContainer, columnConfig)).then((element) => {
404
+ if (element) {
405
+ const node = document.createElement("div");
406
+ addClass(TABLE_CONSTANTS.classes.TABLE_CELL_CONTAINER, node);
407
+ if (typeof element === "string") {
408
+ node.innerHTML = element;
409
+ } else {
410
+ TableUtils._prepend(element, node);
411
+ }
412
+ node.setAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE, "");
413
+ TableUtils._prepend(node, cellContainer);
414
+ }
415
+ });
416
+ } else {
417
+ TableUtils._prepend(span, cellContainer);
418
+ }
419
+ th.appendChild(cellContainer);
420
+ tr.appendChild(th);
421
+ }
422
+ return thead;
423
+ }
424
+ static setSortDirection(tableElement, columnIndex, sortDirection) {
425
+ const cell = TableUtils._getHeaderCellByIndex(tableElement, columnIndex);
426
+ TableUtils._setColumnSortDirection(cell, sortDirection);
427
+ }
428
+ static _setColumnSortDirection(thElement, sortDirection) {
429
+ if (thElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_ASCENDING)) {
430
+ thElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_ASCENDING);
431
+ }
432
+ if (thElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING)) {
433
+ thElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING);
434
+ }
435
+ if (!sortDirection || sortDirection === "DESC" /* Descending */) {
436
+ thElement.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING);
437
+ } else {
438
+ thElement.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_ASCENDING);
439
+ }
440
+ }
441
+ static _createTableBody(configuration) {
442
+ const tbody = document.createElement("tbody");
443
+ const rowData = TableUtils._getOrderedRowData(configuration.columnConfigurations, configuration.data);
444
+ rowData.forEach((cellData, rowIndex) => {
445
+ const tr = tbody.insertRow();
446
+ addClass([TABLE_CONSTANTS.classes.TABLE_ROW, TABLE_CONSTANTS.classes.TABLE_BODY_ROW], tr);
447
+ TableUtils._populateRowCells(configuration, tr, cellData, rowIndex);
448
+ if (typeof configuration.rowCreatedCallback === "function") {
449
+ configuration.rowCreatedCallback(tr, rowIndex, __spreadValues({}, configuration.data[rowIndex].data));
450
+ }
451
+ });
452
+ return tbody;
453
+ }
454
+ static _populateRowCells(configuration, tr, cellData, rowIndex) {
455
+ for (let i = 0; i < cellData.length; i++) {
456
+ const columnConfig = configuration.columnConfigurations[i];
457
+ const td = tr.insertCell();
458
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_BODY_CELL], td);
459
+ if (isDefined(columnConfig.width)) {
460
+ const width = safeCssWidth(columnConfig.width);
461
+ if (width) {
462
+ td.style.width = width;
463
+ }
464
+ }
465
+ const div = document.createElement("div");
466
+ div.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_CONTAINER);
467
+ if (isDefined(columnConfig.cellStyle) && isObject(columnConfig.cellStyle)) {
468
+ Object.assign(td.style, columnConfig.cellStyle);
469
+ Object.assign(div.style, columnConfig.cellStyle);
470
+ }
471
+ if (columnConfig.template && typeof columnConfig.template === "function") {
472
+ const rowData = configuration.data[rowIndex] ? configuration.data[rowIndex].data : void 0;
473
+ Promise.resolve(columnConfig.template(rowIndex, div, rowData)).then((result) => {
474
+ const config = isTemplateResultObject(result) ? result : { content: result, stopClickPropagation: columnConfig.stopCellTemplateClickPropagation };
475
+ if (!config.content) {
476
+ return;
477
+ }
478
+ if (typeof config.content === "string") {
479
+ div.innerHTML = config.content;
480
+ } else {
481
+ div.appendChild(config.content);
482
+ }
483
+ div.setAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE, "");
484
+ if (config.stopClickPropagation) {
485
+ div.setAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE_STOP_PROPAGATION, "");
486
+ }
487
+ });
488
+ } else if (columnConfig.property) {
489
+ const span = document.createElement("span");
490
+ span.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_CONTAINER_TEXT);
491
+ div.appendChild(span);
492
+ if (columnConfig.transform && typeof columnConfig.transform === "function") {
493
+ Promise.resolve(columnConfig.transform(cellData[i])).then((value) => span.textContent = value);
494
+ } else {
495
+ if (cellData[i] === void 0 || cellData[i] === null) {
496
+ span.textContent = "";
497
+ } else {
498
+ span.textContent = cellData[i].toString();
499
+ }
500
+ }
501
+ }
502
+ if (columnConfig.align) {
503
+ TableUtils._setCellAlignmentClass(div, columnConfig.align);
504
+ }
505
+ td.appendChild(div);
506
+ if (isDefined(columnConfig.columnSpan)) {
507
+ if (columnConfig.columnSpan === "all") {
508
+ td.colSpan = cellData.length - i;
509
+ break;
510
+ } else if (typeof columnConfig.columnSpan === "number" && columnConfig.columnSpan > 0) {
511
+ let colspan = columnConfig.columnSpan;
512
+ if (columnConfig.columnSpan > cellData.length - i) {
513
+ colspan = cellData.length;
514
+ }
515
+ td.colSpan = colspan;
516
+ i = i + (colspan - 1);
517
+ }
518
+ }
519
+ if (typeof configuration.cellCreatedCallback === "function") {
520
+ configuration.cellCreatedCallback(td, rowIndex, i);
521
+ }
522
+ }
523
+ }
524
+ static _setCellAlignmentClass(el, align) {
525
+ switch (align) {
526
+ case "center" /* Center */:
527
+ el.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_CENTER);
528
+ break;
529
+ case "right" /* Right */:
530
+ el.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_RIGHT);
531
+ break;
532
+ }
533
+ }
534
+ static _getNonExpandedRows(rows) {
535
+ return Array.from(rows).filter((row) => !row.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDABLE_CONTENT));
536
+ }
537
+ static _getExpandedRows(rows) {
538
+ return Array.from(rows).filter((row) => row.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDABLE_CONTENT));
539
+ }
540
+ static _createColumnDataMap(columnConfigurations, data) {
541
+ return columnConfigurations.map((columnConfig) => {
542
+ return {
543
+ config: columnConfig,
544
+ data: data.map((item) => {
545
+ if (columnConfig.property) {
546
+ const value = getPropertyValue(item.data, columnConfig.property);
547
+ return isDefined(value) ? value : null;
548
+ }
549
+ return null;
550
+ })
551
+ };
552
+ });
553
+ }
554
+ static _getOrderedRowData(columnConfigurations, data) {
555
+ const columnDataMap = TableUtils._createColumnDataMap(columnConfigurations, data);
556
+ const rowData = [];
557
+ for (const columnData of columnDataMap) {
558
+ for (let j = 0; j < columnData.data.length; j++) {
559
+ if (!rowData[j]) {
560
+ rowData[j] = [];
561
+ }
562
+ rowData[j].push(columnData.data[j]);
563
+ }
564
+ }
565
+ return rowData;
566
+ }
567
+ static _attachRowClickListeners(tbodyElement, clickListener, doubleClickListener) {
568
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
569
+ nonExpandedRows.forEach((row) => {
570
+ row.addEventListener("click", clickListener);
571
+ if (doubleClickListener) {
572
+ row.addEventListener("dblclick", doubleClickListener);
573
+ }
574
+ });
575
+ }
576
+ static _addRowClickAttributes(tbodyElement) {
577
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
578
+ nonExpandedRows.forEach((row) => {
579
+ row.classList.add(TABLE_CONSTANTS.classes.TABLE_BODY_ROW_CLICKABLE);
580
+ });
581
+ }
582
+ static _removeRowClickAttributes(tbodyElement) {
583
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
584
+ nonExpandedRows.forEach((row) => {
585
+ row.classList.remove(TABLE_CONSTANTS.classes.TABLE_BODY_ROW_CLICKABLE);
586
+ });
587
+ }
588
+ static _attachRowSelectListeners(tbodyElement, clickListener) {
589
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
590
+ nonExpandedRows.forEach((row) => TableUtils._attachRowSelectListener(row, clickListener));
591
+ }
592
+ static _attachRowSelectListener(row, clickListener) {
593
+ const checkboxElement = TableUtils._getCheckboxElement(row);
594
+ checkboxElement.addEventListener("click", clickListener);
595
+ }
596
+ static _detachRowSelectListeners(tbodyElement, clickListener) {
597
+ Array.from(tbodyElement.rows).forEach((row) => {
598
+ const checkboxElement = TableUtils._getCheckboxElement(row);
599
+ if (checkboxElement) {
600
+ checkboxElement.removeEventListener("click", clickListener);
601
+ }
602
+ });
603
+ }
604
+ static _detachRowClickListeners(tbodyElement, clickListener, doubleClickListener) {
605
+ Array.from(tbodyElement.rows).forEach((row) => {
606
+ row.removeEventListener("click", clickListener);
607
+ row.removeEventListener("dblclick", doubleClickListener);
608
+ });
609
+ }
610
+ static _attachSelectAllListener(theadElement, listener) {
611
+ const lastTheadRow = theadElement.rows[theadElement.rows.length - 1];
612
+ const checkboxElement = TableUtils._getCheckboxElement(lastTheadRow);
613
+ if (!checkboxElement) {
614
+ throw new Error("Checkbox element not found.");
615
+ }
616
+ checkboxElement.addEventListener("change", listener);
617
+ }
618
+ static _tryAttachSelectAllTemplateListener(theadElement, listener) {
619
+ const lastTheadRow = theadElement.rows[theadElement.rows.length - 1];
620
+ const checkboxElement = TableUtils._tryGetCheckboxElement(lastTheadRow);
621
+ if (checkboxElement) {
622
+ checkboxElement.addEventListener("change", listener);
623
+ }
624
+ }
625
+ static _detachSelectAllListener(theadElement, listener) {
626
+ const lastTheadRow = theadElement.rows[theadElement.rows.length - 1];
627
+ const checkboxElement = TableUtils._tryGetCheckboxElement(lastTheadRow);
628
+ if (!checkboxElement) {
629
+ return;
630
+ }
631
+ checkboxElement.removeEventListener("change", listener);
632
+ }
633
+ static _attachHeadRowMouseDownListener(theadElement, listener) {
634
+ const firstRow = theadElement.rows[0];
635
+ if (!firstRow) {
636
+ throw new Error("Missing table header row. Unable to attach sort listener.");
637
+ }
638
+ firstRow.addEventListener("mousedown", listener);
639
+ }
640
+ static _attachHeadRowContextMenuListener(theadElement, listener) {
641
+ const firstRow = theadElement.rows[0];
642
+ if (!firstRow) {
643
+ throw new Error("Missing table header row. Unable to attach sort listener.");
644
+ }
645
+ firstRow.addEventListener("contextmenu", listener);
646
+ }
647
+ static _createSelectColumn(theadElement, tbodyElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
648
+ if (theadElement) {
649
+ TableUtils._createHeadSelectColumn(theadElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll);
650
+ }
651
+ if (tbodyElement) {
652
+ TableUtils._createBodySelectColumn(tbodyElement, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
653
+ }
654
+ }
655
+ static _createHeadSelectColumn(theadElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll) {
656
+ var _a;
657
+ Array.from(theadElement.rows).forEach((row) => {
658
+ const th = document.createElement("th");
659
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL], th);
660
+ row.insertBefore(th, row.cells.item(0));
661
+ });
662
+ if (showSelectAll) {
663
+ const lastRowFirstCell = (_a = theadElement.rows.item(theadElement.rows.length - 1)) == null ? void 0 : _a.cells.item(0);
664
+ lastRowFirstCell.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT);
665
+ if (typeof selectAllTemplate === "function") {
666
+ TableUtils._renderSelectAllTemplate(selectAllTemplate, theadElement).then(() => {
667
+ if (typeof registerListener === "function") {
668
+ registerListener();
669
+ }
670
+ });
671
+ } else {
672
+ lastRowFirstCell == null ? void 0 : lastRowFirstCell.appendChild(TableUtils._createCheckboxElement(true, selectCheckboxAlignment, null, null, null, tooltipSelectAll));
673
+ }
674
+ }
675
+ }
676
+ static _createBodySelectColumn(tbodyElement, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
677
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
678
+ nonExpandedRows.forEach((row, rowIndex) => TableUtils._addRowSelectColumn(row, selectCheckboxAlignment, rowIndex, data[rowIndex], tooltipSelect, tooltipSelectAll));
679
+ if (tbodyElement.rows.length) {
680
+ const firstRow = tbodyElement.rows.item(0);
681
+ if (firstRow) {
682
+ TableUtils._updateExpandedRowColspan(tbodyElement.rows, firstRow.cells.length);
683
+ }
684
+ }
685
+ }
686
+ static _addRowSelectColumn(row, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
687
+ const td = row.insertCell(0);
688
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_BODY_CELL, TABLE_CONSTANTS.classes.TABLE_CELL_SELECT], td);
689
+ td.appendChild(TableUtils._createCheckboxElement(false, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll));
690
+ }
691
+ static _destroySelectColumn(theadElement, tbodyElement) {
692
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
693
+ Array.from(theadElement.rows).forEach((row) => row.removeChild(row.cells.item(0)));
694
+ Array.from(nonExpandedRows).forEach((row) => row.removeChild(row.cells.item(0)));
695
+ if (tbodyElement.rows.length) {
696
+ const firstRow = tbodyElement.rows.item(0);
697
+ if (firstRow) {
698
+ TableUtils._updateExpandedRowColspan(tbodyElement.rows, firstRow.cells.length);
699
+ }
700
+ }
701
+ }
702
+ static _hasSelectColumn(theadElement, tbodyElement) {
703
+ const tableRows = [...Array.from(theadElement.rows), ...Array.from(tbodyElement.rows)];
704
+ return tableRows.some((row) => {
705
+ const firstCell = row.cells.item(0);
706
+ return firstCell.classList.contains(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT);
707
+ });
708
+ }
709
+ static _createCheckboxElement(isHeader, alignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
710
+ const checkboxContainer = document.createElement("div");
711
+ checkboxContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT_CHECKBOX_CONTAINER);
712
+ if (alignment) {
713
+ switch (alignment) {
714
+ case "center" /* Center */:
715
+ checkboxContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_CENTER);
716
+ break;
717
+ case "left" /* Left */:
718
+ checkboxContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_LEFT);
719
+ break;
720
+ case "right" /* Right */:
721
+ checkboxContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT_CHECKBOX_CONTAINER_ALIGN_RIGHT);
722
+ break;
723
+ }
724
+ }
725
+ const checkboxElement = document.createElement(CHECKBOX_CONSTANTS.elementName);
726
+ const checkboxInputElement = document.createElement("input");
727
+ checkboxInputElement.type = "checkbox";
728
+ let tooltipText = tooltipSelect ? tooltipSelect : "";
729
+ if (rowData && typeof tooltipSelect === "function") {
730
+ tooltipText = tooltipSelect.call(null, rowIndex, rowData.data);
731
+ }
732
+ const tooltip = document.createElement("forge-tooltip");
733
+ tooltip.position = "left";
734
+ if (isHeader) {
735
+ tooltip.textContent = tooltipSelectAll ? tooltipSelectAll : "";
736
+ } else {
737
+ tooltip.textContent = tooltipText;
738
+ }
739
+ checkboxInputElement.setAttribute("aria-label", "Select row");
740
+ checkboxElement.appendChild(checkboxInputElement);
741
+ checkboxContainer.appendChild(tooltip);
742
+ checkboxContainer.appendChild(checkboxElement);
743
+ return checkboxContainer;
744
+ }
745
+ static _getCheckboxElement(rowElement) {
746
+ return rowElement.querySelector(TABLE_CONSTANTS.selectors.CHECKBOX_INPUT);
747
+ }
748
+ static _tryGetCheckboxElement(rowElement) {
749
+ return rowElement.querySelector(TABLE_CONSTANTS.selectors.CHECKBOX_INPUT) || rowElement.querySelector(TABLE_CONSTANTS.selectors.SELECT_ALL_TEMPLATE_CHECKBOX_INPUT);
750
+ }
751
+ static _setSelectedCheckboxState(checkboxElement, isSelected) {
752
+ if (checkboxElement) {
753
+ checkboxElement.checked = isSelected;
754
+ }
755
+ }
756
+ static _setIndeterminateCheckboxState(checkboxElement, isIndeterminate) {
757
+ if (checkboxElement) {
758
+ checkboxElement.indeterminate = isIndeterminate;
759
+ }
760
+ }
761
+ static _setRowSelectedState(rowElement, isSelected) {
762
+ if (isSelected) {
763
+ if (!rowElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_BODY_ROW_SELECTED)) {
764
+ rowElement.classList.add(TABLE_CONSTANTS.classes.TABLE_BODY_ROW_SELECTED);
765
+ }
766
+ } else {
767
+ rowElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_BODY_ROW_SELECTED);
768
+ }
769
+ }
770
+ static _updateExpandedRowColspan(rows, cellCount) {
771
+ const expandedRows = TableUtils._getExpandedRows(rows);
772
+ expandedRows.forEach((row) => {
773
+ const cell = row.cells.item(0);
774
+ if (cell) {
775
+ cell.colSpan = cellCount;
776
+ }
777
+ });
778
+ }
779
+ static updateSelectedState(rowElement, isSelected) {
780
+ TableUtils._setRowSelectedState(rowElement, isSelected);
781
+ TableUtils._setSelectedCheckboxState(TableUtils._getCheckboxElement(rowElement), isSelected);
782
+ }
783
+ static getRowByIndex(tableElement, index) {
784
+ return TableUtils._getNonExpandedRows(tableElement.tBodies[0].rows)[index];
785
+ }
786
+ static updateSelectAllState(tableElement, isAllSelected, isIndeterminate) {
787
+ if (!tableElement.tHead) {
788
+ return;
789
+ }
790
+ const lastTheadRow = tableElement.tHead.rows[tableElement.tHead.rows.length - 1];
791
+ const selectAllCheckboxElement = TableUtils._tryGetCheckboxElement(lastTheadRow);
792
+ if (selectAllCheckboxElement) {
793
+ TableUtils._setSelectedCheckboxState(selectAllCheckboxElement, isAllSelected);
794
+ TableUtils._setIndeterminateCheckboxState(selectAllCheckboxElement, !!isIndeterminate);
795
+ }
796
+ }
797
+ static setSelectedRows(tableElement, key, data, selectedRows, preserveExisting = false) {
798
+ if (!tableElement.tBodies.length) {
799
+ return;
800
+ }
801
+ if (!preserveExisting) {
802
+ TableUtils.clearSelectedRows(tableElement);
803
+ }
804
+ const rows = tableElement.tBodies[0].rows;
805
+ let selectedRowCount = 0;
806
+ if (selectedRows.length) {
807
+ Array.from(rows).forEach((row, index) => {
808
+ const rowData = data[index];
809
+ const existingSelection = findWhere(selectedRows, createPredicate(key, rowData));
810
+ if (existingSelection) {
811
+ TableUtils._setRowSelectedState(row, true);
812
+ TableUtils._setSelectedCheckboxState(TableUtils._getCheckboxElement(row), true);
813
+ selectedRowCount++;
814
+ }
815
+ });
816
+ }
817
+ TableUtils.updateSelectAllState(tableElement, selectedRowCount > 0 && rows.length === selectedRowCount);
818
+ }
819
+ static clearSelectedRows(tableElement) {
820
+ if (!tableElement.tBodies.length) {
821
+ return;
822
+ }
823
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tableElement.tBodies[0].rows);
824
+ nonExpandedRows.forEach((row) => {
825
+ TableUtils._setRowSelectedState(row, false);
826
+ TableUtils._setSelectedCheckboxState(TableUtils._getCheckboxElement(row), false);
827
+ });
828
+ }
829
+ static setSortedColumn(tableElement, columnIndex, sortDirection) {
830
+ const cell = TableUtils._getHeaderCellByIndex(tableElement, columnIndex);
831
+ const iconElement = TableUtils._getSortIconElementFromHeaderCell(cell);
832
+ iconElement.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON_ACTIVE);
833
+ TableUtils._setColumnSortDirection(cell, sortDirection);
834
+ }
835
+ static setMultiSortColumnSortNumber(tableElement, hasMultipleColumnsSorted, columnIndex, sortOrder) {
836
+ const cell = TableUtils._getHeaderCellByIndex(tableElement, columnIndex);
837
+ const cellContainer = cell.querySelector(`.${TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_CONTAINER}`);
838
+ const sortOrderElement = cellContainer.querySelector(`.${TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ORDER}`);
839
+ if (sortOrderElement) {
840
+ toggleClass(sortOrderElement, typeof sortOrder !== "number" || !hasMultipleColumnsSorted, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ORDER_HIDDEN);
841
+ if (sortOrder) {
842
+ sortOrderElement.textContent = sortOrder.toString();
843
+ }
844
+ }
845
+ }
846
+ static removeColumnSort(tableElement, columnIndex) {
847
+ const cell = TableUtils._getHeaderCellByIndex(tableElement, columnIndex);
848
+ if (cell.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_ASCENDING)) {
849
+ cell.classList.remove(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_ASCENDING);
850
+ }
851
+ if (cell.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING)) {
852
+ cell.classList.remove(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORTED_DESCENDING);
853
+ }
854
+ const existingIconElement = TableUtils._getSortIconElementFromHeaderCell(cell);
855
+ if (existingIconElement && existingIconElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON_ACTIVE)) {
856
+ existingIconElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON_ACTIVE);
857
+ }
858
+ }
859
+ static _getHeaderCellByIndex(tableElement, index) {
860
+ if (!tableElement.tHead) {
861
+ throw new Error("Table head element cannot be null.");
862
+ }
863
+ const headerRow = tableElement.tHead.rows.item(0);
864
+ return headerRow.cells.item(index);
865
+ }
866
+ static _getSortIconElementFromHeaderCell(cell) {
867
+ return cell.querySelector(`.${TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_SORT_ICON}`);
868
+ }
869
+ static setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
870
+ const theadElement = tableElement.tHead;
871
+ const tbodyElement = tableElement.tBodies[0];
872
+ if (!theadElement || !tbodyElement) {
873
+ return;
874
+ }
875
+ if (isVisible) {
876
+ TableUtils._addSelectColumn(theadElement, tbodyElement, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
877
+ } else if (TableUtils._hasSelectColumn(theadElement, tbodyElement)) {
878
+ if (selectListener) {
879
+ TableUtils._detachRowSelectListeners(tbodyElement, selectListener);
880
+ }
881
+ if (selectAllListener) {
882
+ TableUtils._detachSelectAllListener(theadElement, selectAllListener);
883
+ }
884
+ TableUtils._destroySelectColumn(theadElement, tbodyElement);
885
+ }
886
+ }
887
+ static _addSelectColumn(theadElement, tbodyElement, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
888
+ TableUtils._createSelectColumn(theadElement, tbodyElement, !!selectAllListener, selectAllTemplate, () => {
889
+ if (selectAllListener) {
890
+ TableUtils._tryAttachSelectAllTemplateListener(theadElement, selectAllListener);
891
+ }
892
+ }, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
893
+ if (selectListener) {
894
+ TableUtils._attachRowSelectListeners(tbodyElement, selectListener);
895
+ }
896
+ if (selectAllListener && !selectAllTemplate) {
897
+ TableUtils._tryAttachSelectAllTemplateListener(theadElement, selectAllListener);
898
+ }
899
+ }
900
+ static setDenseState(tableElement, isDense) {
901
+ if (tableElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_DENSE)) {
902
+ tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_DENSE);
903
+ }
904
+ if (isDense) {
905
+ tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_DENSE);
906
+ }
907
+ }
908
+ static setRoomyState(tableElement, isRoomy) {
909
+ if (tableElement.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROOMY)) {
910
+ tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_ROOMY);
911
+ }
912
+ if (isRoomy) {
913
+ tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_ROOMY);
914
+ }
915
+ }
916
+ static setResizable(configuration) {
917
+ const thead = configuration.tableElement.tHead;
918
+ if (configuration.resizable) {
919
+ configuration.tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_RESIZABLE);
920
+ TableUtils._addResizeHandles(thead, configuration);
921
+ } else {
922
+ configuration.tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_RESIZABLE);
923
+ TableUtils._removeResizeHandles(thead);
924
+ }
925
+ }
926
+ static _addResizeHandles(thead, configuration) {
927
+ if (!thead) {
928
+ return;
929
+ }
930
+ const firstRow = thead.rows.item(0);
931
+ if (firstRow) {
932
+ let cells = Array.from(firstRow.cells);
933
+ if (configuration.selectListener) {
934
+ cells = cells.slice(1);
935
+ }
936
+ for (const cell of cells) {
937
+ const index = cells.indexOf(cell);
938
+ const columnConfig = configuration.columnConfigurations[index];
939
+ if (columnConfig.resizable !== false) {
940
+ const resizeHandle = document.createElement("div");
941
+ resizeHandle.classList.add(TABLE_CONSTANTS.classes.TABLE_RESIZE_HANDLE);
942
+ cell.appendChild(resizeHandle);
943
+ }
944
+ }
945
+ }
946
+ }
947
+ static _removeResizeHandles(thead) {
948
+ if (!thead) {
949
+ return;
950
+ }
951
+ const firstRow = thead.rows.item(0);
952
+ if (firstRow) {
953
+ const cells = Array.from(firstRow.cells);
954
+ for (const cell of cells) {
955
+ const resizeHandle = document.querySelector(`.${TABLE_CONSTANTS.classes.TABLE_RESIZE_HANDLE}`);
956
+ if (resizeHandle) {
957
+ cell.removeChild(resizeHandle);
958
+ }
959
+ }
960
+ }
961
+ }
962
+ static setWrapContentState(tableElement, wrapContent) {
963
+ if (wrapContent) {
964
+ tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_NO_WRAP_CONTENT);
965
+ } else {
966
+ tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_NO_WRAP_CONTENT);
967
+ }
968
+ }
969
+ static setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll) {
970
+ const theadElement = tableElement.tHead;
971
+ if (!theadElement) {
972
+ return;
973
+ }
974
+ if (!isVisible && listener) {
975
+ TableUtils._detachSelectAllListener(theadElement, listener);
976
+ }
977
+ const lastTheadRow = theadElement.rows[theadElement.rows.length - 1];
978
+ const selectAllCell = lastTheadRow.cells.item(0);
979
+ if (isVisible) {
980
+ if (!selectAllCell.childElementCount) {
981
+ selectAllCell.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT);
982
+ if (selectAllTemplate) {
983
+ TableUtils._renderSelectAllTemplate(selectAllTemplate, theadElement).then(() => {
984
+ if (listener) {
985
+ TableUtils._tryAttachSelectAllTemplateListener(theadElement, listener);
986
+ }
987
+ });
988
+ } else {
989
+ selectAllCell.appendChild(TableUtils._createCheckboxElement(true, selectCheckboxAlignment || null, null, null, null, tooltipSelectAll));
990
+ }
991
+ if (listener && !selectAllTemplate) {
992
+ TableUtils._attachSelectAllListener(theadElement, listener);
993
+ }
994
+ }
995
+ } else {
996
+ if (listener) {
997
+ TableUtils._detachSelectAllListener(theadElement, listener);
998
+ }
999
+ removeAllChildren(selectAllCell);
1000
+ }
1001
+ }
1002
+ static setFilterRow(configuration) {
1003
+ if (!configuration.tableElement.tHead) {
1004
+ return;
1005
+ }
1006
+ const filterRowElement = TableUtils._getFilterRowElement(configuration.tableElement.tHead);
1007
+ let selectAllCell;
1008
+ if (configuration.filter) {
1009
+ configuration.tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_FILTER_VISIBLE);
1010
+ } else {
1011
+ configuration.tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_FILTER_VISIBLE);
1012
+ }
1013
+ if (configuration.filter && !filterRowElement) {
1014
+ if (configuration.columnConfigurations.every((cc) => !cc.filter)) {
1015
+ return;
1016
+ }
1017
+ if (configuration.selectListener && configuration.selectAllListener) {
1018
+ const lastTheadRow = configuration.tableElement.tHead.rows[configuration.tableElement.tHead.rows.length - 1];
1019
+ selectAllCell = lastTheadRow.cells.item(0);
1020
+ }
1021
+ const rowElement = TableUtils._createFilterRowElement(configuration);
1022
+ if (rowElement && selectAllCell) {
1023
+ Array.from(selectAllCell.children).forEach((child) => {
1024
+ var _a;
1025
+ (_a = rowElement.cells.item(0)) == null ? void 0 : _a.appendChild(child);
1026
+ });
1027
+ }
1028
+ } else if (!configuration.filter && filterRowElement) {
1029
+ if (configuration.selectListener && configuration.selectAllListener) {
1030
+ selectAllCell = filterRowElement.cells.item(0);
1031
+ const previousRowElementIndex = Array.from(configuration.tableElement.tHead.rows).indexOf(filterRowElement) - 1;
1032
+ const previousRowElement = configuration.tableElement.tHead.rows.item(previousRowElementIndex);
1033
+ if (previousRowElement) {
1034
+ Array.from(selectAllCell.children).forEach((child) => {
1035
+ var _a;
1036
+ (_a = previousRowElement.cells.item(0)) == null ? void 0 : _a.appendChild(child);
1037
+ });
1038
+ }
1039
+ }
1040
+ removeElement(filterRowElement);
1041
+ }
1042
+ }
1043
+ static _createFilterRowElement(configuration) {
1044
+ if (!configuration.tableElement.tHead) {
1045
+ throw new Error("Table head element cannot be null.");
1046
+ }
1047
+ const filterRow = configuration.tableElement.tHead.insertRow();
1048
+ addClass([TABLE_CONSTANTS.classes.TABLE_ROW, TABLE_CONSTANTS.classes.TABLE_HEAD_ROW_FILTER], filterRow);
1049
+ if (configuration.selectListener) {
1050
+ const th = document.createElement("th");
1051
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL], th);
1052
+ filterRow.insertBefore(th, filterRow.cells[0]);
1053
+ th.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT);
1054
+ }
1055
+ configuration.columnConfigurations.forEach((columnConfig, columnIndex) => {
1056
+ const th = document.createElement("th");
1057
+ addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL], th);
1058
+ if (columnConfig.filter && isDefined(columnConfig.filterDelegate)) {
1059
+ const container = document.createElement("div");
1060
+ container.classList.add(TABLE_CONSTANTS.classes.TABLE_HEAD_CELL_CONTAINER);
1061
+ if (columnConfig.align) {
1062
+ TableUtils._setCellAlignmentClass(container, columnConfig.align);
1063
+ }
1064
+ const element = TableUtils._createFilterElement(columnConfig, columnIndex, configuration.filterListener);
1065
+ container.appendChild(element);
1066
+ th.appendChild(container);
1067
+ }
1068
+ filterRow.appendChild(th);
1069
+ });
1070
+ return filterRow;
1071
+ }
1072
+ static _createFilterElement(columnConfig, columnIndex, filterListener) {
1073
+ let delegate;
1074
+ if (isFunction(columnConfig.filterDelegate)) {
1075
+ delegate = columnConfig.filterDelegate();
1076
+ } else if (columnConfig.filterDelegate instanceof FormFieldComponentDelegate) {
1077
+ delegate = columnConfig.filterDelegate;
1078
+ } else {
1079
+ throw new Error("Invalid filter delegate.");
1080
+ }
1081
+ if (filterListener) {
1082
+ if (!isDefined(columnConfig.filterDebounceTime) || isNumber(columnConfig.filterDebounceTime)) {
1083
+ const debounceTime = isDefined(columnConfig.filterDebounceTime) ? columnConfig.filterDebounceTime : TABLE_CONSTANTS.numbers.DEFAULT_FILTER_DEBOUNCE_TIME;
1084
+ delegate.onChange(debounce((value) => filterListener(value, columnIndex), debounceTime));
1085
+ } else {
1086
+ delegate.onChange((value) => filterListener(value, columnIndex));
1087
+ }
1088
+ }
1089
+ return delegate.element;
1090
+ }
1091
+ static _getFilterRowElement(tHeadElement) {
1092
+ if (!tHeadElement) {
1093
+ return;
1094
+ }
1095
+ return Array.from(tHeadElement.rows).find((r) => r.classList.contains(TABLE_CONSTANTS.classes.TABLE_HEAD_ROW_FILTER));
1096
+ }
1097
+ static async expandRow(configuration, rowIndex, template) {
1098
+ const tbody = configuration.tableElement.tBodies[0];
1099
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbody.rows);
1100
+ const requestedRow = nonExpandedRows[rowIndex];
1101
+ requestedRow.classList.add(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDED);
1102
+ const actualRowIndex = Array.from(tbody.rows).indexOf(requestedRow);
1103
+ const expandedRow = tbody.insertRow(actualRowIndex + 1);
1104
+ addClass([TABLE_CONSTANTS.classes.TABLE_ROW, TABLE_CONSTANTS.classes.TABLE_BODY_ROW, TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDABLE_CONTENT], expandedRow);
1105
+ const td = expandedRow.insertCell();
1106
+ td.setAttribute("colspan", requestedRow.cells.length.toString());
1107
+ td.classList.add(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDABLE_CONTENT_CELL);
1108
+ const contentDiv = document.createElement("div");
1109
+ const expansionPanel = document.createElement(EXPANSION_PANEL_CONSTANTS.elementName);
1110
+ expansionPanel.appendChild(contentDiv);
1111
+ td.appendChild(expansionPanel);
1112
+ let content = template;
1113
+ if (isFunction(template)) {
1114
+ const rowData = configuration.data[rowIndex] ? configuration.data[rowIndex].data : void 0;
1115
+ const templateValue = template(rowIndex, contentDiv, rowData);
1116
+ try {
1117
+ const result = await Promise.resolve(templateValue);
1118
+ content = isTemplateResultObject(result) ? result.content : result;
1119
+ } catch (e) {
1120
+ console.error("Failed to load row template " + e.message);
1121
+ content = "";
1122
+ }
1123
+ }
1124
+ if (content) {
1125
+ TableUtils._setRowTemplate(contentDiv, content);
1126
+ }
1127
+ window.requestAnimationFrame(() => expansionPanel.open = true);
1128
+ }
1129
+ static _setRowTemplate(element, template) {
1130
+ if (isString(template)) {
1131
+ element.innerHTML = template;
1132
+ } else {
1133
+ element.appendChild(template);
1134
+ }
1135
+ }
1136
+ static collapseRow(configuration, rowIndex) {
1137
+ if (!configuration.tableElement || !configuration.tableElement.tBodies.length || !configuration.tableElement.tBodies[0].rows.length) {
1138
+ return Promise.resolve();
1139
+ }
1140
+ const tbody = configuration.tableElement.tBodies[0];
1141
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbody.rows);
1142
+ const requestedRow = nonExpandedRows[rowIndex];
1143
+ const actualRowIndex = Array.from(tbody.rows).indexOf(requestedRow);
1144
+ if (requestedRow && requestedRow.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDED)) {
1145
+ const expandableRow = tbody.rows[actualRowIndex + 1];
1146
+ const expansionPanel = expandableRow.querySelector(EXPANSION_PANEL_CONSTANTS.elementName);
1147
+ if (expansionPanel && expansionPanel.open) {
1148
+ expansionPanel.open = false;
1149
+ return new Promise((resolve) => {
1150
+ setTimeout(() => {
1151
+ requestedRow.classList.remove(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDED);
1152
+ removeElement(expandableRow);
1153
+ resolve();
1154
+ }, EXPANSION_PANEL_CONSTANTS.numbers.COLLAPSE_ANIMATION_DURATION);
1155
+ });
1156
+ }
1157
+ }
1158
+ return Promise.resolve();
1159
+ }
1160
+ static isRowExpanded(configuration, rowIndex) {
1161
+ const tbody = configuration.tableElement.tBodies[0];
1162
+ const nonExpandedRows = TableUtils._getNonExpandedRows(tbody.rows);
1163
+ const requestedRow = nonExpandedRows[rowIndex];
1164
+ return requestedRow && requestedRow.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDED);
1165
+ }
1166
+ static setFixedHeaders(configuration) {
1167
+ if (configuration.fixedHeaders) {
1168
+ configuration.tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_FIXED);
1169
+ } else {
1170
+ configuration.tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_FIXED);
1171
+ }
1172
+ }
1173
+ static setLayoutType(configuration) {
1174
+ if (configuration.layoutType === "fixed") {
1175
+ configuration.tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_LAYOUT_FIXED);
1176
+ } else {
1177
+ configuration.tableElement.classList.remove(TABLE_CONSTANTS.classes.TABLE_LAYOUT_FIXED);
1178
+ }
1179
+ }
1180
+ static normalizeColumnWidths(configuration) {
1181
+ const tableElement = configuration.tableElement;
1182
+ if (tableElement.tHead && tableElement.tHead.rows.length) {
1183
+ const cells = Array.from(tableElement.tHead.rows[0].cells);
1184
+ for (const cell of cells) {
1185
+ const expectedWidth = getComputedStyle(cell).width;
1186
+ if (cell.style.width && cell.style.width !== expectedWidth) {
1187
+ cell.style.width = expectedWidth;
1188
+ }
1189
+ }
1190
+ }
1191
+ }
1192
+ static setColumnResizeIndicatorVisibility(configuration, columnIndex, isVisible) {
1193
+ const tableElement = configuration.tableElement;
1194
+ if (tableElement.tHead && tableElement.tHead.rows.length) {
1195
+ const rows = Array.from(tableElement.tHead.rows);
1196
+ for (const row of rows) {
1197
+ const cell = row.cells[columnIndex];
1198
+ if (cell) {
1199
+ if (isVisible) {
1200
+ cell.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_RESIZABLE);
1201
+ } else {
1202
+ cell.classList.remove(TABLE_CONSTANTS.classes.TABLE_CELL_RESIZABLE);
1203
+ }
1204
+ }
1205
+ }
1206
+ }
1207
+ if (tableElement.tBodies.length) {
1208
+ const rows = Array.from(tableElement.tBodies[0].rows);
1209
+ for (const row of rows) {
1210
+ const cell = row.cells[columnIndex];
1211
+ if (cell) {
1212
+ if (isVisible) {
1213
+ cell.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_RESIZABLE);
1214
+ } else {
1215
+ cell.classList.remove(TABLE_CONSTANTS.classes.TABLE_CELL_RESIZABLE);
1216
+ }
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ static setRowClickListeners(tableElement, allowClick, clickListener, doubleClickListener) {
1222
+ const tbodyElement = tableElement.tBodies[0];
1223
+ if (!tbodyElement) {
1224
+ return;
1225
+ }
1226
+ if (allowClick) {
1227
+ TableUtils._attachRowClickListeners(tbodyElement, clickListener, doubleClickListener);
1228
+ } else {
1229
+ TableUtils._detachRowClickListeners(tbodyElement, clickListener, doubleClickListener);
1230
+ }
1231
+ }
1232
+ static setRowClickAttributes(tableElement, allowClick) {
1233
+ const tbodyElement = tableElement.tBodies[0];
1234
+ if (!tbodyElement) {
1235
+ return;
1236
+ }
1237
+ if (allowClick) {
1238
+ TableUtils._addRowClickAttributes(tbodyElement);
1239
+ } else {
1240
+ TableUtils._removeRowClickAttributes(tbodyElement);
1241
+ }
1242
+ }
1243
+ static getOwnerDocument(el) {
1244
+ return el.ownerDocument || document;
1245
+ }
1246
+ static _prepend(element, target) {
1247
+ const elementToSetBefore = target.childNodes.item(0);
1248
+ if (elementToSetBefore) {
1249
+ target.insertBefore(element, elementToSetBefore);
1250
+ } else {
1251
+ target.appendChild(element);
1252
+ }
1253
+ }
1254
+ static _isMac() {
1255
+ return !!(navigator && navigator.platform && navigator.platform.substr(0, 3) === "Mac");
1256
+ }
1257
+ static _renderSelectAllTemplate(selectAllTemplate, theadElement) {
1258
+ return Promise.resolve(selectAllTemplate()).then((element) => {
1259
+ const lastTheadRow = theadElement.rows.item(theadElement.rows.length - 1);
1260
+ if (!lastTheadRow) {
1261
+ return;
1262
+ }
1263
+ const targetElement = lastTheadRow.cells.item(0);
1264
+ if (element && targetElement) {
1265
+ if (typeof element === "string") {
1266
+ targetElement.innerHTML = element;
1267
+ } else if (element instanceof HTMLElement) {
1268
+ targetElement.appendChild(element);
1269
+ }
1270
+ targetElement.setAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE, "");
1271
+ }
1272
+ });
1273
+ }
1274
+ };
1275
+
1276
+ // dist/build/lib/staging/src/table/table-adapter.ts
1277
+ var TableAdapter = class extends BaseAdapter {
1278
+ constructor(component) {
1279
+ super(component);
1280
+ }
1281
+ initialize() {
1282
+ if (!this._tableElement) {
1283
+ this._tableElement = document.createElement("table");
1284
+ this._tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE);
1285
+ if (this._component.children.length) {
1286
+ removeAllChildren(this._component);
1287
+ }
1288
+ this._component.appendChild(this._tableElement);
1289
+ }
1290
+ }
1291
+ getTableElement() {
1292
+ if (!this._tableElement) {
1293
+ this.initialize();
1294
+ }
1295
+ return this._tableElement;
1296
+ }
1297
+ createTable(configuration) {
1298
+ return TableUtils.createTable(configuration);
1299
+ }
1300
+ recreateTableBody(configuration) {
1301
+ TableUtils.recreateTableBody(configuration);
1302
+ }
1303
+ setSelectedRows(tableElement, key, data, selectedRows, preserveExisting = false) {
1304
+ TableUtils.setSelectedRows(tableElement, key, data, selectedRows, preserveExisting);
1305
+ }
1306
+ clearSelectedRows(tableElement) {
1307
+ TableUtils.clearSelectedRows(tableElement);
1308
+ }
1309
+ updateSelectedState(rowElement, isSelected) {
1310
+ TableUtils.updateSelectedState(rowElement, isSelected);
1311
+ }
1312
+ updateSelectAllState(tableElement, isAllSelected, isIndeterminate) {
1313
+ TableUtils.updateSelectAllState(tableElement, isAllSelected, isIndeterminate);
1314
+ }
1315
+ setSortedColumn(tableElement, columnIndex, sortDirection) {
1316
+ TableUtils.setSortedColumn(tableElement, columnIndex, sortDirection);
1317
+ }
1318
+ removeColumnSort(tableElement, columnIndex) {
1319
+ TableUtils.removeColumnSort(tableElement, columnIndex);
1320
+ }
1321
+ setSortDirection(tableElement, columnIndex, sortDirection) {
1322
+ TableUtils.setSortDirection(tableElement, columnIndex, sortDirection);
1323
+ }
1324
+ setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
1325
+ TableUtils.setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener || null, selectAllTemplate || null, selectCheckboxAlignment || null, data || [], tooltipSelect || null, tooltipSelectAll || null);
1326
+ }
1327
+ setDense(tableElement, isDense) {
1328
+ TableUtils.setDenseState(tableElement, isDense);
1329
+ }
1330
+ setRoomy(tableElement, isRoomy) {
1331
+ TableUtils.setRoomyState(tableElement, isRoomy);
1332
+ }
1333
+ setResizable(configuration) {
1334
+ TableUtils.setResizable(configuration);
1335
+ }
1336
+ setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll = null) {
1337
+ TableUtils.setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment || null, tooltipSelectAll || null);
1338
+ }
1339
+ setFilterRow(configuration) {
1340
+ TableUtils.setFilterRow(configuration);
1341
+ }
1342
+ expandRow(configuration, rowIndex, template) {
1343
+ return TableUtils.expandRow(configuration, rowIndex, template);
1344
+ }
1345
+ collapseRow(configuration, rowIndex) {
1346
+ return TableUtils.collapseRow(configuration, rowIndex);
1347
+ }
1348
+ isRowExpanded(configuration, rowIndex) {
1349
+ return TableUtils.isRowExpanded(configuration, rowIndex);
1350
+ }
1351
+ setFixedHeaders(configuration) {
1352
+ TableUtils.setFixedHeaders(configuration);
1353
+ }
1354
+ setTableLayoutType(configuration) {
1355
+ TableUtils.setLayoutType(configuration);
1356
+ }
1357
+ setWrapContentState(configuration) {
1358
+ TableUtils.setWrapContentState(configuration.tableElement, configuration.wrapContent);
1359
+ }
1360
+ addDocumentListener(type, listener) {
1361
+ TableUtils.getOwnerDocument(this._component).addEventListener(type, listener);
1362
+ }
1363
+ removeDocumentListener(type, listener) {
1364
+ TableUtils.getOwnerDocument(this._component).removeEventListener(type, listener);
1365
+ }
1366
+ normalizeColumnWidths(configuration) {
1367
+ TableUtils.normalizeColumnWidths(configuration);
1368
+ }
1369
+ setResizeColumnVisibility(configuration, columnIndex, isVisible) {
1370
+ TableUtils.setColumnResizeIndicatorVisibility(configuration, columnIndex, isVisible);
1371
+ }
1372
+ addTableClass(classes2) {
1373
+ addClass(classes2, this._tableElement);
1374
+ }
1375
+ removeTableClass(classes2) {
1376
+ removeClass(classes2, this._tableElement);
1377
+ }
1378
+ setRowClickListeners(tableElement, allowClick, clickListener, doubleClickListener) {
1379
+ TableUtils.setRowClickListeners(tableElement, allowClick, clickListener, doubleClickListener);
1380
+ }
1381
+ setRowClickAttributes(tableElement, allowClick) {
1382
+ TableUtils.setRowClickAttributes(tableElement, allowClick);
1383
+ }
1384
+ };
1385
+
1386
+ // dist/build/lib/staging/src/table/multi-sort-manager.ts
1387
+ var MultiSortManager = class {
1388
+ constructor() {
1389
+ this._sortedColumns = [];
1390
+ }
1391
+ get sortedColumns() {
1392
+ return [...this._sortedColumns.map((c) => __spreadValues({}, c))];
1393
+ }
1394
+ addSortColumn(column) {
1395
+ this._sortedColumns.push(__spreadValues({}, column));
1396
+ this._updateSortNumbers();
1397
+ }
1398
+ updateSortColumn(column) {
1399
+ const col = this._sortedColumns.find((c) => c.columnIndex === column.columnIndex);
1400
+ if (col) {
1401
+ switch (col.direction) {
1402
+ case "ASC" /* Ascending */:
1403
+ this.removeSortColumn(column);
1404
+ break;
1405
+ case "DESC" /* Descending */:
1406
+ col.direction = "ASC" /* Ascending */;
1407
+ break;
1408
+ case "UNSET" /* Unset */:
1409
+ col.direction = "DESC" /* Descending */;
1410
+ break;
1411
+ }
1412
+ }
1413
+ }
1414
+ setSortColumns(columns) {
1415
+ this._sortedColumns = [...columns.map((c) => __spreadValues({}, c))];
1416
+ }
1417
+ removeSortColumn(columnOrIndex) {
1418
+ if (typeof columnOrIndex === "number") {
1419
+ this._sortedColumns.splice(columnOrIndex, 1);
1420
+ } else {
1421
+ this._sortedColumns.splice(this._sortedColumns.indexOf(columnOrIndex), 1);
1422
+ }
1423
+ this._updateSortNumbers();
1424
+ }
1425
+ isSortColumn(columnOrIndex) {
1426
+ if (typeof columnOrIndex === "number") {
1427
+ return this._sortedColumns.some((c) => c.columnIndex === columnOrIndex);
1428
+ } else {
1429
+ return this._sortedColumns.includes(columnOrIndex);
1430
+ }
1431
+ }
1432
+ clearMultiSort() {
1433
+ this._sortedColumns = [];
1434
+ }
1435
+ getSortColumn(columnIndex) {
1436
+ return this._sortedColumns.find((c) => c.columnIndex === columnIndex);
1437
+ }
1438
+ _updateSortNumbers() {
1439
+ if (this._sortedColumns.every((c) => typeof c.sortOrder === "number")) {
1440
+ this._sortedColumns.sort((col1, col2) => col1.sortOrder - col2.sortOrder);
1441
+ }
1442
+ this._sortedColumns.forEach((column, index) => column.sortOrder = index + 1);
1443
+ }
1444
+ };
1445
+
1446
+ // dist/build/lib/staging/src/table/table-row.ts
1447
+ var TableRow = class {
1448
+ constructor(data, selected = false) {
1449
+ this.data = data;
1450
+ this.selected = selected;
1451
+ }
1452
+ };
1453
+
1454
+ // dist/build/lib/staging/src/table/table-foundation.ts
1455
+ var TableFoundation = class {
1456
+ constructor(_adapter) {
1457
+ this._adapter = _adapter;
1458
+ this._tableRows = [];
1459
+ this._data = [];
1460
+ this._columnConfigurations = [];
1461
+ this._select = false;
1462
+ this._multiselect = true;
1463
+ this._dense = false;
1464
+ this._roomy = false;
1465
+ this._filter = false;
1466
+ this._fixedHeaders = false;
1467
+ this._layoutType = TABLE_CONSTANTS.strings.DEFAULT_LAYOUT_TYPE;
1468
+ this._wrapContent = true;
1469
+ this._resizable = false;
1470
+ this._minResizeWidth = TABLE_CONSTANTS.numbers.MIN_RESIZE_WIDTH;
1471
+ this._multiColumnSort = false;
1472
+ this._selectCheckboxAlignment = "center" /* Center */;
1473
+ this._isAllSelected = false;
1474
+ this._sortedColumnIndex = -1;
1475
+ this._rendered = false;
1476
+ this._allowRowClick = false;
1477
+ this._multiSortManager = new MultiSortManager();
1478
+ this._rowClickListener = (evt) => this._onRowClick(evt);
1479
+ this._rowDoubleClickListener = (evt) => this._onRowDoubleClick(evt);
1480
+ this._selectRowListener = (evt) => this._onRowSelected(evt);
1481
+ this._selectAllListener = (evt) => this._onSelectAll(evt);
1482
+ this._headRowMouseDownListener = (evt) => this._onHeadRowMouseDown(evt);
1483
+ this._headRowContextMenuListener = (evt) => this._onHeadRowContextMenu(evt);
1484
+ this._documentMouseMoveListener = (evt) => this._onMouseMove(evt);
1485
+ this._documentMouseUpListener = (evt) => this._onMouseUp(evt);
1486
+ this._filterListener = (value, columnIndex) => this._onFilter(value, columnIndex);
1487
+ this._selectionManager = new ItemManager(this._selectKey);
1488
+ this._hiddenColumnManager = new ItemManager();
1489
+ }
1490
+ initialize() {
1491
+ this.connect();
1492
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.SELECT, this._select.toString());
1493
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.MULTISELECT, this._multiselect.toString());
1494
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.DENSE, this._dense.toString());
1495
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.ROOMY, this._roomy.toString());
1496
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.FILTER, this._filter.toString());
1497
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.INITIALIZED, void 0, false);
1498
+ }
1499
+ connect() {
1500
+ this._adapter.initialize();
1501
+ }
1502
+ disconnect() {
1503
+ this._resizeDescriptor = void 0;
1504
+ this._adapter.removeDocumentListener("mousemove", this._documentMouseMoveListener);
1505
+ this._adapter.removeDocumentListener("mouseup", this._documentMouseUpListener);
1506
+ }
1507
+ set data(value) {
1508
+ if (Array.isArray(value) && value.length > 0) {
1509
+ if (isObject(value[0])) {
1510
+ this._data = value.map((v) => __spreadValues({}, v));
1511
+ } else {
1512
+ this._data = [...value];
1513
+ }
1514
+ } else {
1515
+ this._data = [];
1516
+ }
1517
+ this._tableRows = this._data.map((data) => new TableRow(data, this._selectionManager.exists(data)));
1518
+ this._renderBody();
1519
+ }
1520
+ get data() {
1521
+ return JSON.parse(JSON.stringify(this._data));
1522
+ }
1523
+ set columnConfigurations(value) {
1524
+ this._columnConfigurations = value.map((cc) => __spreadValues({}, cc));
1525
+ this._hiddenColumnManager.clear();
1526
+ this._columnConfigurations.forEach((cc) => {
1527
+ if (cc.hidden) {
1528
+ this._hiddenColumnManager.add(cc);
1529
+ }
1530
+ });
1531
+ this._refreshTableSort();
1532
+ this.render();
1533
+ }
1534
+ get columnConfigurations() {
1535
+ return this._columnConfigurations.map((cc) => __spreadValues({}, cc));
1536
+ }
1537
+ get _visibleColumnConfigurations() {
1538
+ return this._columnConfigurations.filter((cc) => !this._hiddenColumnManager.exists(cc));
1539
+ }
1540
+ get _tableConfiguration() {
1541
+ return {
1542
+ tableElement: this._adapter.getTableElement(),
1543
+ columnConfigurations: this._visibleColumnConfigurations,
1544
+ data: this._tableRows,
1545
+ clickListener: this._allowRowClick ? this._rowClickListener : null,
1546
+ doubleClickListener: this._allowRowClick ? this._rowDoubleClickListener : null,
1547
+ selectListener: this._select ? this._selectRowListener : null,
1548
+ selectAllListener: this._multiselect ? this._selectAllListener : null,
1549
+ headRowMouseDownListener: this._headRowMouseDownListener,
1550
+ headRowContextMenuListener: this._headRowContextMenuListener,
1551
+ filterListener: this._filter ? this._filterListener : null,
1552
+ sortDirection: this._sortDirection,
1553
+ sortedColumn: this._sortedColumnIndex,
1554
+ multiColumnSort: this._multiColumnSort,
1555
+ filter: this._filter,
1556
+ wrapContent: this._wrapContent,
1557
+ fixedHeaders: this._fixedHeaders,
1558
+ layoutType: this._layoutType,
1559
+ dense: this._dense,
1560
+ resizable: this._resizable,
1561
+ rowCreatedCallback: this._rowCreatedCallback,
1562
+ cellCreatedCallback: this._cellCreatedCallback,
1563
+ selectAllTemplate: this._selectAllTemplate,
1564
+ selectCheckboxAlignment: this._selectCheckboxAlignment,
1565
+ tooltipSelect: this._tooltipSelect,
1566
+ tooltipSelectAll: this._tooltipSelectAll
1567
+ };
1568
+ }
1569
+ set select(value) {
1570
+ if (this._select !== value) {
1571
+ this._select = value;
1572
+ this._adapter.setSelectColumnVisibility(this._adapter.getTableElement(), this._select, this._selectRowListener, this._multiselect ? this._selectAllListener : void 0, this._multiselect ? this._selectAllTemplate : null, this._selectCheckboxAlignment, this._tableRows, this._tooltipSelect, this._tooltipSelectAll);
1573
+ this._updateSelections(true);
1574
+ if (this._select) {
1575
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.SELECT, this._select.toString());
1576
+ } else {
1577
+ this._adapter.removeHostAttribute(TABLE_CONSTANTS.attributes.SELECT);
1578
+ }
1579
+ }
1580
+ }
1581
+ get select() {
1582
+ return this._select;
1583
+ }
1584
+ set multiselect(value) {
1585
+ if (this._multiselect !== value) {
1586
+ this._multiselect = value;
1587
+ if (this._select) {
1588
+ this._adapter.setSelectAllVisibility(this._adapter.getTableElement(), this._multiselect, this._multiselect ? this._selectAllListener : null, this._multiselect ? this.selectAllTemplate : null, this._selectCheckboxAlignment, this._tooltipSelectAll);
1589
+ this._updateSelections(true);
1590
+ }
1591
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.MULTISELECT, this._multiselect.toString());
1592
+ }
1593
+ }
1594
+ get multiselect() {
1595
+ return this._multiselect;
1596
+ }
1597
+ get selectKey() {
1598
+ if (Array.isArray(this._selectKey)) {
1599
+ return [...this._selectKey];
1600
+ }
1601
+ return this._selectKey;
1602
+ }
1603
+ set selectKey(value) {
1604
+ if (this._originalSelectKey === value) {
1605
+ return;
1606
+ }
1607
+ if (Array.isArray(value)) {
1608
+ this._originalSelectKey = [...value];
1609
+ this._selectKey = [...value];
1610
+ } else {
1611
+ this._originalSelectKey = value;
1612
+ this._selectKey = [value];
1613
+ }
1614
+ this._selectionManager.setKey(this._selectKey);
1615
+ this._updateSelections(false);
1616
+ }
1617
+ get dense() {
1618
+ return this._dense;
1619
+ }
1620
+ set dense(value) {
1621
+ if (this._dense !== value) {
1622
+ this._dense = value;
1623
+ this._adapter.setDense(this._adapter.getTableElement(), this._dense);
1624
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.DENSE, this._dense.toString());
1625
+ }
1626
+ }
1627
+ get roomy() {
1628
+ return this._roomy;
1629
+ }
1630
+ set roomy(value) {
1631
+ if (value !== this._roomy) {
1632
+ this._roomy = value;
1633
+ this._applyRoomy();
1634
+ }
1635
+ }
1636
+ set filter(value) {
1637
+ if (this._filter !== value) {
1638
+ this._filter = value;
1639
+ this._adapter.setFilterRow(this._tableConfiguration);
1640
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.FILTER, this._filter.toString());
1641
+ }
1642
+ }
1643
+ get filter() {
1644
+ return this._filter;
1645
+ }
1646
+ set fixedHeaders(value) {
1647
+ if (this._fixedHeaders !== value) {
1648
+ this._fixedHeaders = value;
1649
+ this._adapter.setFixedHeaders(this._tableConfiguration);
1650
+ }
1651
+ }
1652
+ get fixedHeaders() {
1653
+ return this._fixedHeaders;
1654
+ }
1655
+ get layoutType() {
1656
+ return this._layoutType;
1657
+ }
1658
+ set layoutType(value) {
1659
+ if (this._layoutType !== value) {
1660
+ this._layoutType = value;
1661
+ this._adapter.setTableLayoutType(this._tableConfiguration);
1662
+ }
1663
+ }
1664
+ get wrapContent() {
1665
+ return this._wrapContent;
1666
+ }
1667
+ set wrapContent(value) {
1668
+ if (this._wrapContent !== value) {
1669
+ this._wrapContent = value;
1670
+ this._adapter.setWrapContentState(this._tableConfiguration);
1671
+ }
1672
+ }
1673
+ get resizable() {
1674
+ return this._resizable;
1675
+ }
1676
+ set resizable(value) {
1677
+ if (this._resizable !== value) {
1678
+ this._resizable = value;
1679
+ this._adapter.setResizable(this._tableConfiguration);
1680
+ }
1681
+ }
1682
+ get minResizeWidth() {
1683
+ return this._minResizeWidth;
1684
+ }
1685
+ set minResizeWidth(value) {
1686
+ if (this._minResizeWidth !== value) {
1687
+ this._minResizeWidth = value;
1688
+ if (!isNumber(this._minResizeWidth)) {
1689
+ this._minResizeWidth = TABLE_CONSTANTS.numbers.MIN_RESIZE_WIDTH;
1690
+ } else if (this._minResizeWidth < 0) {
1691
+ this._minResizeWidth = 0;
1692
+ }
1693
+ }
1694
+ }
1695
+ get allowRowClick() {
1696
+ return this._allowRowClick;
1697
+ }
1698
+ set allowRowClick(value) {
1699
+ if (this._allowRowClick !== value) {
1700
+ this._allowRowClick = value;
1701
+ if (this._rendered) {
1702
+ this._adapter.setRowClickListeners(this._adapter.getTableElement(), this._allowRowClick, this._rowClickListener, this._rowDoubleClickListener);
1703
+ this._adapter.setRowClickAttributes(this._adapter.getTableElement(), this._allowRowClick);
1704
+ }
1705
+ }
1706
+ }
1707
+ get multiColumnSort() {
1708
+ return this._multiColumnSort;
1709
+ }
1710
+ set multiColumnSort(value) {
1711
+ if (value !== this._multiColumnSort) {
1712
+ this._multiColumnSort = value;
1713
+ this._refreshTableSort();
1714
+ this.render();
1715
+ }
1716
+ }
1717
+ get selectCheckboxAlignment() {
1718
+ return this._selectCheckboxAlignment;
1719
+ }
1720
+ set selectCheckboxAlignment(value) {
1721
+ if (value !== this._selectCheckboxAlignment) {
1722
+ this._selectCheckboxAlignment = value;
1723
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.SELECT_CHECKBOX_ALIGNMENT, value);
1724
+ this.render();
1725
+ }
1726
+ }
1727
+ get tooltipSelect() {
1728
+ return this._tooltipSelect;
1729
+ }
1730
+ set tooltipSelect(value) {
1731
+ if (value !== this._tooltipSelect) {
1732
+ this._tooltipSelect = value;
1733
+ if (typeof value === "string") {
1734
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.TOOLTIP_SELECT, value);
1735
+ }
1736
+ this.render();
1737
+ }
1738
+ }
1739
+ get tooltipSelectAll() {
1740
+ return this._tooltipSelectAll;
1741
+ }
1742
+ set tooltipSelectAll(value) {
1743
+ if (value !== this._tooltipSelectAll) {
1744
+ this._tooltipSelectAll = value;
1745
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.TOOLTIP_SELECT_ALL, value);
1746
+ this.render();
1747
+ }
1748
+ }
1749
+ get selectAllTemplate() {
1750
+ return this._selectAllTemplate;
1751
+ }
1752
+ set selectAllTemplate(value) {
1753
+ if (value !== this._selectAllTemplate) {
1754
+ this._selectAllTemplate = value;
1755
+ this.render();
1756
+ }
1757
+ }
1758
+ get rowCreated() {
1759
+ return this._rowCreatedCallback;
1760
+ }
1761
+ set rowCreated(value) {
1762
+ this._rowCreatedCallback = value;
1763
+ }
1764
+ get cellCreated() {
1765
+ return this._cellCreatedCallback;
1766
+ }
1767
+ set cellCreated(value) {
1768
+ this._cellCreatedCallback = value;
1769
+ }
1770
+ isRowSelected(rowData) {
1771
+ const predicate = createPredicate(Array.isArray(this._selectKey) ? this._selectKey : [this._selectKey], rowData);
1772
+ return this.selectKey ? !!this._selectionManager.getItems().find((item) => matchesPredicate(item, predicate)) : this._selectionManager.exists(rowData);
1773
+ }
1774
+ getSelectedRows() {
1775
+ return this._selectionManager.getItems();
1776
+ }
1777
+ selectRows(data, clearCurrentSelections) {
1778
+ if (!this._selectKey) {
1779
+ throw new Error("You must set a selectKey to select rows.");
1780
+ }
1781
+ if (!this._multiselect || clearCurrentSelections) {
1782
+ this.clearSelections();
1783
+ }
1784
+ if (data && data.length) {
1785
+ this._selectionManager.add(data);
1786
+ this._updateSelections(!clearCurrentSelections);
1787
+ }
1788
+ }
1789
+ deselectRows(data) {
1790
+ if (data && data.length) {
1791
+ this._selectionManager.remove(data);
1792
+ this._updateSelections(false);
1793
+ }
1794
+ }
1795
+ clearSelections() {
1796
+ const tableElement = this._adapter.getTableElement();
1797
+ this._selectionManager.clear();
1798
+ this._tableRows.forEach((tableRow) => tableRow.selected = false);
1799
+ this._isAllSelected = false;
1800
+ this._adapter.clearSelectedRows(tableElement);
1801
+ if (this._select && this._multiselect) {
1802
+ this._adapter.updateSelectAllState(tableElement, false);
1803
+ }
1804
+ }
1805
+ hideColumn(columnIndex) {
1806
+ const columnConfig = this._columnConfigurations[columnIndex];
1807
+ if (this._sortedColumnIndex === columnIndex) {
1808
+ this._sortedColumnIndex = -1;
1809
+ }
1810
+ if (!this._hiddenColumnManager.exists(columnConfig)) {
1811
+ this._hiddenColumnManager.add(columnConfig);
1812
+ this.render();
1813
+ }
1814
+ }
1815
+ showColumn(columnIndex) {
1816
+ const columnConfig = this._columnConfigurations[columnIndex];
1817
+ if (this._hiddenColumnManager.exists(columnConfig)) {
1818
+ this._hiddenColumnManager.remove(columnConfig);
1819
+ this.render();
1820
+ }
1821
+ }
1822
+ render() {
1823
+ this._adapter.createTable(this._tableConfiguration);
1824
+ this._renderSelections();
1825
+ this._rendered = true;
1826
+ }
1827
+ _renderBody() {
1828
+ if (!this._rendered) {
1829
+ return;
1830
+ }
1831
+ this._adapter.recreateTableBody(this._tableConfiguration);
1832
+ this._renderSelections();
1833
+ }
1834
+ _renderSelections() {
1835
+ if (this.select) {
1836
+ this._isAllSelected = this._getSelectAllState();
1837
+ if (this._multiselect) {
1838
+ this._adapter.updateSelectAllState(this._adapter.getTableElement(), this._isAllSelected, this._isIndeterminate(this._isAllSelected));
1839
+ }
1840
+ }
1841
+ const selections = this._selectionManager.getItems();
1842
+ if (selections.length) {
1843
+ this._adapter.setSelectedRows(this._adapter.getTableElement(), this._selectKey, this._data, selections, false);
1844
+ }
1845
+ }
1846
+ expandRow(rowIndex, template) {
1847
+ if (!this._rendered) {
1848
+ throw new Error("Cannot expand a row before the table has rendered.");
1849
+ }
1850
+ if (rowIndex < 0 || rowIndex > this._tableRows.length) {
1851
+ throw new Error(`Invalid row index: ${rowIndex}.`);
1852
+ }
1853
+ return this._adapter.expandRow(this._tableConfiguration, rowIndex, template);
1854
+ }
1855
+ collapseRow(rowIndex) {
1856
+ if (!this._rendered) {
1857
+ return Promise.resolve();
1858
+ }
1859
+ if (rowIndex < 0 || rowIndex > this._tableRows.length) {
1860
+ return Promise.resolve();
1861
+ }
1862
+ return this._adapter.collapseRow(this._tableConfiguration, rowIndex);
1863
+ }
1864
+ isRowExpanded(rowIndex) {
1865
+ return this._adapter.isRowExpanded(this._tableConfiguration, rowIndex);
1866
+ }
1867
+ selectRowsByIndex(indexes, preserveExisting) {
1868
+ const rowsToSelect = indexes.map((i) => this._data[i]).filter((obj) => !!obj);
1869
+ this.selectRows(rowsToSelect, !preserveExisting);
1870
+ }
1871
+ deselectRowsByIndex(indexes) {
1872
+ const rowsToDeselect = indexes.map((i) => this._data[i]).filter((obj) => !!obj);
1873
+ this.deselectRows(rowsToDeselect);
1874
+ }
1875
+ _getSelectAllState() {
1876
+ return this._tableRows.length > 0 && this._tableRows.every((tr) => tr.selected);
1877
+ }
1878
+ _updateSelections(preserveExisting) {
1879
+ this._tableRows.forEach((tableRow) => tableRow.selected = this._selectionManager.exists(tableRow.data));
1880
+ const isAllSelected = this._getSelectAllState();
1881
+ this._adapter.setSelectedRows(this._adapter.getTableElement(), this._selectKey, this._data, this._selectionManager.getItems(), preserveExisting);
1882
+ if (isAllSelected !== this._isAllSelected || this._isIndeterminate(isAllSelected)) {
1883
+ this._isAllSelected = isAllSelected;
1884
+ if (this._multiselect) {
1885
+ this._adapter.updateSelectAllState(this._adapter.getTableElement(), this._isAllSelected, this._isIndeterminate(this._isAllSelected));
1886
+ }
1887
+ }
1888
+ }
1889
+ _onRowClick(evt) {
1890
+ evt.stopImmediatePropagation();
1891
+ if (evt.target.tagName === "INPUT" && evt.target.type === "checkbox") {
1892
+ return;
1893
+ }
1894
+ const composedPath = getEventPath(evt);
1895
+ const composedElements = composedPath.filter((node) => node.nodeType === 1);
1896
+ const customCellTemplateElement = composedElements.find((el) => el.hasAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE));
1897
+ const stopClickPropagation = customCellTemplateElement && customCellTemplateElement.hasAttribute(TABLE_CONSTANTS.attributes.CUSTOM_CELL_TEMPLATE_STOP_PROPAGATION);
1898
+ if (stopClickPropagation) {
1899
+ return;
1900
+ }
1901
+ const { index, data } = this._getSelectedRowFromEvent(evt);
1902
+ const evtData = { index, data };
1903
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.ROW_CLICK, evtData, true, false);
1904
+ }
1905
+ _onRowDoubleClick(evt) {
1906
+ evt.stopPropagation();
1907
+ if (evt.target.tagName === "INPUT" && evt.target.type === "checkbox") {
1908
+ return;
1909
+ }
1910
+ const rowSelectedInfo = this._getSelectedRowFromEvent(evt);
1911
+ const detail = {
1912
+ index: rowSelectedInfo.index,
1913
+ data: rowSelectedInfo.data
1914
+ };
1915
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SELECT_DOUBLE, detail, true, false);
1916
+ }
1917
+ _onRowSelected(evt) {
1918
+ const rowSelectedInfo = this._getSelectedRowFromEvent(evt);
1919
+ if (!this._multiselect) {
1920
+ const existingSelections = this._tableRows.filter((item) => item.selected);
1921
+ existingSelections.forEach((selection) => {
1922
+ if (!matchesPredicate(selection.data, createPredicate(this._selectKey, rowSelectedInfo.data))) {
1923
+ this.deselectRows([selection.data]);
1924
+ }
1925
+ });
1926
+ }
1927
+ const isSelected = !this._selectionManager.exists(rowSelectedInfo.data);
1928
+ this._adapter.updateSelectedState(rowSelectedInfo.rowElement, isSelected);
1929
+ if (isSelected) {
1930
+ this._selectionManager.add(rowSelectedInfo.data);
1931
+ } else {
1932
+ this._selectionManager.remove(rowSelectedInfo.data);
1933
+ }
1934
+ this._tableRows[rowSelectedInfo.index].selected = isSelected;
1935
+ let selectionIndexes = [rowSelectedInfo.index];
1936
+ let isAllSelected = false;
1937
+ if (this._multiselect) {
1938
+ const shift = evt.shiftKey;
1939
+ if (shift && this._previouslyClickedRow) {
1940
+ selectionIndexes = this._shiftSelectRows(rowSelectedInfo);
1941
+ if (selectionIndexes.includes(this._previouslyClickedRow.index)) {
1942
+ const idx = selectionIndexes.indexOf(this._previouslyClickedRow.index);
1943
+ selectionIndexes.splice(idx, 1);
1944
+ }
1945
+ }
1946
+ isAllSelected = this._getSelectAllState();
1947
+ this._adapter.updateSelectAllState(this._adapter.getTableElement(), isAllSelected, this._isIndeterminate(isAllSelected));
1948
+ }
1949
+ for (const index of selectionIndexes) {
1950
+ const data = this._tableRows[index].data;
1951
+ const selected = this._selectionManager.exists(data);
1952
+ const detail = { selected, index, data };
1953
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SELECT, detail, true, false);
1954
+ }
1955
+ if (this._isAllSelected !== isAllSelected) {
1956
+ this._isAllSelected = isAllSelected;
1957
+ const data = {
1958
+ status: this._isAllSelected,
1959
+ count: this._tableRows.filter((row) => row.selected).length,
1960
+ data: [...this._data],
1961
+ targetType: "row"
1962
+ };
1963
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SELECT_ALL, data, true, false);
1964
+ }
1965
+ this._previouslyClickedRow = __spreadValues({}, rowSelectedInfo);
1966
+ }
1967
+ _getSelectedRowFromEvent(evt) {
1968
+ const composedPath = getEventPath(evt);
1969
+ const rowElement = composedPath.find((el) => el.tagName === "TR");
1970
+ const tbody = rowElement.parentElement;
1971
+ const index = this._getNonExpandedRows(tbody).findIndex((el) => el === rowElement);
1972
+ const data = this._tableRows[index].data;
1973
+ return { rowElement, index, data };
1974
+ }
1975
+ _getNonExpandedRows(tbodyElement) {
1976
+ return Array.from(tbodyElement.rows).filter((row) => !row.classList.contains(TABLE_CONSTANTS.classes.TABLE_ROW_EXPANDABLE_CONTENT));
1977
+ }
1978
+ _onSelectAll(evt) {
1979
+ evt.stopPropagation();
1980
+ this._isAllSelected = !this._isAllSelected;
1981
+ const tableElement = this._adapter.getTableElement();
1982
+ this._adapter.updateSelectAllState(tableElement, this._isAllSelected);
1983
+ this._tableRows.forEach((tableRow, index) => {
1984
+ tableRow.selected = this._isAllSelected;
1985
+ if (this._isAllSelected) {
1986
+ this._selectionManager.add(tableRow.data);
1987
+ } else {
1988
+ this._selectionManager.remove(tableRow.data);
1989
+ }
1990
+ const rowElement = TableUtils.getRowByIndex(tableElement, index);
1991
+ if (rowElement) {
1992
+ this._adapter.updateSelectedState(rowElement, this._isAllSelected);
1993
+ }
1994
+ });
1995
+ const data = {
1996
+ status: this._isAllSelected,
1997
+ count: this._tableRows.filter((row) => row.selected).length,
1998
+ data: [...this._data],
1999
+ targetType: "select-all"
2000
+ };
2001
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SELECT_ALL, data, true, false);
2002
+ }
2003
+ _onHeadRowContextMenu(evt) {
2004
+ evt.preventDefault();
2005
+ }
2006
+ _onHeadRowMouseDown(evt) {
2007
+ if (evt.button !== 0) {
2008
+ return;
2009
+ }
2010
+ const composedPath = getEventPath(evt);
2011
+ const target = evt.target;
2012
+ const rowElement = composedPath.find((el) => el.tagName === "TR");
2013
+ const thElement = composedPath.find((el) => el.tagName === "TH");
2014
+ const cellIndex = Array.from(rowElement.cells).findIndex((c) => c === thElement);
2015
+ this._headCellMouseDownIndex = cellIndex;
2016
+ if (target !== thElement && target.classList.contains(TABLE_CONSTANTS.classes.TABLE_RESIZE_HANDLE)) {
2017
+ this._resizeDescriptor = {
2018
+ element: thElement,
2019
+ startWidth: thElement.offsetWidth,
2020
+ startX: evt.pageX,
2021
+ width: thElement.offsetWidth,
2022
+ index: this._select ? cellIndex - 1 : cellIndex
2023
+ };
2024
+ this._adapter.addDocumentListener("mousemove", this._documentMouseMoveListener);
2025
+ this._adapter.setResizeColumnVisibility(this._tableConfiguration, cellIndex, true);
2026
+ }
2027
+ this._adapter.addDocumentListener("mouseup", this._documentMouseUpListener);
2028
+ }
2029
+ _onMouseMove(evt) {
2030
+ if (this._resizeDescriptor) {
2031
+ let newWidth = this._resizeDescriptor.startWidth + (evt.pageX - this._resizeDescriptor.startX);
2032
+ if (newWidth < this._minResizeWidth) {
2033
+ newWidth = this._minResizeWidth;
2034
+ }
2035
+ this._resizeDescriptor.width = newWidth;
2036
+ this._resizeDescriptor.element.style.width = `${newWidth}px`;
2037
+ this._adapter.addTableClass(TABLE_CONSTANTS.classes.TABLE_RESIZING);
2038
+ }
2039
+ }
2040
+ _onMouseUp(evt) {
2041
+ this._adapter.removeDocumentListener("mousemove", this._documentMouseMoveListener);
2042
+ this._adapter.removeDocumentListener("mouseup", this._documentMouseUpListener);
2043
+ this._adapter.removeTableClass(TABLE_CONSTANTS.classes.TABLE_RESIZING);
2044
+ if (this._headCellMouseDownIndex === void 0) {
2045
+ return;
2046
+ }
2047
+ if (this._resizeDescriptor) {
2048
+ this._adapter.normalizeColumnWidths(this._tableConfiguration);
2049
+ this._adapter.setResizeColumnVisibility(this._tableConfiguration, this._headCellMouseDownIndex, false);
2050
+ const resizeEventData = {
2051
+ index: this._resizeDescriptor.index,
2052
+ width: this._resizeDescriptor.width
2053
+ };
2054
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.COLUMN_RESIZE, resizeEventData);
2055
+ this._resizeDescriptor = void 0;
2056
+ } else if (this._tableConfiguration.tableElement.tHead.contains(evt.target)) {
2057
+ if (this._multiColumnSort) {
2058
+ this._onMultiSort(this._headCellMouseDownIndex, evt.ctrlKey);
2059
+ } else {
2060
+ this._onSort(this._headCellMouseDownIndex);
2061
+ }
2062
+ }
2063
+ this._headCellMouseDownIndex = void 0;
2064
+ }
2065
+ _onSort(cellIndex) {
2066
+ const columnIndex = this._select ? cellIndex - 1 : cellIndex;
2067
+ const columnConfig = columnIndex >= 0 ? this._visibleColumnConfigurations[columnIndex] : null;
2068
+ if (!columnConfig || !columnConfig.sortable) {
2069
+ return;
2070
+ }
2071
+ let desiredSortDirection = "ASC" /* Ascending */;
2072
+ const isTogglingSortOnSameColumn = columnIndex === this._sortedColumnIndex;
2073
+ const currentSortDirectionIsAscending = this._sortDirection === "ASC" /* Ascending */ || this._sortDirection === void 0;
2074
+ const isUnsorting = isTogglingSortOnSameColumn && this._sortDirection === "DESC" /* Descending */;
2075
+ if (isTogglingSortOnSameColumn && currentSortDirectionIsAscending) {
2076
+ desiredSortDirection = "DESC" /* Descending */;
2077
+ }
2078
+ if (isUnsorting && !columnConfig.preventUnsort) {
2079
+ desiredSortDirection = "UNSET" /* Unset */;
2080
+ }
2081
+ const data = {
2082
+ direction: desiredSortDirection,
2083
+ columnIndex
2084
+ };
2085
+ if (!this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SORT, data, true, true)) {
2086
+ return;
2087
+ }
2088
+ if (isTogglingSortOnSameColumn && this._sortDirection === "DESC" /* Descending */ && !columnConfig.preventUnsort) {
2089
+ this._adapter.removeColumnSort(this._adapter.getTableElement(), this._select ? this._sortedColumnIndex + 1 : this._sortedColumnIndex);
2090
+ this._sortedColumnIndex = -1;
2091
+ return;
2092
+ }
2093
+ this._sortDirection = desiredSortDirection;
2094
+ if (columnIndex === this._sortedColumnIndex) {
2095
+ this._adapter.setSortDirection(this._adapter.getTableElement(), cellIndex, this._sortDirection);
2096
+ } else {
2097
+ if (this._sortedColumnIndex >= 0) {
2098
+ this._adapter.removeColumnSort(this._adapter.getTableElement(), this._select ? this._sortedColumnIndex + 1 : this._sortedColumnIndex);
2099
+ }
2100
+ this._sortedColumnIndex = columnIndex;
2101
+ this._adapter.setSortedColumn(this._adapter.getTableElement(), cellIndex, this._sortDirection);
2102
+ }
2103
+ }
2104
+ _onMultiSort(cellIndex, ctrlKey) {
2105
+ const columnIndex = this._select ? cellIndex - 1 : cellIndex;
2106
+ const columnConfig = columnIndex >= 0 ? this._visibleColumnConfigurations[columnIndex] : null;
2107
+ if (!columnConfig || !columnConfig.sortable) {
2108
+ return;
2109
+ }
2110
+ const revertColumns = this._multiSortManager.sortedColumns;
2111
+ const sortColumn = this._multiSortManager.getSortColumn(columnIndex);
2112
+ if (sortColumn) {
2113
+ this._multiSortManager.updateSortColumn(sortColumn);
2114
+ } else if (ctrlKey) {
2115
+ this._multiSortManager.addSortColumn({ direction: "DESC" /* Descending */, columnIndex, propertyName: columnConfig.property });
2116
+ } else {
2117
+ this._multiSortManager.clearMultiSort();
2118
+ this._multiSortManager.addSortColumn({ direction: "DESC" /* Descending */, columnIndex, propertyName: columnConfig.property });
2119
+ }
2120
+ const data = this._multiSortManager.sortedColumns.map((col) => __spreadValues({}, col));
2121
+ if (!this._adapter.emitHostEvent(TABLE_CONSTANTS.events.SORT, data, true, true)) {
2122
+ this._multiSortManager.setSortColumns(revertColumns);
2123
+ return;
2124
+ }
2125
+ const newSortedColumns = this._multiSortManager.sortedColumns;
2126
+ const hasMultipleColumnsSorted = newSortedColumns.length > 1;
2127
+ for (let virtualIndex = 0; virtualIndex < this._visibleColumnConfigurations.length; virtualIndex++) {
2128
+ const actualIndex = this._select ? virtualIndex + 1 : virtualIndex;
2129
+ if (!this._multiSortManager.isSortColumn(virtualIndex)) {
2130
+ this._adapter.removeColumnSort(this._adapter.getTableElement(), actualIndex);
2131
+ TableUtils.setMultiSortColumnSortNumber(this._adapter.getTableElement(), hasMultipleColumnsSorted, actualIndex, null);
2132
+ } else {
2133
+ const column = this._multiSortManager.getSortColumn(virtualIndex);
2134
+ if (column) {
2135
+ this._adapter.setSortedColumn(this._adapter.getTableElement(), actualIndex, column.direction);
2136
+ TableUtils.setMultiSortColumnSortNumber(this._adapter.getTableElement(), hasMultipleColumnsSorted, actualIndex, column.sortOrder || null);
2137
+ }
2138
+ }
2139
+ }
2140
+ }
2141
+ _onFilter(value, columnIndex) {
2142
+ const data = { value, columnIndex };
2143
+ this._adapter.emitHostEvent(TABLE_CONSTANTS.events.FILTER, data, true, false);
2144
+ }
2145
+ _shiftSelectRows(selectedRow) {
2146
+ const indexes = [];
2147
+ if (this._previouslyClickedRow) {
2148
+ const prevIndex = this._previouslyClickedRow.index;
2149
+ const currIndex = selectedRow.index;
2150
+ let startIndex = currIndex >= prevIndex ? prevIndex : currIndex;
2151
+ let endIndex = currIndex >= prevIndex ? currIndex : prevIndex;
2152
+ endIndex += endIndex > startIndex ? 1 : 0;
2153
+ startIndex += startIndex > endIndex ? 1 : 0;
2154
+ let action = (data) => this.selectRows(data, false);
2155
+ const existingSelection = this._tableRows.find((item) => item.selected && item.data === selectedRow.data);
2156
+ const shouldDeselect = this._tableRows.find((item) => {
2157
+ var _a;
2158
+ return item.data === ((_a = this._previouslyClickedRow) == null ? void 0 : _a.data) && !item.selected;
2159
+ });
2160
+ if (!existingSelection || shouldDeselect) {
2161
+ action = (data) => this.deselectRows(data);
2162
+ }
2163
+ for (let i = startIndex; i < endIndex; i++) {
2164
+ indexes.push(i);
2165
+ }
2166
+ action(this.data.filter((v, i) => indexes.includes(i)));
2167
+ }
2168
+ return indexes;
2169
+ }
2170
+ _isIndeterminate(isAllSelected) {
2171
+ return !isAllSelected && this.getSelectedRows().length > 0 && this._data.length !== this.getSelectedRows().length;
2172
+ }
2173
+ _applyRoomy() {
2174
+ this._adapter.setRoomy(this._adapter.getTableElement(), this._roomy);
2175
+ this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.ROOMY, this._roomy.toString());
2176
+ }
2177
+ _refreshTableSort() {
2178
+ this._sortedColumnIndex = this._visibleColumnConfigurations.findIndex((c) => c.initialSort);
2179
+ this._sortDirection = this._sortedColumnIndex >= 0 ? this._visibleColumnConfigurations[this._sortedColumnIndex].sortDirection : void 0;
2180
+ if (this._multiColumnSort) {
2181
+ const sortedColumns = [];
2182
+ this._visibleColumnConfigurations.forEach((col, index) => {
2183
+ if (typeof col.initialSort === "object") {
2184
+ sortedColumns.push({
2185
+ columnIndex: index,
2186
+ direction: col.initialSort.direction,
2187
+ sortOrder: col.initialSort.sortOrder,
2188
+ propertyName: col.property
2189
+ });
2190
+ }
2191
+ });
2192
+ this._multiSortManager.setSortColumns(sortedColumns);
2193
+ }
2194
+ }
2195
+ };
2196
+
2197
+ // dist/build/lib/staging/src/table/table.ts
2198
+ var TableComponent = class extends BaseComponent {
2199
+ constructor() {
2200
+ super();
2201
+ IconRegistry.define(tylIconArrowDownward);
2202
+ this._foundation = new TableFoundation(new TableAdapter(this));
2203
+ }
2204
+ static get observedAttributes() {
2205
+ return [
2206
+ TABLE_CONSTANTS.attributes.SELECT,
2207
+ TABLE_CONSTANTS.attributes.MULTISELECT,
2208
+ TABLE_CONSTANTS.attributes.SELECT_KEY,
2209
+ TABLE_CONSTANTS.attributes.DENSE,
2210
+ TABLE_CONSTANTS.attributes.ROOMY,
2211
+ TABLE_CONSTANTS.attributes.FILTER,
2212
+ TABLE_CONSTANTS.attributes.FIXED_HEADERS,
2213
+ TABLE_CONSTANTS.attributes.LAYOUT_TYPE,
2214
+ TABLE_CONSTANTS.attributes.WRAP_CONTENT,
2215
+ TABLE_CONSTANTS.attributes.RESIZABLE,
2216
+ TABLE_CONSTANTS.attributes.MIN_RESIZE_WIDTH,
2217
+ TABLE_CONSTANTS.attributes.ALLOW_ROW_CLICK,
2218
+ TABLE_CONSTANTS.attributes.MULTI_COLUMN_SORT,
2219
+ TABLE_CONSTANTS.attributes.SELECT_CHECKBOX_ALIGNMENT,
2220
+ TABLE_CONSTANTS.attributes.TOOLTIP_SELECT,
2221
+ TABLE_CONSTANTS.attributes.TOOLTIP_SELECT_ALL
2222
+ ];
2223
+ }
2224
+ initializedCallback() {
2225
+ this._foundation.initialize();
2226
+ }
2227
+ connectedCallback() {
2228
+ this._foundation.connect();
2229
+ }
2230
+ disconnectedCallback() {
2231
+ this._foundation.disconnect();
2232
+ }
2233
+ attributeChangedCallback(name, oldValue, newValue) {
2234
+ switch (name) {
2235
+ case TABLE_CONSTANTS.attributes.SELECT:
2236
+ this.select = coerceBoolean(newValue);
2237
+ break;
2238
+ case TABLE_CONSTANTS.attributes.MULTISELECT:
2239
+ this.multiselect = coerceBoolean(newValue);
2240
+ break;
2241
+ case TABLE_CONSTANTS.attributes.SELECT_KEY:
2242
+ this.selectKey = newValue;
2243
+ break;
2244
+ case TABLE_CONSTANTS.attributes.DENSE:
2245
+ this.dense = coerceBoolean(newValue);
2246
+ break;
2247
+ case TABLE_CONSTANTS.attributes.ROOMY:
2248
+ this.roomy = coerceBoolean(newValue);
2249
+ break;
2250
+ case TABLE_CONSTANTS.attributes.FILTER:
2251
+ this.filter = coerceBoolean(newValue);
2252
+ break;
2253
+ case TABLE_CONSTANTS.attributes.FIXED_HEADERS:
2254
+ this.fixedHeaders = coerceBoolean(newValue);
2255
+ break;
2256
+ case TABLE_CONSTANTS.attributes.LAYOUT_TYPE:
2257
+ this.layoutType = newValue;
2258
+ break;
2259
+ case TABLE_CONSTANTS.attributes.WRAP_CONTENT:
2260
+ this.wrapContent = coerceBoolean(newValue);
2261
+ break;
2262
+ case TABLE_CONSTANTS.attributes.RESIZABLE:
2263
+ this.resizable = coerceBoolean(newValue);
2264
+ break;
2265
+ case TABLE_CONSTANTS.attributes.MIN_RESIZE_WIDTH:
2266
+ this.minResizeWidth = coerceNumber(newValue);
2267
+ break;
2268
+ case TABLE_CONSTANTS.attributes.ALLOW_ROW_CLICK:
2269
+ this.allowRowClick = coerceBoolean(newValue);
2270
+ break;
2271
+ case TABLE_CONSTANTS.attributes.MULTI_COLUMN_SORT:
2272
+ this.multiColumnSort = coerceBoolean(newValue);
2273
+ break;
2274
+ case TABLE_CONSTANTS.attributes.SELECT_CHECKBOX_ALIGNMENT:
2275
+ this.selectCheckboxAlignment = this.getAttribute(TABLE_CONSTANTS.attributes.SELECT_CHECKBOX_ALIGNMENT) || "center" /* Center */;
2276
+ break;
2277
+ case TABLE_CONSTANTS.attributes.TOOLTIP_SELECT:
2278
+ this.tooltipSelect = newValue;
2279
+ break;
2280
+ case TABLE_CONSTANTS.attributes.TOOLTIP_SELECT_ALL:
2281
+ this.tooltipSelectAll = newValue;
2282
+ break;
2283
+ }
2284
+ }
2285
+ hideColumn(columnIndex) {
2286
+ this._foundation.hideColumn(columnIndex);
2287
+ }
2288
+ showColumn(columnIndex) {
2289
+ this._foundation.showColumn(columnIndex);
2290
+ }
2291
+ getSelectedRows() {
2292
+ return this._foundation.getSelectedRows();
2293
+ }
2294
+ selectRow(data) {
2295
+ this._foundation.selectRows([data], false);
2296
+ }
2297
+ selectRows(data, preserveExisting = false) {
2298
+ this._foundation.selectRows(data, !preserveExisting);
2299
+ }
2300
+ deselectRow(data) {
2301
+ this._foundation.deselectRows([data]);
2302
+ }
2303
+ deselectRows(data) {
2304
+ this._foundation.deselectRows(data);
2305
+ }
2306
+ clearSelections() {
2307
+ this._foundation.clearSelections();
2308
+ }
2309
+ render() {
2310
+ this._foundation.render();
2311
+ }
2312
+ expandRow(rowIndex, template) {
2313
+ return this._foundation.expandRow(rowIndex, template);
2314
+ }
2315
+ collapseRow(rowIndex) {
2316
+ return this._foundation.collapseRow(rowIndex);
2317
+ }
2318
+ isRowExpanded(rowIndex) {
2319
+ return this._foundation.isRowExpanded(rowIndex);
2320
+ }
2321
+ selectRowsByIndex(indexes, preserveExisting) {
2322
+ if (typeof indexes === "number") {
2323
+ this._foundation.selectRowsByIndex([indexes], preserveExisting);
2324
+ } else if (Array.isArray(indexes)) {
2325
+ this._foundation.selectRowsByIndex(indexes, preserveExisting);
2326
+ }
2327
+ }
2328
+ deselectRowsByIndex(indexes) {
2329
+ if (typeof indexes === "number") {
2330
+ this._foundation.deselectRowsByIndex([indexes]);
2331
+ } else if (Array.isArray(indexes)) {
2332
+ this._foundation.deselectRowsByIndex(indexes);
2333
+ }
2334
+ }
2335
+ isRowSelected(rowData) {
2336
+ return this._foundation.isRowSelected(rowData);
2337
+ }
2338
+ };
2339
+ __decorateClass([
2340
+ FoundationProperty()
2341
+ ], TableComponent.prototype, "data", 2);
2342
+ __decorateClass([
2343
+ FoundationProperty()
2344
+ ], TableComponent.prototype, "columnConfigurations", 2);
2345
+ __decorateClass([
2346
+ FoundationProperty()
2347
+ ], TableComponent.prototype, "select", 2);
2348
+ __decorateClass([
2349
+ FoundationProperty()
2350
+ ], TableComponent.prototype, "multiselect", 2);
2351
+ __decorateClass([
2352
+ FoundationProperty()
2353
+ ], TableComponent.prototype, "selectKey", 2);
2354
+ __decorateClass([
2355
+ FoundationProperty()
2356
+ ], TableComponent.prototype, "tooltipSelect", 2);
2357
+ __decorateClass([
2358
+ FoundationProperty()
2359
+ ], TableComponent.prototype, "tooltipSelectAll", 2);
2360
+ __decorateClass([
2361
+ FoundationProperty()
2362
+ ], TableComponent.prototype, "dense", 2);
2363
+ __decorateClass([
2364
+ FoundationProperty()
2365
+ ], TableComponent.prototype, "roomy", 2);
2366
+ __decorateClass([
2367
+ FoundationProperty()
2368
+ ], TableComponent.prototype, "filter", 2);
2369
+ __decorateClass([
2370
+ FoundationProperty()
2371
+ ], TableComponent.prototype, "fixedHeaders", 2);
2372
+ __decorateClass([
2373
+ FoundationProperty()
2374
+ ], TableComponent.prototype, "layoutType", 2);
2375
+ __decorateClass([
2376
+ FoundationProperty()
2377
+ ], TableComponent.prototype, "wrapContent", 2);
2378
+ __decorateClass([
2379
+ FoundationProperty()
2380
+ ], TableComponent.prototype, "resizable", 2);
2381
+ __decorateClass([
2382
+ FoundationProperty()
2383
+ ], TableComponent.prototype, "minResizeWidth", 2);
2384
+ __decorateClass([
2385
+ FoundationProperty()
2386
+ ], TableComponent.prototype, "allowRowClick", 2);
2387
+ __decorateClass([
2388
+ FoundationProperty()
2389
+ ], TableComponent.prototype, "multiColumnSort", 2);
2390
+ __decorateClass([
2391
+ FoundationProperty()
2392
+ ], TableComponent.prototype, "rowCreated", 2);
2393
+ __decorateClass([
2394
+ FoundationProperty()
2395
+ ], TableComponent.prototype, "cellCreated", 2);
2396
+ __decorateClass([
2397
+ FoundationProperty()
2398
+ ], TableComponent.prototype, "selectAllTemplate", 2);
2399
+ __decorateClass([
2400
+ FoundationProperty()
2401
+ ], TableComponent.prototype, "selectCheckboxAlignment", 2);
2402
+ TableComponent = __decorateClass([
2403
+ CustomElement({
2404
+ name: TABLE_CONSTANTS.elementName,
2405
+ dependencies: [
2406
+ ExpansionPanelComponent,
2407
+ IconComponent
2408
+ ]
2409
+ })
2410
+ ], TableComponent);
2411
+
2412
+ // dist/build/lib/staging/src/table/index.ts
2413
+ function defineTableComponent() {
2414
+ defineCustomElement(TableComponent);
2415
+ }
2416
+
2417
+ export {
2418
+ TABLE_CONSTANTS,
2419
+ CellAlign,
2420
+ SortDirection,
2421
+ TableFilterType,
2422
+ TableAdapter,
2423
+ TableRow,
2424
+ TableFoundation,
2425
+ TableComponent,
2426
+ defineTableComponent
2427
+ };
2428
+ //# sourceMappingURL=chunk.BOWCSPCH.js.map