@tylertech/forge 3.0.0-next.15 → 3.0.0-next.17

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 (826) hide show
  1. package/custom-elements.json +52750 -45172
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/chunk.253H47GA.js +7 -0
  32. package/dist/esm/chunks/chunk.253H47GA.js.map +7 -0
  33. package/dist/esm/chunks/chunk.2K3T63I2.js +7 -0
  34. package/dist/esm/chunks/{chunk.NVR6KN2B.js.map → chunk.2K3T63I2.js.map} +1 -1
  35. package/dist/esm/chunks/{chunk.KWBYYSH3.js → chunk.2NGPMBVU.js} +2 -2
  36. package/dist/esm/chunks/chunk.2UVBQKJI.js +7 -0
  37. package/dist/esm/chunks/{chunk.4XN2WGMP.js.map → chunk.2UVBQKJI.js.map} +2 -2
  38. package/dist/esm/chunks/chunk.3PHNRX5D.js +7 -0
  39. package/dist/esm/chunks/chunk.3PHNRX5D.js.map +7 -0
  40. package/dist/esm/chunks/chunk.42VNZ74O.js +7 -0
  41. package/dist/esm/chunks/chunk.42VNZ74O.js.map +7 -0
  42. package/dist/esm/chunks/chunk.4JEBLMI3.js +7 -0
  43. package/dist/esm/chunks/{chunk.Q2Q626DG.js.map → chunk.4JEBLMI3.js.map} +1 -1
  44. package/dist/esm/chunks/chunk.4X4SSZQU.js +7 -0
  45. package/dist/esm/chunks/{chunk.YMSX4F3J.js.map → chunk.4X4SSZQU.js.map} +1 -1
  46. package/dist/esm/chunks/chunk.53HPDCFR.js +7 -0
  47. package/dist/esm/chunks/chunk.53HPDCFR.js.map +7 -0
  48. package/dist/esm/chunks/{chunk.L45HXBDS.js → chunk.5BQT3E7Y.js} +2 -2
  49. package/dist/esm/chunks/chunk.5YTYVHYR.js +7 -0
  50. package/dist/esm/chunks/chunk.5YTYVHYR.js.map +7 -0
  51. package/dist/esm/chunks/chunk.6J27XSTE.js +7 -0
  52. package/dist/esm/chunks/chunk.6J27XSTE.js.map +7 -0
  53. package/dist/esm/chunks/chunk.6JR2HMWB.js +7 -0
  54. package/dist/esm/chunks/chunk.6JR2HMWB.js.map +7 -0
  55. package/dist/esm/chunks/chunk.6P4G73VL.js +7 -0
  56. package/dist/esm/chunks/chunk.6P4G73VL.js.map +7 -0
  57. package/dist/esm/chunks/chunk.6RZCV4ZV.js +7 -0
  58. package/dist/esm/chunks/{chunk.W7BP2DDU.js.map → chunk.6RZCV4ZV.js.map} +2 -2
  59. package/dist/esm/chunks/chunk.6YDMW2GO.js +7 -0
  60. package/dist/esm/chunks/{chunk.FQUZWINF.js.map → chunk.6YDMW2GO.js.map} +2 -2
  61. package/dist/esm/chunks/chunk.7QO5JEOC.js +7 -0
  62. package/dist/esm/chunks/{chunk.FXGY5IVK.js.map → chunk.7QO5JEOC.js.map} +2 -2
  63. package/dist/esm/chunks/chunk.AQOLBID6.js +7 -0
  64. package/dist/esm/chunks/{chunk.5KYKGNGY.js.map → chunk.AQOLBID6.js.map} +1 -1
  65. package/dist/esm/chunks/{chunk.BAQYPAUM.js → chunk.AWEDY45N.js} +2 -2
  66. package/dist/esm/chunks/chunk.CLODJYSW.js +7 -0
  67. package/dist/esm/chunks/chunk.CLODJYSW.js.map +7 -0
  68. package/dist/esm/chunks/chunk.CPD4RUF2.js +7 -0
  69. package/dist/esm/chunks/{chunk.OTUEB7SD.js.map → chunk.CPD4RUF2.js.map} +1 -1
  70. package/dist/esm/chunks/chunk.D7L2IMHJ.js +7 -0
  71. package/dist/esm/chunks/chunk.D7L2IMHJ.js.map +7 -0
  72. package/dist/esm/chunks/chunk.DFRD7A2Y.js +7 -0
  73. package/dist/esm/chunks/{chunk.YA5OQD37.js.map → chunk.DFRD7A2Y.js.map} +2 -2
  74. package/dist/esm/chunks/chunk.DOAQODLZ.js +7 -0
  75. package/dist/esm/chunks/chunk.DOAQODLZ.js.map +7 -0
  76. package/dist/esm/chunks/chunk.EPVNVBZI.js +7 -0
  77. package/dist/esm/chunks/chunk.EPVNVBZI.js.map +7 -0
  78. package/dist/esm/chunks/chunk.F2327OUE.js +7 -0
  79. package/dist/esm/chunks/chunk.F2327OUE.js.map +7 -0
  80. package/dist/esm/chunks/chunk.FTADCSFT.js +7 -0
  81. package/dist/esm/chunks/chunk.FTADCSFT.js.map +7 -0
  82. package/dist/esm/chunks/chunk.GAHE4QVB.js +7 -0
  83. package/dist/esm/chunks/{chunk.X3QZY7V4.js.map → chunk.GAHE4QVB.js.map} +1 -1
  84. package/dist/esm/chunks/chunk.GDKJ4RZX.js +7 -0
  85. package/dist/esm/chunks/chunk.GDKJ4RZX.js.map +7 -0
  86. package/dist/esm/chunks/{chunk.O6MGA3XK.js → chunk.GFKYBECY.js} +2 -2
  87. package/dist/esm/chunks/chunk.GYGIU62J.js +7 -0
  88. package/dist/esm/chunks/{chunk.JEZR25US.js.map → chunk.GYGIU62J.js.map} +1 -1
  89. package/dist/esm/chunks/chunk.H6AG3EFX.js +7 -0
  90. package/dist/esm/chunks/{chunk.7PVVZC7P.js.map → chunk.H6AG3EFX.js.map} +3 -3
  91. package/dist/esm/chunks/{chunk.JHELTQKA.js → chunk.HBFU4EGB.js} +2 -2
  92. package/dist/esm/chunks/{chunk.JHELTQKA.js.map → chunk.HBFU4EGB.js.map} +2 -2
  93. package/dist/esm/chunks/chunk.HP4333ZN.js +7 -0
  94. package/dist/esm/chunks/{chunk.KGHABAFA.js.map → chunk.HP4333ZN.js.map} +1 -1
  95. package/dist/esm/chunks/chunk.HPCXVNG6.js +7 -0
  96. package/dist/esm/chunks/{chunk.CZOABXEQ.js.map → chunk.HPCXVNG6.js.map} +3 -3
  97. package/dist/esm/chunks/{chunk.WMP2OLMG.js → chunk.IC4DLKE3.js} +2 -2
  98. package/dist/esm/chunks/{chunk.WMP2OLMG.js.map → chunk.IC4DLKE3.js.map} +2 -2
  99. package/dist/esm/chunks/{chunk.MHH26REX.js → chunk.IDB4KFSQ.js} +2 -2
  100. package/dist/esm/chunks/chunk.INQZNXG6.js +7 -0
  101. package/dist/esm/chunks/chunk.INQZNXG6.js.map +7 -0
  102. package/dist/esm/chunks/chunk.JBQXD3FJ.js +7 -0
  103. package/dist/esm/chunks/{chunk.XQLQ73NG.js.map → chunk.JBQXD3FJ.js.map} +1 -1
  104. package/dist/esm/chunks/chunk.JLDKNU5Q.js +7 -0
  105. package/dist/esm/chunks/{chunk.LK6QHLW2.js.map → chunk.JLDKNU5Q.js.map} +1 -1
  106. package/dist/esm/chunks/chunk.JMIUB3S3.js +7 -0
  107. package/dist/esm/chunks/{chunk.Y4ZS3A6F.js.map → chunk.JMIUB3S3.js.map} +2 -2
  108. package/dist/esm/chunks/chunk.JPOTN7LL.js +177 -0
  109. package/dist/esm/chunks/{chunk.AVRBHXDT.js.map → chunk.JPOTN7LL.js.map} +1 -1
  110. package/dist/esm/chunks/chunk.JRROGJ2G.js +7 -0
  111. package/dist/esm/chunks/chunk.JRROGJ2G.js.map +7 -0
  112. package/dist/esm/chunks/chunk.KD4DVSJR.js +15 -0
  113. package/dist/esm/chunks/chunk.KD4DVSJR.js.map +7 -0
  114. package/dist/esm/chunks/{chunk.PRJHBUU2.js → chunk.KPNGLSCU.js} +1 -1
  115. package/dist/esm/chunks/chunk.KPNGLSCU.js.map +7 -0
  116. package/dist/esm/chunks/chunk.KVPKVWCZ.js +7 -0
  117. package/dist/esm/chunks/{chunk.UOEJCU6R.js.map → chunk.KVPKVWCZ.js.map} +1 -1
  118. package/dist/esm/chunks/chunk.KWP42KR7.js +7 -0
  119. package/dist/esm/chunks/{chunk.JZ27GPZJ.js.map → chunk.KWP42KR7.js.map} +2 -2
  120. package/dist/esm/chunks/chunk.KYACLC66.js +7 -0
  121. package/dist/esm/chunks/{chunk.Q74SG6BV.js.map → chunk.KYACLC66.js.map} +1 -1
  122. package/dist/esm/chunks/chunk.KZMXTOLO.js +15 -0
  123. package/dist/esm/chunks/chunk.KZMXTOLO.js.map +7 -0
  124. package/dist/esm/chunks/chunk.L5OB7WM2.js +7 -0
  125. package/dist/esm/chunks/{chunk.BIVQ4GTK.js.map → chunk.L5OB7WM2.js.map} +1 -1
  126. package/dist/esm/chunks/chunk.L7BSLZCB.js +7 -0
  127. package/dist/esm/chunks/{chunk.AIPDMLJD.js.map → chunk.L7BSLZCB.js.map} +1 -1
  128. package/dist/esm/chunks/{chunk.URKQICJD.js → chunk.LDHY3O6H.js} +2 -2
  129. package/dist/esm/chunks/{chunk.KDJZN6EW.js → chunk.LEN33O6V.js} +2 -2
  130. package/dist/esm/chunks/chunk.LFLIYBAB.js +7 -0
  131. package/dist/esm/chunks/chunk.LFLIYBAB.js.map +7 -0
  132. package/dist/esm/chunks/{chunk.42YDA5FH.js → chunk.LXFL2C62.js} +2 -2
  133. package/dist/esm/chunks/chunk.ME7ICFCZ.js +7 -0
  134. package/dist/esm/chunks/{chunk.FSILMO6U.js.map → chunk.ME7ICFCZ.js.map} +1 -1
  135. package/dist/esm/chunks/{chunk.BC7WB5RG.js → chunk.MMMG4MZ3.js} +2 -2
  136. package/dist/esm/chunks/chunk.MTZOQQXR.js +7 -0
  137. package/dist/esm/chunks/chunk.MTZOQQXR.js.map +7 -0
  138. package/dist/esm/chunks/chunk.NBYCIDFC.js +7 -0
  139. package/dist/esm/chunks/{chunk.ONII3BV3.js.map → chunk.NBYCIDFC.js.map} +2 -2
  140. package/dist/esm/chunks/chunk.ND2X5OQ4.js +7 -0
  141. package/dist/esm/chunks/chunk.ND2X5OQ4.js.map +7 -0
  142. package/dist/esm/chunks/chunk.NHOGZDLN.js +7 -0
  143. package/dist/esm/chunks/chunk.NHOGZDLN.js.map +7 -0
  144. package/dist/esm/chunks/chunk.NHYJMP25.js +7 -0
  145. package/dist/esm/chunks/{chunk.EMCY55MX.js.map → chunk.NHYJMP25.js.map} +2 -2
  146. package/dist/esm/chunks/chunk.NPCUVYWP.js +7 -0
  147. package/dist/esm/chunks/chunk.NPCUVYWP.js.map +7 -0
  148. package/dist/esm/chunks/chunk.O47OSK6Z.js +7 -0
  149. package/dist/esm/chunks/{chunk.THNCYT3E.js.map → chunk.O47OSK6Z.js.map} +2 -2
  150. package/dist/esm/chunks/{chunk.BTWJPE4Y.js → chunk.O5HBMTSZ.js} +2 -2
  151. package/dist/esm/chunks/chunk.O7DID7GP.js +7 -0
  152. package/dist/esm/chunks/{chunk.BS73Y6IN.js.map → chunk.O7DID7GP.js.map} +1 -1
  153. package/dist/esm/chunks/chunk.OAZXY4Q5.js +7 -0
  154. package/dist/esm/chunks/{chunk.GGQL3OZB.js.map → chunk.OAZXY4Q5.js.map} +1 -1
  155. package/dist/esm/chunks/{chunk.MTSWCXTY.js → chunk.OD54UG2G.js} +2 -2
  156. package/dist/esm/chunks/{chunk.NBLL7VAA.js → chunk.OJFSECZE.js} +2 -2
  157. package/dist/esm/chunks/chunk.OJHNLDNM.js +7 -0
  158. package/dist/esm/chunks/{chunk.VG452D3L.js.map → chunk.OJHNLDNM.js.map} +1 -1
  159. package/dist/esm/chunks/{chunk.7LOMI6J3.js → chunk.OR5GB6X3.js} +2 -2
  160. package/dist/esm/chunks/chunk.OVDO5RVX.js +7 -0
  161. package/dist/esm/chunks/chunk.OVDO5RVX.js.map +7 -0
  162. package/dist/esm/chunks/chunk.PGSL6NFZ.js +7 -0
  163. package/dist/esm/chunks/{chunk.6FUXTHO6.js.map → chunk.PGSL6NFZ.js.map} +1 -1
  164. package/dist/esm/chunks/chunk.PR76A5VF.js +7 -0
  165. package/dist/esm/chunks/{chunk.KUNIEX72.js.map → chunk.PR76A5VF.js.map} +1 -1
  166. package/dist/esm/chunks/chunk.PZAL7VQF.js +7 -0
  167. package/dist/esm/chunks/{chunk.AEO2X5OZ.js.map → chunk.PZAL7VQF.js.map} +1 -1
  168. package/dist/esm/chunks/chunk.QQUSMJIM.js +7 -0
  169. package/dist/esm/chunks/{chunk.O6F4U4VY.js.map → chunk.QQUSMJIM.js.map} +1 -1
  170. package/dist/esm/chunks/chunk.RCYIHHYO.js +7 -0
  171. package/dist/esm/chunks/{chunk.447QNYAZ.js.map → chunk.RCYIHHYO.js.map} +1 -1
  172. package/dist/esm/chunks/{chunk.AR6YUJUH.js → chunk.RKG66YKS.js} +2 -2
  173. package/dist/esm/chunks/{chunk.HRGTAVNA.js → chunk.RKIJTSSL.js} +1 -1
  174. package/dist/esm/chunks/chunk.RLOZYTNN.js +7 -0
  175. package/dist/esm/chunks/{chunk.LYZXJYTW.js.map → chunk.RLOZYTNN.js.map} +1 -1
  176. package/dist/esm/chunks/chunk.S3KKICL3.js +7 -0
  177. package/dist/esm/chunks/{chunk.WARVAVAW.js.map → chunk.S3KKICL3.js.map} +1 -1
  178. package/dist/esm/chunks/chunk.SN3VXOWN.js +7 -0
  179. package/dist/esm/chunks/chunk.SN3VXOWN.js.map +7 -0
  180. package/dist/esm/chunks/chunk.STIZCKQA.js +7 -0
  181. package/dist/esm/chunks/chunk.STIZCKQA.js.map +7 -0
  182. package/dist/esm/chunks/chunk.SUR46MJG.js +7 -0
  183. package/dist/esm/chunks/chunk.SUR46MJG.js.map +7 -0
  184. package/dist/esm/chunks/chunk.SZETPZGY.js +7 -0
  185. package/dist/esm/chunks/{chunk.MROUV35N.js.map → chunk.SZETPZGY.js.map} +1 -1
  186. package/dist/esm/chunks/chunk.TGGC2THA.js +7 -0
  187. package/dist/esm/chunks/{chunk.5QZPUOGG.js.map → chunk.TGGC2THA.js.map} +1 -1
  188. package/dist/esm/chunks/chunk.TRSICKKS.js +7 -0
  189. package/dist/esm/chunks/{chunk.3KEXRSB5.js.map → chunk.TRSICKKS.js.map} +2 -2
  190. package/dist/esm/chunks/{chunk.WINL2C7Q.js → chunk.U6FJJGO3.js} +1 -1
  191. package/dist/esm/chunks/chunk.UCIVBX64.js +7 -0
  192. package/dist/esm/chunks/{chunk.ICIGXLJW.js.map → chunk.UCIVBX64.js.map} +1 -1
  193. package/dist/esm/chunks/chunk.UVXKHQQZ.js +7 -0
  194. package/dist/esm/chunks/{chunk.T4J66YX5.js.map → chunk.UVXKHQQZ.js.map} +4 -4
  195. package/dist/esm/chunks/chunk.UYAP5GFT.js +7 -0
  196. package/dist/esm/chunks/{chunk.ZT7U7WOX.js.map → chunk.UYAP5GFT.js.map} +1 -1
  197. package/dist/esm/chunks/chunk.V7HN24VV.js +7 -0
  198. package/dist/esm/chunks/{chunk.WJCZJ6XD.js.map → chunk.V7HN24VV.js.map} +1 -1
  199. package/dist/esm/chunks/chunk.VLADAZRB.js +7 -0
  200. package/dist/esm/chunks/chunk.VLADAZRB.js.map +7 -0
  201. package/dist/esm/chunks/chunk.VN7JOJVU.js +7 -0
  202. package/dist/esm/chunks/{chunk.DLBAZD5X.js.map → chunk.VN7JOJVU.js.map} +1 -1
  203. package/dist/esm/chunks/{chunk.5EGEZ4IY.js → chunk.VNFATHAQ.js} +2 -2
  204. package/dist/esm/chunks/chunk.VNH44AGF.js +7 -0
  205. package/dist/esm/chunks/chunk.VNH44AGF.js.map +7 -0
  206. package/dist/esm/chunks/{chunk.IHIKIZIT.js → chunk.VOL4DT5F.js} +2 -2
  207. package/dist/esm/chunks/chunk.VX7H6YHF.js +7 -0
  208. package/dist/esm/chunks/chunk.VX7H6YHF.js.map +7 -0
  209. package/dist/esm/chunks/chunk.W7CM652O.js +7 -0
  210. package/dist/esm/chunks/chunk.W7CM652O.js.map +7 -0
  211. package/dist/esm/chunks/chunk.WINWKU4K.js +7 -0
  212. package/dist/esm/chunks/chunk.WINWKU4K.js.map +7 -0
  213. package/dist/esm/chunks/chunk.WJ26N3FC.js +7 -0
  214. package/dist/esm/chunks/{chunk.4IMRT2B3.js.map → chunk.WJ26N3FC.js.map} +1 -1
  215. package/dist/esm/chunks/chunk.WJLHVUHN.js +7 -0
  216. package/dist/esm/chunks/{chunk.Z37CZMMR.js.map → chunk.WJLHVUHN.js.map} +1 -1
  217. package/dist/esm/chunks/chunk.WXFJYCGO.js +7 -0
  218. package/dist/esm/chunks/{chunk.TSUAFZGY.js.map → chunk.WXFJYCGO.js.map} +1 -1
  219. package/dist/esm/chunks/chunk.XPIAOMSC.js +7 -0
  220. package/dist/esm/chunks/{chunk.5FCUOZSU.js.map → chunk.XPIAOMSC.js.map} +1 -1
  221. package/dist/esm/chunks/chunk.YCG7OVYF.js +7 -0
  222. package/dist/esm/chunks/chunk.YCG7OVYF.js.map +7 -0
  223. package/dist/esm/chunks/chunk.YLJTJKN4.js +15 -0
  224. package/dist/esm/chunks/chunk.YLJTJKN4.js.map +7 -0
  225. package/dist/esm/chunks/chunk.YVCGGQQG.js +12 -0
  226. package/dist/esm/chunks/chunk.YVCGGQQG.js.map +7 -0
  227. package/dist/esm/chunks/chunk.Z7JF5PPO.js +7 -0
  228. package/dist/esm/chunks/{chunk.PMSCH6VK.js.map → chunk.Z7JF5PPO.js.map} +3 -3
  229. package/dist/esm/chunks/chunk.Z7SLVU2O.js +7 -0
  230. package/dist/esm/chunks/{chunk.L27ANAIL.js.map → chunk.Z7SLVU2O.js.map} +2 -2
  231. package/dist/esm/chunks/chunk.ZJQLVAJY.js +7 -0
  232. package/dist/esm/chunks/{chunk.ZIRA4PYV.js.map → chunk.ZJQLVAJY.js.map} +1 -1
  233. package/dist/esm/chunks/chunk.ZSHN7Z45.js +7 -0
  234. package/dist/esm/chunks/chunk.ZSHN7Z45.js.map +7 -0
  235. package/dist/esm/chunks/chunk.ZTBOQMRE.js +7 -0
  236. package/dist/esm/chunks/{chunk.KR4BNI6X.js.map → chunk.ZTBOQMRE.js.map} +1 -1
  237. package/dist/esm/chunks/chunk.ZY3ETQ3D.js +7 -0
  238. package/dist/esm/chunks/chunk.ZY3ETQ3D.js.map +7 -0
  239. package/dist/esm/chunks/{chunk.U42I3PGF.js → chunk.ZZRAZZ3N.js} +2 -2
  240. package/dist/esm/chunks/chunk.ZZV7P3FR.js +7 -0
  241. package/dist/esm/chunks/chunk.ZZV7P3FR.js.map +7 -0
  242. package/dist/esm/circular-progress/index.js +1 -1
  243. package/dist/esm/color-picker/index.js +1 -1
  244. package/dist/esm/core/base/index.js +1 -1
  245. package/dist/esm/core/index.js +1 -1
  246. package/dist/esm/core/utils/index.js +1 -1
  247. package/dist/esm/date-picker/index.js +1 -1
  248. package/dist/esm/date-range-picker/index.js +1 -1
  249. package/dist/esm/deprecated/button/index.js +7 -0
  250. package/dist/esm/deprecated/button/index.js.map +7 -0
  251. package/dist/esm/deprecated/index.js +7 -0
  252. package/dist/esm/deprecated/index.js.map +7 -0
  253. package/dist/esm/dialog/index.js +1 -1
  254. package/dist/esm/divider/index.js +1 -1
  255. package/dist/esm/drawer/base/index.js +1 -1
  256. package/dist/esm/drawer/drawer/index.js +1 -1
  257. package/dist/esm/drawer/index.js +1 -1
  258. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  259. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  260. package/dist/esm/expansion-panel/index.js +1 -1
  261. package/dist/esm/file-picker/index.js +1 -1
  262. package/dist/esm/floating-action-button/index.js +1 -1
  263. package/dist/esm/focus-indicator/index.js +1 -1
  264. package/dist/esm/icon/index.js +1 -1
  265. package/dist/esm/icon-button/index.js +1 -1
  266. package/dist/esm/index.js +1 -1
  267. package/dist/esm/inline-message/index.js +1 -1
  268. package/dist/esm/keyboard-shortcut/index.js +1 -1
  269. package/dist/esm/label/index.js +1 -1
  270. package/dist/esm/label-value/index.js +1 -1
  271. package/dist/esm/linear-progress/index.js +1 -1
  272. package/dist/esm/list/index.js +1 -1
  273. package/dist/esm/list/list/index.js +1 -1
  274. package/dist/esm/list/list-item/index.js +1 -1
  275. package/dist/esm/list-dropdown/index.js +1 -1
  276. package/dist/esm/menu/index.js +1 -1
  277. package/dist/esm/open-icon/index.js +1 -1
  278. package/dist/esm/overlay/index.js +7 -0
  279. package/dist/esm/overlay/index.js.map +7 -0
  280. package/dist/esm/page-state/index.js +1 -1
  281. package/dist/esm/paginator/index.js +1 -1
  282. package/dist/esm/popover/index.js +7 -0
  283. package/dist/esm/popover/index.js.map +7 -0
  284. package/dist/esm/popup/index.js +1 -1
  285. package/dist/esm/product-icon/index.js +1 -1
  286. package/dist/esm/profile-card/index.js +1 -1
  287. package/dist/esm/quantity-field/index.js +1 -1
  288. package/dist/esm/radio/index.js +1 -1
  289. package/dist/esm/radio/radio/index.js +1 -1
  290. package/dist/esm/radio/radio-group/index.js +1 -1
  291. package/dist/esm/ripple/index.js +1 -1
  292. package/dist/esm/scaffold/index.js +1 -1
  293. package/dist/esm/select/core/index.js +1 -1
  294. package/dist/esm/select/index.js +1 -1
  295. package/dist/esm/select/option/index.js +1 -1
  296. package/dist/esm/select/option-group/index.js +1 -1
  297. package/dist/esm/select/select/index.js +1 -1
  298. package/dist/esm/select/select-dropdown/index.js +1 -1
  299. package/dist/esm/skeleton/index.js +1 -1
  300. package/dist/esm/slider/index.js +1 -1
  301. package/dist/esm/split-button/index.js +1 -1
  302. package/dist/esm/split-view/index.js +1 -1
  303. package/dist/esm/split-view/split-view/index.js +1 -1
  304. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  305. package/dist/esm/stack/index.js +1 -1
  306. package/dist/esm/state-layer/index.js +1 -1
  307. package/dist/esm/stepper/index.js +1 -1
  308. package/dist/esm/stepper/step/index.js +1 -1
  309. package/dist/esm/stepper/stepper/index.js +1 -1
  310. package/dist/esm/switch/index.js +1 -1
  311. package/dist/esm/table/index.js +1 -1
  312. package/dist/esm/tabs/index.js +1 -1
  313. package/dist/esm/tabs/tab/index.js +1 -1
  314. package/dist/esm/tabs/tab-bar/index.js +1 -1
  315. package/dist/esm/text-field/index.js +1 -1
  316. package/dist/esm/time-picker/index.js +1 -1
  317. package/dist/esm/toast/index.js +1 -1
  318. package/dist/esm/toolbar/index.js +1 -1
  319. package/dist/esm/tooltip/index.js +1 -1
  320. package/dist/esm/utils/index.js +1 -1
  321. package/dist/esm/view-switcher/index.js +1 -1
  322. package/dist/esm/view-switcher/view/index.js +1 -1
  323. package/dist/forge-dark.css +1 -1
  324. package/dist/forge.css +1 -1
  325. package/dist/theme/forge-theme.css +1 -1
  326. package/dist/typography/forge-typography.css +1 -1
  327. package/esm/app-bar/help-button/app-bar-help-button-adapter.js +3 -3
  328. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  329. package/esm/app-bar/menu-button/app-bar-menu-button.js +4 -4
  330. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +4 -4
  331. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  332. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +3 -3
  333. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +1 -0
  334. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  335. package/esm/avatar/avatar-adapter.d.ts +0 -6
  336. package/esm/avatar/avatar-adapter.js +6 -14
  337. package/esm/avatar/avatar-constants.d.ts +0 -1
  338. package/esm/avatar/avatar-constants.js +2 -3
  339. package/esm/avatar/avatar-foundation.d.ts +0 -5
  340. package/esm/avatar/avatar-foundation.js +0 -15
  341. package/esm/avatar/avatar.d.ts +28 -7
  342. package/esm/avatar/avatar.js +29 -12
  343. package/esm/avatar/index.d.ts +0 -1
  344. package/esm/avatar/index.js +0 -1
  345. package/esm/badge/badge-constants.d.ts +8 -4
  346. package/esm/badge/badge-constants.js +7 -4
  347. package/esm/badge/badge.d.ts +38 -11
  348. package/esm/badge/badge.js +55 -32
  349. package/esm/badge/index.d.ts +0 -3
  350. package/esm/badge/index.js +0 -3
  351. package/esm/banner/banner.js +1 -1
  352. package/esm/button/base/base-button-adapter.d.ts +0 -3
  353. package/esm/button/base/base-button-adapter.js +5 -14
  354. package/esm/button/base/base-button-constants.d.ts +28 -28
  355. package/esm/button/base/base-button-foundation.d.ts +0 -2
  356. package/esm/button/base/base-button-foundation.js +1 -4
  357. package/esm/button/base/base-button.d.ts +8 -6
  358. package/esm/button/base/base-button.js +19 -15
  359. package/esm/button/button.js +2 -2
  360. package/esm/button-toggle/button-toggle/button-toggle-adapter.d.ts +6 -14
  361. package/esm/button-toggle/button-toggle/button-toggle-adapter.js +19 -45
  362. package/esm/button-toggle/button-toggle/button-toggle-constants.d.ts +11 -15
  363. package/esm/button-toggle/button-toggle/button-toggle-constants.js +6 -17
  364. package/esm/button-toggle/button-toggle/button-toggle-foundation.d.ts +18 -12
  365. package/esm/button-toggle/button-toggle/button-toggle-foundation.js +74 -30
  366. package/esm/button-toggle/button-toggle/button-toggle.d.ts +67 -14
  367. package/esm/button-toggle/button-toggle/button-toggle.js +82 -29
  368. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.d.ts +7 -13
  369. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +26 -91
  370. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +20 -11
  371. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.js +8 -2
  372. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.d.ts +20 -12
  373. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.js +101 -97
  374. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +75 -9
  375. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +134 -25
  376. package/esm/calendar/calendar-dom-utils.js +1 -2
  377. package/esm/calendar/calendar-foundation.d.ts +1 -1
  378. package/esm/calendar/calendar-foundation.js +13 -16
  379. package/esm/checkbox/checkbox.js +1 -1
  380. package/esm/circular-progress/circular-progress-adapter.js +8 -12
  381. package/esm/circular-progress/circular-progress-foundation.js +3 -0
  382. package/esm/circular-progress/circular-progress.d.ts +7 -3
  383. package/esm/circular-progress/circular-progress.js +4 -2
  384. package/esm/color-picker/color-picker.js +1 -1
  385. package/esm/constants.d.ts +1 -0
  386. package/esm/constants.js +2 -0
  387. package/esm/core/base/base-adapter.d.ts +2 -0
  388. package/esm/core/base/base-adapter.js +7 -4
  389. package/esm/core/base/index.d.ts +0 -4
  390. package/esm/core/base/index.js +0 -4
  391. package/esm/core/{base/base-focusable-component.d.ts → mixins/focus/with-focusable.d.ts} +2 -2
  392. package/esm/core/{base/base-focusable-component.js → mixins/focus/with-focusable.js} +1 -1
  393. package/esm/core/{base/base-form-associated-component.d.ts → mixins/form/with-form-associated.d.ts} +4 -10
  394. package/esm/core/{base/base-form-associated-component.js → mixins/form/with-form-associated.js} +1 -1
  395. package/esm/core/mixins/form/with-form-validity.d.ts +35 -0
  396. package/esm/core/mixins/form/with-form-validity.js +43 -0
  397. package/esm/core/mixins/interactions/longpress/with-longpress-listener.d.ts +33 -0
  398. package/esm/core/mixins/interactions/longpress/with-longpress-listener.js +82 -0
  399. package/esm/core/mixins/internals/with-default-aria.d.ts +32 -0
  400. package/esm/core/mixins/internals/with-default-aria.js +22 -0
  401. package/esm/core/mixins/internals/with-element-internals.d.ts +26 -0
  402. package/esm/core/mixins/internals/with-element-internals.js +22 -0
  403. package/esm/core/{base/base-label-aware-component.d.ts → mixins/label/with-label-aware.d.ts} +2 -2
  404. package/esm/core/utils/a11y-utils.d.ts +4 -34
  405. package/esm/core/utils/a11y-utils.js +7 -61
  406. package/esm/core/utils/deferred.d.ts +29 -0
  407. package/esm/core/utils/deferred.js +32 -0
  408. package/esm/core/utils/dismissible-stack.d.ts +74 -0
  409. package/esm/core/utils/dismissible-stack.js +133 -0
  410. package/esm/core/utils/feature-detection.d.ts +5 -0
  411. package/esm/core/utils/feature-detection.js +12 -3
  412. package/esm/core/utils/form-utils.d.ts +1 -1
  413. package/esm/core/utils/position-utils.d.ts +78 -0
  414. package/esm/core/utils/position-utils.js +197 -0
  415. package/esm/core/utils/utils.d.ts +14 -0
  416. package/esm/core/utils/utils.js +25 -7
  417. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  418. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  419. package/esm/deprecated/button/deprecated-button-component-delegate.d.ts +24 -0
  420. package/esm/deprecated/button/deprecated-button-component-delegate.js +39 -0
  421. package/esm/deprecated/button/deprecated-button-constants.d.ts +17 -0
  422. package/esm/deprecated/button/deprecated-button-constants.js +20 -0
  423. package/esm/deprecated/button/deprecated-button.d.ts +54 -0
  424. package/esm/deprecated/button/deprecated-button.js +149 -0
  425. package/esm/deprecated/button/index.d.ts +12 -0
  426. package/esm/deprecated/button/index.js +16 -0
  427. package/{styles/app-bar/search/_configuration.scss → esm/deprecated/index.d.ts} +1 -5
  428. package/{styles/checkbox/_configuration.scss → esm/deprecated/index.js} +1 -5
  429. package/esm/dialog/dialog-constants.d.ts +1 -0
  430. package/esm/dialog/dialog-constants.js +2 -1
  431. package/esm/dialog/dialog-foundation.js +3 -6
  432. package/esm/dialog/dialog.js +1 -1
  433. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  434. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  435. package/esm/floating-action-button/floating-action-button.js +1 -1
  436. package/esm/icon-button/icon-button-component-delegate.js +1 -1
  437. package/esm/icon-button/icon-button.js +1 -1
  438. package/esm/index.d.ts +7 -0
  439. package/esm/index.js +24 -1
  440. package/esm/inline-message/inline-message-constants.d.ts +9 -2
  441. package/esm/inline-message/inline-message-constants.js +7 -3
  442. package/esm/inline-message/inline-message.d.ts +31 -2
  443. package/esm/inline-message/inline-message.js +37 -5
  444. package/esm/label/label-adapter.js +3 -3
  445. package/esm/label/label-constants.d.ts +1 -1
  446. package/esm/label/label-constants.js +3 -1
  447. package/esm/linear-progress/linear-progress-adapter.js +13 -12
  448. package/esm/linear-progress/linear-progress-constants.d.ts +6 -0
  449. package/esm/linear-progress/linear-progress-constants.js +4 -2
  450. package/esm/linear-progress/linear-progress-foundation.js +2 -1
  451. package/esm/linear-progress/linear-progress.d.ts +7 -3
  452. package/esm/linear-progress/linear-progress.js +8 -11
  453. package/esm/list/list/list.js +1 -1
  454. package/esm/list/list-item/list-item.js +1 -1
  455. package/esm/menu/menu.js +1 -5
  456. package/esm/open-icon/open-icon.js +2 -2
  457. package/esm/overlay/base/base-overlay-foundation.d.ts +50 -0
  458. package/esm/overlay/base/base-overlay-foundation.js +11 -0
  459. package/esm/overlay/base/base-overlay.d.ts +49 -0
  460. package/esm/overlay/base/base-overlay.js +106 -0
  461. package/esm/overlay/base/overlay-aware-adapter.d.ts +17 -0
  462. package/esm/overlay/base/overlay-aware-adapter.js +15 -0
  463. package/esm/overlay/base/overlay-aware-foundation.d.ts +53 -0
  464. package/esm/overlay/base/overlay-aware-foundation.js +158 -0
  465. package/esm/overlay/base/overlay-aware.d.ts +36 -0
  466. package/esm/overlay/base/overlay-aware.js +102 -0
  467. package/esm/overlay/index.d.ts +10 -0
  468. package/esm/overlay/index.js +14 -0
  469. package/esm/overlay/mixins/with-overlay-aware.d.ts +105 -0
  470. package/esm/overlay/mixins/with-overlay-aware.js +152 -0
  471. package/esm/overlay/overlay-adapter.d.ts +54 -0
  472. package/esm/overlay/overlay-adapter.js +182 -0
  473. package/esm/overlay/overlay-constants.d.ts +71 -0
  474. package/esm/overlay/overlay-constants.js +48 -0
  475. package/esm/overlay/overlay-foundation.d.ts +76 -0
  476. package/esm/overlay/overlay-foundation.js +288 -0
  477. package/esm/overlay/overlay.d.ts +90 -0
  478. package/esm/overlay/overlay.js +105 -0
  479. package/esm/paginator/paginator.js +1 -1
  480. package/esm/popover/index.d.ts +10 -0
  481. package/esm/popover/index.js +14 -0
  482. package/esm/popover/popover-adapter.d.ts +46 -0
  483. package/esm/popover/popover-adapter.js +105 -0
  484. package/esm/popover/popover-constants.d.ts +42 -0
  485. package/esm/popover/popover-constants.js +42 -0
  486. package/esm/popover/popover-foundation.d.ts +139 -0
  487. package/esm/popover/popover-foundation.js +458 -0
  488. package/esm/popover/popover.d.ts +96 -0
  489. package/esm/popover/popover.js +147 -0
  490. package/esm/popup/popup-constants.d.ts +1 -1
  491. package/esm/profile-card/profile-card.js +1 -1
  492. package/esm/radio/core/radio-group-manager.js +1 -1
  493. package/esm/radio/radio/radio-adapter.js +4 -10
  494. package/esm/radio/radio/radio-constants.d.ts +0 -2
  495. package/esm/radio/radio/radio-constants.js +1 -14
  496. package/esm/radio/radio/radio.d.ts +8 -3
  497. package/esm/radio/radio/radio.js +10 -8
  498. package/esm/radio/radio-group/radio-group-adapter.js +1 -3
  499. package/esm/radio/radio-group/radio-group-constants.d.ts +0 -2
  500. package/esm/radio/radio-group/radio-group-constants.js +1 -6
  501. package/esm/radio/radio-group/radio-group.d.ts +6 -3
  502. package/esm/radio/radio-group/radio-group.js +5 -3
  503. package/esm/slider/slider.d.ts +2 -2
  504. package/esm/slider/slider.js +2 -2
  505. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  506. package/esm/state-layer/state-layer-foundation.js +12 -10
  507. package/esm/switch/switch.js +1 -1
  508. package/esm/table/table-utils.js +2 -3
  509. package/esm/tabs/tab/tab.js +1 -1
  510. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +1 -1
  511. package/esm/tabs/tab-bar/tab-bar-adapter.js +3 -3
  512. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +1 -1
  513. package/esm/tabs/tab-bar/tab-bar-constants.js +1 -1
  514. package/esm/tabs/tab-bar/tab-bar.js +2 -2
  515. package/esm/toast/toast-constants.d.ts +1 -1
  516. package/esm/toolbar/toolbar.js +1 -1
  517. package/esm/tooltip/index.d.ts +0 -1
  518. package/esm/tooltip/index.js +0 -1
  519. package/esm/tooltip/tooltip-adapter.d.ts +30 -60
  520. package/esm/tooltip/tooltip-adapter.js +105 -97
  521. package/esm/tooltip/tooltip-constants.d.ts +44 -21
  522. package/esm/tooltip/tooltip-constants.js +27 -22
  523. package/esm/tooltip/tooltip-foundation.d.ts +72 -84
  524. package/esm/tooltip/tooltip-foundation.js +265 -192
  525. package/esm/tooltip/tooltip.d.ts +93 -26
  526. package/esm/tooltip/tooltip.js +129 -31
  527. package/package.json +2 -4
  528. package/styles/app-bar/app-bar/_core.scss +2 -0
  529. package/styles/app-bar/app-bar/app-bar.scss +17 -17
  530. package/styles/app-bar/app-bar/index.scss +0 -2
  531. package/styles/app-bar/search/_core.scss +2 -0
  532. package/styles/app-bar/search/app-bar-search.scss +5 -6
  533. package/styles/app-bar/search/index.scss +0 -2
  534. package/styles/avatar/_core.scss +43 -0
  535. package/styles/avatar/_token-utils.scss +30 -0
  536. package/styles/avatar/avatar.scss +21 -3
  537. package/styles/badge/_core.scss +58 -0
  538. package/styles/badge/_token-utils.scss +30 -0
  539. package/styles/badge/badge.scss +101 -15
  540. package/styles/{focus-indicator/_configuration.scss → badge/index.scss} +1 -5
  541. package/styles/button/_core.scss +2 -0
  542. package/styles/button/button.scss +31 -25
  543. package/styles/button/index.scss +0 -2
  544. package/styles/button-toggle/button-toggle/_core.scss +78 -0
  545. package/styles/button-toggle/button-toggle/_token-utils.scss +30 -0
  546. package/styles/button-toggle/button-toggle/button-toggle.scss +65 -11
  547. package/styles/button-toggle/button-toggle/index.scss +6 -0
  548. package/styles/button-toggle/button-toggle-group/_core.scss +62 -0
  549. package/styles/button-toggle/button-toggle-group/_token-utils.scss +30 -0
  550. package/styles/button-toggle/button-toggle-group/button-toggle-group.scss +123 -3
  551. package/styles/button-toggle/button-toggle-group/index.scss +8 -0
  552. package/styles/checkbox/_core.scss +3 -0
  553. package/styles/checkbox/checkbox.scss +24 -26
  554. package/styles/checkbox/index.scss +0 -2
  555. package/styles/circular-progress/_core.scss +2 -0
  556. package/styles/circular-progress/circular-progress.scss +36 -27
  557. package/styles/circular-progress/index.scss +0 -2
  558. package/styles/core/styles/elevation/index.scss +1 -1
  559. package/styles/core/styles/tokens/_token-utils.scss +14 -5
  560. package/styles/core/styles/tokens/avatar/_tokens.scss +23 -0
  561. package/styles/core/styles/tokens/badge/_tokens.scss +42 -0
  562. package/styles/core/styles/tokens/button/_tokens.scss +4 -4
  563. package/styles/core/styles/tokens/button-toggle/button-toggle/_tokens.scss +68 -0
  564. package/styles/core/styles/tokens/button-toggle/button-toggle-group/_tokens.scss +48 -0
  565. package/styles/core/styles/tokens/checkbox/_tokens.scss +6 -6
  566. package/styles/core/styles/tokens/floating-action-button/_tokens.scss +1 -1
  567. package/styles/core/styles/tokens/icon-button/_tokens.scss +3 -3
  568. package/styles/core/styles/tokens/inline-message/_tokens.scss +31 -0
  569. package/styles/core/styles/tokens/overlay/_tokens.scss +23 -0
  570. package/styles/core/styles/tokens/popover/_tokens.scss +56 -0
  571. package/styles/core/styles/tokens/profile-card/_tokens.scss +1 -1
  572. package/styles/core/styles/tokens/radio/_tokens.scss +1 -1
  573. package/styles/core/styles/tokens/switch/_tokens.scss +3 -3
  574. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +5 -5
  575. package/styles/core/styles/tokens/theme/_token-utils.scss +28 -6
  576. package/styles/core/styles/tokens/theme/_tokens.surface.scss +3 -0
  577. package/styles/core/styles/tokens/theme/_tokens.text.scss +4 -4
  578. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +3 -0
  579. package/styles/core/styles/tokens/tooltip/_tokens.scss +53 -0
  580. package/styles/core/styles/typography/index.scss +1 -1
  581. package/styles/deprecated/button/deprecated-button.scss +133 -0
  582. package/styles/dialog/_mixins.scss +1 -1
  583. package/styles/drawer/mini-drawer/_mixins.scss +0 -2
  584. package/styles/floating-action-button/_core.scss +2 -0
  585. package/styles/floating-action-button/floating-action-button.scss +14 -14
  586. package/styles/floating-action-button/index.scss +0 -2
  587. package/styles/focus-indicator/_core.scss +2 -0
  588. package/styles/focus-indicator/focus-indicator.scss +7 -8
  589. package/styles/focus-indicator/index.scss +0 -2
  590. package/styles/forge.scss +0 -1
  591. package/styles/icon-button/_core.scss +2 -0
  592. package/styles/icon-button/icon-button.scss +29 -28
  593. package/styles/icon-button/index.scss +0 -2
  594. package/styles/inline-message/_core.scss +45 -0
  595. package/styles/inline-message/_token-utils.scss +30 -0
  596. package/styles/inline-message/index.scss +6 -0
  597. package/styles/inline-message/inline-message.scss +75 -9
  598. package/styles/label/label.scss +2 -2
  599. package/styles/linear-progress/_core.scss +2 -0
  600. package/styles/linear-progress/index.scss +0 -2
  601. package/styles/linear-progress/linear-progress.scss +29 -18
  602. package/styles/list/list/_core.scss +2 -0
  603. package/styles/list/list/index.scss +0 -2
  604. package/styles/list/list/list.scss +4 -4
  605. package/styles/list/list-item/_core.scss +2 -0
  606. package/styles/list/list-item/index.scss +0 -2
  607. package/styles/list/list-item/list-item.scss +50 -44
  608. package/styles/overlay/_core.scss +46 -0
  609. package/styles/overlay/_token-utils.scss +31 -0
  610. package/styles/overlay/index.scss +6 -0
  611. package/styles/overlay/overlay.scss +66 -0
  612. package/styles/popover/_animations.scss +36 -0
  613. package/styles/popover/_core.scss +56 -0
  614. package/styles/popover/_token-utils.scss +31 -0
  615. package/styles/popover/index.scss +6 -0
  616. package/styles/popover/popover.scss +254 -0
  617. package/styles/profile-card/_core.scss +2 -0
  618. package/styles/profile-card/index.scss +0 -2
  619. package/styles/profile-card/profile-card.scss +9 -11
  620. package/styles/radio/radio/_core.scss +3 -0
  621. package/styles/radio/radio/index.scss +0 -2
  622. package/styles/radio/radio/radio.scss +12 -15
  623. package/styles/slider/_core.scss +2 -0
  624. package/styles/slider/index.scss +0 -2
  625. package/styles/slider/slider.scss +45 -41
  626. package/styles/split-button/index.scss +0 -1
  627. package/styles/split-button/split-button.scss +3 -2
  628. package/styles/state-layer/_core.scss +3 -2
  629. package/styles/state-layer/index.scss +0 -2
  630. package/styles/state-layer/state-layer.scss +7 -8
  631. package/styles/switch/_core.scss +3 -0
  632. package/styles/switch/index.scss +0 -2
  633. package/styles/switch/switch.scss +28 -30
  634. package/styles/tabs/tab/_core.scss +2 -0
  635. package/styles/tabs/tab/index.scss +0 -2
  636. package/styles/tabs/tab/tab.scss +27 -28
  637. package/styles/tabs/tab-bar/_core.scss +2 -0
  638. package/styles/tabs/tab-bar/index.scss +0 -2
  639. package/styles/tabs/tab-bar/tab-bar.scss +21 -23
  640. package/styles/theme/_theme-dark.scss +19 -7
  641. package/styles/theme/_theme-values.scss +2 -0
  642. package/styles/toolbar/_mixins.scss +2 -1
  643. package/styles/tooltip/_animations.scss +18 -0
  644. package/styles/tooltip/_core.scss +86 -0
  645. package/styles/tooltip/_token-utils.scss +31 -0
  646. package/styles/tooltip/index.scss +6 -0
  647. package/styles/tooltip/tooltip.scss +107 -0
  648. package/dist/esm/chunks/chunk.3KEXRSB5.js +0 -7
  649. package/dist/esm/chunks/chunk.3TKTJ3BY.js +0 -7
  650. package/dist/esm/chunks/chunk.3TKTJ3BY.js.map +0 -7
  651. package/dist/esm/chunks/chunk.447QNYAZ.js +0 -7
  652. package/dist/esm/chunks/chunk.4IMRT2B3.js +0 -7
  653. package/dist/esm/chunks/chunk.4JDJ33IU.js +0 -7
  654. package/dist/esm/chunks/chunk.4JDJ33IU.js.map +0 -7
  655. package/dist/esm/chunks/chunk.4QCGBFLU.js +0 -7
  656. package/dist/esm/chunks/chunk.4QCGBFLU.js.map +0 -7
  657. package/dist/esm/chunks/chunk.4XN2WGMP.js +0 -7
  658. package/dist/esm/chunks/chunk.5FCUOZSU.js +0 -7
  659. package/dist/esm/chunks/chunk.5KYKGNGY.js +0 -7
  660. package/dist/esm/chunks/chunk.5QZPUOGG.js +0 -7
  661. package/dist/esm/chunks/chunk.5ZMM75CJ.js +0 -7
  662. package/dist/esm/chunks/chunk.5ZMM75CJ.js.map +0 -7
  663. package/dist/esm/chunks/chunk.6FUXTHO6.js +0 -7
  664. package/dist/esm/chunks/chunk.6ORVPXNN.js +0 -7
  665. package/dist/esm/chunks/chunk.6ORVPXNN.js.map +0 -7
  666. package/dist/esm/chunks/chunk.6ZJIHOIG.js +0 -7
  667. package/dist/esm/chunks/chunk.6ZJIHOIG.js.map +0 -7
  668. package/dist/esm/chunks/chunk.7PVVZC7P.js +0 -7
  669. package/dist/esm/chunks/chunk.AEO2X5OZ.js +0 -7
  670. package/dist/esm/chunks/chunk.AIPDMLJD.js +0 -7
  671. package/dist/esm/chunks/chunk.APFDK6YA.js +0 -7
  672. package/dist/esm/chunks/chunk.APFDK6YA.js.map +0 -7
  673. package/dist/esm/chunks/chunk.AVRBHXDT.js +0 -177
  674. package/dist/esm/chunks/chunk.BIVQ4GTK.js +0 -7
  675. package/dist/esm/chunks/chunk.BJD6BKGC.js +0 -31
  676. package/dist/esm/chunks/chunk.BJD6BKGC.js.map +0 -7
  677. package/dist/esm/chunks/chunk.BS73Y6IN.js +0 -7
  678. package/dist/esm/chunks/chunk.BWGDZUJV.js +0 -12
  679. package/dist/esm/chunks/chunk.BWGDZUJV.js.map +0 -7
  680. package/dist/esm/chunks/chunk.CBY7M4X6.js +0 -7
  681. package/dist/esm/chunks/chunk.CBY7M4X6.js.map +0 -7
  682. package/dist/esm/chunks/chunk.CZOABXEQ.js +0 -7
  683. package/dist/esm/chunks/chunk.DLBAZD5X.js +0 -7
  684. package/dist/esm/chunks/chunk.DTWXICOY.js +0 -7
  685. package/dist/esm/chunks/chunk.DTWXICOY.js.map +0 -7
  686. package/dist/esm/chunks/chunk.EMCY55MX.js +0 -7
  687. package/dist/esm/chunks/chunk.ESQWFHCF.js +0 -7
  688. package/dist/esm/chunks/chunk.ESQWFHCF.js.map +0 -7
  689. package/dist/esm/chunks/chunk.FDZSLGIW.js +0 -7
  690. package/dist/esm/chunks/chunk.FDZSLGIW.js.map +0 -7
  691. package/dist/esm/chunks/chunk.FJ5VNWYK.js +0 -7
  692. package/dist/esm/chunks/chunk.FJ5VNWYK.js.map +0 -7
  693. package/dist/esm/chunks/chunk.FJRCWWE2.js +0 -7
  694. package/dist/esm/chunks/chunk.FJRCWWE2.js.map +0 -7
  695. package/dist/esm/chunks/chunk.FQUZWINF.js +0 -7
  696. package/dist/esm/chunks/chunk.FSILMO6U.js +0 -7
  697. package/dist/esm/chunks/chunk.FXGY5IVK.js +0 -7
  698. package/dist/esm/chunks/chunk.G67LO74A.js +0 -7
  699. package/dist/esm/chunks/chunk.G67LO74A.js.map +0 -7
  700. package/dist/esm/chunks/chunk.GGQL3OZB.js +0 -7
  701. package/dist/esm/chunks/chunk.I7OY43HW.js +0 -7
  702. package/dist/esm/chunks/chunk.I7OY43HW.js.map +0 -7
  703. package/dist/esm/chunks/chunk.I7X25KEB.js +0 -7
  704. package/dist/esm/chunks/chunk.I7X25KEB.js.map +0 -7
  705. package/dist/esm/chunks/chunk.ICIGXLJW.js +0 -7
  706. package/dist/esm/chunks/chunk.ILUXZNGY.js +0 -7
  707. package/dist/esm/chunks/chunk.ILUXZNGY.js.map +0 -7
  708. package/dist/esm/chunks/chunk.JEZR25US.js +0 -7
  709. package/dist/esm/chunks/chunk.JPI4XCQL.js +0 -7
  710. package/dist/esm/chunks/chunk.JPI4XCQL.js.map +0 -7
  711. package/dist/esm/chunks/chunk.JRSFCVYQ.js +0 -7
  712. package/dist/esm/chunks/chunk.JRSFCVYQ.js.map +0 -7
  713. package/dist/esm/chunks/chunk.JZ27GPZJ.js +0 -7
  714. package/dist/esm/chunks/chunk.K3TJMIKD.js +0 -7
  715. package/dist/esm/chunks/chunk.K3TJMIKD.js.map +0 -7
  716. package/dist/esm/chunks/chunk.KGHABAFA.js +0 -7
  717. package/dist/esm/chunks/chunk.KR4BNI6X.js +0 -7
  718. package/dist/esm/chunks/chunk.KUNIEX72.js +0 -7
  719. package/dist/esm/chunks/chunk.L27ANAIL.js +0 -7
  720. package/dist/esm/chunks/chunk.L4UXWCVD.js +0 -7
  721. package/dist/esm/chunks/chunk.L4UXWCVD.js.map +0 -7
  722. package/dist/esm/chunks/chunk.LK6QHLW2.js +0 -7
  723. package/dist/esm/chunks/chunk.LYZXJYTW.js +0 -7
  724. package/dist/esm/chunks/chunk.LZ2YQYJA.js +0 -7
  725. package/dist/esm/chunks/chunk.LZ2YQYJA.js.map +0 -7
  726. package/dist/esm/chunks/chunk.MROUV35N.js +0 -7
  727. package/dist/esm/chunks/chunk.NM7FJISF.js +0 -7
  728. package/dist/esm/chunks/chunk.NM7FJISF.js.map +0 -7
  729. package/dist/esm/chunks/chunk.NVR6KN2B.js +0 -7
  730. package/dist/esm/chunks/chunk.O6F4U4VY.js +0 -7
  731. package/dist/esm/chunks/chunk.ONII3BV3.js +0 -7
  732. package/dist/esm/chunks/chunk.OTUEB7SD.js +0 -7
  733. package/dist/esm/chunks/chunk.PMSCH6VK.js +0 -7
  734. package/dist/esm/chunks/chunk.PRJHBUU2.js.map +0 -7
  735. package/dist/esm/chunks/chunk.Q2Q626DG.js +0 -7
  736. package/dist/esm/chunks/chunk.Q4YL47ZL.js +0 -7
  737. package/dist/esm/chunks/chunk.Q4YL47ZL.js.map +0 -7
  738. package/dist/esm/chunks/chunk.Q54DACHS.js +0 -7
  739. package/dist/esm/chunks/chunk.Q54DACHS.js.map +0 -7
  740. package/dist/esm/chunks/chunk.Q74SG6BV.js +0 -7
  741. package/dist/esm/chunks/chunk.QGMWM7IT.js +0 -7
  742. package/dist/esm/chunks/chunk.QGMWM7IT.js.map +0 -7
  743. package/dist/esm/chunks/chunk.RCPUTZON.js +0 -7
  744. package/dist/esm/chunks/chunk.RCPUTZON.js.map +0 -7
  745. package/dist/esm/chunks/chunk.SBKKBQDX.js +0 -7
  746. package/dist/esm/chunks/chunk.SBKKBQDX.js.map +0 -7
  747. package/dist/esm/chunks/chunk.SVVF632P.js +0 -7
  748. package/dist/esm/chunks/chunk.SVVF632P.js.map +0 -7
  749. package/dist/esm/chunks/chunk.T4J66YX5.js +0 -7
  750. package/dist/esm/chunks/chunk.THNCYT3E.js +0 -7
  751. package/dist/esm/chunks/chunk.TSUAFZGY.js +0 -7
  752. package/dist/esm/chunks/chunk.UOEJCU6R.js +0 -7
  753. package/dist/esm/chunks/chunk.VG452D3L.js +0 -7
  754. package/dist/esm/chunks/chunk.VQPSP4HV.js +0 -7
  755. package/dist/esm/chunks/chunk.VQPSP4HV.js.map +0 -7
  756. package/dist/esm/chunks/chunk.W7BP2DDU.js +0 -7
  757. package/dist/esm/chunks/chunk.WARVAVAW.js +0 -7
  758. package/dist/esm/chunks/chunk.WEHQUUXJ.js +0 -7
  759. package/dist/esm/chunks/chunk.WEHQUUXJ.js.map +0 -7
  760. package/dist/esm/chunks/chunk.WJCZJ6XD.js +0 -7
  761. package/dist/esm/chunks/chunk.X3QZY7V4.js +0 -7
  762. package/dist/esm/chunks/chunk.XQLQ73NG.js +0 -7
  763. package/dist/esm/chunks/chunk.Y4ZS3A6F.js +0 -7
  764. package/dist/esm/chunks/chunk.YA5OQD37.js +0 -7
  765. package/dist/esm/chunks/chunk.YMSX4F3J.js +0 -7
  766. package/dist/esm/chunks/chunk.Z37CZMMR.js +0 -7
  767. package/dist/esm/chunks/chunk.ZIRA4PYV.js +0 -7
  768. package/dist/esm/chunks/chunk.ZT7U7WOX.js +0 -7
  769. package/dist/esm/chunks/chunk.ZX3CGET2.js +0 -7
  770. package/dist/esm/chunks/chunk.ZX3CGET2.js.map +0 -7
  771. package/dist/tooltip/forge-tooltip.css +0 -6
  772. package/esm/avatar/avatar-component-delegate.d.ts +0 -16
  773. package/esm/avatar/avatar-component-delegate.js +0 -15
  774. package/esm/badge/badge-adapter.d.ts +0 -17
  775. package/esm/badge/badge-adapter.js +0 -20
  776. package/esm/badge/badge-component-delegate.d.ts +0 -16
  777. package/esm/badge/badge-component-delegate.js +0 -15
  778. package/esm/badge/badge-foundation.d.ts +0 -24
  779. package/esm/badge/badge-foundation.js +0 -55
  780. package/esm/core/base/base-element-internals-component.d.ts +0 -41
  781. package/esm/core/base/base-element-internals-component.js +0 -47
  782. package/esm/tooltip/tooltip-utils.d.ts +0 -13
  783. package/esm/tooltip/tooltip-utils.js +0 -53
  784. package/styles/app-bar/app-bar/_configuration.scss +0 -16
  785. package/styles/avatar/_mixins.scss +0 -46
  786. package/styles/avatar/_variables.scss +0 -16
  787. package/styles/button/_configuration.scss +0 -16
  788. package/styles/button-toggle/button-toggle/_mixins.scss +0 -117
  789. package/styles/button-toggle/button-toggle-group/_mixins.scss +0 -79
  790. package/styles/circular-progress/_configuration.scss +0 -16
  791. package/styles/floating-action-button/_configuration.scss +0 -16
  792. package/styles/icon-button/_configuration.scss +0 -16
  793. package/styles/inline-message/_mixins.scss +0 -82
  794. package/styles/inline-message/_variables.scss +0 -67
  795. package/styles/linear-progress/_configuration.scss +0 -28
  796. package/styles/list/list/_configuration.scss +0 -10
  797. package/styles/list/list-item/_configuration.scss +0 -16
  798. package/styles/radio/radio/_configuration.scss +0 -10
  799. package/styles/split-button/_configuration.scss +0 -12
  800. package/styles/state-layer/_configuration.scss +0 -10
  801. package/styles/switch/_configuration.scss +0 -10
  802. package/styles/tabs/tab/_configuration.scss +0 -27
  803. package/styles/tabs/tab-bar/_configuration.scss +0 -10
  804. package/styles/tooltip/_mixins.scss +0 -98
  805. package/styles/tooltip/_variables.scss +0 -18
  806. package/styles/tooltip/forge-tooltip.scss +0 -12
  807. /package/dist/esm/chunks/{chunk.KWBYYSH3.js.map → chunk.2NGPMBVU.js.map} +0 -0
  808. /package/dist/esm/chunks/{chunk.L45HXBDS.js.map → chunk.5BQT3E7Y.js.map} +0 -0
  809. /package/dist/esm/chunks/{chunk.BAQYPAUM.js.map → chunk.AWEDY45N.js.map} +0 -0
  810. /package/dist/esm/chunks/{chunk.O6MGA3XK.js.map → chunk.GFKYBECY.js.map} +0 -0
  811. /package/dist/esm/chunks/{chunk.MHH26REX.js.map → chunk.IDB4KFSQ.js.map} +0 -0
  812. /package/dist/esm/chunks/{chunk.URKQICJD.js.map → chunk.LDHY3O6H.js.map} +0 -0
  813. /package/dist/esm/chunks/{chunk.KDJZN6EW.js.map → chunk.LEN33O6V.js.map} +0 -0
  814. /package/dist/esm/chunks/{chunk.42YDA5FH.js.map → chunk.LXFL2C62.js.map} +0 -0
  815. /package/dist/esm/chunks/{chunk.BC7WB5RG.js.map → chunk.MMMG4MZ3.js.map} +0 -0
  816. /package/dist/esm/chunks/{chunk.BTWJPE4Y.js.map → chunk.O5HBMTSZ.js.map} +0 -0
  817. /package/dist/esm/chunks/{chunk.MTSWCXTY.js.map → chunk.OD54UG2G.js.map} +0 -0
  818. /package/dist/esm/chunks/{chunk.NBLL7VAA.js.map → chunk.OJFSECZE.js.map} +0 -0
  819. /package/dist/esm/chunks/{chunk.7LOMI6J3.js.map → chunk.OR5GB6X3.js.map} +0 -0
  820. /package/dist/esm/chunks/{chunk.AR6YUJUH.js.map → chunk.RKG66YKS.js.map} +0 -0
  821. /package/dist/esm/chunks/{chunk.HRGTAVNA.js.map → chunk.RKIJTSSL.js.map} +0 -0
  822. /package/dist/esm/chunks/{chunk.WINL2C7Q.js.map → chunk.U6FJJGO3.js.map} +0 -0
  823. /package/dist/esm/chunks/{chunk.5EGEZ4IY.js.map → chunk.VNFATHAQ.js.map} +0 -0
  824. /package/dist/esm/chunks/{chunk.IHIKIZIT.js.map → chunk.VOL4DT5F.js.map} +0 -0
  825. /package/dist/esm/chunks/{chunk.U42I3PGF.js.map → chunk.ZZRAZZ3N.js.map} +0 -0
  826. /package/esm/core/{base/base-label-aware-component.js → mixins/label/with-label-aware.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/paginator/paginator-constants.ts", "../../src/paginator/paginator-foundation.ts", "../../src/paginator/paginator-adapter.ts", "../../src/paginator/paginator.ts", "../../src/paginator/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}paginator`;\n\nconst classes = {\n LABEL: 'forge-paginator__label',\n PAGE_SIZE_OPTIONS: 'forge-paginator__page-size-options',\n RANGE_LABEL: 'forge-paginator__range-label',\n RANGE_LABEL_ALTERNATIVE: 'forge-paginator__range-label--alternative',\n FIRST_PAGE_BUTTON: 'forge-paginator__first-page',\n PREVIOUS_PAGE_BUTTON: 'forge-paginator__previous-page',\n NEXT_PAGE_BUTTON: 'forge-paginator__next-page',\n LAST_PAGE_BUTTON: 'forge-paginator__last-page',\n ROOT: 'forge-paginator',\n ALTERNATIVE: 'forge-paginator--alternative',\n ALIGNMENT_START: 'forge-paginator--alignment-start',\n ALIGNMENT_SPACE_BETWEEN: 'forge-paginator--alignment-center',\n ALIGNMENT_END: 'forge-paginator--alignment-end'\n};\n\nconst selectors = {\n LABEL: `.${classes.LABEL}`,\n PAGE_SIZE_SELECT: `.${classes.PAGE_SIZE_OPTIONS}`,\n RANGE_LABEL: `.${classes.RANGE_LABEL}`,\n FIRST_PAGE_BUTTON: `.${classes.FIRST_PAGE_BUTTON}`,\n FIRST_PAGE_ICON_BUTTON: `.${classes.FIRST_PAGE_BUTTON}`,\n PREVIOUS_PAGE_BUTTON: `.${classes.PREVIOUS_PAGE_BUTTON}`,\n NEXT_PAGE_BUTTON: `.${classes.NEXT_PAGE_BUTTON}`,\n LAST_PAGE_BUTTON: `.${classes.LAST_PAGE_BUTTON}`,\n LAST_PAGE_ICON_BUTTON: `.${classes.LAST_PAGE_BUTTON}`,\n ROOT: `.${classes.ROOT}`,\n RANGE_LABEL_ALTERNATIVE: `.${classes.RANGE_LABEL_ALTERNATIVE}`\n};\n\nconst attributes = {\n PAGE_INDEX: 'page-index',\n PAGE_SIZE: 'page-size',\n OFFSET: 'offset',\n PAGE_SIZE_OPTIONS: 'page-size-options',\n TOTAL: 'total',\n LABEL: 'label',\n FIRST_LAST: 'first-last',\n FIRST: 'first',\n DISABLED: 'disabled',\n ALTERNATIVE: 'alternative',\n ALIGNMENT: 'alignment'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n DEFAULT_PAGE_INDEX: 0,\n DEFAULT_TOTAL: 0,\n DEFAULT_PAGE_SIZE: 25,\n DEFAULT_PAGE_SIZE_OPTIONS: [5, 15, 25, 50, 100]\n};\n\nconst strings = {\n DEFAULT_LABEL: 'Rows per page:',\n RANGE_SEPARATOR_LABEL: 'of',\n FIRST_PAGE: 'first-page',\n PREVIOUS_PAGE: 'previous-page',\n NEXT_PAGE: 'next-page',\n LAST_PAGE: 'last-page',\n PAGE_SIZE: 'page-size'\n};\n\nexport const PAGINATOR_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers,\n strings\n};\n\nexport type PaginatorAlternativeAlignment = 'start' | 'space-between' | 'end';\nexport interface IPaginatorChangeEvent {\n type: string;\n pageSize: number;\n pageIndex: number;\n offset: number;\n}\n\nexport interface IPaginatorRangeState {\n pageSize: number;\n pageIndex: number;\n offset: number;\n pageStart: number;\n pageEnd: number;\n total: number;\n}\n\nexport type PaginatorRangeLabelBuilder = ((state: IPaginatorRangeState) => string) | undefined | null;\n", "import { coerceNumber, ICustomElementFoundation, isArray, isDefined } from '@tylertech/forge-core';\nimport { IPaginatorAdapter } from './paginator-adapter';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS, IPaginatorChangeEvent, PaginatorRangeLabelBuilder, IPaginatorRangeState } from './paginator-constants';\nimport { ISelectOption } from '../select';\n\nexport interface IPaginatorFoundation extends ICustomElementFoundation {\n pageIndex: number;\n pageSize: number;\n offset: number;\n total: number;\n pageSizeOptions: number[] | boolean;\n pageSizeLabel: string;\n rangeLabelCallback: PaginatorRangeLabelBuilder;\n focus(options?: FocusOptions): void;\n}\n\nexport class PaginatorFoundation {\n private _pageIndex = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_INDEX;\n private _pageSize = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE;\n private _offset = 0;\n private _total = PAGINATOR_CONSTANTS.numbers.DEFAULT_TOTAL;\n private _pageSizeOptions: ISelectOption[] = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE_OPTIONS.map(o => ({ label: `${o}`, value: `${o}` }));\n private _label = PAGINATOR_CONSTANTS.strings.DEFAULT_LABEL;\n private _firstLast = false;\n private _first = false;\n private _disabled = false;\n private _alternative: boolean;\n private _alignment: PaginatorAlternativeAlignment = 'space-between';\n private _rangeLabelCallback: PaginatorRangeLabelBuilder;\n\n private _firstPageListener: (evt: Event) => void;\n private _previousPageListener: (evt: Event) => void;\n private _nextPageListener: (evt: Event) => void;\n private _lastPageListener: (evt: Event) => void;\n private _pageSizeListener: (evt: Event) => void;\n\n constructor(private _adapter: IPaginatorAdapter) {\n this._pageSizeListener = (evt: CustomEvent<number>) => this._onPageSizeChanged(evt);\n this._firstPageListener = (evt: Event) => this._onFirstPage(evt);\n this._previousPageListener = (evt: Event) => this._onPreviousPage(evt);\n this._nextPageListener = (evt: Event) => this._onNextPage(evt);\n this._lastPageListener = (evt: Event) => this._onLastPage(evt);\n }\n\n public initialize(): void {\n this._updateRangeLabel();\n this._adapter.setLabel(this._label);\n this._adapter.setPageSizeOptions(this._pageSizeOptions);\n this._adapter.setPageSize(this._pageSize);\n this._attachListeners();\n this._toggleFirstLastButtons();\n this._syncInteractionState();\n }\n\n public disconnect(): void {\n this._detachListeners();\n }\n\n public focus(options?: FocusOptions): void {\n this._adapter.handleFocusMove(null, options);\n }\n\n private _attachListeners(): void {\n this._adapter.attachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.attachFirstPageListener(this._firstPageListener);\n this._adapter.attachPreviousPageListener(this._previousPageListener);\n this._adapter.attachNextPageListener(this._nextPageListener);\n this._adapter.attachLastPageListener(this._lastPageListener);\n }\n\n private _detachListeners(): void {\n this._adapter.detachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.detachFirstPageListener(this._firstPageListener);\n this._adapter.detachPreviousPageListener(this._previousPageListener);\n this._adapter.detachNextPageListener(this._nextPageListener);\n this._adapter.detachLastPageListener(this._lastPageListener);\n }\n\n private _onFirstPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasFirstPage()) {\n return;\n }\n\n const firstPage = 0;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.FIRST_PAGE, { pageIndex: firstPage });\n if (canPage) {\n this._applyPageIndex(firstPage);\n }\n }\n\n private _onPreviousPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasPreviousPage()) {\n return;\n }\n \n const prevPage = this._pageIndex - 1;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.PREVIOUS_PAGE, { pageIndex: prevPage });\n if (canPage) {\n this._applyPageIndex(prevPage);\n }\n }\n\n private _onNextPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasNextPage()) {\n return;\n }\n\n const nextPage = this._pageIndex + 1;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.NEXT_PAGE, { pageIndex: nextPage });\n if (canPage) {\n this._applyPageIndex(nextPage);\n }\n }\n\n private _onLastPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasLastPage()) {\n return;\n }\n\n const lastPage = this._getMaxPages();\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.LAST_PAGE, { pageIndex: lastPage });\n if (canPage) {\n this._applyPageIndex(lastPage);\n }\n }\n\n private _onPageSizeChanged(evt: CustomEvent): void {\n evt.stopPropagation();\n\n const pageSize = Number(evt.detail);\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.PAGE_SIZE, { pageIndex: 0, pageSize });\n if (canPage) {\n this._applyPageIndex(0);\n this._applyPageSize(pageSize);\n } else {\n evt.preventDefault();\n }\n }\n\n private _emitChangeEvent(type: string, { pageSize = this._pageSize, pageIndex = this._pageIndex } = {}): boolean {\n const offset = pageIndex * pageSize;\n const detail: IPaginatorChangeEvent = { type, pageSize, pageIndex, offset };\n return this._adapter.emitHostEvent(PAGINATOR_CONSTANTS.events.CHANGE, detail, true, true);\n }\n\n private _getMaxPages(): number {\n return Math.ceil(this._total / this._pageSize) - 1;\n }\n\n private _updateRangeLabel(): void {\n let rangeLabel: string;\n\n if (typeof this._rangeLabelCallback === 'function') {\n const state: IPaginatorRangeState = {\n pageSize: this._pageSize,\n pageIndex: this._pageIndex,\n offset: this._offset,\n pageStart: (this._pageIndex * this._pageSize) + 1,\n pageEnd: Math.min((this._pageIndex + 1) * this._pageSize, this._total),\n total: this._total\n };\n rangeLabel = this._rangeLabelCallback.call(null, state);\n } else {\n if (this.pageSize > 1) {\n const startIndex = this._pageIndex * this._pageSize;\n const indexStart = Math.floor(startIndex / this._pageSize) || 0;\n const pageStart = (indexStart * this._pageSize) + 1;\n const pageEnd = startIndex < this._total ? Math.min(startIndex + this._pageSize, this._total) : startIndex + this._pageSize;\n rangeLabel = `${pageStart}-${pageEnd} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;\n } else {\n rangeLabel = `${this._pageIndex + 1} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;\n }\n }\n\n this._adapter.setRangeLabel(rangeLabel);\n }\n\n private _syncInteractionState(): void {\n this._adapter.enableFirstPageButton();\n this._adapter.enablePreviousPageButton();\n this._adapter.enableNextPageButton();\n this._adapter.enableLastPageButton();\n\n if (!this._hasFirstPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('first');\n }\n this._adapter.disableFirstPageButton();\n }\n\n if (!this._hasPreviousPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('previous');\n }\n this._adapter.disablePreviousPageButton();\n }\n\n if (!this._hasNextPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('next');\n }\n this._adapter.disableNextPageButton();\n }\n\n if (!this._hasLastPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('last');\n }\n this._adapter.disableLastPageButton();\n }\n }\n\n private _toggleFirstLastButtons(): void {\n this._toggleFirstButton();\n if (this._firstLast) {\n if (!this._adapter.hasLastPageButton()) {\n this._adapter.showLastPageButton();\n }\n } else {\n if (this._adapter.hasLastPageButton()) {\n this._adapter.hideLastPageButton();\n }\n }\n }\n\n private _toggleFirstButton(): void {\n if (this._first || this._firstLast) {\n if (!this._adapter.hasFirstPageButton()) {\n this._adapter.showFirstPageButton();\n }\n } else {\n if (this._adapter.hasFirstPageButton()) {\n this._adapter.hideFirstPageButton();\n }\n }\n }\n\n private _hasFirstPage(): boolean {\n return this._hasPreviousPage();\n }\n\n private _hasPreviousPage(): boolean {\n return this._pageIndex > 0 && this._pageSize > 0;\n }\n\n private _hasNextPage(): boolean {\n const maxPages = this._getMaxPages();\n return this._pageIndex < maxPages && this._pageSize > 0;\n }\n\n private _hasLastPage(): boolean {\n return this._hasNextPage();\n }\n\n private _computePageIndexFromOffset(value: number): void {\n if (value >= this._total) {\n if (this._total >= this._pageSize) {\n value = this._total - this._pageSize;\n } else {\n value = 0;\n }\n }\n const clampedValue = Math.min(Math.max(value, 0), this._total);\n const pageIndex = Math.floor(clampedValue / this._pageSize);\n this._applyPageIndex(pageIndex);\n }\n\n private _computeOffset(): void {\n if (this._total > 0) {\n this._offset = this._pageIndex * this._pageSize;\n }\n }\n\n private _applyPageIndex(value: number): void {\n this._pageIndex = value;\n this._computeOffset();\n this._updateRangeLabel();\n this._syncInteractionState();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_INDEX, this._pageIndex != null, this._pageIndex.toString());\n }\n\n private _applyPageSize(value: number): void {\n this._pageSize = value;\n this._adapter.setPageSize(this._pageSize);\n this._computeOffset();\n this._updateRangeLabel();\n this._syncInteractionState();\n }\n\n private _applyTotal(value: number): void {\n this._total = value;\n this._updateRangeLabel();\n\n if (this._offset > 0 && this._total > 0) {\n this._computePageIndexFromOffset(this._offset);\n }\n\n this._syncInteractionState();\n }\n\n private _applyAlternativeAlignment(): void {\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.ALIGNMENT, this._alignment);\n this._adapter.setAlignment(this._alignment);\n }\n\n private _applyDisabled(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this._adapter.disablePageSizeSelect();\n this._adapter.disableFirstPageButton();\n this._adapter.disablePreviousPageButton();\n this._adapter.disableNextPageButton();\n this._adapter.disableLastPageButton();\n } else {\n this._adapter.enablePageSizeSelect();\n this._syncInteractionState();\n }\n }\n\n public get pageIndex(): number {\n return this._pageIndex;\n }\n public set pageIndex(value: number) {\n if (this._pageIndex !== value) {\n if (isDefined(value)) {\n this._applyPageIndex(value);\n } else {\n this._adapter.removeHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_INDEX);\n }\n }\n }\n\n public get pageSize(): number {\n return this._pageSize;\n }\n public set pageSize(value: number) {\n if (this._pageSize !== value) {\n this._applyPageSize(value);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_SIZE, `${this._pageSize}`);\n }\n }\n\n public get offset(): number {\n return this._offset;\n }\n public set offset(value: number) {\n if (this._offset !== value) {\n this._offset = value;\n this._computePageIndexFromOffset(value);\n }\n }\n\n public get total(): number {\n return this._total;\n }\n public set total(value: number) {\n if (this._total !== value) {\n this._applyTotal(value);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.TOTAL, `${this._total}`);\n }\n }\n\n public get pageSizeOptions(): number[] | boolean {\n return this._pageSizeOptions.map(o => Number(o.value));\n }\n public set pageSizeOptions(options: number[] | boolean) {\n if (isArray(options)) {\n this._pageSizeOptions = (options as number[])\n .map(o => ({ label: o.toString(), value: o.toString() }))\n .sort((a, b) => coerceNumber(a.value) - coerceNumber(b.value));\n this._adapter.setPageSizeOptions(this._pageSizeOptions);\n this._adapter.attachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.setPageSizeVisibility(true);\n if (isDefined(this._pageSize) && this._pageSizeOptions.length && !this._pageSizeOptions.find(o => coerceNumber(o.value) === this._pageSize)) {\n const pageSize = coerceNumber(this._pageSizeOptions[0].value);\n this._applyPageSize(pageSize);\n }\n } else if (options.toString().toLowerCase() === 'false') {\n this._adapter.detachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.setPageSizeVisibility(false);\n }\n }\n\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (this._label !== value) {\n this._label = value;\n this._adapter.setLabel(this._label);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.LABEL, isDefined(this._label) ? this._label.toString() : '');\n }\n }\n\n public get firstLast(): boolean {\n return this._firstLast;\n }\n public set firstLast(value: boolean) {\n value = Boolean(value);\n if (this._firstLast !== value) {\n this._firstLast = value;\n this._toggleFirstLastButtons();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.FIRST_LAST, this._firstLast);\n }\n }\n\n public get first(): boolean {\n return this._first;\n }\n public set first(value: boolean) {\n value = Boolean(value);\n if (this._first !== value) {\n this._first = value;\n this._toggleFirstButton();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.FIRST, this._first);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n value = Boolean(value);\n if (this._disabled !== value) {\n this._applyDisabled(value);\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get alternative(): boolean {\n return this._alternative;\n }\n public set alternative(value: boolean) {\n if (value !== this._alternative) {\n this._alternative = value;\n this._adapter.setAlternative(this._alternative);\n this._applyAlternativeAlignment();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.ALTERNATIVE, this._alternative);\n }\n }\n\n public get alignment(): PaginatorAlternativeAlignment {\n return this._alignment;\n }\n public set alignment(value: PaginatorAlternativeAlignment) {\n if (value !== this._alignment) {\n this._alignment = value;\n this._applyAlternativeAlignment();\n }\n }\n\n public get rangeLabelCallback(): PaginatorRangeLabelBuilder {\n return this._rangeLabelCallback;\n }\n public set rangeLabelCallback(value: PaginatorRangeLabelBuilder) {\n this._rangeLabelCallback = value;\n this._updateRangeLabel();\n }\n}\n", "import { addClass, getShadowElement, removeAllChildren, removeClass, toggleElementPlaceholder, toggleClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IIconButtonComponent } from '../icon-button';\nimport { ISelectComponent, ISelectOption } from '../select';\nimport { IPaginatorComponent } from './paginator';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS } from './paginator-constants';\n\nexport type PaginatorFieldIdentifier = 'first' | 'last' | 'previous' | 'next' | 'page-size';\n\nexport interface IPaginatorAdapter extends IBaseAdapter {\n setLabel(value: string): void;\n setPageSizeOptions(options: ISelectOption[]): void;\n setPageSize(value: number): void;\n setRangeLabel(value: string): void;\n hasFirstPageButton(): boolean;\n showFirstPageButton(): void;\n hideFirstPageButton(): void;\n hasLastPageButton(): boolean;\n showLastPageButton(): void;\n hideLastPageButton(): void;\n attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;\n attachFirstPageListener(listener: (evt: Event) => void): void;\n attachPreviousPageListener(listener: (evt: Event) => void): void;\n attachNextPageListener(listener: (evt: Event) => void): void;\n attachLastPageListener(listener: (evt: Event) => void): void;\n detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;\n detachFirstPageListener(listener: (evt: Event) => void): void;\n detachPreviousPageListener(listener: (evt: Event) => void): void;\n detachNextPageListener(listener: (evt: Event) => void): void;\n detachLastPageListener(listener: (evt: Event) => void): void;\n disableFirstPageButton(): void;\n enableFirstPageButton(): void;\n disablePreviousPageButton(): void;\n enablePreviousPageButton(): void;\n disableNextPageButton(): void;\n enableNextPageButton(): void;\n disablePageSizeSelect(): void;\n enablePageSizeSelect(): void;\n setPageSizeVisibility(visible: boolean): void;\n disableLastPageButton(): void;\n enableLastPageButton(): void;\n setAlternative(alternative: boolean): void;\n setAlignment(alignment: PaginatorAlternativeAlignment): void;\n hasFocus(): boolean;\n handleFocusMove(from?: PaginatorFieldIdentifier | null, options?: FocusOptions): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `PaginatorComponent`.\n */\nexport class PaginatorAdapter extends BaseAdapter<IPaginatorComponent> implements IPaginatorAdapter {\n private _labelElement: HTMLElement;\n private _root: HTMLElement;\n private _pageSizeSelect: ISelectComponent;\n private _rangeLabel: HTMLElement;\n private _rangeLabelAlternative: HTMLElement;\n private _firstPageButton: HTMLButtonElement;\n private _firstPageIconButton: IIconButtonComponent;\n private _firstPagePlaceholder: Comment;\n private _previousPageButton: HTMLButtonElement;\n private _nextPageButton: HTMLButtonElement;\n private _lastPageButton: HTMLButtonElement;\n private _lastPageIconButton: IIconButtonComponent;\n private _lastPagePlaceholder: Comment;\n\n constructor(component: IPaginatorComponent) {\n super(component);\n this._labelElement = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LABEL);\n this._root = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.ROOT);\n this._pageSizeSelect = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.PAGE_SIZE_SELECT) as ISelectComponent;\n this._rangeLabel = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.RANGE_LABEL);\n this._rangeLabelAlternative = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.RANGE_LABEL_ALTERNATIVE);\n this._firstPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_BUTTON) as HTMLButtonElement;\n this._firstPageIconButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON) as IIconButtonComponent;\n this._previousPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.PREVIOUS_PAGE_BUTTON) as HTMLButtonElement;\n this._nextPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.NEXT_PAGE_BUTTON) as HTMLButtonElement;\n this._lastPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_BUTTON) as HTMLButtonElement;\n this._lastPageIconButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON) as IIconButtonComponent;\n }\n\n public setLabel(value: string): void {\n this._labelElement.textContent = value;\n }\n\n public setPageSizeOptions(options: ISelectOption[]): void {\n removeAllChildren(this._pageSizeSelect);\n this._pageSizeSelect.options = options;\n }\n\n public setPageSize(value: number): void {\n this._pageSizeSelect.value = value.toString();\n }\n\n public setRangeLabel(value: string): void {\n this._rangeLabel.innerText = value;\n this._rangeLabelAlternative.innerText = value;\n }\n\n public hasFirstPageButton(): boolean {\n return !!getShadowElement(this._component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON);\n }\n\n public showFirstPageButton(): void {\n this._firstPagePlaceholder = toggleElementPlaceholder(\n this._component,\n true,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON,\n this._firstPageIconButton,\n this._firstPagePlaceholder\n );\n }\n\n public hideFirstPageButton(): void {\n this._firstPagePlaceholder = toggleElementPlaceholder(\n this._component,\n false,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON,\n this._firstPageIconButton,\n this._firstPagePlaceholder\n );\n }\n\n public hasLastPageButton(): boolean {\n return !!getShadowElement(this._component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON);\n }\n\n public showLastPageButton(): void {\n this._lastPagePlaceholder = toggleElementPlaceholder(\n this._component,\n true,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON,\n this._lastPageIconButton,\n this._lastPagePlaceholder\n );\n }\n\n public hideLastPageButton(): void {\n this._lastPagePlaceholder = toggleElementPlaceholder(\n this._component,\n false,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON,\n this._lastPageIconButton,\n this._lastPagePlaceholder\n );\n }\n\n public attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void {\n this._pageSizeSelect.addEventListener('change', listener);\n }\n\n public attachFirstPageListener(listener: (evt: Event) => void): void {\n this._firstPageButton.addEventListener('click', listener);\n }\n\n public attachPreviousPageListener(listener: (evt: Event) => void): void {\n this._previousPageButton.addEventListener('click', listener);\n }\n\n public attachNextPageListener(listener: (evt: Event) => void): void {\n this._nextPageButton.addEventListener('click', listener);\n }\n\n public attachLastPageListener(listener: (evt: Event) => void): void {\n this._lastPageButton.addEventListener('click', listener);\n }\n\n public detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void {\n this._pageSizeSelect.removeEventListener('change', listener);\n }\n\n public detachFirstPageListener(listener: (evt: Event) => void): void {\n this._firstPageButton.removeEventListener('click', listener);\n }\n\n public detachPreviousPageListener(listener: (evt: Event) => void): void {\n this._previousPageButton.removeEventListener('click', listener);\n }\n\n public detachNextPageListener(listener: (evt: Event) => void): void {\n this._nextPageButton.removeEventListener('click', listener);\n }\n\n public detachLastPageListener(listener: (evt: Event) => void): void {\n this._lastPageButton.removeEventListener('click', listener);\n }\n\n public disableFirstPageButton(): void {\n this._firstPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableFirstPageButton(): void {\n this._firstPageButton.removeAttribute('disabled');\n }\n\n public disablePreviousPageButton(): void {\n this._previousPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enablePreviousPageButton(): void {\n this._previousPageButton.removeAttribute('disabled');\n }\n\n public disableNextPageButton(): void {\n this._nextPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableNextPageButton(): void {\n this._nextPageButton.removeAttribute('disabled');\n }\n\n public disablePageSizeSelect(): void {\n this._pageSizeSelect.setAttribute('disabled', 'disabled');\n }\n\n public enablePageSizeSelect(): void {\n this._pageSizeSelect.removeAttribute('disabled');\n }\n\n public setPageSizeVisibility(visible: boolean): void {\n if (visible) {\n this._pageSizeSelect.style.removeProperty('display');\n } else {\n this._pageSizeSelect.style.display = 'none';\n }\n }\n\n public disableLastPageButton(): void {\n this._lastPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableLastPageButton(): void {\n this._lastPageButton.removeAttribute('disabled');\n }\n\n public setAlternative(alternative: boolean): void {\n toggleClass(this._root, alternative, PAGINATOR_CONSTANTS.classes.ALTERNATIVE);\n }\n\n public setAlignment(alignment: PaginatorAlternativeAlignment): void {\n removeClass([\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_SPACE_BETWEEN,\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_START,\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_END\n ], this._root);\n\n switch (alignment) {\n case 'start':\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_START, this._root);\n break;\n case 'end':\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_END, this._root);\n break;\n case 'space-between':\n default:\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_SPACE_BETWEEN, this._root);\n break;\n }\n }\n\n public hasFocus(): boolean {\n return this._component.matches(':focus');\n }\n\n public handleFocusMove(from?: PaginatorFieldIdentifier, options?: FocusOptions): void {\n if (from && !this.hasFocus()) {\n return; // We can only move focus elsewhere within the element if the element already contains focus\n }\n\n switch (from) {\n case 'first':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._previousPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'last':\n this._tryFocus([\n this._previousPageButton,\n this._firstPageButton,\n this._nextPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'previous':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._firstPageButton,\n this._pageSizeSelect\n ]);\n break;\n case 'next':\n this._tryFocus([\n this._previousPageButton,\n this._firstPageButton,\n this._lastPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'page-size':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._firstPageButton,\n this._previousPageButton\n ], options);\n break;\n default:\n this._tryFocus([\n this._firstPageButton,\n this._previousPageButton,\n this._nextPageButton,\n this._lastPageButton,\n this._pageSizeSelect\n ], options);\n break;\n }\n }\n\n private _tryFocus(elements: Array<HTMLButtonElement | ISelectComponent>, options?: FocusOptions): void {\n const preventScroll = typeof options?.preventScroll === 'boolean' ? options.preventScroll : true;\n for (const el of elements) {\n if (el && el.isConnected && !el.disabled) {\n el.focus({ ...options, preventScroll });\n return;\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons/standard';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS, IPaginatorChangeEvent, PaginatorRangeLabelBuilder } from './paginator-constants';\nimport { PaginatorFoundation } from './paginator-foundation';\nimport { PaginatorAdapter } from './paginator-adapter';\nimport { IconButtonComponent } from '../icon-button';\nimport { SelectComponent } from '../select';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { TooltipComponent } from '../tooltip';\n\nconst template = '<template><div class=\\\"forge-paginator\\\" part=\\\"root\\\"><div class=\\\"forge-paginator__container\\\" part=\\\"container\\\"><div class=\\\"forge-paginator__label\\\" part=\\\"label\\\"></div><forge-select class=\\\"forge-paginator__page-size-options\\\" aria-label=\\\"Choose page size\\\" density=\\\"dense\\\" part=\\\"page-size-options\\\"></forge-select><div class=\\\"forge-paginator__range-label\\\" part=\\\"range-label\\\"></div><forge-icon-button class=\\\"forge-paginator__first-page\\\" part=\\\"first-page-button\\\" aria-label=\\\"First Page\\\" part=\\\"first-page-button-element\\\"><forge-icon name=\\\"first_page\\\" part=\\\"first-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip position=\\\"top\\\">Go to the first page</forge-tooltip><forge-icon-button class=\\\"forge-paginator__previous-page\\\" part=\\\"previous-page-button\\\" aria-label=\\\"Previous Page\\\" part=\\\"previous-page-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-page-button-icon\\\"></forge-icon></forge-icon-button><forge-tooltip position=\\\"top\\\">Go to the previous page</forge-tooltip><div class=\\\"forge-paginator__range-label--alternative\\\" part=\\\"range-label-alternative\\\"></div><forge-icon-button class=\\\"forge-paginator__next-page\\\" part=\\\"next-page-button\\\" aria-label=\\\"Next Page\\\" part=\\\"next-page-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip position=\\\"top\\\">Go to the next page</forge-tooltip><forge-icon-button class=\\\"forge-paginator__last-page\\\" part=\\\"last-page-button\\\" aria-label=\\\"Last Page\\\" part=\\\"last-page-button-element\\\"><forge-icon name=\\\"last_page\\\" part=\\\"last-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip position=\\\"top\\\">Go to the last page</forge-tooltip></div></div></template>';\nconst styles = '.forge-paginator{display:inline-block}.forge-paginator--alternative{display:-webkit-box;display:flex}.forge-paginator--alternative .forge-paginator__label,.forge-paginator--alternative .forge-paginator__page-size-options,.forge-paginator--alternative .forge-paginator__range-label{display:none}.forge-paginator--alternative .forge-paginator__range-label--alternative{display:inline-block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);margin:0 12px}.forge-paginator__range-label--alternative{display:none}.forge-paginator__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-paginator__label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:16px}.forge-paginator__page-size-options{margin-right:16px}.forge-paginator__range-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:8px}.forge-paginator__first-page,.forge-paginator__last-page,.forge-paginator__next-page,.forge-paginator__previous-page{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}:host{display:inline-block}:host([hidden]){display:none}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__container{-webkit-box-pack:center;justify-content:center}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__range-label--alternative{margin:0 auto}:host([alternative]) .forge-paginator--alignment-start .forge-paginator__container{-webkit-box-pack:start;justify-content:flex-start}:host([alternative]) .forge-paginator--alignment-end .forge-paginator__container{-webkit-box-pack:end;justify-content:flex-end}:host([alternative]) .forge-paginator .forge-paginator__container{-webkit-box-flex:1;flex:1}';\n\nexport interface IPaginatorComponent extends IBaseComponent {\n pageIndex: number;\n pageSize: number;\n offset: number;\n total: number;\n pageSizeOptions: number[] | boolean;\n label: string;\n firstLast: boolean;\n first: boolean;\n disabled: boolean;\n alternative: boolean;\n alignment: PaginatorAlternativeAlignment;\n rangeLabelCallback: PaginatorRangeLabelBuilder;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-paginator': IPaginatorComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-paginator-change': CustomEvent<IPaginatorChangeEvent>;\n }\n}\n\n/**\n * @tag forge-paginator\n */\n@CustomElement({\n name: PAGINATOR_CONSTANTS.elementName,\n dependencies: [\n IconButtonComponent,\n SelectComponent,\n IconComponent,\n TooltipComponent\n ]\n})\nexport class PaginatorComponent extends BaseComponent implements IPaginatorComponent {\n public static get observedAttributes(): string[] {\n return [\n PAGINATOR_CONSTANTS.attributes.PAGE_INDEX,\n PAGINATOR_CONSTANTS.attributes.PAGE_SIZE,\n PAGINATOR_CONSTANTS.attributes.OFFSET,\n PAGINATOR_CONSTANTS.attributes.TOTAL,\n PAGINATOR_CONSTANTS.attributes.PAGE_SIZE_OPTIONS,\n PAGINATOR_CONSTANTS.attributes.LABEL,\n PAGINATOR_CONSTANTS.attributes.FIRST_LAST,\n PAGINATOR_CONSTANTS.attributes.FIRST,\n PAGINATOR_CONSTANTS.attributes.DISABLED,\n PAGINATOR_CONSTANTS.attributes.ALTERNATIVE,\n PAGINATOR_CONSTANTS.attributes.ALIGNMENT\n ];\n }\n\n private _foundation: PaginatorFoundation;\n\n constructor() {\n super();\n IconRegistry.define([\n tylIconFirstPage,\n tylIconKeyboardArrowLeft,\n tylIconKeyboardArrowRight,\n tylIconLastPage\n ]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new PaginatorFoundation(new PaginatorAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case PAGINATOR_CONSTANTS.attributes.PAGE_INDEX:\n this.pageIndex = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_INDEX;\n break;\n case PAGINATOR_CONSTANTS.attributes.PAGE_SIZE:\n this.pageSize = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE;\n break;\n case PAGINATOR_CONSTANTS.attributes.OFFSET:\n this.offset = Number(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.TOTAL:\n this.total = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_TOTAL;\n break;\n case PAGINATOR_CONSTANTS.attributes.PAGE_SIZE_OPTIONS:\n this.pageSizeOptions = newValue as any;\n break;\n case PAGINATOR_CONSTANTS.attributes.LABEL:\n this.label = newValue;\n break;\n case PAGINATOR_CONSTANTS.attributes.FIRST_LAST:\n this.firstLast = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.FIRST:\n this.first = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.ALTERNATIVE:\n this.alternative = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.ALIGNMENT:\n this.alignment = newValue as PaginatorAlternativeAlignment;\n break;\n }\n }\n\n /** The zero-based page index. Default is 0. */\n @FoundationProperty()\n public declare pageIndex: number;\n\n /** Number of items to display on a page. By default set to 25. */\n @FoundationProperty()\n public declare pageSize: number;\n\n /** Sets page index by providing the number of items to skip. The getter for this property returns the number of items to skip. */\n @FoundationProperty()\n public declare offset: number;\n\n /** The total number of items to be paginated. Default is 0. */\n @FoundationProperty()\n public declare total: number;\n\n /** The set of provided page size options to display to the user. */\n @FoundationProperty()\n public declare pageSizeOptions: number[] | boolean;\n\n /** A label for the paginator. Default is \"Rows per page:\". */\n @FoundationProperty()\n public declare label: string;\n\n /** Whether to show the first page and last page buttons. Default is false. */\n @FoundationProperty()\n public declare firstLast: boolean;\n\n /** Whether to show the first page button. Default is false. */\n @FoundationProperty()\n public declare first: boolean;\n\n /** Whether the paginator is disabled. Default is false. */\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare alternative: boolean;\n\n @FoundationProperty()\n public declare alignment: PaginatorAlternativeAlignment;\n\n @FoundationProperty()\n public declare rangeLabelCallback: PaginatorRangeLabelBuilder;\n\n public override focus(options?: FocusOptions): void {\n this._foundation.focus(options);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { PaginatorComponent } from './paginator';\n\nexport * from './paginator-adapter';\nexport * from './paginator-constants';\nexport * from './paginator-foundation';\nexport * from './paginator';\n\nexport function definePaginatorComponent(): void {\n defineCustomElement(PaginatorComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}paginator`;\n\nconst classes = {\n LABEL: 'forge-paginator__label',\n PAGE_SIZE_OPTIONS: 'forge-paginator__page-size-options',\n RANGE_LABEL: 'forge-paginator__range-label',\n RANGE_LABEL_ALTERNATIVE: 'forge-paginator__range-label--alternative',\n FIRST_PAGE_BUTTON: 'forge-paginator__first-page',\n PREVIOUS_PAGE_BUTTON: 'forge-paginator__previous-page',\n NEXT_PAGE_BUTTON: 'forge-paginator__next-page',\n LAST_PAGE_BUTTON: 'forge-paginator__last-page',\n ROOT: 'forge-paginator',\n ALTERNATIVE: 'forge-paginator--alternative',\n ALIGNMENT_START: 'forge-paginator--alignment-start',\n ALIGNMENT_SPACE_BETWEEN: 'forge-paginator--alignment-center',\n ALIGNMENT_END: 'forge-paginator--alignment-end'\n};\n\nconst selectors = {\n LABEL: `.${classes.LABEL}`,\n PAGE_SIZE_SELECT: `.${classes.PAGE_SIZE_OPTIONS}`,\n RANGE_LABEL: `.${classes.RANGE_LABEL}`,\n FIRST_PAGE_BUTTON: `.${classes.FIRST_PAGE_BUTTON}`,\n FIRST_PAGE_ICON_BUTTON: `.${classes.FIRST_PAGE_BUTTON}`,\n PREVIOUS_PAGE_BUTTON: `.${classes.PREVIOUS_PAGE_BUTTON}`,\n NEXT_PAGE_BUTTON: `.${classes.NEXT_PAGE_BUTTON}`,\n LAST_PAGE_BUTTON: `.${classes.LAST_PAGE_BUTTON}`,\n LAST_PAGE_ICON_BUTTON: `.${classes.LAST_PAGE_BUTTON}`,\n ROOT: `.${classes.ROOT}`,\n RANGE_LABEL_ALTERNATIVE: `.${classes.RANGE_LABEL_ALTERNATIVE}`\n};\n\nconst attributes = {\n PAGE_INDEX: 'page-index',\n PAGE_SIZE: 'page-size',\n OFFSET: 'offset',\n PAGE_SIZE_OPTIONS: 'page-size-options',\n TOTAL: 'total',\n LABEL: 'label',\n FIRST_LAST: 'first-last',\n FIRST: 'first',\n DISABLED: 'disabled',\n ALTERNATIVE: 'alternative',\n ALIGNMENT: 'alignment'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n DEFAULT_PAGE_INDEX: 0,\n DEFAULT_TOTAL: 0,\n DEFAULT_PAGE_SIZE: 25,\n DEFAULT_PAGE_SIZE_OPTIONS: [5, 15, 25, 50, 100]\n};\n\nconst strings = {\n DEFAULT_LABEL: 'Rows per page:',\n RANGE_SEPARATOR_LABEL: 'of',\n FIRST_PAGE: 'first-page',\n PREVIOUS_PAGE: 'previous-page',\n NEXT_PAGE: 'next-page',\n LAST_PAGE: 'last-page',\n PAGE_SIZE: 'page-size'\n};\n\nexport const PAGINATOR_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers,\n strings\n};\n\nexport type PaginatorAlternativeAlignment = 'start' | 'space-between' | 'end';\nexport interface IPaginatorChangeEvent {\n type: string;\n pageSize: number;\n pageIndex: number;\n offset: number;\n}\n\nexport interface IPaginatorRangeState {\n pageSize: number;\n pageIndex: number;\n offset: number;\n pageStart: number;\n pageEnd: number;\n total: number;\n}\n\nexport type PaginatorRangeLabelBuilder = ((state: IPaginatorRangeState) => string) | undefined | null;\n", "import { coerceNumber, ICustomElementFoundation, isArray, isDefined } from '@tylertech/forge-core';\nimport { IPaginatorAdapter } from './paginator-adapter';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS, IPaginatorChangeEvent, PaginatorRangeLabelBuilder, IPaginatorRangeState } from './paginator-constants';\nimport { ISelectOption } from '../select';\n\nexport interface IPaginatorFoundation extends ICustomElementFoundation {\n pageIndex: number;\n pageSize: number;\n offset: number;\n total: number;\n pageSizeOptions: number[] | boolean;\n pageSizeLabel: string;\n rangeLabelCallback: PaginatorRangeLabelBuilder;\n focus(options?: FocusOptions): void;\n}\n\nexport class PaginatorFoundation {\n private _pageIndex = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_INDEX;\n private _pageSize = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE;\n private _offset = 0;\n private _total = PAGINATOR_CONSTANTS.numbers.DEFAULT_TOTAL;\n private _pageSizeOptions: ISelectOption[] = PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE_OPTIONS.map(o => ({ label: `${o}`, value: `${o}` }));\n private _label = PAGINATOR_CONSTANTS.strings.DEFAULT_LABEL;\n private _firstLast = false;\n private _first = false;\n private _disabled = false;\n private _alternative: boolean;\n private _alignment: PaginatorAlternativeAlignment = 'space-between';\n private _rangeLabelCallback: PaginatorRangeLabelBuilder;\n\n private _firstPageListener: (evt: Event) => void;\n private _previousPageListener: (evt: Event) => void;\n private _nextPageListener: (evt: Event) => void;\n private _lastPageListener: (evt: Event) => void;\n private _pageSizeListener: (evt: Event) => void;\n\n constructor(private _adapter: IPaginatorAdapter) {\n this._pageSizeListener = (evt: CustomEvent<number>) => this._onPageSizeChanged(evt);\n this._firstPageListener = (evt: Event) => this._onFirstPage(evt);\n this._previousPageListener = (evt: Event) => this._onPreviousPage(evt);\n this._nextPageListener = (evt: Event) => this._onNextPage(evt);\n this._lastPageListener = (evt: Event) => this._onLastPage(evt);\n }\n\n public initialize(): void {\n this._updateRangeLabel();\n this._adapter.setLabel(this._label);\n this._adapter.setPageSizeOptions(this._pageSizeOptions);\n this._adapter.setPageSize(this._pageSize);\n this._attachListeners();\n this._toggleFirstLastButtons();\n this._syncInteractionState();\n }\n\n public disconnect(): void {\n this._detachListeners();\n }\n\n public focus(options?: FocusOptions): void {\n this._adapter.handleFocusMove(null, options);\n }\n\n private _attachListeners(): void {\n this._adapter.attachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.attachFirstPageListener(this._firstPageListener);\n this._adapter.attachPreviousPageListener(this._previousPageListener);\n this._adapter.attachNextPageListener(this._nextPageListener);\n this._adapter.attachLastPageListener(this._lastPageListener);\n }\n\n private _detachListeners(): void {\n this._adapter.detachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.detachFirstPageListener(this._firstPageListener);\n this._adapter.detachPreviousPageListener(this._previousPageListener);\n this._adapter.detachNextPageListener(this._nextPageListener);\n this._adapter.detachLastPageListener(this._lastPageListener);\n }\n\n private _onFirstPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasFirstPage()) {\n return;\n }\n\n const firstPage = 0;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.FIRST_PAGE, { pageIndex: firstPage });\n if (canPage) {\n this._applyPageIndex(firstPage);\n }\n }\n\n private _onPreviousPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasPreviousPage()) {\n return;\n }\n \n const prevPage = this._pageIndex - 1;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.PREVIOUS_PAGE, { pageIndex: prevPage });\n if (canPage) {\n this._applyPageIndex(prevPage);\n }\n }\n\n private _onNextPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasNextPage()) {\n return;\n }\n\n const nextPage = this._pageIndex + 1;\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.NEXT_PAGE, { pageIndex: nextPage });\n if (canPage) {\n this._applyPageIndex(nextPage);\n }\n }\n\n private _onLastPage(evt: Event): void {\n evt.stopPropagation();\n\n if (!this._hasLastPage()) {\n return;\n }\n\n const lastPage = this._getMaxPages();\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.LAST_PAGE, { pageIndex: lastPage });\n if (canPage) {\n this._applyPageIndex(lastPage);\n }\n }\n\n private _onPageSizeChanged(evt: CustomEvent): void {\n evt.stopPropagation();\n\n const pageSize = Number(evt.detail);\n const canPage = this._emitChangeEvent(PAGINATOR_CONSTANTS.strings.PAGE_SIZE, { pageIndex: 0, pageSize });\n if (canPage) {\n this._applyPageIndex(0);\n this._applyPageSize(pageSize);\n } else {\n evt.preventDefault();\n }\n }\n\n private _emitChangeEvent(type: string, { pageSize = this._pageSize, pageIndex = this._pageIndex } = {}): boolean {\n const offset = pageIndex * pageSize;\n const detail: IPaginatorChangeEvent = { type, pageSize, pageIndex, offset };\n return this._adapter.emitHostEvent(PAGINATOR_CONSTANTS.events.CHANGE, detail, true, true);\n }\n\n private _getMaxPages(): number {\n return Math.ceil(this._total / this._pageSize) - 1;\n }\n\n private _updateRangeLabel(): void {\n let rangeLabel: string;\n\n if (typeof this._rangeLabelCallback === 'function') {\n const state: IPaginatorRangeState = {\n pageSize: this._pageSize,\n pageIndex: this._pageIndex,\n offset: this._offset,\n pageStart: (this._pageIndex * this._pageSize) + 1,\n pageEnd: Math.min((this._pageIndex + 1) * this._pageSize, this._total),\n total: this._total\n };\n rangeLabel = this._rangeLabelCallback.call(null, state);\n } else {\n if (this.pageSize > 1) {\n const startIndex = this._pageIndex * this._pageSize;\n const indexStart = Math.floor(startIndex / this._pageSize) || 0;\n const pageStart = (indexStart * this._pageSize) + 1;\n const pageEnd = startIndex < this._total ? Math.min(startIndex + this._pageSize, this._total) : startIndex + this._pageSize;\n rangeLabel = `${pageStart}-${pageEnd} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;\n } else {\n rangeLabel = `${this._pageIndex + 1} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;\n }\n }\n\n this._adapter.setRangeLabel(rangeLabel);\n }\n\n private _syncInteractionState(): void {\n this._adapter.enableFirstPageButton();\n this._adapter.enablePreviousPageButton();\n this._adapter.enableNextPageButton();\n this._adapter.enableLastPageButton();\n\n if (!this._hasFirstPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('first');\n }\n this._adapter.disableFirstPageButton();\n }\n\n if (!this._hasPreviousPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('previous');\n }\n this._adapter.disablePreviousPageButton();\n }\n\n if (!this._hasNextPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('next');\n }\n this._adapter.disableNextPageButton();\n }\n\n if (!this._hasLastPage()) {\n if (this._adapter.hasFocus()) {\n this._adapter.handleFocusMove('last');\n }\n this._adapter.disableLastPageButton();\n }\n }\n\n private _toggleFirstLastButtons(): void {\n this._toggleFirstButton();\n if (this._firstLast) {\n if (!this._adapter.hasLastPageButton()) {\n this._adapter.showLastPageButton();\n }\n } else {\n if (this._adapter.hasLastPageButton()) {\n this._adapter.hideLastPageButton();\n }\n }\n }\n\n private _toggleFirstButton(): void {\n if (this._first || this._firstLast) {\n if (!this._adapter.hasFirstPageButton()) {\n this._adapter.showFirstPageButton();\n }\n } else {\n if (this._adapter.hasFirstPageButton()) {\n this._adapter.hideFirstPageButton();\n }\n }\n }\n\n private _hasFirstPage(): boolean {\n return this._hasPreviousPage();\n }\n\n private _hasPreviousPage(): boolean {\n return this._pageIndex > 0 && this._pageSize > 0;\n }\n\n private _hasNextPage(): boolean {\n const maxPages = this._getMaxPages();\n return this._pageIndex < maxPages && this._pageSize > 0;\n }\n\n private _hasLastPage(): boolean {\n return this._hasNextPage();\n }\n\n private _computePageIndexFromOffset(value: number): void {\n if (value >= this._total) {\n if (this._total >= this._pageSize) {\n value = this._total - this._pageSize;\n } else {\n value = 0;\n }\n }\n const clampedValue = Math.min(Math.max(value, 0), this._total);\n const pageIndex = Math.floor(clampedValue / this._pageSize);\n this._applyPageIndex(pageIndex);\n }\n\n private _computeOffset(): void {\n if (this._total > 0) {\n this._offset = this._pageIndex * this._pageSize;\n }\n }\n\n private _applyPageIndex(value: number): void {\n this._pageIndex = value;\n this._computeOffset();\n this._updateRangeLabel();\n this._syncInteractionState();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_INDEX, this._pageIndex != null, this._pageIndex.toString());\n }\n\n private _applyPageSize(value: number): void {\n this._pageSize = value;\n this._adapter.setPageSize(this._pageSize);\n this._computeOffset();\n this._updateRangeLabel();\n this._syncInteractionState();\n }\n\n private _applyTotal(value: number): void {\n this._total = value;\n this._updateRangeLabel();\n\n if (this._offset > 0 && this._total > 0) {\n this._computePageIndexFromOffset(this._offset);\n }\n\n this._syncInteractionState();\n }\n\n private _applyAlternativeAlignment(): void {\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.ALIGNMENT, this._alignment);\n this._adapter.setAlignment(this._alignment);\n }\n\n private _applyDisabled(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this._adapter.disablePageSizeSelect();\n this._adapter.disableFirstPageButton();\n this._adapter.disablePreviousPageButton();\n this._adapter.disableNextPageButton();\n this._adapter.disableLastPageButton();\n } else {\n this._adapter.enablePageSizeSelect();\n this._syncInteractionState();\n }\n }\n\n public get pageIndex(): number {\n return this._pageIndex;\n }\n public set pageIndex(value: number) {\n if (this._pageIndex !== value) {\n if (isDefined(value)) {\n this._applyPageIndex(value);\n } else {\n this._adapter.removeHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_INDEX);\n }\n }\n }\n\n public get pageSize(): number {\n return this._pageSize;\n }\n public set pageSize(value: number) {\n if (this._pageSize !== value) {\n this._applyPageSize(value);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.PAGE_SIZE, `${this._pageSize}`);\n }\n }\n\n public get offset(): number {\n return this._offset;\n }\n public set offset(value: number) {\n if (this._offset !== value) {\n this._offset = value;\n this._computePageIndexFromOffset(value);\n }\n }\n\n public get total(): number {\n return this._total;\n }\n public set total(value: number) {\n if (this._total !== value) {\n this._applyTotal(value);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.TOTAL, `${this._total}`);\n }\n }\n\n public get pageSizeOptions(): number[] | boolean {\n return this._pageSizeOptions.map(o => Number(o.value));\n }\n public set pageSizeOptions(options: number[] | boolean) {\n if (isArray(options)) {\n this._pageSizeOptions = (options as number[])\n .map(o => ({ label: o.toString(), value: o.toString() }))\n .sort((a, b) => coerceNumber(a.value) - coerceNumber(b.value));\n this._adapter.setPageSizeOptions(this._pageSizeOptions);\n this._adapter.attachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.setPageSizeVisibility(true);\n if (isDefined(this._pageSize) && this._pageSizeOptions.length && !this._pageSizeOptions.find(o => coerceNumber(o.value) === this._pageSize)) {\n const pageSize = coerceNumber(this._pageSizeOptions[0].value);\n this._applyPageSize(pageSize);\n }\n } else if (options.toString().toLowerCase() === 'false') {\n this._adapter.detachPageSizeChangeListener(this._pageSizeListener);\n this._adapter.setPageSizeVisibility(false);\n }\n }\n\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (this._label !== value) {\n this._label = value;\n this._adapter.setLabel(this._label);\n this._adapter.setHostAttribute(PAGINATOR_CONSTANTS.attributes.LABEL, isDefined(this._label) ? this._label.toString() : '');\n }\n }\n\n public get firstLast(): boolean {\n return this._firstLast;\n }\n public set firstLast(value: boolean) {\n value = Boolean(value);\n if (this._firstLast !== value) {\n this._firstLast = value;\n this._toggleFirstLastButtons();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.FIRST_LAST, this._firstLast);\n }\n }\n\n public get first(): boolean {\n return this._first;\n }\n public set first(value: boolean) {\n value = Boolean(value);\n if (this._first !== value) {\n this._first = value;\n this._toggleFirstButton();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.FIRST, this._first);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n value = Boolean(value);\n if (this._disabled !== value) {\n this._applyDisabled(value);\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get alternative(): boolean {\n return this._alternative;\n }\n public set alternative(value: boolean) {\n if (value !== this._alternative) {\n this._alternative = value;\n this._adapter.setAlternative(this._alternative);\n this._applyAlternativeAlignment();\n this._adapter.toggleHostAttribute(PAGINATOR_CONSTANTS.attributes.ALTERNATIVE, this._alternative);\n }\n }\n\n public get alignment(): PaginatorAlternativeAlignment {\n return this._alignment;\n }\n public set alignment(value: PaginatorAlternativeAlignment) {\n if (value !== this._alignment) {\n this._alignment = value;\n this._applyAlternativeAlignment();\n }\n }\n\n public get rangeLabelCallback(): PaginatorRangeLabelBuilder {\n return this._rangeLabelCallback;\n }\n public set rangeLabelCallback(value: PaginatorRangeLabelBuilder) {\n this._rangeLabelCallback = value;\n this._updateRangeLabel();\n }\n}\n", "import { addClass, getShadowElement, removeAllChildren, removeClass, toggleElementPlaceholder, toggleClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IIconButtonComponent } from '../icon-button';\nimport { ISelectComponent, ISelectOption } from '../select';\nimport { IPaginatorComponent } from './paginator';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS } from './paginator-constants';\n\nexport type PaginatorFieldIdentifier = 'first' | 'last' | 'previous' | 'next' | 'page-size';\n\nexport interface IPaginatorAdapter extends IBaseAdapter {\n setLabel(value: string): void;\n setPageSizeOptions(options: ISelectOption[]): void;\n setPageSize(value: number): void;\n setRangeLabel(value: string): void;\n hasFirstPageButton(): boolean;\n showFirstPageButton(): void;\n hideFirstPageButton(): void;\n hasLastPageButton(): boolean;\n showLastPageButton(): void;\n hideLastPageButton(): void;\n attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;\n attachFirstPageListener(listener: (evt: Event) => void): void;\n attachPreviousPageListener(listener: (evt: Event) => void): void;\n attachNextPageListener(listener: (evt: Event) => void): void;\n attachLastPageListener(listener: (evt: Event) => void): void;\n detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;\n detachFirstPageListener(listener: (evt: Event) => void): void;\n detachPreviousPageListener(listener: (evt: Event) => void): void;\n detachNextPageListener(listener: (evt: Event) => void): void;\n detachLastPageListener(listener: (evt: Event) => void): void;\n disableFirstPageButton(): void;\n enableFirstPageButton(): void;\n disablePreviousPageButton(): void;\n enablePreviousPageButton(): void;\n disableNextPageButton(): void;\n enableNextPageButton(): void;\n disablePageSizeSelect(): void;\n enablePageSizeSelect(): void;\n setPageSizeVisibility(visible: boolean): void;\n disableLastPageButton(): void;\n enableLastPageButton(): void;\n setAlternative(alternative: boolean): void;\n setAlignment(alignment: PaginatorAlternativeAlignment): void;\n hasFocus(): boolean;\n handleFocusMove(from?: PaginatorFieldIdentifier | null, options?: FocusOptions): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `PaginatorComponent`.\n */\nexport class PaginatorAdapter extends BaseAdapter<IPaginatorComponent> implements IPaginatorAdapter {\n private _labelElement: HTMLElement;\n private _root: HTMLElement;\n private _pageSizeSelect: ISelectComponent;\n private _rangeLabel: HTMLElement;\n private _rangeLabelAlternative: HTMLElement;\n private _firstPageButton: HTMLButtonElement;\n private _firstPageIconButton: IIconButtonComponent;\n private _firstPagePlaceholder: Comment;\n private _previousPageButton: HTMLButtonElement;\n private _nextPageButton: HTMLButtonElement;\n private _lastPageButton: HTMLButtonElement;\n private _lastPageIconButton: IIconButtonComponent;\n private _lastPagePlaceholder: Comment;\n\n constructor(component: IPaginatorComponent) {\n super(component);\n this._labelElement = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LABEL);\n this._root = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.ROOT);\n this._pageSizeSelect = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.PAGE_SIZE_SELECT) as ISelectComponent;\n this._rangeLabel = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.RANGE_LABEL);\n this._rangeLabelAlternative = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.RANGE_LABEL_ALTERNATIVE);\n this._firstPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_BUTTON) as HTMLButtonElement;\n this._firstPageIconButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON) as IIconButtonComponent;\n this._previousPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.PREVIOUS_PAGE_BUTTON) as HTMLButtonElement;\n this._nextPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.NEXT_PAGE_BUTTON) as HTMLButtonElement;\n this._lastPageButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_BUTTON) as HTMLButtonElement;\n this._lastPageIconButton = getShadowElement(component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON) as IIconButtonComponent;\n }\n\n public setLabel(value: string): void {\n this._labelElement.textContent = value;\n }\n\n public setPageSizeOptions(options: ISelectOption[]): void {\n removeAllChildren(this._pageSizeSelect);\n this._pageSizeSelect.options = options;\n }\n\n public setPageSize(value: number): void {\n this._pageSizeSelect.value = value.toString();\n }\n\n public setRangeLabel(value: string): void {\n this._rangeLabel.innerText = value;\n this._rangeLabelAlternative.innerText = value;\n }\n\n public hasFirstPageButton(): boolean {\n return !!getShadowElement(this._component, PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON);\n }\n\n public showFirstPageButton(): void {\n this._firstPagePlaceholder = toggleElementPlaceholder(\n this._component,\n true,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON,\n this._firstPageIconButton,\n this._firstPagePlaceholder\n );\n }\n\n public hideFirstPageButton(): void {\n this._firstPagePlaceholder = toggleElementPlaceholder(\n this._component,\n false,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.FIRST_PAGE_ICON_BUTTON,\n this._firstPageIconButton,\n this._firstPagePlaceholder\n );\n }\n\n public hasLastPageButton(): boolean {\n return !!getShadowElement(this._component, PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON);\n }\n\n public showLastPageButton(): void {\n this._lastPagePlaceholder = toggleElementPlaceholder(\n this._component,\n true,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON,\n this._lastPageIconButton,\n this._lastPagePlaceholder\n );\n }\n\n public hideLastPageButton(): void {\n this._lastPagePlaceholder = toggleElementPlaceholder(\n this._component,\n false,\n PAGINATOR_CONSTANTS.elementName,\n PAGINATOR_CONSTANTS.selectors.LAST_PAGE_ICON_BUTTON,\n this._lastPageIconButton,\n this._lastPagePlaceholder\n );\n }\n\n public attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void {\n this._pageSizeSelect.addEventListener('change', listener);\n }\n\n public attachFirstPageListener(listener: (evt: Event) => void): void {\n this._firstPageButton.addEventListener('click', listener);\n }\n\n public attachPreviousPageListener(listener: (evt: Event) => void): void {\n this._previousPageButton.addEventListener('click', listener);\n }\n\n public attachNextPageListener(listener: (evt: Event) => void): void {\n this._nextPageButton.addEventListener('click', listener);\n }\n\n public attachLastPageListener(listener: (evt: Event) => void): void {\n this._lastPageButton.addEventListener('click', listener);\n }\n\n public detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void {\n this._pageSizeSelect.removeEventListener('change', listener);\n }\n\n public detachFirstPageListener(listener: (evt: Event) => void): void {\n this._firstPageButton.removeEventListener('click', listener);\n }\n\n public detachPreviousPageListener(listener: (evt: Event) => void): void {\n this._previousPageButton.removeEventListener('click', listener);\n }\n\n public detachNextPageListener(listener: (evt: Event) => void): void {\n this._nextPageButton.removeEventListener('click', listener);\n }\n\n public detachLastPageListener(listener: (evt: Event) => void): void {\n this._lastPageButton.removeEventListener('click', listener);\n }\n\n public disableFirstPageButton(): void {\n this._firstPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableFirstPageButton(): void {\n this._firstPageButton.removeAttribute('disabled');\n }\n\n public disablePreviousPageButton(): void {\n this._previousPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enablePreviousPageButton(): void {\n this._previousPageButton.removeAttribute('disabled');\n }\n\n public disableNextPageButton(): void {\n this._nextPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableNextPageButton(): void {\n this._nextPageButton.removeAttribute('disabled');\n }\n\n public disablePageSizeSelect(): void {\n this._pageSizeSelect.setAttribute('disabled', 'disabled');\n }\n\n public enablePageSizeSelect(): void {\n this._pageSizeSelect.removeAttribute('disabled');\n }\n\n public setPageSizeVisibility(visible: boolean): void {\n if (visible) {\n this._pageSizeSelect.style.removeProperty('display');\n } else {\n this._pageSizeSelect.style.display = 'none';\n }\n }\n\n public disableLastPageButton(): void {\n this._lastPageButton.setAttribute('disabled', 'disabled');\n }\n\n public enableLastPageButton(): void {\n this._lastPageButton.removeAttribute('disabled');\n }\n\n public setAlternative(alternative: boolean): void {\n toggleClass(this._root, alternative, PAGINATOR_CONSTANTS.classes.ALTERNATIVE);\n }\n\n public setAlignment(alignment: PaginatorAlternativeAlignment): void {\n removeClass([\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_SPACE_BETWEEN,\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_START,\n PAGINATOR_CONSTANTS.classes.ALIGNMENT_END\n ], this._root);\n\n switch (alignment) {\n case 'start':\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_START, this._root);\n break;\n case 'end':\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_END, this._root);\n break;\n case 'space-between':\n default:\n addClass(PAGINATOR_CONSTANTS.classes.ALIGNMENT_SPACE_BETWEEN, this._root);\n break;\n }\n }\n\n public hasFocus(): boolean {\n return this._component.matches(':focus');\n }\n\n public handleFocusMove(from?: PaginatorFieldIdentifier, options?: FocusOptions): void {\n if (from && !this.hasFocus()) {\n return; // We can only move focus elsewhere within the element if the element already contains focus\n }\n\n switch (from) {\n case 'first':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._previousPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'last':\n this._tryFocus([\n this._previousPageButton,\n this._firstPageButton,\n this._nextPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'previous':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._firstPageButton,\n this._pageSizeSelect\n ]);\n break;\n case 'next':\n this._tryFocus([\n this._previousPageButton,\n this._firstPageButton,\n this._lastPageButton,\n this._pageSizeSelect\n ], options);\n break;\n case 'page-size':\n this._tryFocus([\n this._nextPageButton,\n this._lastPageButton,\n this._firstPageButton,\n this._previousPageButton\n ], options);\n break;\n default:\n this._tryFocus([\n this._firstPageButton,\n this._previousPageButton,\n this._nextPageButton,\n this._lastPageButton,\n this._pageSizeSelect\n ], options);\n break;\n }\n }\n\n private _tryFocus(elements: Array<HTMLButtonElement | ISelectComponent>, options?: FocusOptions): void {\n const preventScroll = typeof options?.preventScroll === 'boolean' ? options.preventScroll : true;\n for (const el of elements) {\n if (el && el.isConnected && !el.disabled) {\n el.focus({ ...options, preventScroll });\n return;\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons/standard';\nimport { PaginatorAlternativeAlignment, PAGINATOR_CONSTANTS, IPaginatorChangeEvent, PaginatorRangeLabelBuilder } from './paginator-constants';\nimport { PaginatorFoundation } from './paginator-foundation';\nimport { PaginatorAdapter } from './paginator-adapter';\nimport { IconButtonComponent } from '../icon-button';\nimport { SelectComponent } from '../select';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { TooltipComponent } from '../tooltip';\n\nconst template = '<template><div class=\\\"forge-paginator\\\" part=\\\"root\\\"><div class=\\\"forge-paginator__container\\\" part=\\\"container\\\"><div class=\\\"forge-paginator__label\\\" part=\\\"label\\\"></div><forge-select class=\\\"forge-paginator__page-size-options\\\" aria-label=\\\"Choose page size\\\" density=\\\"dense\\\" part=\\\"page-size-options\\\"></forge-select><div class=\\\"forge-paginator__range-label\\\" part=\\\"range-label\\\"></div><forge-icon-button class=\\\"forge-paginator__first-page\\\" part=\\\"first-page-button\\\" part=\\\"first-page-button-element\\\"><forge-icon name=\\\"first_page\\\" part=\\\"first-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip type=\\\"label\\\" placement=\\\"top\\\">Go to the first page</forge-tooltip><forge-icon-button class=\\\"forge-paginator__previous-page\\\" part=\\\"previous-page-button\\\" part=\\\"previous-page-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-page-button-icon\\\"></forge-icon></forge-icon-button><forge-tooltip type=\\\"label\\\" placement=\\\"top\\\">Go to the previous page</forge-tooltip><div class=\\\"forge-paginator__range-label--alternative\\\" part=\\\"range-label-alternative\\\"></div><forge-icon-button class=\\\"forge-paginator__next-page\\\" part=\\\"next-page-button\\\" part=\\\"next-page-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip type=\\\"label\\\" placement=\\\"top\\\">Go to the next page</forge-tooltip><forge-icon-button class=\\\"forge-paginator__last-page\\\" part=\\\"last-page-button\\\" part=\\\"last-page-button-element\\\"><forge-icon name=\\\"last_page\\\" part=\\\"last-page-icon\\\"></forge-icon></forge-icon-button><forge-tooltip type=\\\"label\\\" placement=\\\"top\\\">Go to the last page</forge-tooltip></div></div></template>';\nconst styles = '.forge-paginator{display:inline-block}.forge-paginator--alternative{display:-webkit-box;display:flex}.forge-paginator--alternative .forge-paginator__label,.forge-paginator--alternative .forge-paginator__page-size-options,.forge-paginator--alternative .forge-paginator__range-label{display:none}.forge-paginator--alternative .forge-paginator__range-label--alternative{display:inline-block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);margin:0 12px}.forge-paginator__range-label--alternative{display:none}.forge-paginator__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-paginator__label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:16px}.forge-paginator__page-size-options{margin-right:16px}.forge-paginator__range-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:8px}.forge-paginator__first-page,.forge-paginator__last-page,.forge-paginator__next-page,.forge-paginator__previous-page{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}:host{display:inline-block}:host([hidden]){display:none}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__container{-webkit-box-pack:center;justify-content:center}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__range-label--alternative{margin:0 auto}:host([alternative]) .forge-paginator--alignment-start .forge-paginator__container{-webkit-box-pack:start;justify-content:flex-start}:host([alternative]) .forge-paginator--alignment-end .forge-paginator__container{-webkit-box-pack:end;justify-content:flex-end}:host([alternative]) .forge-paginator .forge-paginator__container{-webkit-box-flex:1;flex:1}';\n\nexport interface IPaginatorComponent extends IBaseComponent {\n pageIndex: number;\n pageSize: number;\n offset: number;\n total: number;\n pageSizeOptions: number[] | boolean;\n label: string;\n firstLast: boolean;\n first: boolean;\n disabled: boolean;\n alternative: boolean;\n alignment: PaginatorAlternativeAlignment;\n rangeLabelCallback: PaginatorRangeLabelBuilder;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-paginator': IPaginatorComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-paginator-change': CustomEvent<IPaginatorChangeEvent>;\n }\n}\n\n/**\n * @tag forge-paginator\n */\n@CustomElement({\n name: PAGINATOR_CONSTANTS.elementName,\n dependencies: [\n IconButtonComponent,\n SelectComponent,\n IconComponent,\n TooltipComponent\n ]\n})\nexport class PaginatorComponent extends BaseComponent implements IPaginatorComponent {\n public static get observedAttributes(): string[] {\n return [\n PAGINATOR_CONSTANTS.attributes.PAGE_INDEX,\n PAGINATOR_CONSTANTS.attributes.PAGE_SIZE,\n PAGINATOR_CONSTANTS.attributes.OFFSET,\n PAGINATOR_CONSTANTS.attributes.TOTAL,\n PAGINATOR_CONSTANTS.attributes.PAGE_SIZE_OPTIONS,\n PAGINATOR_CONSTANTS.attributes.LABEL,\n PAGINATOR_CONSTANTS.attributes.FIRST_LAST,\n PAGINATOR_CONSTANTS.attributes.FIRST,\n PAGINATOR_CONSTANTS.attributes.DISABLED,\n PAGINATOR_CONSTANTS.attributes.ALTERNATIVE,\n PAGINATOR_CONSTANTS.attributes.ALIGNMENT\n ];\n }\n\n private _foundation: PaginatorFoundation;\n\n constructor() {\n super();\n IconRegistry.define([\n tylIconFirstPage,\n tylIconKeyboardArrowLeft,\n tylIconKeyboardArrowRight,\n tylIconLastPage\n ]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new PaginatorFoundation(new PaginatorAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case PAGINATOR_CONSTANTS.attributes.PAGE_INDEX:\n this.pageIndex = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_INDEX;\n break;\n case PAGINATOR_CONSTANTS.attributes.PAGE_SIZE:\n this.pageSize = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_PAGE_SIZE;\n break;\n case PAGINATOR_CONSTANTS.attributes.OFFSET:\n this.offset = Number(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.TOTAL:\n this.total = Number(newValue) || PAGINATOR_CONSTANTS.numbers.DEFAULT_TOTAL;\n break;\n case PAGINATOR_CONSTANTS.attributes.PAGE_SIZE_OPTIONS:\n this.pageSizeOptions = newValue as any;\n break;\n case PAGINATOR_CONSTANTS.attributes.LABEL:\n this.label = newValue;\n break;\n case PAGINATOR_CONSTANTS.attributes.FIRST_LAST:\n this.firstLast = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.FIRST:\n this.first = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.ALTERNATIVE:\n this.alternative = coerceBoolean(newValue);\n break;\n case PAGINATOR_CONSTANTS.attributes.ALIGNMENT:\n this.alignment = newValue as PaginatorAlternativeAlignment;\n break;\n }\n }\n\n /** The zero-based page index. Default is 0. */\n @FoundationProperty()\n public declare pageIndex: number;\n\n /** Number of items to display on a page. By default set to 25. */\n @FoundationProperty()\n public declare pageSize: number;\n\n /** Sets page index by providing the number of items to skip. The getter for this property returns the number of items to skip. */\n @FoundationProperty()\n public declare offset: number;\n\n /** The total number of items to be paginated. Default is 0. */\n @FoundationProperty()\n public declare total: number;\n\n /** The set of provided page size options to display to the user. */\n @FoundationProperty()\n public declare pageSizeOptions: number[] | boolean;\n\n /** A label for the paginator. Default is \"Rows per page:\". */\n @FoundationProperty()\n public declare label: string;\n\n /** Whether to show the first page and last page buttons. Default is false. */\n @FoundationProperty()\n public declare firstLast: boolean;\n\n /** Whether to show the first page button. Default is false. */\n @FoundationProperty()\n public declare first: boolean;\n\n /** Whether the paginator is disabled. Default is false. */\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare alternative: boolean;\n\n @FoundationProperty()\n public declare alignment: PaginatorAlternativeAlignment;\n\n @FoundationProperty()\n public declare rangeLabelCallback: PaginatorRangeLabelBuilder;\n\n public override focus(options?: FocusOptions): void {\n this._foundation.focus(options);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { PaginatorComponent } from './paginator';\n\nexport * from './paginator-adapter';\nexport * from './paginator-constants';\nexport * from './paginator-foundation';\nexport * from './paginator';\n\nexport function definePaginatorComponent(): void {\n defineCustomElement(PaginatorComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "events", "numbers", "strings", "PAGINATOR_CONSTANTS", "PaginatorFoundation", "_adapter", "PAGINATOR_CONSTANTS", "o", "evt", "options", "firstPage", "prevPage", "nextPage", "lastPage", "pageSize", "type", "pageIndex", "offset", "detail", "rangeLabel", "state", "startIndex", "pageStart", "pageEnd", "maxPages", "value", "clampedValue", "disabled", "isDefined", "isArray", "a", "b", "coerceNumber", "PaginatorAdapter", "BaseAdapter", "component", "getShadowElement", "PAGINATOR_CONSTANTS", "value", "options", "removeAllChildren", "toggleElementPlaceholder", "listener", "visible", "alternative", "toggleClass", "alignment", "removeClass", "addClass", "from", "elements", "preventScroll", "el", "__spreadProps", "__spreadValues", "template", "styles", "PaginatorComponent", "BaseComponent", "IconRegistry", "tylIconFirstPage", "tylIconKeyboardArrowLeft", "tylIconKeyboardArrowRight", "tylIconLastPage", "attachShadowTemplate", "PaginatorFoundation", "PaginatorAdapter", "PAGINATOR_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "options", "__decorateClass", "FoundationProperty", "CustomElement", "IconButtonComponent", "SelectComponent", "IconComponent", "TooltipComponent", "definePaginatorComponent", "defineCustomElement", "PaginatorComponent"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as h,c as u,d as k}from"./chunk.RKG66YKS.js";import{a as n,d as w}from"./chunk.CPD4RUF2.js";import{a as b,b as g}from"./chunk.UVXKHQQZ.js";import{a as p,e as f,f as m}from"./chunk.TPXXHX5J.js";import{u as c}from"./chunk.HZUQXCOQ.js";import{d as l}from"./chunk.M3QDAYD2.js";var a=class extends h{constructor(r){super(r);this._component=r;this._backdropElement=m(this._component,n.elementName)}setBackdropCloseListener(r){this._backdropElement.addEventListener(n.events.BACKDROP_CLICK,r)}setBackdropVisibility(r){return this._backdropElement.hasAttribute("hidden")&&this._backdropElement.removeAttribute("hidden"),!this._backdropElement.fadeIn||!this._backdropElement.fadeOut?Promise.resolve():r?this._backdropElement.fadeIn():this._backdropElement.fadeOut()}toggleBackdropClass(r,t){c(this._backdropElement,r,t)}};var _=`${g}modal-drawer`,v={DISPLAY_NONE:"forge-drawer--display-none",SCRIM_CLOSED:"forge-drawer__scrim--closed"},x={CLOSE:`${_}-close`},e={elementName:_,classes:v,events:x};var i=class extends u{constructor(r){super(r);this._adapter=r;this._open=!1;this._isInitialized=!1;this._backdropClickListener=t=>this._onBackdropClick(t)}connect(){super.connect(),this._adapter.setBackdropCloseListener(this._backdropClickListener),this._setBackdrop(this._open),this._isInitialized=!0}disconnect(){this._isInitialized=!1}_triggerDrawerOpen(){super._triggerDrawerOpen(),this._setBackdrop(!0)}_triggerDrawerClose(){super._triggerDrawerClose(),this._setBackdrop(!1)}_onBackdropClick(r){this._adapter.emitHostEvent(e.events.CLOSE,void 0,!0,!0)&&(this.open=!1)}_setBackdrop(r){r?(this._adapter.toggleBackdropClass(!1,e.classes.SCRIM_CLOSED),this._adapter.setBackdropVisibility(!0)):this._isInitialized&&this._adapter.setBackdropVisibility(!1).then(()=>{this._open||this._adapter.toggleBackdropClass(!0,e.classes.SCRIM_CLOSED)})}};var C='<template><forge-backdrop class="forge-drawer__scrim" hidden part="scrim"></forge-backdrop><div class="forge-drawer forge-drawer--modal" part="root"><slot name="header"></slot><div class="forge-drawer__content" part="content"><slot></slot></div><slot name="footer"></slot></div></template>',D='.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:"touch";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer__content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}.forge-drawer--modal{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);z-index:8;z-index:var(--forge-z-index-dialog,8);position:absolute;top:0;max-width:80%}.forge-drawer--modal+.mdc-drawer-scrim{background-color:rgba(0,0,0,.32)}.forge-drawer--modal.forge-drawer--closed,.forge-drawer--modal.forge-drawer--closing{-webkit-box-shadow:none;box-shadow:none}.forge-drawer--modal.forge-drawer--closing.forge-drawer--right{-webkit-transform:translateX(100%);transform:translateX(100%)}.forge-drawer__scrim{z-index:8;z-index:var(--forge-z-index-dialog,8)}.forge-drawer__scrim--closed{display:none}.forge-drawer.forge-drawer--right{right:0}.forge-drawer--display-none{display:none!important}',o=class extends k{constructor(){super();f(this,C,D),this._foundation=new i(new a(this))}};o=l([b({name:e.elementName,dependencies:[w]})],o);function q(){p(o)}export{a,e as b,i as c,o as d,q as e};
7
+ //# sourceMappingURL=chunk.AQOLBID6.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/drawer/modal-drawer/modal-drawer-adapter.ts", "../../src/drawer/modal-drawer/modal-drawer-constants.ts", "../../src/drawer/modal-drawer/modal-drawer-foundation.ts", "../../src/drawer/modal-drawer/modal-drawer.ts", "../../src/drawer/modal-drawer/index.ts"],
4
4
  "sourcesContent": ["import { getShadowElement, toggleClass } from '@tylertech/forge-core';\nimport { BACKDROP_CONSTANTS, IBackdropComponent } from '../../backdrop';\nimport { BaseDrawerAdapter, IBaseDrawerAdapter } from '../base';\nimport { IModalDrawerComponent } from './modal-drawer';\n\nexport interface IModalDrawerAdapter extends IBaseDrawerAdapter {\n setBackdropCloseListener(listener: (evt: Event) => void): void;\n setBackdropVisibility(visible: boolean): Promise<void>;\n toggleBackdropClass(hasClass: boolean, className: string): void;\n}\n\nexport class ModalDrawerAdapter extends BaseDrawerAdapter implements IModalDrawerAdapter {\n private _backdropElement: IBackdropComponent;\n\n constructor(protected _component: IModalDrawerComponent) {\n super(_component);\n this._backdropElement = getShadowElement(this._component, BACKDROP_CONSTANTS.elementName) as IBackdropComponent;\n }\n\n public setBackdropCloseListener(listener: (evt: Event) => void): void {\n this._backdropElement.addEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, listener);\n }\n\n public setBackdropVisibility(visible: boolean): Promise<void> {\n if (this._backdropElement.hasAttribute('hidden')) {\n this._backdropElement.removeAttribute('hidden');\n }\n if (!this._backdropElement.fadeIn || !this._backdropElement.fadeOut) {\n return Promise.resolve();\n }\n return visible ? this._backdropElement.fadeIn() : this._backdropElement.fadeOut();\n }\n\n public toggleBackdropClass(hasClass: boolean, className: string): void {\n toggleClass(this._backdropElement, hasClass, className);\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}modal-drawer`;\n\nconst classes = {\n DISPLAY_NONE: 'forge-drawer--display-none',\n SCRIM_CLOSED: 'forge-drawer__scrim--closed'\n};\n\nconst events = {\n CLOSE: `${elementName}-close`\n};\n\nexport const MODAL_DRAWER_CONSTANTS = {\n elementName,\n classes,\n events\n};\n", "import { Platform } from '@tylertech/forge-core';\nimport { BaseDrawerFoundation, IBaseDrawerFoundation } from '../base';\n\nimport { IModalDrawerAdapter } from './modal-drawer-adapter';\nimport { MODAL_DRAWER_CONSTANTS } from './modal-drawer-constants';\n\nexport interface IModalDrawerFoundation extends IBaseDrawerFoundation {}\n\nexport class ModalDrawerFoundation extends BaseDrawerFoundation implements IModalDrawerFoundation {\n protected _open = false;\n private _backdropClickListener: (evt: Event) => void;\n private _isInitialized = false;\n\n constructor(protected _adapter: IModalDrawerAdapter) {\n super(_adapter);\n this._backdropClickListener = evt => this._onBackdropClick(evt);\n }\n\n public connect(): void {\n super.connect();\n this._adapter.setBackdropCloseListener(this._backdropClickListener);\n this._setBackdrop(this._open);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n }\n\n protected _triggerDrawerOpen(): void {\n super._triggerDrawerOpen();\n this._setBackdrop(true);\n }\n\n protected _triggerDrawerClose(): void {\n super._triggerDrawerClose();\n this._setBackdrop(false);\n }\n\n private _onBackdropClick(evt: Event): void {\n const canClose = this._adapter.emitHostEvent(MODAL_DRAWER_CONSTANTS.events.CLOSE, undefined, true, true);\n if (canClose) {\n this.open = false;\n }\n }\n\n private _setBackdrop(open: boolean): void {\n if (open) {\n this._adapter.toggleBackdropClass(false, MODAL_DRAWER_CONSTANTS.classes.SCRIM_CLOSED);\n this._adapter.setBackdropVisibility(true);\n } else if (this._isInitialized) {\n this._adapter.setBackdropVisibility(false).then(() => {\n if (!this._open) {\n this._adapter.toggleBackdropClass(true, MODAL_DRAWER_CONSTANTS.classes.SCRIM_CLOSED);\n }\n });\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement } from '@tylertech/forge-core';\nimport { BackdropComponent } from '../../backdrop';\nimport { BaseDrawerComponent, IBaseDrawerComponent } from '../base';\nimport { ModalDrawerAdapter } from './modal-drawer-adapter';\nimport { MODAL_DRAWER_CONSTANTS } from './modal-drawer-constants';\nimport { ModalDrawerFoundation } from './modal-drawer-foundation';\n\nconst template = '<template><forge-backdrop class=\\\"forge-drawer__scrim\\\" hidden part=\\\"scrim\\\"></forge-backdrop><div class=\\\"forge-drawer forge-drawer--modal\\\" part=\\\"root\\\"><slot name=\\\"header\\\"></slot><div class=\\\"forge-drawer__content\\\" part=\\\"content\\\"><slot></slot></div><slot name=\\\"footer\\\"></slot></div></template>';\nconst styles = '.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:\\\"touch\\\";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer__content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}.forge-drawer--modal{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);z-index:8;z-index:var(--forge-z-index-dialog,8);position:absolute;top:0;max-width:80%}.forge-drawer--modal+.mdc-drawer-scrim{background-color:rgba(0,0,0,.32)}.forge-drawer--modal.forge-drawer--closed,.forge-drawer--modal.forge-drawer--closing{-webkit-box-shadow:none;box-shadow:none}.forge-drawer--modal.forge-drawer--closing.forge-drawer--right{-webkit-transform:translateX(100%);transform:translateX(100%)}.forge-drawer__scrim{z-index:8;z-index:var(--forge-z-index-dialog,8)}.forge-drawer__scrim--closed{display:none}.forge-drawer.forge-drawer--right{right:0}.forge-drawer--display-none{display:none!important}';\n\nexport interface IModalDrawerComponent extends IBaseDrawerComponent {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-modal-drawer': IModalDrawerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-modal-drawer-close': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-modal-drawer>` custom element.\n * \n * @tag forge-modal-drawer\n */\n@CustomElement({\n name: MODAL_DRAWER_CONSTANTS.elementName,\n dependencies: [BackdropComponent]\n})\nexport class ModalDrawerComponent extends BaseDrawerComponent<ModalDrawerFoundation> implements IModalDrawerComponent {\n protected _foundation: ModalDrawerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ModalDrawerFoundation(new ModalDrawerAdapter(this));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ModalDrawerComponent } from './modal-drawer';\n\nexport * from './modal-drawer-adapter';\nexport * from './modal-drawer-constants';\nexport * from './modal-drawer-foundation';\nexport * from './modal-drawer';\n\nexport function defineModalDrawerComponent(): void {\n defineCustomElement(ModalDrawerComponent);\n}\n"],
5
- "mappings": "2TAWO,IAAMA,EAAN,cAAiCC,CAAiD,CAGvF,YAAsBC,EAAmC,CACvD,MAAMA,CAAU,EADI,gBAAAA,EAEpB,KAAK,iBAAmBC,EAAiB,KAAK,WAAYC,EAAmB,WAAW,CAC1F,CAEO,yBAAyBC,EAAsC,CACpE,KAAK,iBAAiB,iBAAiBD,EAAmB,OAAO,eAAgBC,CAAQ,CAC3F,CAEO,sBAAsBC,EAAiC,CAI5D,OAHI,KAAK,iBAAiB,aAAa,QAAQ,GAC7C,KAAK,iBAAiB,gBAAgB,QAAQ,EAE5C,CAAC,KAAK,iBAAiB,QAAU,CAAC,KAAK,iBAAiB,QACnD,QAAQ,QAAQ,EAElBA,EAAU,KAAK,iBAAiB,OAAO,EAAI,KAAK,iBAAiB,QAAQ,CAClF,CAEO,oBAAoBC,EAAmBC,EAAyB,CACrEC,EAAY,KAAK,iBAAkBF,EAAUC,CAAS,CACxD,CACF,EClCA,IAAME,EAA2C,GAAGC,gBAE9CC,EAAU,CACd,aAAc,6BACd,aAAc,6BAChB,EAEMC,EAAS,CACb,MAAO,GAAGH,SACZ,EAEaI,EAAyB,CACpC,YAAAJ,EACA,QAAAE,EACA,OAAAC,CACF,ECTO,IAAME,EAAN,cAAoCC,CAAuD,CAKhG,YAAsBC,EAA+B,CACnD,MAAMA,CAAQ,EADM,cAAAA,EAJtB,KAAU,MAAQ,GAElB,KAAQ,eAAiB,GAIvB,KAAK,uBAAyBC,GAAO,KAAK,iBAAiBA,CAAG,CAChE,CAEO,SAAgB,CACrB,MAAM,QAAQ,EACd,KAAK,SAAS,yBAAyB,KAAK,sBAAsB,EAClE,KAAK,aAAa,KAAK,KAAK,EAC5B,KAAK,eAAiB,EACxB,CAEO,YAAmB,CACxB,KAAK,eAAiB,EACxB,CAEU,oBAA2B,CACnC,MAAM,mBAAmB,EACzB,KAAK,aAAa,EAAI,CACxB,CAEU,qBAA4B,CACpC,MAAM,oBAAoB,EAC1B,KAAK,aAAa,EAAK,CACzB,CAEQ,iBAAiBA,EAAkB,CACxB,KAAK,SAAS,cAAcC,EAAuB,OAAO,MAAO,OAAW,GAAM,EAAI,IAErG,KAAK,KAAO,GAEhB,CAEQ,aAAaC,EAAqB,CACpCA,GACF,KAAK,SAAS,oBAAoB,GAAOD,EAAuB,QAAQ,YAAY,EACpF,KAAK,SAAS,sBAAsB,EAAI,GAC/B,KAAK,gBACd,KAAK,SAAS,sBAAsB,EAAK,EAAE,KAAK,IAAM,CAC/C,KAAK,OACR,KAAK,SAAS,oBAAoB,GAAMA,EAAuB,QAAQ,YAAY,CAEvF,CAAC,CAEL,CACF,ECnDA,IAAME,EAAW,oSACXC,EAAS,68HAuBFC,EAAN,cAAmCC,CAA4E,CAGpH,aAAc,CACZ,MAAM,EACNC,EAAqB,KAAMJ,EAAUC,CAAM,EAC3C,KAAK,YAAc,IAAII,EAAsB,IAAIC,EAAmB,IAAI,CAAC,CAC3E,CACF,EARaJ,EAANK,EAAA,CAJNC,EAAc,CACb,KAAMC,EAAuB,YAC7B,aAAc,CAACC,CAAiB,CAClC,CAAC,GACYR,GCvBN,SAASS,GAAmC,CACjDC,EAAoBC,CAAoB,CAC1C",
5
+ "mappings": "0RAWO,IAAMA,EAAN,cAAiCC,CAAiD,CAGvF,YAAsBC,EAAmC,CACvD,MAAMA,CAAU,EADI,gBAAAA,EAEpB,KAAK,iBAAmBC,EAAiB,KAAK,WAAYC,EAAmB,WAAW,CAC1F,CAEO,yBAAyBC,EAAsC,CACpE,KAAK,iBAAiB,iBAAiBD,EAAmB,OAAO,eAAgBC,CAAQ,CAC3F,CAEO,sBAAsBC,EAAiC,CAI5D,OAHI,KAAK,iBAAiB,aAAa,QAAQ,GAC7C,KAAK,iBAAiB,gBAAgB,QAAQ,EAE5C,CAAC,KAAK,iBAAiB,QAAU,CAAC,KAAK,iBAAiB,QACnD,QAAQ,QAAQ,EAElBA,EAAU,KAAK,iBAAiB,OAAO,EAAI,KAAK,iBAAiB,QAAQ,CAClF,CAEO,oBAAoBC,EAAmBC,EAAyB,CACrEC,EAAY,KAAK,iBAAkBF,EAAUC,CAAS,CACxD,CACF,EClCA,IAAME,EAA2C,GAAGC,gBAE9CC,EAAU,CACd,aAAc,6BACd,aAAc,6BAChB,EAEMC,EAAS,CACb,MAAO,GAAGH,SACZ,EAEaI,EAAyB,CACpC,YAAAJ,EACA,QAAAE,EACA,OAAAC,CACF,ECTO,IAAME,EAAN,cAAoCC,CAAuD,CAKhG,YAAsBC,EAA+B,CACnD,MAAMA,CAAQ,EADM,cAAAA,EAJtB,KAAU,MAAQ,GAElB,KAAQ,eAAiB,GAIvB,KAAK,uBAAyBC,GAAO,KAAK,iBAAiBA,CAAG,CAChE,CAEO,SAAgB,CACrB,MAAM,QAAQ,EACd,KAAK,SAAS,yBAAyB,KAAK,sBAAsB,EAClE,KAAK,aAAa,KAAK,KAAK,EAC5B,KAAK,eAAiB,EACxB,CAEO,YAAmB,CACxB,KAAK,eAAiB,EACxB,CAEU,oBAA2B,CACnC,MAAM,mBAAmB,EACzB,KAAK,aAAa,EAAI,CACxB,CAEU,qBAA4B,CACpC,MAAM,oBAAoB,EAC1B,KAAK,aAAa,EAAK,CACzB,CAEQ,iBAAiBA,EAAkB,CACxB,KAAK,SAAS,cAAcC,EAAuB,OAAO,MAAO,OAAW,GAAM,EAAI,IAErG,KAAK,KAAO,GAEhB,CAEQ,aAAaC,EAAqB,CACpCA,GACF,KAAK,SAAS,oBAAoB,GAAOD,EAAuB,QAAQ,YAAY,EACpF,KAAK,SAAS,sBAAsB,EAAI,GAC/B,KAAK,gBACd,KAAK,SAAS,sBAAsB,EAAK,EAAE,KAAK,IAAM,CAC/C,KAAK,OACR,KAAK,SAAS,oBAAoB,GAAMA,EAAuB,QAAQ,YAAY,CAEvF,CAAC,CAEL,CACF,ECnDA,IAAME,EAAW,oSACXC,EAAS,68HAuBFC,EAAN,cAAmCC,CAA4E,CAGpH,aAAc,CACZ,MAAM,EACNC,EAAqB,KAAMJ,EAAUC,CAAM,EAC3C,KAAK,YAAc,IAAII,EAAsB,IAAIC,EAAmB,IAAI,CAAC,CAC3E,CACF,EARaJ,EAANK,EAAA,CAJNC,EAAc,CACb,KAAMC,EAAuB,YAC7B,aAAc,CAACC,CAAiB,CAClC,CAAC,GACYR,GCvBN,SAASS,GAAmC,CACjDC,EAAoBC,CAAoB,CAC1C",
6
6
  "names": ["ModalDrawerAdapter", "BaseDrawerAdapter", "_component", "getShadowElement", "BACKDROP_CONSTANTS", "listener", "visible", "hasClass", "className", "toggleClass", "elementName", "COMPONENT_NAME_PREFIX", "classes", "events", "MODAL_DRAWER_CONSTANTS", "ModalDrawerFoundation", "BaseDrawerFoundation", "_adapter", "evt", "MODAL_DRAWER_CONSTANTS", "open", "template", "styles", "ModalDrawerComponent", "BaseDrawerComponent", "attachShadowTemplate", "ModalDrawerFoundation", "ModalDrawerAdapter", "__decorateClass", "CustomElement", "MODAL_DRAWER_CONSTANTS", "BackdropComponent", "defineModalDrawerComponent", "defineCustomElement", "ModalDrawerComponent"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{d as t}from"./chunk.Q4YL47ZL.js";import{a as o}from"./chunk.TPXXHX5J.js";function m(){o(t)}export{m as a};
7
- //# sourceMappingURL=chunk.BAQYPAUM.js.map
6
+ import{d as t}from"./chunk.3PHNRX5D.js";import{a as o}from"./chunk.TPXXHX5J.js";function m(){o(t)}export{m as a};
7
+ //# sourceMappingURL=chunk.AWEDY45N.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as A}from"./chunk.3CTKWBV2.js";import{a as T}from"./chunk.ZY3ETQ3D.js";import{a as s}from"./chunk.NVUMRW44.js";import{a as _,b as x}from"./chunk.UVXKHQQZ.js";import{a as v,e as f,f as d,k as b}from"./chunk.TPXXHX5J.js";import{d as h}from"./chunk.HZUQXCOQ.js";import{b as p,c,l as u}from"./chunk.J2M2MXP2.js";import{d as n}from"./chunk.M3QDAYD2.js";var E=`${x}avatar`,k={IMAGE_URL:"image-url",TEXT:"text",LETTER_COUNT:"letter-count"},U={DEFAULT_LETTER_COUNT:2},I={ROOT:".forge-avatar",DEFAULT_SLOT:".forge-avatar > slot:not([name])"},L={DEFAULT_COLOR:A.themeColors.tertiary,BACKGROUND_VARNAME:"--forge-avatar-background"},e={elementName:E,attributes:k,numbers:U,selectors:I,strings:L};var g=class extends T{constructor(r){super(r);this._root=d(this._component,e.selectors.ROOT),this._defaultSlot=d(this._component,e.selectors.DEFAULT_SLOT)}async setBackgroundImageUrl(r){return this._root.classList.add("forge-avatar--image"),new Promise(o=>{let a=new Image;a.onload=()=>{this._root.style.backgroundImage=`url(${a.src})`,o(!0)},a.onerror=()=>{this._root.classList.remove("forge-avatar--image"),o(!1)},a.src=r})}removeBackgroundImage(){this._root.style.removeProperty("background-image"),this._root.classList.remove("forge-avatar--image")}setText(r){this._defaultSlot.textContent=r}clearText(){h(this._defaultSlot)}};var l=class{constructor(t){this._adapter=t;this._text="";this._letterCount=e.numbers.DEFAULT_LETTER_COUNT;this._initialized=!1}initialize(){this._render(),this._initialized=!0}disconnect(){this._initialized=!1}_render(){this._setText(),this._setBackgroundImageUrl()}async _setBackgroundImageUrl(){this._imageUrl?await this._adapter.setBackgroundImageUrl(this._imageUrl)&&this._adapter.clearText():this._adapter.removeBackgroundImage()}_setText(){let t=this._getTextContent(this._text,this._letterCount);t?this._adapter.setText(t):this._adapter.clearText()}_getTextContent(t,r){if(!t||!c(t)||r<=0)return"";let o;return r===1?o=t[0].toUpperCase():o=(t.match(/\S+/g)||[]).slice(0,r).reduce((C,y)=>C+=y[0].toUpperCase(),""),o}get text(){return this._text}set text(t){this._text!==t&&(this._text=t||"",this._adapter.setHostAttribute(e.attributes.TEXT,this._text),this._initialized&&this._render())}get letterCount(){return this._letterCount}set letterCount(t){this._letterCount!==t&&(this._letterCount=t,this._adapter.setHostAttribute(e.attributes.LETTER_COUNT,p(this._letterCount)?this._letterCount.toString():""),this._initialized&&this._render())}get imageUrl(){return this._imageUrl}set imageUrl(t){this._imageUrl!==t&&(this._imageUrl=t,this._initialized&&this._render())}};var N='<template><div class="forge-avatar" aria-hidden="true" part="root"><slot></slot></div></template>',O=':host{contain:content;display:inline-block}:host([hidden]){display:none}.forge-avatar{--_avatar-size:var(--forge-avatar-size, 40px);--_avatar-background:var(--forge-avatar-background, var(--forge-theme-tertiary, #3d5afe));--_avatar-color:var(--forge-avatar-color, var(--forge-theme-on-tertiary, #ffffff));--_avatar-transition-duration:var(--forge-avatar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_avatar-transition-timing:var(--forge-avatar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_avatar-shape:var(--forge-avatar-shape, var(--forge-shape-round, 50%))}.forge-avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;overflow:hidden;-webkit-transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);border-radius:var(--_avatar-shape);-webkit-box-sizing:border-box;box-sizing:border-box;width:var(--_avatar-size);height:var(--_avatar-size);background-color:var(--_avatar-background);background-position:center;background-repeat:no-repeat;background-size:cover;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-subheading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-font-size-scale, 1)));font-weight:var(--forge-typography-subheading2-font-weight,400);line-height:var(--forge-typography-subheading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-subheading2-letter-spacing, normal);text-transform:var(--forge-typography-subheading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);color:var(--_avatar-color)}.forge-avatar--image{background-color:inherit}',i=class extends b{constructor(){super();f(this,N,O),this._foundation=new l(new g(this))}static get observedAttributes(){return[e.attributes.TEXT,e.attributes.LETTER_COUNT,e.attributes.IMAGE_URL]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(r,o,a){switch(r){case e.attributes.TEXT:this.text=a;break;case e.attributes.LETTER_COUNT:this.letterCount=u(a);break;case e.attributes.IMAGE_URL:this.imageUrl=a;break}}};n([s()],i.prototype,"text",2),n([s()],i.prototype,"letterCount",2),n([s()],i.prototype,"imageUrl",2),i=n([_({name:e.elementName})],i);function tt(){v(i)}export{e as a,g as b,l as c,i as d,tt as e};
7
+ //# sourceMappingURL=chunk.CLODJYSW.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/avatar/avatar-constants.ts", "../../src/avatar/avatar-adapter.ts", "../../src/avatar/avatar-foundation.ts", "../../src/avatar/avatar.ts", "../../src/avatar/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { COLOR_CONSTANTS } from '../theme';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}avatar`;\n\nconst attributes = {\n IMAGE_URL: 'image-url',\n TEXT: 'text',\n LETTER_COUNT: 'letter-count'\n};\n\nconst numbers = {\n DEFAULT_LETTER_COUNT: 2\n};\n\nconst selectors = {\n ROOT: '.forge-avatar',\n DEFAULT_SLOT: '.forge-avatar > slot:not([name])'\n};\n\nconst strings = {\n DEFAULT_COLOR: COLOR_CONSTANTS.themeColors.tertiary,\n BACKGROUND_VARNAME: '--forge-avatar-background'\n};\n\nexport const AVATAR_CONSTANTS = {\n elementName,\n attributes,\n numbers,\n selectors,\n strings\n};\n", "import { getShadowElement, removeAllChildren } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAvatarComponent } from './avatar';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport interface IAvatarAdapter extends IBaseAdapter {\n setBackgroundImageUrl(url: string): Promise<boolean>;\n removeBackgroundImage(): void;\n setText(value: string): void;\n clearText(): void;\n}\n\n/**\n * The DOM adapter behind the `<forge-avatar>` element.\n */\nexport class AvatarAdapter extends BaseAdapter<IAvatarComponent> implements IAvatarAdapter {\n private _root: HTMLElement;\n private _defaultSlot: HTMLSlotElement;\n\n constructor(component: IAvatarComponent) {\n super(component);\n this._root = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.ROOT);\n this._defaultSlot = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n }\n\n /**\n * Sets the background image URL.\n * @param url The URL.\n */\n public async setBackgroundImageUrl(url: string): Promise<boolean> {\n // Set before loading image to prevent a flash of background color\n this._root.classList.add('forge-avatar--image');\n return new Promise<boolean>(resolve => {\n const image = new Image();\n image.onload = () => {\n this._root.style.backgroundImage = `url(${image.src})`;\n resolve(true);\n };\n\n image.onerror = () => {\n this._root.classList.remove('forge-avatar--image');\n resolve(false);\n };\n\n image.src = url;\n });\n }\n\n /**\n * Removes the background image URL.\n */\n public removeBackgroundImage(): void {\n this._root.style.removeProperty('background-image');\n this._root.classList.remove('forge-avatar--image');\n }\n\n /**\n * Sets the avatar text content.\n * @param value The text value.\n */\n public setText(value: string): void {\n this._defaultSlot.textContent = value;\n }\n\n public clearText(): void {\n removeAllChildren(this._defaultSlot);\n }\n}\n", "import { ICustomElementFoundation, isDefined, isString } from '@tylertech/forge-core';\nimport { IAvatarAdapter } from './avatar-adapter';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport interface IAvatarFoundation extends ICustomElementFoundation {\n imageUrl: string;\n text: string;\n letterCount: number;\n}\n\n/**\n * The custom element class behind the `<forge-avatar>` class.\n */\nexport class AvatarFoundation implements IAvatarFoundation {\n private _imageUrl: string;\n private _text = '';\n private _letterCount = AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT;\n private _initialized = false;\n\n constructor(private _adapter: IAvatarAdapter) {}\n\n public initialize(): void {\n this._render();\n this._initialized = true;\n }\n\n public disconnect(): void {\n this._initialized = false;\n }\n\n private _render(): void {\n this._setText();\n this._setBackgroundImageUrl();\n }\n\n private async _setBackgroundImageUrl(): Promise<void> {\n if (this._imageUrl) {\n if (await this._adapter.setBackgroundImageUrl(this._imageUrl)) {\n this._adapter.clearText();\n }\n } else {\n this._adapter.removeBackgroundImage();\n }\n }\n\n private _setText(): void {\n const data = this._getTextContent(this._text, this._letterCount);\n\n if (data) {\n this._adapter.setText(data);\n } else {\n this._adapter.clearText();\n }\n }\n\n /**\n * Gets the text content to display in the avatar.\n * @param {string} value The text to parse.\n */\n private _getTextContent(value: string, count: number): string {\n if (!value || !isString(value) || count <= 0) {\n return '';\n }\n\n let text: string;\n\n if (count === 1) {\n text = value[0].toUpperCase();\n } else {\n const words = value.match(/\\S+/g) || [];\n text = words.slice(0, count).reduce((prev, curr) => prev += curr[0].toUpperCase(), '');\n }\n\n return text;\n }\n\n /** Gets/sets the text to display. */\n public get text(): string {\n return this._text;\n }\n public set text(value: string) {\n if (this._text !== value) {\n this._text = value || '';\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.TEXT, this._text);\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n public get letterCount(): number {\n return this._letterCount;\n }\n public set letterCount(value: number) {\n if (this._letterCount !== value) {\n this._letterCount = value;\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.LETTER_COUNT, isDefined(this._letterCount) ? this._letterCount.toString() : '');\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Sets the background image URL to use. */\n public get imageUrl(): string {\n return this._imageUrl;\n }\n public set imageUrl(value: string) {\n if (this._imageUrl !== value) {\n this._imageUrl = value;\n if (this._initialized) {\n this._render();\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, FoundationProperty } from '@tylertech/forge-core';\n\nimport { AvatarAdapter } from './avatar-adapter';\nimport { AvatarFoundation } from './avatar-foundation';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-avatar\\\" aria-hidden=\\\"true\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = ':host{contain:content;display:inline-block}:host([hidden]){display:none}.forge-avatar{--_avatar-size:var(--forge-avatar-size, 40px);--_avatar-background:var(--forge-avatar-background, var(--forge-theme-tertiary, #3d5afe));--_avatar-color:var(--forge-avatar-color, var(--forge-theme-on-tertiary, #ffffff));--_avatar-transition-duration:var(--forge-avatar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_avatar-transition-timing:var(--forge-avatar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_avatar-shape:var(--forge-avatar-shape, var(--forge-shape-round, 50%))}.forge-avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;overflow:hidden;-webkit-transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);border-radius:var(--_avatar-shape);-webkit-box-sizing:border-box;box-sizing:border-box;width:var(--_avatar-size);height:var(--_avatar-size);background-color:var(--_avatar-background);background-position:center;background-repeat:no-repeat;background-size:cover;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading2-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-subheading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-font-size-scale, 1)));font-weight:var(--forge-typography-subheading2-font-weight,400);line-height:var(--forge-typography-subheading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-subheading2-letter-spacing, normal);text-transform:var(--forge-typography-subheading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);color:var(--_avatar-color)}.forge-avatar--image{background-color:inherit}';\n\nexport interface IAvatarComponent extends IBaseComponent {\n imageUrl: string;\n text: string;\n letterCount: number;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-avatar': IAvatarComponent;\n }\n}\n\n/**\n * @tag forge-avatar\n * \n * @summary Avatars represent an entity via text or image.\n * \n * @description\n * The avatar component allows you to provide text or images to display that represent an entity. By default, the\n * avatar will display textual content as single characters (character count is configurable), or display an image or\n * icon based on the URL provided to it.\n * \n * @property {string} text - The text to display in the avatar.\n * @property {number} letterCount - Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.\n * @property {string} imageUrl - The background image URL to use.\n * \n * @attribute {string} text - The text to display in the avatar.\n * @attribute {number} letter-count - Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.\n * @attribute {string} image-url - The background image URL to use.\n * \n * @cssproperty --forge-avatar-background - The background color of the avatar.\n * @cssproperty --forge-avatar-shape - The border radius of the avatar, defaults to 50%.\n * @cssproperty --forge-avatar-color - The text color of the avatar.\n * @cssproperty --forge-avatar-size - The height and width of the avatar.\n * @cssproperty --forge-avatar-transition-duration - The transition duration for animations.\n * @cssproperty --forge-avatar-transition-timing - The transition timing function for animations.\n * \n * @csspart root - The root container element.\n * \n * @slot - The default/unnamed slot for avatar content if not provided via text/imageUrl.\n */\n@CustomElement({\n name: AVATAR_CONSTANTS.elementName\n})\nexport class AvatarComponent extends BaseComponent implements IAvatarComponent {\n public static get observedAttributes(): string[] {\n return [\n AVATAR_CONSTANTS.attributes.TEXT,\n AVATAR_CONSTANTS.attributes.LETTER_COUNT,\n AVATAR_CONSTANTS.attributes.IMAGE_URL\n ];\n }\n\n private _foundation: AvatarFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new AvatarFoundation(new AvatarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case AVATAR_CONSTANTS.attributes.TEXT:\n this.text = newValue;\n break;\n case AVATAR_CONSTANTS.attributes.LETTER_COUNT:\n this.letterCount = coerceNumber(newValue);\n break;\n case AVATAR_CONSTANTS.attributes.IMAGE_URL:\n this.imageUrl = newValue;\n break;\n }\n }\n\n /** The text to display in the avatar. */\n @FoundationProperty()\n public declare text: string;\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n @FoundationProperty()\n public declare letterCount: number;\n\n /** The background image URL to use. */\n @FoundationProperty()\n public declare imageUrl: string;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AvatarComponent } from './avatar';\n\nexport * from './avatar-adapter';\nexport * from './avatar-constants';\nexport * from './avatar-foundation';\nexport * from './avatar';\n\nexport function defineAvatarComponent(): void {\n defineCustomElement(AvatarComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "numbers", "selectors", "strings", "COLOR_CONSTANTS", "AVATAR_CONSTANTS", "AvatarAdapter", "BaseAdapter", "component", "getShadowElement", "AVATAR_CONSTANTS", "url", "resolve", "image", "value", "removeAllChildren", "AvatarFoundation", "_adapter", "AVATAR_CONSTANTS", "data", "value", "count", "isString", "text", "prev", "curr", "isDefined", "template", "styles", "AvatarComponent", "BaseComponent", "attachShadowTemplate", "AvatarFoundation", "AvatarAdapter", "AVATAR_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "__decorateClass", "FoundationProperty", "CustomElement", "defineAvatarComponent", "defineCustomElement", "AvatarComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as f}from"./chunk.ZY3ETQ3D.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as k,b as v}from"./chunk.UVXKHQQZ.js";import{a as b,e as l,f as A,k as h}from"./chunk.TPXXHX5J.js";import{d as i}from"./chunk.M3QDAYD2.js";var _=`${v}backdrop`,y={CONTAINER:".forge-backdrop"},E={OPACITY:.54,DELAY:0,TRANSITION_DURATION:150},O={DELAY:"delay",MAX_OPACITY:"max-opacity",APPEARANCE:"appearance",FIXED:"fixed"},g={BACKDROP_CLICK:`${_}-click`},e={elementName:_,selectors:y,numbers:E,attributes:O,events:g};var n=class extends f{constructor(a){super(a);this._backdropElement=A(a,e.selectors.CONTAINER)}setBackdropOpacity(a){this._backdropElement.style.opacity=a.toString()}addBackdropEventListener(a,o){this._backdropElement.addEventListener("click",o)}removeBackdropEventListener(a,o){this._backdropElement.removeEventListener("click",o)}};var s=class{constructor(t){this._adapter=t;this._delay=e.numbers.DELAY;this._maxOpacity=e.numbers.OPACITY;this._adapter.addBackdropEventListener("click",this._onClick.bind(this))}initialize(){this._adapter.setBackdropOpacity(0),this._applyAppearance(),this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()),this.fadeIn()}fadeOut(){return new Promise(t=>{this._adapter.setBackdropOpacity(0),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)})}fadeIn(){return new Promise(t=>{setTimeout(()=>{this._adapter.setBackdropOpacity(this._maxOpacity),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)},this.delay)})}_onClick(t){t.stopPropagation(),this._adapter.emitHostEvent(e.events.BACKDROP_CLICK,void 0,!0,!0)}disconnect(){this._adapter.removeBackdropEventListener("click",this._onClick)}_applyAppearance(){this._appearance?this._adapter.setHostAttribute(e.attributes.APPEARANCE,String(this._appearance)):this._adapter.removeHostAttribute(e.attributes.APPEARANCE)}set delay(t){this._delay!==t&&(this._delay=t,this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()))}get delay(){return this._delay}set maxOpacity(t){this._maxOpacity!==t&&(this._maxOpacity=t,this._adapter.setHostAttribute(e.attributes.MAX_OPACITY,this._maxOpacity.toString()))}get maxOpacity(){return this._maxOpacity}get appearance(){return this._appearance}set appearance(t){this._appearance!==t&&(this._appearance=t,this._applyAppearance())}};var I='<template><div class="forge-backdrop" part="root"></div></template>',C=".forge-backdrop{z-index:7;z-index:var(--forge-z-index-backdrop,7);background-color:rgba(0,0,0,.54);background-color:var(--forge-backdrop-theme-background,rgba(0,0,0,.54));position:absolute;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);opacity:0}:host{display:block}:host([hidden]){display:none}:host([fixed]) .forge-backdrop{position:fixed}:host([appearance=light]){--forge-backdrop-theme-background:rgba(255, 255, 255, 0.54)}:host([appearance=dark]){--forge-backdrop-theme-background:rgba(0, 0, 0, 0.54)}",r=class extends h{constructor(){super();l(this,I,C),this._foundation=new s(new n(this))}static get observedAttributes(){return[e.attributes.DELAY,e.attributes.MAX_OPACITY]}connectedCallback(){if(this.hasAttribute(e.attributes.DELAY)&&this.getAttribute(e.attributes.DELAY)){let a=Number(this.getAttribute(e.attributes.DELAY));this.delay=a>=0?a:e.numbers.DELAY}if(this.hasAttribute(e.attributes.MAX_OPACITY)){let a=Number(this.getAttribute(e.attributes.MAX_OPACITY));this.maxOpacity=a>=0&&a<=1?a:e.numbers.OPACITY}this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(a,o,c){switch(a){case e.attributes.DELAY:let u=Number(c);this.delay=u>=0?u:e.numbers.DELAY;break;case e.attributes.MAX_OPACITY:let d=Number(c);this.maxOpacity=d>=0&&d<=1?d:e.numbers.OPACITY;break;case e.attributes.APPEARANCE:this.appearance=c;break}}fadeOut(){return this._foundation.fadeOut()}fadeIn(){return this._foundation.fadeIn()}};i([p()],r.prototype,"delay",2),i([p()],r.prototype,"appearance",2),i([p()],r.prototype,"maxOpacity",2),r=i([k({name:e.elementName})],r);function q(){b(r)}export{e as a,n as b,s as c,r as d,q as e};
7
+ //# sourceMappingURL=chunk.CPD4RUF2.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/backdrop/backdrop-constants.ts", "../../src/backdrop/backdrop-adapter.ts", "../../src/backdrop/backdrop-foundation.ts", "../../src/backdrop/backdrop.ts", "../../src/backdrop/index.ts"],
4
4
  "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}backdrop`;\n\nconst selectors = {\n CONTAINER: '.forge-backdrop'\n};\n\nconst numbers = {\n OPACITY: 0.54,\n DELAY: 0,\n TRANSITION_DURATION: 150\n};\n\nconst attributes = {\n DELAY: 'delay',\n MAX_OPACITY: 'max-opacity',\n APPEARANCE: 'appearance',\n FIXED: 'fixed'\n};\n\nconst events = {\n BACKDROP_CLICK: `${elementName}-click`\n};\n\nexport const BACKDROP_CONSTANTS = {\n elementName,\n selectors,\n numbers,\n attributes,\n events\n};\n\nexport type BackdropAppearance = 'light' | 'dark' | undefined;\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IBackdropComponent } from './backdrop';\nimport { BACKDROP_CONSTANTS } from './backdrop-constants';\n\nexport interface IBackdropAdapter extends IBaseAdapter {\n setBackdropOpacity: (opacity: number) => void;\n addBackdropEventListener: (type: string, listener: (evt: Event) => void) => void;\n removeBackdropEventListener: (type: string, listener: (evt: Event) => void) => void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `BackdropComponent`.\n */\nexport class BackdropAdapter extends BaseAdapter<IBackdropComponent> implements IBackdropAdapter {\n private _backdropElement: HTMLElement;\n\n constructor(component: IBackdropComponent) {\n super(component);\n this._backdropElement = getShadowElement(component, BACKDROP_CONSTANTS.selectors.CONTAINER);\n }\n\n /**\n * Sets the backdrop element opacity.\n * @param opacity The opacity amount.\n */\n public setBackdropOpacity(opacity: number): void {\n this._backdropElement.style.opacity = opacity.toString();\n }\n\n /**\n * Adds a click event to the backdrop container element.\n * @param type The event type.\n * @param listener The event listener.\n */\n public addBackdropEventListener(type: string, listener: (evt: Event) => void): void {\n this._backdropElement.addEventListener('click', listener);\n }\n\n /**\n * Removes a click event from the backdrop container element.\n * @param type The event type.\n * @param listener The event listener.\n */\n public removeBackdropEventListener(type: string, listener: (evt: Event) => void): void {\n this._backdropElement.removeEventListener('click', listener);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IBackdropAdapter } from './backdrop-adapter';\nimport { BackdropAppearance, BACKDROP_CONSTANTS } from './backdrop-constants';\n\n\nexport interface IBackdropFoundation extends ICustomElementFoundation {\n fadeOut(): Promise<void>;\n fadeIn(): Promise<void>;\n appearance: BackdropAppearance;\n}\n\nexport class BackdropFoundation implements IBackdropFoundation {\n private _delay: number = BACKDROP_CONSTANTS.numbers.DELAY;\n private _maxOpacity: number = BACKDROP_CONSTANTS.numbers.OPACITY;\n private _appearance: BackdropAppearance;\n\n constructor(private _adapter: IBackdropAdapter) {\n this._adapter.addBackdropEventListener('click', this._onClick.bind(this));\n }\n\n public initialize(): void {\n this._adapter.setBackdropOpacity(0);\n this._applyAppearance();\n this._adapter.setHostAttribute(BACKDROP_CONSTANTS.attributes.DELAY, this._delay.toString());\n this.fadeIn();\n }\n\n /**\n * Starts the fade-out animation to animate the backdrop to 0% opacity.\n */\n public fadeOut(): Promise<void> {\n return new Promise<void>(resolve => {\n this._adapter.setBackdropOpacity(0);\n setTimeout(() => resolve(), BACKDROP_CONSTANTS.numbers.TRANSITION_DURATION);\n });\n }\n\n /**\n * Starts the fade-in animation to animate the backdrop to max opacity.\n */\n public fadeIn(): Promise<void> {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n this._adapter.setBackdropOpacity(this._maxOpacity);\n setTimeout(() => resolve(), BACKDROP_CONSTANTS.numbers.TRANSITION_DURATION);\n }, this.delay);\n });\n }\n\n private _onClick(evt: Event): void {\n evt.stopPropagation();\n this._adapter.emitHostEvent(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, undefined, true, true);\n }\n\n public disconnect(): void {\n this._adapter.removeBackdropEventListener('click', this._onClick);\n }\n\n private _applyAppearance(): void {\n if (this._appearance) {\n this._adapter.setHostAttribute(BACKDROP_CONSTANTS.attributes.APPEARANCE, String(this._appearance));\n } else {\n this._adapter.removeHostAttribute(BACKDROP_CONSTANTS.attributes.APPEARANCE);\n }\n }\n\n public set delay(value: number) {\n if (this._delay !== value) {\n this._delay = value;\n this._adapter.setHostAttribute(BACKDROP_CONSTANTS.attributes.DELAY, this._delay.toString());\n }\n }\n public get delay(): number {\n return this._delay;\n }\n\n public set maxOpacity(value: number) {\n if (this._maxOpacity !== value) {\n this._maxOpacity = value;\n this._adapter.setHostAttribute(BACKDROP_CONSTANTS.attributes.MAX_OPACITY, this._maxOpacity.toString());\n }\n }\n public get maxOpacity(): number {\n return this._maxOpacity;\n }\n\n public get appearance(): BackdropAppearance {\n return this._appearance;\n }\n public set appearance(value: BackdropAppearance) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._applyAppearance();\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { BackdropAdapter } from './backdrop-adapter';\nimport { BackdropAppearance, BACKDROP_CONSTANTS } from './backdrop-constants';\nimport { BackdropFoundation } from './backdrop-foundation';\n\nconst template = '<template><div class=\\\"forge-backdrop\\\" part=\\\"root\\\"></div></template>';\nconst styles = '.forge-backdrop{z-index:7;z-index:var(--forge-z-index-backdrop,7);background-color:rgba(0,0,0,.54);background-color:var(--forge-backdrop-theme-background,rgba(0,0,0,.54));position:absolute;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);opacity:0}:host{display:block}:host([hidden]){display:none}:host([fixed]) .forge-backdrop{position:fixed}:host([appearance=light]){--forge-backdrop-theme-background:rgba(255, 255, 255, 0.54)}:host([appearance=dark]){--forge-backdrop-theme-background:rgba(0, 0, 0, 0.54)}';\n\nexport interface IBackdropComponent extends IBaseComponent {\n delay: number;\n maxOpacity: number;\n appearance: BackdropAppearance;\n fadeOut(): Promise<void>;\n fadeIn(): Promise<void>;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-backdrop': IBackdropComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-backdrop-click': CustomEvent<void>;\n }\n}\n\n/**\n * A web component that renders a backdrop covering its parent container with a semi-opaque element.\n * \n * @tag forge-backdrop\n */\n@CustomElement({\n name: BACKDROP_CONSTANTS.elementName\n})\nexport class BackdropComponent extends BaseComponent {\n public static get observedAttributes(): string[] {\n return [\n BACKDROP_CONSTANTS.attributes.DELAY,\n BACKDROP_CONSTANTS.attributes.MAX_OPACITY\n ];\n }\n\n protected _foundation: BackdropFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new BackdropFoundation(new BackdropAdapter(this));\n }\n\n public connectedCallback(): void {\n if (this.hasAttribute(BACKDROP_CONSTANTS.attributes.DELAY) && this.getAttribute(BACKDROP_CONSTANTS.attributes.DELAY)) {\n const inDelay = Number(this.getAttribute(BACKDROP_CONSTANTS.attributes.DELAY));\n this.delay = inDelay >= 0 ? inDelay : BACKDROP_CONSTANTS.numbers.DELAY;\n }\n\n if (this.hasAttribute(BACKDROP_CONSTANTS.attributes.MAX_OPACITY)) {\n const inMaxOpacity = Number(this.getAttribute(BACKDROP_CONSTANTS.attributes.MAX_OPACITY));\n this.maxOpacity = inMaxOpacity >= 0 && inMaxOpacity <= 1 ? inMaxOpacity : BACKDROP_CONSTANTS.numbers.OPACITY;\n }\n\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BACKDROP_CONSTANTS.attributes.DELAY:\n const delayValue = Number(newValue);\n this.delay = delayValue >= 0 ? delayValue : BACKDROP_CONSTANTS.numbers.DELAY;\n break;\n case BACKDROP_CONSTANTS.attributes.MAX_OPACITY:\n const opacityValue = Number(newValue);\n this.maxOpacity = opacityValue >= 0 && opacityValue <= 1 ? opacityValue : BACKDROP_CONSTANTS.numbers.OPACITY;\n break;\n case BACKDROP_CONSTANTS.attributes.APPEARANCE:\n this.appearance = newValue as BackdropAppearance;\n break;\n }\n }\n\n /**\n * The time in milliseconds to delay the fade in animation of the opacity.\n * Note: The element will start with 0% opacity when the component is rendered.\n */\n @FoundationProperty()\n public declare delay: number;\n\n /** Controls whether the theme defaults to light vs dark compatibility. */\n @FoundationProperty()\n public declare appearance: BackdropAppearance;\n\n /** The max opacity to fade the element to. This defines how opaque the backdrop is when visible. */\n @FoundationProperty()\n public declare maxOpacity: number;\n\n /**\n * Starts the fade-out animation to animate the backdrop to 0% opacity.\n */\n public fadeOut(): Promise<void> {\n return this._foundation.fadeOut();\n }\n\n /**\n * Starts the fade-in animation to animate the backdrop to max opacity.\n */\n public fadeIn(): Promise<void> {\n return this._foundation.fadeIn();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { BackdropComponent } from './backdrop';\n\nexport * from './backdrop-adapter';\nexport * from './backdrop-constants';\nexport * from './backdrop-foundation';\nexport * from './backdrop';\n\nexport function defineBackdropComponent(): void {\n defineCustomElement(BackdropComponent);\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "selectors", "numbers", "attributes", "events", "BACKDROP_CONSTANTS", "BackdropAdapter", "BaseAdapter", "component", "getShadowElement", "BACKDROP_CONSTANTS", "opacity", "type", "listener", "BackdropFoundation", "_adapter", "BACKDROP_CONSTANTS", "resolve", "evt", "value", "template", "styles", "BackdropComponent", "BaseComponent", "attachShadowTemplate", "BackdropFoundation", "BackdropAdapter", "BACKDROP_CONSTANTS", "inDelay", "inMaxOpacity", "name", "oldValue", "newValue", "delayValue", "opacityValue", "__decorateClass", "FoundationProperty", "CustomElement", "defineBackdropComponent", "defineCustomElement", "BackdropComponent"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as e}from"./chunk.UVXKHQQZ.js";import{a as t}from"./chunk.M3QDAYD2.js";var T=`${e}tooltip`,o={ID:"id",OPEN:"open",TYPE:"type",ANCHOR:"anchor",TARGET:"target",PLACEMENT:"placement",POSITION:"position",DELAY:"delay",OFFSET:"offset",FLIP:"flip",BOUNDARY:"boundary",FALLBACK_PLACEMENTS:"fallback-placements",TRIGGER_TYPE:"trigger-type"},p=t({},o),r={LONGPRESS_VISIBILITY_DURATION:3e3},s={DELAY:500,OFFSET:4,FLIP:"auto",TYPE:"presentation",PLACEMENT:"right",TRIGGER_TYPES:["hover"]},a={CONTENT:".forge-tooltip",ARROW:".arrow"},n={elementName:T,observedAttributes:o,attributes:p,numbers:r,defaults:s,selectors:a};export{n as a};
7
+ //# sourceMappingURL=chunk.D7L2IMHJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tooltip/tooltip-constants.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { PositionPlacement } from '../core/utils/position-utils';\nimport { OverlayFlipState } from '../overlay/overlay-constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tooltip`;\n\nconst observedAttributes = {\n ID: 'id',\n OPEN: 'open',\n TYPE: 'type',\n ANCHOR: 'anchor',\n TARGET: 'target', // deprecated\n PLACEMENT: 'placement',\n POSITION: 'position', // deprecated\n DELAY: 'delay',\n OFFSET: 'offset',\n FLIP: 'flip',\n BOUNDARY: 'boundary',\n FALLBACK_PLACEMENTS: 'fallback-placements',\n TRIGGER_TYPE: 'trigger-type'\n} as const;\n\nconst attributes = {\n ...observedAttributes\n} as const;\n\nconst numbers = {\n LONGPRESS_VISIBILITY_DURATION: 3000\n};\n\nconst defaults = {\n DELAY: 500,\n OFFSET: 4,\n FLIP: 'auto' as OverlayFlipState,\n TYPE: 'presentation' as TooltipType,\n PLACEMENT: 'right' as TooltipPlacement,\n TRIGGER_TYPES: ['hover'] as TooltipTriggerType[]\n};\n\nconst selectors = {\n CONTENT: '.forge-tooltip',\n ARROW: '.arrow'\n} as const;\n\nexport const TOOLTIP_CONSTANTS = {\n elementName,\n observedAttributes,\n attributes,\n numbers,\n defaults,\n selectors\n};\n\nexport type TooltipType = 'presentation' | 'label' | 'description';\nexport type TooltipPlacement = PositionPlacement;\nexport type TooltipTriggerType = 'hover' | 'longpress' | 'focus';\n"],
5
+ "mappings": "gFAIA,IAAMA,EAA2C,GAAGC,WAE9CC,EAAqB,CACzB,GAAI,KACJ,KAAM,OACN,KAAM,OACN,OAAQ,SACR,OAAQ,SACR,UAAW,YACX,SAAU,WACV,MAAO,QACP,OAAQ,SACR,KAAM,OACN,SAAU,WACV,oBAAqB,sBACrB,aAAc,cAChB,EAEMC,EAAaC,EAAA,GACdF,GAGCG,EAAU,CACd,8BAA+B,GACjC,EAEMC,EAAW,CACf,MAAO,IACP,OAAQ,EACR,KAAM,OACN,KAAM,eACN,UAAW,QACX,cAAe,CAAC,OAAO,CACzB,EAEMC,EAAY,CAChB,QAAS,iBACT,MAAO,QACT,EAEaC,EAAoB,CAC/B,YAAAR,EACA,mBAAAE,EACA,WAAAC,EACA,QAAAE,EACA,SAAAC,EACA,UAAAC,CACF",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "numbers", "defaults", "selectors", "TOOLTIP_CONSTANTS"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{c as k}from"./chunk.MTZOQQXR.js";import{d as I}from"./chunk.NPCUVYWP.js";import{f as x}from"./chunk.EWT2PBEP.js";import{d as D,l as w}from"./chunk.L7BSLZCB.js";import{a as v}from"./chunk.ZY3ETQ3D.js";import{a as m}from"./chunk.NVUMRW44.js";import{a as h,b as _}from"./chunk.UVXKHQQZ.js";import{a as f,e as p,f as a,k as u}from"./chunk.TPXXHX5J.js";import{k as b}from"./chunk.J2M2MXP2.js";import{d as i}from"./chunk.M3QDAYD2.js";var d=`${_}banner`,S={BANNER:"forge-banner",DISMISSED:"forge-banner--dismissed"},E={BANNER:".forge-banner",FORGE_DISMISS_BUTTON:"forge-icon-button.forge-banner__container-dismiss",DISMISS_BUTTON:".forge-banner__container-dismiss",ICON:"i",FORGE_BUTTON:"forge-button"},B={SLOT:"slot",DISMISSED:"dismissed",CAN_DISMISS:"can-dismiss",HIDDEN:"hidden"},y={ICON:"icon",TEXT:"text",BUTTON:"button"},N={DISMISSED:`${d}-dismissed`,UNDISMISSED:`${d}-undismissed`},e={elementName:d,classes:S,selectors:E,attributes:B,slots:y,events:N};var s=class extends v{constructor(o){super(o);this._rootElement=a(o,e.selectors.BANNER)}addRootClass(o){this._rootElement.classList.add(o)}removeRootClass(o){this._rootElement.classList.remove(o)}addDismissButtonAttribute(o,t=""){this.forgeIconButtonDismiss.setAttribute(o,t)}removeDismissButtonAttribute(o){this.forgeIconButtonDismiss.removeAttribute(o)}addDismissEventListener(o,t){this.buttonDismiss.addEventListener(o,t)}removeDismissEventListener(o,t){this.buttonDismiss.removeEventListener(o,t)}get forgeIconButtonDismiss(){return this._forgeIconButtonDismiss||(this._forgeIconButtonDismiss=a(this._component,e.selectors.FORGE_DISMISS_BUTTON)),this._forgeIconButtonDismiss}get buttonDismiss(){return this._buttonDismiss||(this._buttonDismiss=a(this._component,e.selectors.DISMISS_BUTTON)),this._buttonDismiss}};var c=class{constructor(n){this._adapter=n;this._dismissed=!1;this._canDismiss=!0;this._dismissBanner=()=>this._dismiss()}connect(){this._addDismissEventListener()}disconnect(){this._removeDismissEventListener()}_dismiss(){this.dismissed=!0}_syncDismissedState(){this.dismissed?(this._setDismissedClass(),this._adapter.emitHostEvent(e.events.DISMISSED)):(this._setUndissmissedClass(),this._adapter.emitHostEvent(e.events.UNDISMISSED))}_setUndissmissedClass(){this._adapter.removeRootClass(e.classes.DISMISSED)}_setDismissedClass(){this._adapter.addRootClass(e.classes.DISMISSED)}_syncCanDismissState(){this.canDismiss?this._adapter.removeDismissButtonAttribute(e.attributes.HIDDEN):this._adapter.addDismissButtonAttribute(e.attributes.HIDDEN)}_addDismissEventListener(){this._adapter.addDismissEventListener("click",this._dismissBanner)}_removeDismissEventListener(){this._adapter.removeDismissEventListener("click",this._dismissBanner)}get dismissed(){return!!this._dismissed}set dismissed(n){this.dismissed!==!!n&&(this._dismissed=!!n,this._syncDismissedState())}get canDismiss(){return!!this._canDismiss}set canDismiss(n){this._canDismiss!==!!n&&(this._canDismiss=!!n,this._syncCanDismissState())}};var C='<template><div class="forge-banner" part="root"><div class="forge-banner__container" part="container"><div class="forge-banner__container-wrapper" part="wrapper"><div class="forge-banner__container-wrapper-icon" part="icon-container"><slot name="icon"></slot></div><div class="forge-banner__container-wrapper-subsection" part="subsection-wrapper"><div class="forge-banner__container-wrapper-subsection-text forge-typography--body2" part="subsection-text"><slot></slot></div><div class="forge-banner__container-wrapper-subsection-action" part="action-subsection"><slot name="button"></slot></div></div></div><forge-icon-button class="forge-banner__container-dismiss" part="dismiss-icon-button" part="dismiss-button"><forge-icon name="cancel" part="dismiss-button-icon"></forge-icon></forge-icon-button><forge-tooltip type="label">Dismiss</forge-tooltip></div></div></template>',T='@media (min-width:600px){.forge-banner{-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:600px;max-height:600px}.forge-banner.forge-banner--dismissed{-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:0}.forge-banner__container{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom-width:1px;border-bottom-style:solid;min-height:48px;-webkit-box-align:center;align-items:center;padding:0 24px 0 24px}.forge-banner__container-wrapper{-webkit-box-flex:1;flex:1 1 auto;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.forge-banner__container-wrapper-icon{margin-right:16px}.forge-banner__container-wrapper-subsection{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center}.forge-banner__container-wrapper-subsection-text{padding:14px 0 14px 0;margin-right:24px}.forge-banner__container-wrapper-subsection-action ::slotted(forge-button){margin-right:16px}.forge-banner__container-dismiss[hidden]{display:none}}@media (max-width:599px){.forge-banner{-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:600px;max-height:600px}.forge-banner.forge-banner--dismissed{-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:0}.forge-banner__container{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom-width:1px;border-bottom-style:solid;min-height:48px;padding:16px 12px 16px 12px}.forge-banner__container-wrapper{-webkit-box-flex:1;flex:1 1 auto;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-banner__container-wrapper-icon{margin-right:16px}.forge-banner__container-wrapper-subsection{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-banner__container-wrapper-subsection-action ::slotted(forge-button){margin-top:12px}.forge-banner__container-dismiss{margin-top:-12px;margin-right:-12px}.forge-banner__container-dismiss[hidden]{display:none}}:host{display:block}:host([hidden]){display:none}:host(:not([theme])) .forge-banner,:host([theme=""]) .forge-banner,:host([theme=default]) .forge-banner{background:#e8eaf6;background:var(--forge-banner-theme-background,var(--forge-banner-theme-default-background,#e8eaf6));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-default-font-color,rgba(0,0,0,.87)))}:host(:not([theme])) .forge-banner .forge-banner__container-wrapper-icon,:host([theme=""]) .forge-banner .forge-banner__container-wrapper-icon,:host([theme=default]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-default-icon-color,rgba(0,0,0,.54)))}:host(:not([theme])) .forge-banner .forge-banner__container-dismiss,:host([theme=""]) .forge-banner .forge-banner__container-dismiss,:host([theme=default]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-default-icon-color,rgba(0,0,0,.54)))}:host([theme=danger]) .forge-banner{background:#ffcdd2;background:var(--forge-banner-theme-background,var(--forge-banner-theme-danger-background,#ffcdd2));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-danger-font-color,rgba(0,0,0,.87)))}:host([theme=danger]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-danger-icon-color,rgba(0,0,0,.54)))}:host([theme=danger]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-danger-icon-color,rgba(0,0,0,.54)))}:host([theme=warning]) .forge-banner{background:#ffdba6;background:var(--forge-banner-theme-background,var(--forge-banner-theme-warning-background,#ffdba6));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-warning-font-color,rgba(0,0,0,.87)))}:host([theme=warning]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-warning-icon-color,rgba(0,0,0,.54)))}:host([theme=warning]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-warning-icon-color,rgba(0,0,0,.54)))}:host([theme=success]) .forge-banner{background:#a5d6a7;background:var(--forge-banner-theme-background,var(--forge-banner-theme-success-background,#a5d6a7));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-success-font-color,rgba(0,0,0,.87)))}:host([theme=success]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-success-icon-color,rgba(0,0,0,.54)))}:host([theme=success]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-success-icon-color,rgba(0,0,0,.54)))}:host([theme=info-primary]) .forge-banner{background:#bbdefb;background:var(--forge-banner-theme-background,var(--forge-banner-theme-info-primary-background,#bbdefb));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host([theme=info-primary]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-info-primary-icon-color,rgba(0,0,0,.54)))}:host([theme=info-primary]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-info-primary-icon-color,rgba(0,0,0,.54)))}:host([theme=info-secondary]) .forge-banner{background:#e0e0e0;background:var(--forge-banner-theme-background,var(--forge-banner-theme-info-secondary-background,#e0e0e0));color:rgba(0,0,0,.87);color:var(--forge-banner-theme-on-background,var(--forge-banner-theme-info-secondary-font-color,rgba(0,0,0,.87)))}:host([theme=info-secondary]) .forge-banner .forge-banner__container-wrapper-icon{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-info-secondary-icon-color,rgba(0,0,0,.54)))}:host([theme=info-secondary]) .forge-banner .forge-banner__container-dismiss{color:rgba(0,0,0,.54);color:var(--forge-banner-theme-icon,var(--forge-banner-theme-info-secondary-icon-color,rgba(0,0,0,.54)))}',r=class extends u{constructor(){super();D.define(x),p(this,C,T),this._foundation=new c(new s(this))}static get observedAttributes(){return[e.attributes.DISMISSED,e.attributes.CAN_DISMISS]}connectedCallback(){this._foundation.connect()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(o,t,l){switch(o){case e.attributes.DISMISSED:this.dismissed=b(l);break;case e.attributes.CAN_DISMISS:this.canDismiss=b(l);break}}};i([m()],r.prototype,"dismissed",2),i([m()],r.prototype,"canDismiss",2),r=i([h({name:e.elementName,dependencies:[I,w,k]})],r);function oe(){f(r)}export{e as a,s as b,c,r as d,oe as e};
7
+ //# sourceMappingURL=chunk.DFRD7A2Y.js.map