@tylertech/forge 3.0.0-next.1 → 3.0.0-next.10

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 (725) hide show
  1. package/custom-elements.json +17342 -11782
  2. package/dist/button/forge-button.css +1 -1
  3. package/dist/esm/accordion/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-toggle/button-toggle/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  20. package/dist/esm/button-toggle/index.js +1 -1
  21. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  22. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  23. package/dist/esm/calendar/core/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.2O6IZ7XZ.js +7 -0
  32. package/dist/esm/chunks/chunk.2O6IZ7XZ.js.map +7 -0
  33. package/dist/esm/chunks/{chunk.77Y3EABF.js → chunk.2QSDH3PC.js} +2 -2
  34. package/dist/esm/chunks/{chunk.77Y3EABF.js.map → chunk.2QSDH3PC.js.map} +1 -1
  35. package/dist/esm/chunks/{chunk.J2H5RXTX.js → chunk.2TQONIPK.js} +2 -2
  36. package/dist/esm/chunks/{chunk.J2H5RXTX.js.map → chunk.2TQONIPK.js.map} +1 -1
  37. package/dist/esm/chunks/chunk.2VP57RZO.js +7 -0
  38. package/dist/esm/chunks/{chunk.C7AN6FMW.js.map → chunk.2VP57RZO.js.map} +2 -2
  39. package/dist/esm/chunks/{chunk.VC2BG2RS.js → chunk.2ZTERGYF.js} +2 -2
  40. package/dist/esm/chunks/{chunk.VC2BG2RS.js.map → chunk.2ZTERGYF.js.map} +1 -1
  41. package/dist/esm/chunks/{chunk.X5LGVZGO.js → chunk.33EJTOVA.js} +2 -2
  42. package/dist/esm/chunks/chunk.33EJTOVA.js.map +7 -0
  43. package/dist/esm/chunks/{chunk.BJZ7RB5F.js → chunk.3CTKWBV2.js} +1 -1
  44. package/dist/esm/chunks/{chunk.BJZ7RB5F.js.map → chunk.3CTKWBV2.js.map} +1 -1
  45. package/dist/esm/chunks/chunk.3JDFBEF7.js +7 -0
  46. package/dist/esm/chunks/chunk.44IUAOBP.js +7 -0
  47. package/dist/esm/chunks/{chunk.YPZNIYQL.js.map → chunk.44IUAOBP.js.map} +2 -2
  48. package/dist/esm/chunks/chunk.44UCSD46.js +7 -0
  49. package/dist/esm/chunks/{chunk.DT7MZR5Y.js.map → chunk.44UCSD46.js.map} +2 -2
  50. package/dist/esm/chunks/chunk.46VQ2S2Z.js +7 -0
  51. package/dist/esm/chunks/{chunk.ZFHPUAYX.js.map → chunk.46VQ2S2Z.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.SSRQFKNH.js → chunk.4WB3FGEL.js} +2 -2
  53. package/dist/esm/chunks/{chunk.SSRQFKNH.js.map → chunk.4WB3FGEL.js.map} +1 -1
  54. package/dist/esm/chunks/chunk.4WVHON6T.js +129 -0
  55. package/dist/esm/chunks/chunk.4WVHON6T.js.map +7 -0
  56. package/dist/esm/chunks/{chunk.TR5YMNJJ.js → chunk.57IVD67K.js} +2 -2
  57. package/dist/esm/chunks/{chunk.TR5YMNJJ.js.map → chunk.57IVD67K.js.map} +1 -1
  58. package/dist/esm/chunks/{chunk.H4Z4DHPA.js → chunk.5CMQ7DNL.js} +2 -2
  59. package/dist/esm/chunks/{chunk.XHV3GQ7L.js → chunk.5IQGVS6U.js} +2 -2
  60. package/dist/esm/chunks/{chunk.XHV3GQ7L.js.map → chunk.5IQGVS6U.js.map} +2 -2
  61. package/dist/esm/chunks/chunk.5M6Y2RU6.js +7 -0
  62. package/dist/esm/chunks/{chunk.Y5A7RQ5M.js.map → chunk.5M6Y2RU6.js.map} +1 -1
  63. package/dist/esm/chunks/chunk.5V5ABSHI.js +7 -0
  64. package/dist/esm/chunks/{chunk.G5MGGEFP.js.map → chunk.5V5ABSHI.js.map} +1 -1
  65. package/dist/esm/chunks/{chunk.XZ4WI7VK.js → chunk.6MPXRRMB.js} +2 -2
  66. package/dist/esm/chunks/{chunk.XZ4WI7VK.js.map → chunk.6MPXRRMB.js.map} +1 -1
  67. package/dist/esm/chunks/{chunk.PALRSBSY.js → chunk.6VDF54LZ.js} +2 -2
  68. package/dist/esm/chunks/{chunk.PALRSBSY.js.map → chunk.6VDF54LZ.js.map} +1 -1
  69. package/dist/esm/chunks/chunk.74DEHKGT.js +12 -0
  70. package/dist/esm/chunks/chunk.74DEHKGT.js.map +7 -0
  71. package/dist/esm/chunks/{chunk.IUOBRBDZ.js → chunk.7DHFTAWI.js} +2 -2
  72. package/dist/esm/chunks/chunk.7G72CBOJ.js +7 -0
  73. package/dist/esm/chunks/{chunk.V7WKXEZC.js.map → chunk.7G72CBOJ.js.map} +1 -1
  74. package/dist/esm/chunks/{chunk.N4PVZUJX.js → chunk.7TGGJGTG.js} +2 -2
  75. package/dist/esm/chunks/{chunk.N4PVZUJX.js.map → chunk.7TGGJGTG.js.map} +2 -2
  76. package/dist/esm/chunks/chunk.7WVTJIVR.js +7 -0
  77. package/dist/esm/chunks/{chunk.ROR6JMAE.js.map → chunk.7WVTJIVR.js.map} +1 -1
  78. package/dist/esm/chunks/chunk.7ZQMJLHE.js +7 -0
  79. package/dist/esm/chunks/{chunk.5FPFRE4H.js → chunk.AHHNJSZK.js} +2 -2
  80. package/dist/esm/chunks/{chunk.5FPFRE4H.js.map → chunk.AHHNJSZK.js.map} +1 -1
  81. package/dist/esm/chunks/chunk.BBKRPL6R.js +7 -0
  82. package/dist/esm/chunks/chunk.BBKRPL6R.js.map +7 -0
  83. package/dist/esm/chunks/chunk.BIFQ4VOJ.js +7 -0
  84. package/dist/esm/chunks/chunk.BIFQ4VOJ.js.map +7 -0
  85. package/dist/esm/chunks/chunk.BNFJRFLW.js +7 -0
  86. package/dist/esm/chunks/chunk.BNFJRFLW.js.map +7 -0
  87. package/dist/esm/chunks/{chunk.PN26D52V.js → chunk.CFDK4RCW.js} +1 -1
  88. package/dist/esm/chunks/{chunk.PN26D52V.js.map → chunk.CFDK4RCW.js.map} +1 -1
  89. package/dist/esm/chunks/chunk.CRWP7H46.js +7 -0
  90. package/dist/esm/chunks/chunk.CRWP7H46.js.map +7 -0
  91. package/dist/esm/chunks/chunk.D2Y2CRRY.js +7 -0
  92. package/dist/esm/chunks/chunk.D2Y2CRRY.js.map +7 -0
  93. package/dist/esm/chunks/{chunk.U6WGJELL.js → chunk.DMCBAYQX.js} +1 -1
  94. package/dist/esm/chunks/{chunk.U6WGJELL.js.map → chunk.DMCBAYQX.js.map} +1 -1
  95. package/dist/esm/chunks/{chunk.BE7PZANN.js → chunk.DTZFWZPB.js} +2 -2
  96. package/dist/esm/chunks/{chunk.BE7PZANN.js.map → chunk.DTZFWZPB.js.map} +1 -1
  97. package/dist/esm/chunks/chunk.DXZ5LVFJ.js +7 -0
  98. package/dist/esm/chunks/chunk.DXZ5LVFJ.js.map +7 -0
  99. package/dist/esm/chunks/chunk.E6KWYFZG.js +7 -0
  100. package/dist/esm/chunks/{chunk.4BEI55KI.js.map → chunk.E6KWYFZG.js.map} +1 -1
  101. package/dist/esm/chunks/{chunk.JEN6YP2Q.js → chunk.E7Z3IRWV.js} +2 -2
  102. package/dist/esm/chunks/chunk.ECRL6O3V.js +7 -0
  103. package/dist/esm/chunks/chunk.ECRL6O3V.js.map +7 -0
  104. package/dist/esm/chunks/{chunk.K2C4W3CO.js → chunk.EDEYCLDU.js} +2 -2
  105. package/dist/esm/chunks/chunk.EYZ25QUP.js +7 -0
  106. package/dist/esm/chunks/chunk.EYZ25QUP.js.map +7 -0
  107. package/dist/esm/chunks/chunk.F776DWXU.js +7 -0
  108. package/dist/esm/chunks/chunk.F776DWXU.js.map +7 -0
  109. package/dist/esm/chunks/{chunk.3KQL7VAZ.js → chunk.FDZSLGIW.js} +2 -2
  110. package/dist/esm/chunks/{chunk.3KQL7VAZ.js.map → chunk.FDZSLGIW.js.map} +1 -1
  111. package/dist/esm/chunks/chunk.FIBGOPNP.js +7 -0
  112. package/dist/esm/chunks/chunk.FIBGOPNP.js.map +7 -0
  113. package/dist/esm/chunks/{chunk.K6AFP52A.js → chunk.FUPNTFG7.js} +2 -2
  114. package/dist/esm/chunks/{chunk.K6AFP52A.js.map → chunk.FUPNTFG7.js.map} +2 -2
  115. package/dist/esm/chunks/{chunk.MZLPUI6R.js → chunk.FYWPZFLJ.js} +2 -2
  116. package/dist/esm/chunks/{chunk.MZLPUI6R.js.map → chunk.FYWPZFLJ.js.map} +2 -2
  117. package/dist/esm/chunks/{chunk.ARJ3EVVO.js → chunk.G4IN6Y46.js} +2 -2
  118. package/dist/esm/chunks/{chunk.KE6GOYAB.js → chunk.GT3XBPZY.js} +2 -2
  119. package/dist/esm/chunks/{chunk.KE6GOYAB.js.map → chunk.GT3XBPZY.js.map} +1 -1
  120. package/dist/esm/chunks/chunk.H5D54EHO.js +7 -0
  121. package/dist/esm/chunks/{chunk.JHBCYICS.js.map → chunk.H5D54EHO.js.map} +1 -1
  122. package/dist/esm/chunks/chunk.HRGTAVNA.js +7 -0
  123. package/dist/esm/chunks/{chunk.J6WCFQSS.js.map → chunk.HRGTAVNA.js.map} +2 -2
  124. package/dist/esm/chunks/chunk.HXJCTE47.js +7 -0
  125. package/dist/esm/chunks/{chunk.KU5CXXGS.js → chunk.IDD54B5P.js} +2 -2
  126. package/dist/esm/chunks/chunk.ISC7SZSP.js +7 -0
  127. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +7 -0
  128. package/dist/esm/chunks/{chunk.LYOQ2RGP.js → chunk.IWA3CYIB.js} +2 -2
  129. package/dist/esm/chunks/{chunk.LYOQ2RGP.js.map → chunk.IWA3CYIB.js.map} +1 -1
  130. package/dist/esm/chunks/{chunk.T76JYRPR.js → chunk.J3UFSHDY.js} +2 -2
  131. package/dist/esm/chunks/{chunk.T76JYRPR.js.map → chunk.J3UFSHDY.js.map} +2 -2
  132. package/dist/esm/chunks/chunk.JL4XB4RI.js +7 -0
  133. package/dist/esm/chunks/chunk.JL4XB4RI.js.map +7 -0
  134. package/dist/esm/chunks/chunk.JTIPXKV6.js +7 -0
  135. package/dist/esm/chunks/{chunk.6OKJPSUE.js.map → chunk.JTIPXKV6.js.map} +2 -2
  136. package/dist/esm/chunks/chunk.KSCUIS5C.js +7 -0
  137. package/dist/esm/chunks/chunk.KSCUIS5C.js.map +7 -0
  138. package/dist/esm/chunks/chunk.L3M6DPQB.js +12 -0
  139. package/dist/esm/chunks/chunk.L3M6DPQB.js.map +7 -0
  140. package/dist/esm/chunks/{chunk.4DAIIJ37.js → chunk.LEVFMI2Q.js} +1 -1
  141. package/dist/esm/chunks/{chunk.4DAIIJ37.js.map → chunk.LEVFMI2Q.js.map} +1 -1
  142. package/dist/esm/chunks/chunk.LHBF47UY.js +7 -0
  143. package/dist/esm/chunks/chunk.LHBF47UY.js.map +7 -0
  144. package/dist/esm/chunks/chunk.LM57DOG3.js +7 -0
  145. package/dist/esm/chunks/chunk.LM57DOG3.js.map +7 -0
  146. package/dist/esm/chunks/chunk.LYYWQGS6.js +7 -0
  147. package/dist/esm/chunks/chunk.LYYWQGS6.js.map +7 -0
  148. package/dist/esm/chunks/chunk.M2M47T4L.js +7 -0
  149. package/dist/esm/chunks/{chunk.MXTDW27J.js.map → chunk.M2M47T4L.js.map} +2 -2
  150. package/dist/esm/chunks/chunk.M3QDAYD2.js +7 -0
  151. package/dist/esm/chunks/chunk.MF36FG2X.js +7 -0
  152. package/dist/esm/chunks/{chunk.INCKI5IX.js.map → chunk.MF36FG2X.js.map} +1 -1
  153. package/dist/esm/chunks/chunk.MGLWXAZO.js +18 -0
  154. package/dist/esm/chunks/{chunk.YI4JTY4T.js.map → chunk.MGLWXAZO.js.map} +2 -2
  155. package/dist/esm/chunks/{chunk.BJE6O5ES.js → chunk.MGWY7YIL.js} +2 -2
  156. package/dist/esm/chunks/{chunk.BJE6O5ES.js.map → chunk.MGWY7YIL.js.map} +2 -2
  157. package/dist/esm/chunks/{chunk.O4FB4BV5.js → chunk.MJSLXZBM.js} +2 -2
  158. package/dist/esm/chunks/{chunk.O4FB4BV5.js.map → chunk.MJSLXZBM.js.map} +2 -2
  159. package/dist/esm/chunks/{chunk.XQ2EQIDS.js → chunk.N7PQ2MUQ.js} +2 -2
  160. package/dist/esm/chunks/{chunk.XQ2EQIDS.js.map → chunk.N7PQ2MUQ.js.map} +2 -2
  161. package/dist/esm/chunks/chunk.NF4J3Q5X.js +7 -0
  162. package/dist/esm/chunks/chunk.NF4J3Q5X.js.map +7 -0
  163. package/dist/esm/chunks/chunk.NK7H3MMM.js +7 -0
  164. package/dist/esm/chunks/{chunk.Y4GKBJGI.js.map → chunk.NK7H3MMM.js.map} +3 -3
  165. package/dist/esm/chunks/{chunk.KTGSZEAG.js → chunk.NVUMRW44.js} +1 -1
  166. package/dist/esm/chunks/{chunk.KTGSZEAG.js.map → chunk.NVUMRW44.js.map} +1 -1
  167. package/dist/esm/chunks/{chunk.ZUNZKRRK.js → chunk.OAHA3QOH.js} +2 -2
  168. package/dist/esm/chunks/{chunk.CLM6MNKC.js → chunk.OTD2SFQJ.js} +2 -2
  169. package/dist/esm/chunks/{chunk.CLM6MNKC.js.map → chunk.OTD2SFQJ.js.map} +1 -1
  170. package/dist/esm/chunks/{chunk.FRYLJWYL.js → chunk.P5QIB6OY.js} +2 -2
  171. package/dist/esm/chunks/{chunk.FRYLJWYL.js.map → chunk.P5QIB6OY.js.map} +1 -1
  172. package/dist/esm/chunks/{chunk.UBD2DPQN.js → chunk.PHBOQRF6.js} +2 -2
  173. package/dist/esm/chunks/{chunk.UBD2DPQN.js.map → chunk.PHBOQRF6.js.map} +1 -1
  174. package/dist/esm/chunks/{chunk.MLV25D2G.js → chunk.PHTOULRR.js} +2 -2
  175. package/dist/esm/chunks/chunk.QI3GKORL.js +7 -0
  176. package/dist/esm/chunks/chunk.QI3GKORL.js.map +7 -0
  177. package/dist/esm/chunks/{chunk.RYMPSU4J.js → chunk.QL45FKVJ.js} +2 -2
  178. package/dist/esm/chunks/{chunk.RYMPSU4J.js.map → chunk.QL45FKVJ.js.map} +2 -2
  179. package/dist/esm/chunks/chunk.QLJBPFP5.js +7 -0
  180. package/dist/esm/chunks/chunk.QLJBPFP5.js.map +7 -0
  181. package/dist/esm/chunks/{chunk.WP4QOOIS.js → chunk.QZK3WEH6.js} +2 -2
  182. package/dist/esm/chunks/chunk.RFLASSCI.js +7 -0
  183. package/dist/esm/chunks/{chunk.47A2CN5U.js.map → chunk.RFLASSCI.js.map} +1 -1
  184. package/dist/esm/chunks/{chunk.F2B24WLK.js → chunk.RGPNNISQ.js} +2 -2
  185. package/dist/esm/chunks/{chunk.F2B24WLK.js.map → chunk.RGPNNISQ.js.map} +1 -1
  186. package/dist/esm/chunks/chunk.SAXRW6GB.js +7 -0
  187. package/dist/esm/chunks/chunk.SAXRW6GB.js.map +7 -0
  188. package/dist/esm/chunks/chunk.SEP3L4QL.js +7 -0
  189. package/dist/esm/chunks/{chunk.RB5BTA5N.js.map → chunk.SEP3L4QL.js.map} +2 -2
  190. package/dist/esm/chunks/{chunk.2BNDXFI5.js → chunk.SN5LPTHH.js} +2 -2
  191. package/dist/esm/chunks/{chunk.2BNDXFI5.js.map → chunk.SN5LPTHH.js.map} +2 -2
  192. package/dist/esm/chunks/chunk.SQVBT7HU.js +7 -0
  193. package/dist/esm/chunks/chunk.SQVBT7HU.js.map +7 -0
  194. package/dist/esm/chunks/chunk.SZIM4KFZ.js +7 -0
  195. package/dist/esm/chunks/chunk.SZIM4KFZ.js.map +7 -0
  196. package/dist/esm/chunks/chunk.T5X6UNH7.js +7 -0
  197. package/dist/esm/chunks/{chunk.MHOS3IHQ.js.map → chunk.T5X6UNH7.js.map} +1 -1
  198. package/dist/esm/chunks/{chunk.HBMNXZES.js → chunk.TL6WVBGT.js} +2 -2
  199. package/dist/esm/chunks/{chunk.HBMNXZES.js.map → chunk.TL6WVBGT.js.map} +1 -1
  200. package/dist/esm/chunks/chunk.TT2VTZJ6.js +7 -0
  201. package/dist/esm/chunks/{chunk.242YUZKU.js.map → chunk.TT2VTZJ6.js.map} +1 -1
  202. package/dist/esm/chunks/{chunk.UT7QUGAO.js → chunk.U4GYQOPY.js} +2 -2
  203. package/dist/esm/chunks/{chunk.P3IA2WTO.js → chunk.UCM6CGFM.js} +2 -2
  204. package/dist/esm/chunks/{chunk.P3IA2WTO.js.map → chunk.UCM6CGFM.js.map} +1 -1
  205. package/dist/esm/chunks/chunk.UKFJHDO7.js +7 -0
  206. package/dist/esm/chunks/{chunk.E6CYXNS2.js.map → chunk.UKFJHDO7.js.map} +2 -2
  207. package/dist/esm/chunks/{chunk.DONAMICM.js → chunk.UV3WIHCM.js} +1 -1
  208. package/dist/esm/chunks/{chunk.DONAMICM.js.map → chunk.UV3WIHCM.js.map} +1 -1
  209. package/dist/esm/chunks/chunk.VNOJO2PF.js +7 -0
  210. package/dist/esm/chunks/{chunk.BTBHIIGI.js.map → chunk.VNOJO2PF.js.map} +1 -1
  211. package/dist/esm/chunks/{chunk.SXTTEIIH.js → chunk.WBYXVMYI.js} +2 -2
  212. package/dist/esm/chunks/{chunk.SXTTEIIH.js.map → chunk.WBYXVMYI.js.map} +1 -1
  213. package/dist/esm/chunks/chunk.WH6C36MO.js +7 -0
  214. package/dist/esm/chunks/chunk.WH6C36MO.js.map +7 -0
  215. package/dist/esm/chunks/{chunk.G45OZEIS.js → chunk.WO7KEM5K.js} +2 -2
  216. package/dist/esm/chunks/{chunk.RBAVT3XQ.js → chunk.WYP2M5FR.js} +2 -2
  217. package/dist/esm/chunks/chunk.X3YNJSDT.js +7 -0
  218. package/dist/esm/chunks/{chunk.4WPFFNLH.js.map → chunk.X3YNJSDT.js.map} +1 -1
  219. package/dist/esm/chunks/chunk.XATLSSAW.js +7 -0
  220. package/dist/esm/chunks/{chunk.5WNKQTXX.js.map → chunk.XATLSSAW.js.map} +2 -2
  221. package/dist/esm/chunks/chunk.XIQFHO5R.js +7 -0
  222. package/dist/esm/chunks/{chunk.FVRSGKJD.js.map → chunk.XIQFHO5R.js.map} +2 -2
  223. package/dist/esm/chunks/{chunk.O73S5LF3.js → chunk.XOM2FYQ2.js} +2 -2
  224. package/dist/esm/chunks/{chunk.XUW3GG46.js → chunk.XRESQBNE.js} +2 -2
  225. package/dist/esm/chunks/{chunk.AFLH5HUG.js → chunk.Y5UJ23LB.js} +2 -2
  226. package/dist/esm/chunks/chunk.YDY2IGBF.js +7 -0
  227. package/dist/esm/chunks/chunk.YDY2IGBF.js.map +7 -0
  228. package/dist/esm/chunks/{chunk.7UKA4E5A.js → chunk.YQXX5KSW.js} +2 -2
  229. package/dist/esm/chunks/{chunk.7UKA4E5A.js.map → chunk.YQXX5KSW.js.map} +1 -1
  230. package/dist/esm/chunks/chunk.YWCLKUK7.js +7 -0
  231. package/dist/esm/chunks/{chunk.Q7LFOS2I.js.map → chunk.YWCLKUK7.js.map} +1 -1
  232. package/dist/esm/chunks/chunk.YZLASVCK.js +177 -0
  233. package/dist/esm/chunks/chunk.YZLASVCK.js.map +7 -0
  234. package/dist/esm/chunks/chunk.Z4J4D5FD.js +7 -0
  235. package/dist/esm/chunks/{chunk.4NI63FGK.js.map → chunk.Z4J4D5FD.js.map} +2 -2
  236. package/dist/esm/chunks/chunk.ZAJB7G4V.js +7 -0
  237. package/dist/esm/chunks/{chunk.YBEBD4CN.js.map → chunk.ZAJB7G4V.js.map} +1 -1
  238. package/dist/esm/chunks/chunk.ZDAXNM2P.js +7 -0
  239. package/dist/esm/chunks/chunk.ZDAXNM2P.js.map +7 -0
  240. package/dist/esm/chunks/chunk.ZMRDW25U.js +7 -0
  241. package/dist/esm/circular-progress/index.js +1 -1
  242. package/dist/esm/color-picker/index.js +1 -1
  243. package/dist/esm/core/base/index.js +1 -1
  244. package/dist/esm/core/delegates/index.js +1 -1
  245. package/dist/esm/core/index.js +1 -1
  246. package/dist/esm/core/mask/index.js +1 -1
  247. package/dist/esm/core/utils/index.js +1 -1
  248. package/dist/esm/date-picker/index.js +1 -1
  249. package/dist/esm/date-range-picker/index.js +1 -1
  250. package/dist/esm/dialog/index.js +1 -1
  251. package/dist/esm/divider/index.js +1 -1
  252. package/dist/esm/drawer/base/index.js +1 -1
  253. package/dist/esm/drawer/drawer/index.js +1 -1
  254. package/dist/esm/drawer/index.js +1 -1
  255. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  256. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  257. package/dist/esm/expansion-panel/index.js +1 -1
  258. package/dist/esm/file-picker/index.js +1 -1
  259. package/dist/esm/floating-action-button/index.js +1 -1
  260. package/dist/esm/floating-label/index.js +1 -1
  261. package/dist/esm/focus-indicator/index.js +7 -0
  262. package/dist/esm/focus-indicator/index.js.map +7 -0
  263. package/dist/esm/icon/index.js +1 -1
  264. package/dist/esm/icon-button/index.js +1 -1
  265. package/dist/esm/index.js +1 -1
  266. package/dist/esm/inline-message/index.js +1 -1
  267. package/dist/esm/keyboard-shortcut/index.js +1 -1
  268. package/dist/esm/label-value/index.js +1 -1
  269. package/dist/esm/linear-progress/index.js +1 -1
  270. package/dist/esm/list/index.js +1 -1
  271. package/dist/esm/list/list/index.js +1 -1
  272. package/dist/esm/list/list-item/index.js +1 -1
  273. package/dist/esm/list-dropdown/index.js +1 -1
  274. package/dist/esm/menu/index.js +1 -1
  275. package/dist/esm/open-icon/index.js +1 -1
  276. package/dist/esm/page-state/index.js +1 -1
  277. package/dist/esm/paginator/index.js +1 -1
  278. package/dist/esm/popup/index.js +1 -1
  279. package/dist/esm/product-icon/index.js +1 -1
  280. package/dist/esm/profile-card/index.js +1 -1
  281. package/dist/esm/quantity-field/index.js +1 -1
  282. package/dist/esm/radio/index.js +1 -1
  283. package/dist/esm/ripple/index.js +1 -1
  284. package/dist/esm/scaffold/index.js +1 -1
  285. package/dist/esm/select/core/index.js +1 -1
  286. package/dist/esm/select/index.js +1 -1
  287. package/dist/esm/select/option/index.js +1 -1
  288. package/dist/esm/select/option-group/index.js +1 -1
  289. package/dist/esm/select/select/index.js +1 -1
  290. package/dist/esm/select/select-dropdown/index.js +1 -1
  291. package/dist/esm/skeleton/index.js +1 -1
  292. package/dist/esm/slider/index.js +1 -1
  293. package/dist/esm/split-view/index.js +1 -1
  294. package/dist/esm/split-view/split-view/index.js +1 -1
  295. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  296. package/dist/esm/stack/index.js +1 -1
  297. package/dist/esm/state-layer/index.js +7 -0
  298. package/dist/esm/state-layer/index.js.map +7 -0
  299. package/dist/esm/stepper/index.js +1 -1
  300. package/dist/esm/stepper/step/index.js +1 -1
  301. package/dist/esm/stepper/stepper/index.js +1 -1
  302. package/dist/esm/switch/index.js +1 -1
  303. package/dist/esm/table/index.js +1 -1
  304. package/dist/esm/tabs/index.js +1 -1
  305. package/dist/esm/tabs/tab/index.js +1 -1
  306. package/dist/esm/tabs/tab-bar/index.js +1 -1
  307. package/dist/esm/text-field/index.js +1 -1
  308. package/dist/esm/theme/index.js +1 -1
  309. package/dist/esm/time-picker/index.js +1 -1
  310. package/dist/esm/toast/index.js +1 -1
  311. package/dist/esm/toolbar/index.js +1 -1
  312. package/dist/esm/tooltip/index.js +1 -1
  313. package/dist/esm/utils/index.js +1 -1
  314. package/dist/esm/view-switcher/index.js +1 -1
  315. package/dist/esm/view-switcher/view/index.js +1 -1
  316. package/dist/forge-dark.css +1 -1
  317. package/dist/forge.css +1 -1
  318. package/dist/icon-button/forge-icon-button.css +1 -1
  319. package/dist/table/forge-table.css +1 -1
  320. package/dist/theme/forge-theme.css +1 -1
  321. package/esm/accordion/accordion.js +4 -4
  322. package/esm/app-bar/app-bar.js +6 -6
  323. package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -5
  324. package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +1 -1
  325. package/esm/app-bar/profile-button/app-bar-profile-button.js +4 -4
  326. package/esm/app-bar/search/app-bar-search.js +6 -6
  327. package/esm/autocomplete/autocomplete-adapter.d.ts +0 -2
  328. package/esm/autocomplete/autocomplete-adapter.js +0 -4
  329. package/esm/autocomplete/autocomplete-component-delegate.d.ts +1 -1
  330. package/esm/autocomplete/autocomplete-constants.d.ts +5 -4
  331. package/esm/autocomplete/autocomplete-constants.js +1 -0
  332. package/esm/autocomplete/autocomplete-foundation.d.ts +5 -0
  333. package/esm/autocomplete/autocomplete-foundation.js +12 -12
  334. package/esm/autocomplete/autocomplete.d.ts +3 -0
  335. package/esm/autocomplete/autocomplete.js +13 -6
  336. package/esm/avatar/avatar-component-delegate.d.ts +1 -1
  337. package/esm/avatar/avatar.js +5 -5
  338. package/esm/backdrop/backdrop-constants.d.ts +1 -1
  339. package/esm/backdrop/backdrop.js +5 -5
  340. package/esm/badge/badge-component-delegate.d.ts +1 -1
  341. package/esm/badge/badge.js +5 -5
  342. package/esm/banner/banner.js +7 -7
  343. package/esm/bottom-sheet/bottom-sheet.js +6 -6
  344. package/esm/busy-indicator/busy-indicator-constants.d.ts +1 -1
  345. package/esm/busy-indicator/busy-indicator.js +6 -6
  346. package/esm/button/button-component-delegate.d.ts +1 -1
  347. package/esm/button/button.d.ts +1 -0
  348. package/esm/button/button.js +11 -5
  349. package/esm/button-toggle/button-toggle/button-toggle.js +7 -7
  350. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +2 -2
  351. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -5
  352. package/esm/calendar/calendar-component-delegate.d.ts +1 -1
  353. package/esm/calendar/calendar-constants.d.ts +10 -10
  354. package/esm/calendar/calendar-dropdown/calendar-dropdown.js +5 -5
  355. package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +2 -2
  356. package/esm/calendar/calendar-menu/calendar-menu.js +6 -6
  357. package/esm/calendar/calendar.js +7 -7
  358. package/esm/card/card-constants.d.ts +2 -2
  359. package/esm/card/card-constants.js +2 -2
  360. package/esm/card/card.d.ts +19 -8
  361. package/esm/card/card.js +34 -25
  362. package/esm/checkbox/checkbox-adapter.d.ts +1 -0
  363. package/esm/checkbox/checkbox-adapter.js +9 -2
  364. package/esm/checkbox/checkbox-component-delegate.d.ts +1 -1
  365. package/esm/checkbox/checkbox.js +4 -4
  366. package/esm/chip-field/chip-field-component-delegate.d.ts +1 -1
  367. package/esm/chip-field/chip-field-foundation.d.ts +1 -1
  368. package/esm/chip-field/chip-field.js +1 -1
  369. package/esm/chips/chip/chip.js +7 -7
  370. package/esm/chips/chip-set/chip-set.js +5 -5
  371. package/esm/circular-progress/circular-progress-adapter.d.ts +7 -14
  372. package/esm/circular-progress/circular-progress-adapter.js +25 -25
  373. package/esm/circular-progress/circular-progress-constants.d.ts +6 -2
  374. package/esm/circular-progress/circular-progress-constants.js +8 -3
  375. package/esm/circular-progress/circular-progress-foundation.d.ts +0 -8
  376. package/esm/circular-progress/circular-progress-foundation.js +9 -27
  377. package/esm/circular-progress/circular-progress.d.ts +24 -5
  378. package/esm/circular-progress/circular-progress.js +33 -21
  379. package/esm/color-picker/color-picker-constants.d.ts +2 -2
  380. package/esm/color-picker/color-picker.js +7 -7
  381. package/esm/core/base/base-component.d.ts +1 -2
  382. package/esm/core/delegates/base-component-delegate.d.ts +1 -1
  383. package/esm/core/delegates/base-component-delegate.js +3 -3
  384. package/esm/core/delegates/form-field-component-delegate.d.ts +1 -1
  385. package/esm/core/mask/time-segment-parser.d.ts +1 -1
  386. package/esm/core/testing/pointer.d.ts +13 -0
  387. package/esm/core/testing/pointer.js +42 -0
  388. package/esm/core/utils/utils.d.ts +33 -2
  389. package/esm/core/utils/utils.js +74 -6
  390. package/esm/date-picker/base/base-date-picker-adapter.d.ts +2 -2
  391. package/esm/date-picker/base/base-date-picker-foundation.d.ts +2 -2
  392. package/esm/date-picker/base/base-date-picker-foundation.js +8 -5
  393. package/esm/date-picker/date-picker-adapter.js +5 -7
  394. package/esm/date-picker/date-picker-component-delegate.d.ts +1 -1
  395. package/esm/date-range-picker/date-range-picker-adapter.d.ts +4 -2
  396. package/esm/date-range-picker/date-range-picker-adapter.js +20 -18
  397. package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
  398. package/esm/date-range-picker/date-range-picker-foundation.d.ts +4 -1
  399. package/esm/date-range-picker/date-range-picker-foundation.js +48 -14
  400. package/esm/dialog/dialog-constants.d.ts +2 -2
  401. package/esm/dialog/dialog.js +5 -5
  402. package/esm/drawer/base/base-drawer-constants.d.ts +1 -1
  403. package/esm/expansion-panel/expansion-panel-constants.d.ts +2 -0
  404. package/esm/expansion-panel/expansion-panel-constants.js +3 -1
  405. package/esm/expansion-panel/expansion-panel-foundation.js +4 -1
  406. package/esm/expansion-panel/expansion-panel.js +6 -6
  407. package/esm/field/field-adapter.d.ts +4 -2
  408. package/esm/field/field-adapter.js +5 -2
  409. package/esm/field/field-constants.d.ts +3 -3
  410. package/esm/field/field-foundation.d.ts +2 -2
  411. package/esm/field/field-foundation.js +7 -9
  412. package/esm/field/field.js +3 -3
  413. package/esm/file-picker/file-picker-component-delegate.d.ts +1 -1
  414. package/esm/file-picker/file-picker.js +6 -6
  415. package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +1 -1
  416. package/esm/floating-action-button/floating-action-button.js +6 -6
  417. package/esm/focus-indicator/focus-indicator-adapter.d.ts +29 -0
  418. package/esm/focus-indicator/focus-indicator-adapter.js +39 -0
  419. package/esm/focus-indicator/focus-indicator-constants.d.ts +15 -0
  420. package/esm/focus-indicator/focus-indicator-constants.js +19 -0
  421. package/esm/focus-indicator/focus-indicator-foundation.d.ts +43 -0
  422. package/esm/focus-indicator/focus-indicator-foundation.js +110 -0
  423. package/esm/focus-indicator/focus-indicator.d.ts +67 -0
  424. package/esm/focus-indicator/focus-indicator.js +112 -0
  425. package/esm/focus-indicator/index.d.ts +10 -0
  426. package/esm/focus-indicator/index.js +14 -0
  427. package/esm/icon/icon.js +5 -5
  428. package/esm/icon-button/icon-button-component-delegate.d.ts +1 -1
  429. package/esm/icon-button/icon-button.d.ts +1 -0
  430. package/esm/icon-button/icon-button.js +16 -9
  431. package/esm/index.d.ts +2 -0
  432. package/esm/index.js +6 -0
  433. package/esm/keyboard-shortcut/keyboard-shortcut.js +4 -4
  434. package/esm/label-value/label-value-component-delegate.d.ts +1 -1
  435. package/esm/label-value/label-value-constants.d.ts +1 -1
  436. package/esm/label-value/label-value.js +5 -5
  437. package/esm/linear-progress/linear-progress-adapter.d.ts +23 -0
  438. package/esm/linear-progress/linear-progress-adapter.js +34 -0
  439. package/esm/linear-progress/linear-progress-constants.d.ts +6 -2
  440. package/esm/linear-progress/linear-progress-constants.js +8 -3
  441. package/esm/linear-progress/linear-progress-foundation.d.ts +26 -0
  442. package/esm/linear-progress/linear-progress-foundation.js +53 -0
  443. package/esm/linear-progress/linear-progress.d.ts +32 -25
  444. package/esm/linear-progress/linear-progress.js +49 -107
  445. package/esm/list/list/list.js +5 -5
  446. package/esm/list/list-item/list-item-adapter.d.ts +3 -3
  447. package/esm/list/list-item/list-item-adapter.js +2 -2
  448. package/esm/list/list-item/list-item-foundation.d.ts +1 -0
  449. package/esm/list/list-item/list-item-foundation.js +8 -1
  450. package/esm/list/list-item/list-item.js +6 -6
  451. package/esm/list-dropdown/list-dropdown-adapter.js +4 -5
  452. package/esm/list-dropdown/list-dropdown-constants.d.ts +6 -6
  453. package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -1
  454. package/esm/list-dropdown/list-dropdown-utils.js +7 -4
  455. package/esm/menu/menu-constants.d.ts +3 -3
  456. package/esm/menu/menu.js +6 -6
  457. package/esm/open-icon/open-icon.js +6 -6
  458. package/esm/paginator/paginator-constants.d.ts +1 -1
  459. package/esm/paginator/paginator-foundation.js +2 -0
  460. package/esm/paginator/paginator.js +12 -12
  461. package/esm/popup/popup-constants.d.ts +2 -2
  462. package/esm/popup/popup.js +5 -5
  463. package/esm/product-icon/product-icon.js +5 -5
  464. package/esm/profile-card/profile-card.js +6 -6
  465. package/esm/quantity-field/quantity-field-component-delegate.d.ts +1 -1
  466. package/esm/quantity-field/quantity-field.js +6 -6
  467. package/esm/radio/radio-adapter.d.ts +1 -0
  468. package/esm/radio/radio-adapter.js +9 -2
  469. package/esm/radio/radio.js +5 -5
  470. package/esm/ripple/forge-ripple.d.ts +2 -0
  471. package/esm/ripple/forge-ripple.js +4 -0
  472. package/esm/ripple/ripple.js +4 -4
  473. package/esm/select/core/base-select-constants.d.ts +4 -4
  474. package/esm/select/option/option.js +4 -4
  475. package/esm/select/option-group/option-group.js +3 -3
  476. package/esm/select/select/select-adapter.d.ts +1 -1
  477. package/esm/select/select/select.js +1 -1
  478. package/esm/select/select-component-delegate.d.ts +1 -1
  479. package/esm/slider/slider-adapter.d.ts +79 -0
  480. package/esm/slider/slider-adapter.js +178 -0
  481. package/esm/slider/slider-component-delegate.d.ts +19 -3
  482. package/esm/slider/slider-component-delegate.js +48 -0
  483. package/esm/slider/slider-constants.d.ts +55 -19
  484. package/esm/slider/slider-constants.js +56 -14
  485. package/esm/slider/slider-foundation.d.ts +94 -0
  486. package/esm/slider/slider-foundation.js +313 -0
  487. package/esm/slider/slider-utils.d.ts +9 -0
  488. package/esm/slider/slider-utils.js +56 -0
  489. package/esm/slider/slider.d.ts +134 -66
  490. package/esm/slider/slider.js +240 -249
  491. package/esm/split-view/split-view/split-view-adapter.js +3 -1
  492. package/esm/split-view/split-view/split-view-constants.d.ts +1 -1
  493. package/esm/split-view/split-view/split-view.js +5 -5
  494. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +2 -2
  495. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +18 -18
  496. package/esm/split-view/split-view-panel/split-view-panel.js +7 -7
  497. package/esm/stack/stack-constants.d.ts +1 -1
  498. package/esm/stack/stack.js +5 -5
  499. package/esm/state-layer/index.d.ts +10 -0
  500. package/esm/state-layer/index.js +14 -0
  501. package/esm/state-layer/state-layer-adapter.d.ts +41 -0
  502. package/esm/state-layer/state-layer-adapter.js +101 -0
  503. package/esm/state-layer/state-layer-constants.d.ts +79 -0
  504. package/esm/state-layer/state-layer-constants.js +89 -0
  505. package/esm/state-layer/state-layer-foundation.d.ts +57 -0
  506. package/esm/state-layer/state-layer-foundation.js +237 -0
  507. package/esm/state-layer/state-layer-utils.d.ts +26 -0
  508. package/esm/state-layer/state-layer-utils.js +54 -0
  509. package/esm/state-layer/state-layer.d.ts +66 -0
  510. package/esm/state-layer/state-layer.js +96 -0
  511. package/esm/stepper/step/step-constants.d.ts +1 -1
  512. package/esm/stepper/step/step.js +13 -13
  513. package/esm/stepper/stepper/stepper-constants.d.ts +2 -2
  514. package/esm/stepper/stepper/stepper.js +5 -5
  515. package/esm/switch/switch-component-delegate.d.ts +1 -1
  516. package/esm/switch/switch-constants.d.ts +1 -1
  517. package/esm/switch/switch.js +19 -12
  518. package/esm/table/table.js +5 -5
  519. package/esm/table/types.d.ts +4 -4
  520. package/esm/tabs/tab/tab-adapter.d.ts +14 -40
  521. package/esm/tabs/tab/tab-adapter.js +57 -79
  522. package/esm/tabs/tab/tab-constants.d.ts +13 -14
  523. package/esm/tabs/tab/tab-constants.js +17 -10
  524. package/esm/tabs/tab/tab-foundation.d.ts +23 -23
  525. package/esm/tabs/tab/tab-foundation.js +66 -62
  526. package/esm/tabs/tab/tab.d.ts +56 -20
  527. package/esm/tabs/tab/tab.js +88 -39
  528. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +49 -87
  529. package/esm/tabs/tab-bar/tab-bar-adapter.js +114 -188
  530. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +15 -45
  531. package/esm/tabs/tab-bar/tab-bar-constants.js +22 -56
  532. package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +56 -65
  533. package/esm/tabs/tab-bar/tab-bar-foundation.js +241 -302
  534. package/esm/tabs/tab-bar/tab-bar.d.ts +51 -36
  535. package/esm/tabs/tab-bar/tab-bar.js +89 -57
  536. package/esm/text-field/text-field-adapter.d.ts +1 -1
  537. package/esm/text-field/text-field-adapter.js +4 -3
  538. package/esm/text-field/text-field-component-delegate.d.ts +1 -1
  539. package/esm/text-field/text-field.js +1 -1
  540. package/esm/theme/theme-utils.d.ts +2 -2
  541. package/esm/time-picker/time-picker-adapter.js +4 -7
  542. package/esm/time-picker/time-picker-component-delegate.d.ts +1 -1
  543. package/esm/time-picker/time-picker-constants.d.ts +6 -6
  544. package/esm/time-picker/time-picker-foundation.js +9 -6
  545. package/esm/time-picker/time-picker.js +6 -6
  546. package/esm/toast/toast-constants.d.ts +2 -2
  547. package/esm/toast/toast.js +7 -7
  548. package/esm/toolbar/toolbar.js +5 -5
  549. package/esm/tooltip/tooltip-constants.d.ts +1 -1
  550. package/esm/tooltip/tooltip.js +4 -4
  551. package/esm/utils/color-utils.js +1 -0
  552. package/esm/view-switcher/view-switcher.js +5 -5
  553. package/package.json +1 -3
  554. package/styles/app-bar/_mixins.scss +8 -1
  555. package/styles/card/_mixins.scss +8 -7
  556. package/styles/circular-progress/_animations.scss +69 -0
  557. package/styles/circular-progress/_configuration.scss +30 -0
  558. package/styles/circular-progress/_core.scss +122 -0
  559. package/styles/circular-progress/circular-progress.scss +92 -3
  560. package/styles/circular-progress/index.scss +8 -0
  561. package/styles/core/styles/core/_config.scss +6 -0
  562. package/styles/core/styles/elevation/index.scss +61 -0
  563. package/styles/core/styles/theme/index.scss +48 -0
  564. package/styles/core/styles/tokens/_color-palette.scss +299 -0
  565. package/styles/core/styles/tokens/_utils.scss +43 -0
  566. package/styles/core/styles/tokens/circular-progress/_tokens.scss +21 -0
  567. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +30 -0
  568. package/styles/core/styles/tokens/index.scss +10 -0
  569. package/styles/core/styles/tokens/linear-progress/_tokens.scss +23 -0
  570. package/styles/core/styles/tokens/slider/_tokens.scss +47 -0
  571. package/styles/core/styles/tokens/state-layer/_tokens.scss +23 -0
  572. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +71 -0
  573. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +19 -0
  574. package/styles/core/styles/tokens/theme/_elevation.scss +105 -0
  575. package/styles/core/styles/tokens/theme/_shape.scss +13 -0
  576. package/styles/core/styles/tokens/theme/_tokens.scss +133 -0
  577. package/styles/core/styles/tokens/typography/_tokens.scss +73 -0
  578. package/styles/focus-indicator/_animations.scss +36 -0
  579. package/styles/focus-indicator/_configuration.scss +23 -0
  580. package/styles/focus-indicator/_core.scss +52 -0
  581. package/styles/focus-indicator/focus-indicator.scss +55 -0
  582. package/styles/focus-indicator/index.scss +8 -0
  583. package/styles/linear-progress/_animations.scss +129 -0
  584. package/styles/linear-progress/_configuration.scss +29 -0
  585. package/styles/linear-progress/_core.scss +99 -0
  586. package/styles/linear-progress/index.scss +8 -0
  587. package/styles/linear-progress/linear-progress.scss +101 -18
  588. package/styles/slider/_configuration.scss +60 -0
  589. package/styles/slider/_core.scss +343 -0
  590. package/styles/slider/index.scss +7 -0
  591. package/styles/slider/slider.scss +186 -14
  592. package/styles/state-layer/_configuration.scss +17 -0
  593. package/styles/state-layer/_core.scss +124 -0
  594. package/styles/state-layer/index.scss +7 -0
  595. package/styles/state-layer/state-layer.scss +38 -0
  596. package/styles/tabs/tab/_configuration.scss +64 -0
  597. package/styles/tabs/tab/_core.scss +189 -0
  598. package/styles/tabs/tab/index.scss +7 -0
  599. package/styles/tabs/tab/tab.scss +168 -15
  600. package/styles/tabs/tab-bar/_configuration.scss +13 -0
  601. package/styles/tabs/tab-bar/_core.scss +60 -0
  602. package/styles/tabs/tab-bar/index.scss +7 -0
  603. package/styles/tabs/tab-bar/tab-bar.scss +66 -5
  604. package/styles/theme/_theme-dark.scss +4 -8
  605. package/styles/theme/_theme.scss +3 -36
  606. package/dist/esm/chunks/chunk.242YUZKU.js +0 -7
  607. package/dist/esm/chunks/chunk.2DXG2R3M.js +0 -73
  608. package/dist/esm/chunks/chunk.2DXG2R3M.js.map +0 -7
  609. package/dist/esm/chunks/chunk.44IJE5UL.js +0 -7
  610. package/dist/esm/chunks/chunk.44IJE5UL.js.map +0 -7
  611. package/dist/esm/chunks/chunk.47A2CN5U.js +0 -7
  612. package/dist/esm/chunks/chunk.4BEI55KI.js +0 -7
  613. package/dist/esm/chunks/chunk.4FSAAN6W.js +0 -29
  614. package/dist/esm/chunks/chunk.4FSAAN6W.js.map +0 -7
  615. package/dist/esm/chunks/chunk.4NI63FGK.js +0 -7
  616. package/dist/esm/chunks/chunk.4WPFFNLH.js +0 -7
  617. package/dist/esm/chunks/chunk.5WNKQTXX.js +0 -7
  618. package/dist/esm/chunks/chunk.6OKJPSUE.js +0 -7
  619. package/dist/esm/chunks/chunk.72AUOVCD.js +0 -7
  620. package/dist/esm/chunks/chunk.72AUOVCD.js.map +0 -7
  621. package/dist/esm/chunks/chunk.7A6MX6CS.js +0 -7
  622. package/dist/esm/chunks/chunk.7A6MX6CS.js.map +0 -7
  623. package/dist/esm/chunks/chunk.7BOXIJAM.js +0 -7
  624. package/dist/esm/chunks/chunk.7BOXIJAM.js.map +0 -7
  625. package/dist/esm/chunks/chunk.ABLKZXJ3.js +0 -12
  626. package/dist/esm/chunks/chunk.ABLKZXJ3.js.map +0 -7
  627. package/dist/esm/chunks/chunk.BTBHIIGI.js +0 -7
  628. package/dist/esm/chunks/chunk.C7AN6FMW.js +0 -7
  629. package/dist/esm/chunks/chunk.CKYHP5MC.js +0 -7
  630. package/dist/esm/chunks/chunk.CKYHP5MC.js.map +0 -7
  631. package/dist/esm/chunks/chunk.DT7MZR5Y.js +0 -7
  632. package/dist/esm/chunks/chunk.DYNEJBYK.js +0 -7
  633. package/dist/esm/chunks/chunk.E6CYXNS2.js +0 -7
  634. package/dist/esm/chunks/chunk.EGRUD7S7.js +0 -7
  635. package/dist/esm/chunks/chunk.ESR2NHOS.js +0 -7
  636. package/dist/esm/chunks/chunk.ESR2NHOS.js.map +0 -7
  637. package/dist/esm/chunks/chunk.F3MP6AXF.js +0 -29
  638. package/dist/esm/chunks/chunk.F3MP6AXF.js.map +0 -7
  639. package/dist/esm/chunks/chunk.FVRSGKJD.js +0 -7
  640. package/dist/esm/chunks/chunk.G3ZTZ4AN.js +0 -7
  641. package/dist/esm/chunks/chunk.G3ZTZ4AN.js.map +0 -7
  642. package/dist/esm/chunks/chunk.G5MGGEFP.js +0 -7
  643. package/dist/esm/chunks/chunk.HPDBSBQJ.js +0 -29
  644. package/dist/esm/chunks/chunk.HPDBSBQJ.js.map +0 -7
  645. package/dist/esm/chunks/chunk.HV6SPRC4.js +0 -7
  646. package/dist/esm/chunks/chunk.HV6SPRC4.js.map +0 -7
  647. package/dist/esm/chunks/chunk.I5BAZWUF.js +0 -7
  648. package/dist/esm/chunks/chunk.I5BAZWUF.js.map +0 -7
  649. package/dist/esm/chunks/chunk.IGTXLDZS.js +0 -7
  650. package/dist/esm/chunks/chunk.ILRWZHH3.js +0 -29
  651. package/dist/esm/chunks/chunk.ILRWZHH3.js.map +0 -7
  652. package/dist/esm/chunks/chunk.INCKI5IX.js +0 -7
  653. package/dist/esm/chunks/chunk.J6WCFQSS.js +0 -7
  654. package/dist/esm/chunks/chunk.JHBCYICS.js +0 -7
  655. package/dist/esm/chunks/chunk.JHY2CKEH.js +0 -7
  656. package/dist/esm/chunks/chunk.LDN4HLF7.js +0 -7
  657. package/dist/esm/chunks/chunk.LDN4HLF7.js.map +0 -7
  658. package/dist/esm/chunks/chunk.M2QU3LUR.js +0 -7
  659. package/dist/esm/chunks/chunk.M2QU3LUR.js.map +0 -7
  660. package/dist/esm/chunks/chunk.MCIQXNKY.js +0 -7
  661. package/dist/esm/chunks/chunk.MHOS3IHQ.js +0 -7
  662. package/dist/esm/chunks/chunk.MSF55AA3.js +0 -7
  663. package/dist/esm/chunks/chunk.MSF55AA3.js.map +0 -7
  664. package/dist/esm/chunks/chunk.MXTDW27J.js +0 -7
  665. package/dist/esm/chunks/chunk.NW7NV2A2.js +0 -7
  666. package/dist/esm/chunks/chunk.NW7NV2A2.js.map +0 -7
  667. package/dist/esm/chunks/chunk.Q7LFOS2I.js +0 -7
  668. package/dist/esm/chunks/chunk.RB5BTA5N.js +0 -7
  669. package/dist/esm/chunks/chunk.RE5X26QT.js +0 -29
  670. package/dist/esm/chunks/chunk.RE5X26QT.js.map +0 -7
  671. package/dist/esm/chunks/chunk.RG6CDWEX.js +0 -7
  672. package/dist/esm/chunks/chunk.RG6CDWEX.js.map +0 -7
  673. package/dist/esm/chunks/chunk.ROR6JMAE.js +0 -7
  674. package/dist/esm/chunks/chunk.SAQVWOVK.js +0 -7
  675. package/dist/esm/chunks/chunk.SAQVWOVK.js.map +0 -7
  676. package/dist/esm/chunks/chunk.TWZXQQQO.js +0 -29
  677. package/dist/esm/chunks/chunk.TWZXQQQO.js.map +0 -7
  678. package/dist/esm/chunks/chunk.UF43SSFY.js +0 -7
  679. package/dist/esm/chunks/chunk.UF43SSFY.js.map +0 -7
  680. package/dist/esm/chunks/chunk.V4TCOZLK.js +0 -29
  681. package/dist/esm/chunks/chunk.V4TCOZLK.js.map +0 -7
  682. package/dist/esm/chunks/chunk.V7WKXEZC.js +0 -7
  683. package/dist/esm/chunks/chunk.VAKNDCLP.js +0 -29
  684. package/dist/esm/chunks/chunk.VAKNDCLP.js.map +0 -7
  685. package/dist/esm/chunks/chunk.WY7DECJD.js +0 -7
  686. package/dist/esm/chunks/chunk.WY7DECJD.js.map +0 -7
  687. package/dist/esm/chunks/chunk.X5LGVZGO.js.map +0 -7
  688. package/dist/esm/chunks/chunk.Y4GKBJGI.js +0 -7
  689. package/dist/esm/chunks/chunk.Y5A7RQ5M.js +0 -7
  690. package/dist/esm/chunks/chunk.Y66GSZJB.js +0 -7
  691. package/dist/esm/chunks/chunk.Y66GSZJB.js.map +0 -7
  692. package/dist/esm/chunks/chunk.Y72NANFX.js +0 -7
  693. package/dist/esm/chunks/chunk.Y72NANFX.js.map +0 -7
  694. package/dist/esm/chunks/chunk.YBEBD4CN.js +0 -7
  695. package/dist/esm/chunks/chunk.YI4JTY4T.js +0 -14
  696. package/dist/esm/chunks/chunk.YPZNIYQL.js +0 -7
  697. package/dist/esm/chunks/chunk.ZFHPUAYX.js +0 -7
  698. package/styles/circular-progress/_keyframes.scss +0 -185
  699. package/styles/circular-progress/_mixins.scss +0 -320
  700. package/styles/circular-progress/_variables.scss +0 -50
  701. package/styles/linear-progress/_mixins.scss +0 -11
  702. package/styles/linear-progress/_variables.scss +0 -15
  703. package/styles/tabs/tab/_mixins.scss +0 -165
  704. package/styles/tabs/tab/_variables.scss +0 -9
  705. package/styles/tabs/tab-bar/_mixins.scss +0 -78
  706. /package/dist/esm/chunks/{chunk.IGTXLDZS.js.map → chunk.3JDFBEF7.js.map} +0 -0
  707. /package/dist/esm/chunks/{chunk.H4Z4DHPA.js.map → chunk.5CMQ7DNL.js.map} +0 -0
  708. /package/dist/esm/chunks/{chunk.IUOBRBDZ.js.map → chunk.7DHFTAWI.js.map} +0 -0
  709. /package/dist/esm/chunks/{chunk.EGRUD7S7.js.map → chunk.7ZQMJLHE.js.map} +0 -0
  710. /package/dist/esm/chunks/{chunk.JEN6YP2Q.js.map → chunk.E7Z3IRWV.js.map} +0 -0
  711. /package/dist/esm/chunks/{chunk.K2C4W3CO.js.map → chunk.EDEYCLDU.js.map} +0 -0
  712. /package/dist/esm/chunks/{chunk.ARJ3EVVO.js.map → chunk.G4IN6Y46.js.map} +0 -0
  713. /package/dist/esm/chunks/{chunk.DYNEJBYK.js.map → chunk.HXJCTE47.js.map} +0 -0
  714. /package/dist/esm/chunks/{chunk.KU5CXXGS.js.map → chunk.IDD54B5P.js.map} +0 -0
  715. /package/dist/esm/chunks/{chunk.MCIQXNKY.js.map → chunk.M3QDAYD2.js.map} +0 -0
  716. /package/dist/esm/chunks/{chunk.ZUNZKRRK.js.map → chunk.OAHA3QOH.js.map} +0 -0
  717. /package/dist/esm/chunks/{chunk.MLV25D2G.js.map → chunk.PHTOULRR.js.map} +0 -0
  718. /package/dist/esm/chunks/{chunk.WP4QOOIS.js.map → chunk.QZK3WEH6.js.map} +0 -0
  719. /package/dist/esm/chunks/{chunk.UT7QUGAO.js.map → chunk.U4GYQOPY.js.map} +0 -0
  720. /package/dist/esm/chunks/{chunk.G45OZEIS.js.map → chunk.WO7KEM5K.js.map} +0 -0
  721. /package/dist/esm/chunks/{chunk.RBAVT3XQ.js.map → chunk.WYP2M5FR.js.map} +0 -0
  722. /package/dist/esm/chunks/{chunk.O73S5LF3.js.map → chunk.XOM2FYQ2.js.map} +0 -0
  723. /package/dist/esm/chunks/{chunk.XUW3GG46.js.map → chunk.XRESQBNE.js.map} +0 -0
  724. /package/dist/esm/chunks/{chunk.AFLH5HUG.js.map → chunk.Y5UJ23LB.js.map} +0 -0
  725. /package/dist/esm/chunks/{chunk.JHY2CKEH.js.map → chunk.ZMRDW25U.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/list-dropdown/list-dropdown-constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/events/event-aware.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-types.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-axis-observer.js", "../../src/list-dropdown/list-dropdown-utils.ts", "../../src/list-dropdown/list-dropdown-foundation.ts", "../../src/list-dropdown/list-dropdown-adapter.ts", "../../src/list-dropdown/list-dropdown.ts", "../../src/list-dropdown/list-dropdown-aware-foundation.ts", "../../src/list-dropdown/cascading-list-dropdown-aware-foundation.ts"],
4
+ "sourcesContent": ["import { IPopupPosition, PopupPlacement } from '../popup';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder<T = any> = (option: IListDropdownOptionGroup<T>) => HTMLElement | string;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup<T = any, K = any> {\n text?: string;\n value?: K;\n builder?: ListDropdownOptionGroupBuilder;\n options: IListDropdownOption<T>[];\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n constrainViewportWidth?: boolean;\n wrapOptionText?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n visibleStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IPopupPosition;\n popupStatic?: boolean;\n popupPlacement?: PopupPlacement;\n popupFallbackPlacements?: PopupPlacement[];\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../popup';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n dropdownElement.setAttribute('role', 'menu');\n dropdownElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n dropdownElement.setAttribute('role', 'listbox');\n }\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const popupElement = document.createElement('forge-popup');\n popupElement.targetElement = targetElement;\n popupElement.placement = config.popupPlacement || 'bottom-start';\n popupElement.manageFocus = false;\n popupElement.static = !!config.popupStatic;\n\n if (config.popupFallbackPlacements?.length) {\n popupElement.fallbackPlacements = config.popupFallbackPlacements;\n }\n\n if (config.constrainViewportWidth) {\n popupElement.setAttribute(POPUP_CONSTANTS.attributes.CONSTRAIN_VIEWPORT_WIDTH, '');\n }\n\n if (config.popupOffset) {\n popupElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n popupElement.animationType = PopupAnimationType.Menu;\n break;\n case ListDropdownType.None:\n popupElement.animationType = PopupAnimationType.None;\n break;\n default:\n popupElement.animationType = PopupAnimationType.Dropdown;\n }\n return popupElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>, startIndex = 0, renderSelected = true): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n const flatOptions = getFlattenedOptions(groups);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIdIndex = startIndex;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n\n if (typeof headerElement === 'string') {\n groupWrapper.innerHTML = headerElement;\n } else if (headerElement instanceof HTMLElement) {\n groupWrapper.appendChild(headerElement);\n }\n\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n\n // We don't render selected options that are appended dynamically since those are always displayed at the top of the list\n if (!renderSelected && isSelected) {\n continue;\n }\n\n let listItemElement = document.createElement('forge-list-item');\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIdIndex++}`;\n listItemElement.style.cursor = 'pointer';\n\n if (config.wrapOptionText) {\n listItemElement.wrap = true;\n }\n \n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n // Set role based on type\n switch (config.type) {\n case ListDropdownType.Menu:\n listItemElement.setAttribute('role', 'menuitem');\n break;\n case ListDropdownType.None:\n break;\n default:\n listItemElement.setAttribute('role', 'option');\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.style.cursor = 'pointer';\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = flatOptions.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n\nexport function getFlattenedOptions(options: Array<IListDropdownOptionGroup | IListDropdownOption>): IListDropdownOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n const groups = options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...options as IListDropdownOption[]];\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { getFlattenedOptions } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n if (this._open) {\n this.close();\n }\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public close(): void {\n if (this._open) {\n this._open = false;\n this._adapter.close();\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (typeof this._config.visibleStartIndex === 'number' && this._nonDividerOptions[this._config.visibleStartIndex]) {\n this._adapter.scrollOptionIntoView(this._config.visibleStartIndex);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n case 'NumpadEnter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n return getFlattenedOptions(this._config.options);\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent, IListItemSelectEventData } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollOptionIntoView(index: number): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopupComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener('forge-list-item-select', evt => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Open the popup\n this._dropdownElement.open = true;\n }\n\n public close(): void {\n if (!this._dropdownElement) {\n return;\n }\n this._dropdownElement.open = false;\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollTarget = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n this._scrollObserver = new ScrollAxisObserver(scrollTarget, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollOptionIntoView(index: number, animate = true): void {\n const listItem = this._getListItemElements()[index];\n if (listItem) {\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n this._dropdownElement.style[sync ? 'width' : 'minWidth'] = `${this._getTargetElementWidth(targetWidthCallback)}px`;\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.style.display = 'none';\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options, this._listElement.childElementCount, false);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n } else {\n this._busyElement.style.display = 'none';\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n if (activeItems.length) {\n activeItems.forEach(ai => ai.active = false);\n }\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n if (isSelected) {\n listItem.active = true;\n }\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): void {\n this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n constrainPopupWidth: boolean;\n wrapOptionText: boolean;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n protected _constrainPopupWidth = true;\n protected _wrapOptionText = false;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n public get constrainPopupWidth(): boolean {\n return this._constrainPopupWidth;\n }\n public set constrainPopupWidth(value: boolean) {\n this._constrainPopupWidth = value;\n }\n\n public get wrapOptionText(): boolean {\n return this._wrapOptionText;\n }\n public set wrapOptionText(value: boolean) {\n this._wrapOptionText = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(index: number): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean }): void;\n protected abstract _setCascadeTargetInactive(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown({ fromKeyboard: false });\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["attributes", "classes", "LIST_DROPDOWN_CONSTANTS", "DEFAULT_LIST_DROPDOWN_CONFIG", "ListDropdownType", "ListDropdownAsyncStyle", "EventAware", "type", "data", "listeners", "cb", "listener", "ScrollDirection", "ScrollEvents", "DEFAULT_SCROLL_THROTTLE", "ScrollAxisObserver", "EventAware", "_element", "_config", "wait", "throttle", "isDefined", "isNumber", "isVertical", "isHorizontal", "position", "direction", "ScrollDirection", "ScrollEvents", "scrollStart", "scrollEnd", "createDropdown", "config", "targetElement", "dropdownElement", "createPopupDropdown", "dropdownId", "evt", "composedPath", "getEventPath", "el", "LIST_DROPDOWN_CONSTANTS", "addClass", "_a", "popupElement", "POPUP_CONSTANTS", "createList", "listElement", "LIST_CONSTANTS", "createListItems", "options", "startIndex", "renderSelected", "groups", "getOptionsByGroup", "flatOptions", "getFlattenedOptions", "limitOptions", "optionLimit", "optionIdIndex", "group", "optionParent", "headerElement", "groupWrapper", "listHeaderElement", "option", "dividerElement", "createDivider", "isSelected", "v", "isDeepEqual", "listItemElement", "element", "result", "checkboxElement", "createCheckboxElement", "value", "key", "isObject", "leadingIconElement", "createIconElement", "trailingIconElement", "optionIconElement", "factoryConfig", "o", "cascadingElement", "selected", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "divider", "type", "iconName", "iconClass", "icon", "iconElement", "ICON_CLASS_NAME", "createAsyncElement", "asyncStyle", "createSkeletonElement", "createSpinnerElement", "div", "spinner", "list", "i", "listItemSkeleton", "SKELETON_CONSTANTS", "createBusyElement", "linearProgress", "LINEAR_PROGRESS_CONSTANTS", "isListDropdownOptionType", "isOptionGroups", "isDefined", "isOptionTypes", "flatOpts", "ListDropdownFoundation", "_adapter", "config", "__spreadValues", "DEFAULT_LIST_DROPDOWN_CONFIG", "value", "id", "sync", "index", "isSelected", "o", "options", "animate", "values", "listener", "threshold", "isVisible", "key", "activeOptionIndex", "activeOption", "option", "startIndex", "getFlattenedOptions", "ListDropdownAdapter", "_targetElement", "config", "selectCallback", "closeCb", "createDropdown", "createBusyElement", "LIST_DROPDOWN_CONSTANTS", "createList", "evt", "createListItems", "createAsyncElement", "createVisuallyHiddenElement", "listener", "scrollThreshold", "scrollTarget", "getShadowElement", "POPUP_CONSTANTS", "scrollConfig", "ScrollAxisObserver", "ScrollEvents", "listItems", "activeListItem", "li", "index", "item", "isSelected", "animate", "listItem", "activeChangeCallback", "values", "multiple", "v", "isDeepEqual", "checkboxElement", "newCheckboxElement", "createCheckboxElement", "replaceElement", "sync", "targetWidthCallback", "removeElement", "removeAllChildren", "options", "isVisible", "LIST_ITEM_CONSTANTS", "activeItems", "ai", "ICON_CONSTANTS", "cb", "isFunction", "behavior", "block", "scrollContainer", "tryScrollIntoView", "ListDropdown", "_targetElement", "config", "IconRegistry", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "ListDropdownFoundation", "ListDropdownAdapter", "index", "isSelected", "values", "options", "animate", "listener", "threshold", "isVisible", "key", "ListDropdownAwareFoundation", "value", "CascadingListDropdownAwareFoundation", "ListDropdownAwareFoundation", "_config", "evt", "mouseElement"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{h as f,i as g}from"./chunk.YZLASVCK.js";import{a as s}from"./chunk.NVUMRW44.js";import{a as v,b as h}from"./chunk.DTZFWZPB.js";import{a as b,k as _}from"./chunk.NK7H3MMM.js";import{f as c,g as m}from"./chunk.CFDK4RCW.js";import{k as u}from"./chunk.J2M2MXP2.js";import{d as o}from"./chunk.M3QDAYD2.js";var R=`${h}ripple`,T={SURFACE:"mdc-ripple-surface"},E={TARGET:"target",UNBOUNDED:"unbounded"},e={elementName:R,classes:T,attributes:E};var r=class extends g{handleFocus(){this.foundation.handleFocus()}handleBlur(){this.foundation.handleBlur()}animate(){this.foundation.animateActivation()}},C=class extends f{};var n=class{constructor(t){this._component=t}_tryFindTarget(){return this._component.parentElement}initialize(t,d){t&&(this._target=(this._component.ownerDocument||document).querySelector(t)),this._target||(this._target=this._tryFindTarget()),this._target&&(this._ripple=new r(this._target),this._ripple.unbounded=d,c(e.classes.SURFACE,this._target))}destroy(){this._ripple&&(this._ripple.destroy(),this._ripple=void 0),this._target&&m(e.classes.SURFACE,this._target),this._target=void 0}activate(){var t;(t=this._ripple)==null||t.activate()}deactivate(){var t;(t=this._ripple)==null||t.deactivate()}};var p=class{constructor(t){this._adapter=t;this._unbounded=!1}initialize(){this._adapter.initialize(this._target,this._unbounded)}disconnect(){this._adapter.destroy()}layout(){this._applyTarget()}activate(){this._adapter.activate()}deactivate(){this._adapter.deactivate()}_applyTarget(){this._adapter.destroy(),this._adapter.initialize(this._target,this._unbounded)}get target(){return this._target}set target(t){this._target!==t&&(this._target=t,this._applyTarget())}get unbounded(){return this._unbounded}set unbounded(t){this._unbounded!==t&&(this._unbounded=t,this._applyTarget())}};var i=class extends _{constructor(){super();this._foundation=new p(new n(this))}static get observedAttributes(){return[e.attributes.TARGET,e.attributes.UNBOUNDED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(d,y,l){switch(d){case e.attributes.TARGET:this.target=l;break;case e.attributes.UNBOUNDED:this.unbounded=u(l);break}}layout(){this._foundation.layout()}activate(){return this._foundation.activate()}deactivate(){return this._foundation.deactivate()}};o([s()],i.prototype,"target",2),o([s()],i.prototype,"unbounded",2),i=o([v({name:e.elementName})],i);function X(){b(i)}export{e as a,r as b,C as c,n as d,p as e,i as f,X as g};
7
+ //# sourceMappingURL=chunk.SZIM4KFZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ripple/ripple-constants.ts", "../../src/ripple/forge-ripple.ts", "../../src/ripple/ripple-adapter.ts", "../../src/ripple/ripple-foundation.ts", "../../src/ripple/ripple.ts", "../../src/ripple/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}ripple`;\n\nconst classes = {\n SURFACE: 'mdc-ripple-surface'\n};\n\nconst attributes = {\n TARGET: 'target',\n UNBOUNDED: 'unbounded'\n};\n\nexport const RIPPLE_CONSTANTS = {\n elementName,\n classes,\n attributes\n};\n", "import { MDCRipple, type MDCRippleAdapter, MDCRippleFoundation, type MDCRippleCapableSurface } from '@material/ripple';\n\nexport class ForgeRipple extends MDCRipple {\n /** Manually trigger focus activation. */\n public handleFocus(): void {\n this.foundation.handleFocus();\n }\n\n /** Manually trigger focus deactivation. */\n public handleBlur(): void {\n this.foundation.handleBlur();\n }\n\n /** Executes the ripple animation. */\n public animate(): void {\n (this.foundation as any).animateActivation(); // MDC does not expose this method, using `any` to access it.\n }\n}\nexport class ForgeRippleFoundation extends MDCRippleFoundation {}\nexport {\n MDCRippleAdapter as ForgeRippleAdapter,\n MDCRippleCapableSurface as ForgeRippleCapableSurface\n};\n", "import { addClass, removeClass } from '@tylertech/forge-core';\n\nimport { IRippleComponent } from './ripple';\nimport { RIPPLE_CONSTANTS } from './ripple-constants';\nimport { ForgeRipple } from './forge-ripple';\n\nexport interface IRippleAdapter {\n initialize(target: string, unbounded: boolean): void;\n destroy(): void;\n activate(): void;\n deactivate(): void;\n}\n\nexport class RippleAdapter implements IRippleAdapter {\n private _target: HTMLElement | undefined;\n private _ripple: ForgeRipple | undefined;\n\n constructor(private _component: IRippleComponent) {}\n\n private _tryFindTarget(): HTMLElement {\n return this._component.parentElement as HTMLElement;\n }\n\n public initialize(target: string, unbounded: boolean): void {\n if (target) {\n this._target = (this._component.ownerDocument || document).querySelector(target) as HTMLElement;\n }\n\n if (!this._target) {\n this._target = this._tryFindTarget();\n }\n\n if (this._target) {\n this._ripple = new ForgeRipple(this._target);\n this._ripple.unbounded = unbounded;\n addClass(RIPPLE_CONSTANTS.classes.SURFACE, this._target);\n }\n }\n\n public destroy(): void {\n if (this._ripple) {\n this._ripple.destroy();\n this._ripple = undefined;\n }\n\n if (this._target) {\n removeClass(RIPPLE_CONSTANTS.classes.SURFACE, this._target);\n }\n \n this._target = undefined;\n }\n\n public activate(): void {\n this._ripple?.activate();\n }\n\n public deactivate(): void {\n this._ripple?.deactivate();\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IRippleAdapter } from './ripple-adapter';\n\nexport interface IRippleFoundation extends ICustomElementFoundation {\n target: string;\n unbounded: boolean;\n layout(): void;\n activate(): void;\n deactivate(): void;\n}\n\nexport class RippleFoundation implements IRippleFoundation {\n private _target: string;\n private _unbounded = false;\n\n constructor(private _adapter: IRippleAdapter) {}\n\n public initialize(): void {\n this._adapter.initialize(this._target, this._unbounded);\n }\n\n public disconnect(): void {\n this._adapter.destroy();\n }\n\n public layout(): void {\n this._applyTarget();\n }\n\n public activate(): void {\n this._adapter.activate();\n }\n\n public deactivate(): void {\n this._adapter.deactivate();\n }\n\n private _applyTarget(): void {\n this._adapter.destroy();\n this._adapter.initialize(this._target, this._unbounded);\n }\n\n public get target(): string {\n return this._target;\n }\n public set target(value: string) {\n if (this._target !== value) {\n this._target = value;\n this._applyTarget();\n }\n }\n\n public get unbounded(): boolean {\n return this._unbounded;\n }\n public set unbounded(value: boolean) {\n if (this._unbounded !== value) {\n this._unbounded = value;\n this._applyTarget();\n }\n }\n}\n", "import { coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { RippleAdapter } from './ripple-adapter';\nimport { RIPPLE_CONSTANTS } from './ripple-constants';\nimport { RippleFoundation } from './ripple-foundation';\n\nexport interface IRippleComponent extends IBaseComponent {\n target: string;\n unbounded: boolean;\n layout(): void;\n activate(): void;\n deactivate(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-ripple': IRippleComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-ripple>` custom element.\n * \n * @tag forge-ripple\n */\n@CustomElement({\n name: RIPPLE_CONSTANTS.elementName\n})\nexport class RippleComponent extends BaseComponent implements IRippleComponent {\n public static get observedAttributes(): string[] {\n return [\n RIPPLE_CONSTANTS.attributes.TARGET,\n RIPPLE_CONSTANTS.attributes.UNBOUNDED\n ];\n }\n\n private _foundation: RippleFoundation;\n\n constructor() {\n super();\n this._foundation = new RippleFoundation(new RippleAdapter(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 RIPPLE_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case RIPPLE_CONSTANTS.attributes.UNBOUNDED:\n this.unbounded = coerceBoolean(newValue);\n break;\n }\n }\n\n public layout(): void {\n this._foundation.layout();\n }\n\n public activate(): void {\n return this._foundation.activate();\n }\n\n public deactivate(): void {\n return this._foundation.deactivate();\n }\n\n @FoundationProperty()\n public declare target: string;\n\n @FoundationProperty()\n public declare unbounded: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { RippleComponent } from './ripple';\n\nexport * from './ripple-adapter';\nexport * from './ripple-constants';\nexport * from './ripple-foundation';\nexport * from './ripple';\nexport * from './forge-ripple';\n\nexport function defineRippleComponent(): void {\n defineCustomElement(RippleComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "attributes", "RIPPLE_CONSTANTS", "ForgeRipple", "MDCRipple", "ForgeRippleFoundation", "MDCRippleFoundation", "RippleAdapter", "_component", "target", "unbounded", "ForgeRipple", "addClass", "RIPPLE_CONSTANTS", "removeClass", "_a", "RippleFoundation", "_adapter", "value", "RippleComponent", "BaseComponent", "RippleFoundation", "RippleAdapter", "RIPPLE_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "defineRippleComponent", "defineCustomElement", "RippleComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as t}from"./chunk.SQVBT7HU.js";import{a as r}from"./chunk.NVUMRW44.js";import{k as l}from"./chunk.NK7H3MMM.js";import{k as p,l as s}from"./chunk.J2M2MXP2.js";import{d as o}from"./chunk.M3QDAYD2.js";var e=class extends l{constructor(){super()}attributeChangedCallback(a,u,i){switch(a){case t.attributes.POPUP_CLASSES:this.popupClasses=i;break;case t.attributes.OPTION_LIMIT:this.optionLimit=s(i);break;case t.attributes.OBSERVE_SCROLL:this.observeScroll=p(i);break;case t.attributes.OBSERVE_SCROLL_THRESHOLD:this.observeScrollThreshold=s(i);break;case t.attributes.SYNC_POPUP_WIDTH:this.syncPopupWidth=p(i);break;case t.attributes.CONSTRAIN_POPUP_WIDTH:this.constrainPopupWidth=p(i);break;case t.attributes.WRAP_OPTION_TEXT:this.wrapOptionText=p(i);break}}};o([r()],e.prototype,"popupClasses",2),o([r()],e.prototype,"popupHeaderBuilder",2),o([r()],e.prototype,"popupFooterBuilder",2),o([r()],e.prototype,"syncPopupWidth",2),o([r()],e.prototype,"optionLimit",2),o([r()],e.prototype,"observeScroll",2),o([r()],e.prototype,"observeScrollThreshold",2),o([r()],e.prototype,"constrainPopupWidth",2),o([r()],e.prototype,"wrapOptionText",2);export{e as a};
7
+ //# sourceMappingURL=chunk.T5X6UNH7.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/list-dropdown/list-dropdown-aware.ts"],
4
4
  "sourcesContent": ["import { FoundationProperty, coerceNumber, coerceBoolean } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport interface IListDropdownAware extends IBaseComponent {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n constrainPopupWidth: boolean;\n wrapOptionText: boolean;\n}\n\nexport class ListDropdownAware extends BaseComponent {\n constructor() {\n super();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case LIST_DROPDOWN_CONSTANTS.attributes.POPUP_CLASSES:\n this.popupClasses = newValue;\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.OPTION_LIMIT:\n this.optionLimit = coerceNumber(newValue);\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL:\n this.observeScroll = coerceBoolean(newValue);\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD:\n this.observeScrollThreshold = coerceNumber(newValue);\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.SYNC_POPUP_WIDTH:\n this.syncPopupWidth = coerceBoolean(newValue);\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.CONSTRAIN_POPUP_WIDTH:\n this.constrainPopupWidth = coerceBoolean(newValue);\n break;\n case LIST_DROPDOWN_CONSTANTS.attributes.WRAP_OPTION_TEXT:\n this.wrapOptionText = coerceBoolean(newValue);\n break;\n }\n }\n \n /** Gets/sets the list of classes to apply to the popup element. */\n @FoundationProperty()\n public declare popupClasses: string | string[];\n\n /** Gets/sets the callback function for generating header content within the popup. */\n @FoundationProperty()\n public declare popupHeaderBuilder: ListDropdownHeaderBuilder;\n\n /** Gets/sets the callback function for generating header content within the popup. */\n @FoundationProperty()\n public declare popupFooterBuilder: ListDropdownFooterBuilder;\n\n /** Gets/sets whether the popup width is synchronized with the popup target width. */\n @FoundationProperty()\n public declare syncPopupWidth: boolean;\n\n /** Gets/sets the maximum number of options to display in the dropdown. */\n @FoundationProperty()\n public declare optionLimit: number;\n\n /** Controls the observation of scroll events on the dropdown. */\n @FoundationProperty()\n public declare observeScroll: boolean;\n\n /** The number of pixels from the bottom to trigger the scroll bottom event. Only applicable if `observeScroll` is true. */\n @FoundationProperty()\n public declare observeScrollThreshold: number;\n\n /** Gets/sets whether the popup width will be constrained to a max width of the viewport width (default: `100vw`). */\n @FoundationProperty()\n public declare constrainPopupWidth: boolean;\n\n /**\n * Gets/sets whether the options will wrap their text or not.\n * This only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.\n * */\n @FoundationProperty()\n public declare wrapOptionText: boolean;\n}\n"],
5
- "mappings": "0MAgBO,IAAMA,EAAN,cAAgCC,CAAc,CACnD,aAAc,CACZ,MAAM,CACR,CAEO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,QACDG,EAAwB,WAAW,cACtC,KAAK,aAAeD,EACpB,WACGC,EAAwB,WAAW,aACtC,KAAK,YAAcC,EAAaF,CAAQ,EACxC,WACGC,EAAwB,WAAW,eACtC,KAAK,cAAgBE,EAAcH,CAAQ,EAC3C,WACGC,EAAwB,WAAW,yBACtC,KAAK,uBAAyBC,EAAaF,CAAQ,EACnD,WACGC,EAAwB,WAAW,iBACtC,KAAK,eAAiBE,EAAcH,CAAQ,EAC5C,WACGC,EAAwB,WAAW,sBACtC,KAAK,oBAAsBE,EAAcH,CAAQ,EACjD,WACGC,EAAwB,WAAW,iBACtC,KAAK,eAAiBE,EAAcH,CAAQ,EAC5C,MAEN,CAwCF,EApCiBI,EAAA,CADdC,EAAmB,GAhCTT,EAiCI,4BAIAQ,EAAA,CADdC,EAAmB,GApCTT,EAqCI,kCAIAQ,EAAA,CADdC,EAAmB,GAxCTT,EAyCI,kCAIAQ,EAAA,CADdC,EAAmB,GA5CTT,EA6CI,8BAIAQ,EAAA,CADdC,EAAmB,GAhDTT,EAiDI,2BAIAQ,EAAA,CADdC,EAAmB,GApDTT,EAqDI,6BAIAQ,EAAA,CADdC,EAAmB,GAxDTT,EAyDI,sCAIAQ,EAAA,CADdC,EAAmB,GA5DTT,EA6DI,mCAOAQ,EAAA,CADdC,EAAmB,GAnETT,EAoEI",
5
+ "mappings": "+MAgBO,IAAMA,EAAN,cAAgCC,CAAc,CACnD,aAAc,CACZ,MAAM,CACR,CAEO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,EAAM,CACZ,KAAKG,EAAwB,WAAW,cACtC,KAAK,aAAeD,EACpB,MACF,KAAKC,EAAwB,WAAW,aACtC,KAAK,YAAcC,EAAaF,CAAQ,EACxC,MACF,KAAKC,EAAwB,WAAW,eACtC,KAAK,cAAgBE,EAAcH,CAAQ,EAC3C,MACF,KAAKC,EAAwB,WAAW,yBACtC,KAAK,uBAAyBC,EAAaF,CAAQ,EACnD,MACF,KAAKC,EAAwB,WAAW,iBACtC,KAAK,eAAiBE,EAAcH,CAAQ,EAC5C,MACF,KAAKC,EAAwB,WAAW,sBACtC,KAAK,oBAAsBE,EAAcH,CAAQ,EACjD,MACF,KAAKC,EAAwB,WAAW,iBACtC,KAAK,eAAiBE,EAAcH,CAAQ,EAC5C,KACJ,CACF,CAwCF,EApCiBI,EAAA,CADdC,EAAmB,GAhCTT,EAiCI,4BAIAQ,EAAA,CADdC,EAAmB,GApCTT,EAqCI,kCAIAQ,EAAA,CADdC,EAAmB,GAxCTT,EAyCI,kCAIAQ,EAAA,CADdC,EAAmB,GA5CTT,EA6CI,8BAIAQ,EAAA,CADdC,EAAmB,GAhDTT,EAiDI,2BAIAQ,EAAA,CADdC,EAAmB,GApDTT,EAqDI,6BAIAQ,EAAA,CADdC,EAAmB,GAxDTT,EAyDI,sCAIAQ,EAAA,CADdC,EAAmB,GA5DTT,EA6DI,mCAOAQ,EAAA,CADdC,EAAmB,GAnETT,EAoEI",
6
6
  "names": ["ListDropdownAware", "BaseComponent", "name", "oldValue", "newValue", "LIST_DROPDOWN_CONSTANTS", "coerceNumber", "coerceBoolean", "__decorateClass", "FoundationProperty"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as d,b as g}from"./chunk.BE7PZANN.js";import{a as n,e as l,g as s,l as b}from"./chunk.Y4GKBJGI.js";import{k as i}from"./chunk.J2M2MXP2.js";import{f as a}from"./chunk.MCIQXNKY.js";var m=`${g}toolbar`,f={INVERTED:"inverted"},o={INVERTED:"forge-toolbar--inverted",TOOLBAR:"forge-toolbar",SECTION:"forge-toolbar__section",ALIGN_START:"forge-toolbar__section--align-start",ALIGN_CENTER:"forge-toolbar__section--align-center",ALIGN_END:"forge-toolbar__section--align-end"},p={TOOLBAR:`.${o.TOOLBAR}`,START_SLOT:`.${o.SECTION}.${o.ALIGN_START} > slot[name=start]`,CENTER_SLOT:`.${o.SECTION}.${o.ALIGN_CENTER} > slot[name=center]`,END_SLOT:`.${o.SECTION}.${o.ALIGN_END} > slot[name=end]`},e={elementName:m,attributes:f,classes:o,selectors:p};var h='<template><div class="forge-toolbar" part="root"><div class="forge-toolbar__section forge-toolbar__section--align-start" part="section-start"><slot name="start"></slot><slot></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-center" part="section-center"><slot name="center"></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-end" part="section-end"><slot name="end"></slot></div></div></template>',_=".forge-toolbar{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);min-height:56px;min-height:var(--forge-toolbar-min-height,56px);height:56px;height:var(--forge-toolbar-height,56px);padding-inline:16px;padding-inline:var(--forge-toolbar-padding,16px);border-bottom:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-bottom:var(--forge-toolbar-border-bottom,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-top-left-radius:0;border-top-left-radius:var(--forge-toolbar-border-top-left-radius,0);border-top-right-radius:0;border-top-right-radius:var(--forge-toolbar-border-top-right-radius,0);border-bottom-left-radius:0;border-bottom-left-radius:var(--forge-toolbar-border-bottom-left-radius,0);border-bottom-right-radius:0;border-bottom-right-radius:var(--forge-toolbar-border-bottom-right-radius,0);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);display:grid;grid-template-columns:auto 1fr auto;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section--align-start{grid-column:1}.forge-toolbar__section--align-center{-webkit-box-pack:center;justify-content:center;grid-column:2}.forge-toolbar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;grid-column:3}.forge-toolbar--inverted{border-top:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-top:var(--forge-toolbar-border-top,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-bottom:none}:host{display:block;contain:layout}:host([hidden]){display:none}:host([no-border]) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{padding-inline:0;padding-inline:var(--forge-toolbar-padding,0)}:host([auto-height]) .forge-toolbar{height:auto;height:var(--forge-toolbar-height,auto)}.forge-toolbar ::slotted(h1){margin:0}.forge-toolbar ::slotted(h2){margin:0}.forge-toolbar ::slotted(h3){margin:0}.forge-toolbar ::slotted(h4){margin:0}.forge-toolbar ::slotted(h5){margin:0}.forge-toolbar ::slotted(h6){margin:0}.forge-toolbar ::slotted(p){margin:0}",t=class extends b{constructor(){super();this._inverted=!1;l(this,h,_),this._rootElement=s(this,e.selectors.TOOLBAR)}static get observedAttributes(){return[e.attributes.INVERTED]}connectedCallback(){this._initialize()}attributeChangedCallback(r,T,c){switch(r){case e.attributes.INVERTED:this.inverted=i(c);break}}_initialize(){this._setInverted(this._inverted)}_setInverted(r){r?this._rootElement.classList.add(e.classes.INVERTED):this._rootElement.classList.remove(e.classes.INVERTED)}get inverted(){return this._inverted}set inverted(r){this._inverted=r,this._setInverted(this._inverted)}};t=a([d({name:e.elementName})],t);function S(){n(t)}export{e as a,t as b,S as c};
7
- //# sourceMappingURL=chunk.HBMNXZES.js.map
6
+ import{a as d,b as g}from"./chunk.DTZFWZPB.js";import{a as n,e as l,f as s,k as b}from"./chunk.NK7H3MMM.js";import{k as i}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var m=`${g}toolbar`,f={INVERTED:"inverted"},o={INVERTED:"forge-toolbar--inverted",TOOLBAR:"forge-toolbar",SECTION:"forge-toolbar__section",ALIGN_START:"forge-toolbar__section--align-start",ALIGN_CENTER:"forge-toolbar__section--align-center",ALIGN_END:"forge-toolbar__section--align-end"},p={TOOLBAR:`.${o.TOOLBAR}`,START_SLOT:`.${o.SECTION}.${o.ALIGN_START} > slot[name=start]`,CENTER_SLOT:`.${o.SECTION}.${o.ALIGN_CENTER} > slot[name=center]`,END_SLOT:`.${o.SECTION}.${o.ALIGN_END} > slot[name=end]`},e={elementName:m,attributes:f,classes:o,selectors:p};var h='<template><div class="forge-toolbar" part="root"><div class="forge-toolbar__section forge-toolbar__section--align-start" part="section-start"><slot name="start"></slot><slot></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-center" part="section-center"><slot name="center"></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-end" part="section-end"><slot name="end"></slot></div></div></template>',_=".forge-toolbar{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);min-height:56px;min-height:var(--forge-toolbar-min-height,56px);height:56px;height:var(--forge-toolbar-height,56px);padding-inline:16px;padding-inline:var(--forge-toolbar-padding,16px);border-bottom:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-bottom:var(--forge-toolbar-border-bottom,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-top-left-radius:0;border-top-left-radius:var(--forge-toolbar-border-top-left-radius,0);border-top-right-radius:0;border-top-right-radius:var(--forge-toolbar-border-top-right-radius,0);border-bottom-left-radius:0;border-bottom-left-radius:var(--forge-toolbar-border-bottom-left-radius,0);border-bottom-right-radius:0;border-bottom-right-radius:var(--forge-toolbar-border-bottom-right-radius,0);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);display:grid;grid-template-columns:auto 1fr auto;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section--align-start{grid-column:1}.forge-toolbar__section--align-center{-webkit-box-pack:center;justify-content:center;grid-column:2}.forge-toolbar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;grid-column:3}.forge-toolbar--inverted{border-top:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-top:var(--forge-toolbar-border-top,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-bottom:none}:host{display:block;contain:layout}:host([hidden]){display:none}:host([no-border]) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{padding-inline:0;padding-inline:var(--forge-toolbar-padding,0)}:host([auto-height]) .forge-toolbar{height:auto;height:var(--forge-toolbar-height,auto)}.forge-toolbar ::slotted(h1){margin:0}.forge-toolbar ::slotted(h2){margin:0}.forge-toolbar ::slotted(h3){margin:0}.forge-toolbar ::slotted(h4){margin:0}.forge-toolbar ::slotted(h5){margin:0}.forge-toolbar ::slotted(h6){margin:0}.forge-toolbar ::slotted(p){margin:0}",t=class extends b{constructor(){super();this._inverted=!1;l(this,h,_),this._rootElement=s(this,e.selectors.TOOLBAR)}static get observedAttributes(){return[e.attributes.INVERTED]}connectedCallback(){this._initialize()}attributeChangedCallback(r,T,c){switch(r){case e.attributes.INVERTED:this.inverted=i(c);break}}_initialize(){this._setInverted(this._inverted)}_setInverted(r){r?this._rootElement.classList.add(e.classes.INVERTED):this._rootElement.classList.remove(e.classes.INVERTED)}get inverted(){return this._inverted}set inverted(r){this._inverted=r,this._setInverted(this._inverted)}};t=a([d({name:e.elementName})],t);function k(){n(t)}export{e as a,t as b,k as c};
7
+ //# sourceMappingURL=chunk.TL6WVBGT.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/toolbar/toolbar-constants.ts", "../../src/toolbar/toolbar.ts", "../../src/toolbar/index.ts"],
4
4
  "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}toolbar`;\r\n\r\nconst attributes = {\r\n INVERTED: 'inverted'\r\n};\r\n\r\nconst classes = {\r\n INVERTED: 'forge-toolbar--inverted',\r\n TOOLBAR: 'forge-toolbar',\r\n SECTION: 'forge-toolbar__section',\r\n ALIGN_START: 'forge-toolbar__section--align-start',\r\n ALIGN_CENTER: 'forge-toolbar__section--align-center',\r\n ALIGN_END: 'forge-toolbar__section--align-end'\r\n};\r\n\r\nconst selectors = {\r\n TOOLBAR: `.${classes.TOOLBAR}`,\r\n START_SLOT: `.${classes.SECTION}.${classes.ALIGN_START} > slot[name=start]`,\r\n CENTER_SLOT: `.${classes.SECTION}.${classes.ALIGN_CENTER} > slot[name=center]`,\r\n END_SLOT: `.${classes.SECTION}.${classes.ALIGN_END} > slot[name=end]`\r\n};\r\n\r\nexport const TOOLBAR_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors\r\n};\r\n", "import { CustomElement, attachShadowTemplate, getShadowElement, coerceBoolean } from '@tylertech/forge-core';\r\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\r\n\r\nimport { TOOLBAR_CONSTANTS } from './toolbar-constants';\r\n\r\nconst template = '<template><div class=\\\"forge-toolbar\\\" part=\\\"root\\\"><div class=\\\"forge-toolbar__section forge-toolbar__section--align-start\\\" part=\\\"section-start\\\"><slot name=\\\"start\\\"></slot><slot></slot></div><div class=\\\"forge-toolbar__section forge-toolbar__section--align-center\\\" part=\\\"section-center\\\"><slot name=\\\"center\\\"></slot></div><div class=\\\"forge-toolbar__section forge-toolbar__section--align-end\\\" part=\\\"section-end\\\"><slot name=\\\"end\\\"></slot></div></div></template>';\r\nconst styles = '.forge-toolbar{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);min-height:56px;min-height:var(--forge-toolbar-min-height,56px);height:56px;height:var(--forge-toolbar-height,56px);padding-inline:16px;padding-inline:var(--forge-toolbar-padding,16px);border-bottom:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-bottom:var(--forge-toolbar-border-bottom,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-top-left-radius:0;border-top-left-radius:var(--forge-toolbar-border-top-left-radius,0);border-top-right-radius:0;border-top-right-radius:var(--forge-toolbar-border-top-right-radius,0);border-bottom-left-radius:0;border-bottom-left-radius:var(--forge-toolbar-border-bottom-left-radius,0);border-bottom-right-radius:0;border-bottom-right-radius:var(--forge-toolbar-border-bottom-right-radius,0);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);display:grid;grid-template-columns:auto 1fr auto;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section--align-start{grid-column:1}.forge-toolbar__section--align-center{-webkit-box-pack:center;justify-content:center;grid-column:2}.forge-toolbar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;grid-column:3}.forge-toolbar--inverted{border-top:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-top:var(--forge-toolbar-border-top,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-bottom:none}:host{display:block;contain:layout}:host([hidden]){display:none}:host([no-border]) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{padding-inline:0;padding-inline:var(--forge-toolbar-padding,0)}:host([auto-height]) .forge-toolbar{height:auto;height:var(--forge-toolbar-height,auto)}.forge-toolbar ::slotted(h1){margin:0}.forge-toolbar ::slotted(h2){margin:0}.forge-toolbar ::slotted(h3){margin:0}.forge-toolbar ::slotted(h4){margin:0}.forge-toolbar ::slotted(h5){margin:0}.forge-toolbar ::slotted(h6){margin:0}.forge-toolbar ::slotted(p){margin:0}';\r\n\r\nexport interface IToolbarComponent extends IBaseComponent {\r\n inverted: boolean;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-toolbar': IToolbarComponent;\r\n }\r\n}\r\n\r\n/**\r\n * The web component class behind the `<forge-toolbar>` custom element.\r\n * \r\n * @tag forge-toolbar\r\n */\r\n@CustomElement({\r\n name: TOOLBAR_CONSTANTS.elementName\r\n})\r\nexport class ToolbarComponent extends BaseComponent implements IToolbarComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n TOOLBAR_CONSTANTS.attributes.INVERTED\r\n ];\r\n }\r\n \r\n private _rootElement: HTMLElement;\r\n private _inverted = false;\r\n\r\n constructor() {\r\n super();\r\n attachShadowTemplate(this, template, styles);\r\n this._rootElement = getShadowElement(this, TOOLBAR_CONSTANTS.selectors.TOOLBAR);\r\n }\r\n\r\n public connectedCallback(): void {\r\n this._initialize();\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case TOOLBAR_CONSTANTS.attributes.INVERTED:\r\n this.inverted = coerceBoolean(newValue);\r\n break;\r\n }\r\n }\r\n\r\n private _initialize(): void {\r\n this._setInverted(this._inverted);\r\n }\r\n \r\n private _setInverted(isInverted: boolean): void {\r\n if (isInverted) {\r\n this._rootElement.classList.add(TOOLBAR_CONSTANTS.classes.INVERTED);\r\n } else {\r\n this._rootElement.classList.remove(TOOLBAR_CONSTANTS.classes.INVERTED);\r\n }\r\n }\r\n\r\n public get inverted(): boolean {\r\n return this._inverted;\r\n }\r\n public set inverted(value: boolean) {\r\n this._inverted = value;\r\n this._setInverted(this._inverted);\r\n }\r\n}\r\n", "import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { ToolbarComponent } from './toolbar';\r\n\r\nexport * from './toolbar-constants';\r\nexport * from './toolbar';\r\n\r\nexport function defineToolbarComponent(): void {\r\n defineCustomElement(ToolbarComponent);\r\n}\r\n"],
5
- "mappings": "4LAEA,IAAMA,EAA2C,GAAGC,WAE9CC,EAAa,CACjB,SAAU,UACZ,EAEMC,EAAU,CACd,SAAU,0BACV,QAAS,gBACT,QAAS,yBACT,YAAa,sCACb,aAAc,uCACd,UAAW,mCACb,EAEMC,EAAY,CAChB,QAAS,IAAID,EAAQ,UACrB,WAAY,IAAIA,EAAQ,WAAWA,EAAQ,iCAC3C,YAAa,IAAIA,EAAQ,WAAWA,EAAQ,mCAC5C,SAAU,IAAIA,EAAQ,WAAWA,EAAQ,4BAC3C,EAEaE,EAAoB,CAC/B,YAAAL,EACA,WAAAE,EACA,QAAAC,EACA,UAAAC,CACF,ECxBA,IAAME,EAAW,scACXC,EAAS,kqEAoBFC,EAAN,cAA+BC,CAA2C,CAU/E,aAAc,CACZ,MAAM,EAHR,KAAQ,UAAY,GAIlBC,EAAqB,KAAMJ,EAAUC,CAAM,EAC3C,KAAK,aAAeI,EAAiB,KAAMC,EAAkB,UAAU,OAAO,CAChF,CAbA,WAAkB,oBAA+B,CAC/C,MAAO,CACLA,EAAkB,WAAW,QAC/B,CACF,CAWO,mBAA0B,CAC/B,KAAK,YAAY,CACnB,CAEO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,QACDD,EAAkB,WAAW,SAChC,KAAK,SAAWI,EAAcD,CAAQ,EACtC,MAEN,CAEQ,aAAoB,CAC1B,KAAK,aAAa,KAAK,SAAS,CAClC,CAEQ,aAAaE,EAA2B,CAC1CA,EACF,KAAK,aAAa,UAAU,IAAIL,EAAkB,QAAQ,QAAQ,EAElE,KAAK,aAAa,UAAU,OAAOA,EAAkB,QAAQ,QAAQ,CAEzE,CAEA,IAAW,UAAoB,CAC7B,OAAO,KAAK,SACd,CACA,IAAW,SAASM,EAAgB,CAClC,KAAK,UAAYA,EACjB,KAAK,aAAa,KAAK,SAAS,CAClC,CACF,EA/CaV,EAANW,EAAA,CAHNC,EAAc,CACb,KAAMR,EAAkB,WAC1B,CAAC,GACYJ,GCnBN,SAASa,GAA+B,CAC7CC,EAAoBC,CAAgB,CACtC",
5
+ "mappings": "4LAEA,IAAMA,EAA2C,GAAGC,WAE9CC,EAAa,CACjB,SAAU,UACZ,EAEMC,EAAU,CACd,SAAU,0BACV,QAAS,gBACT,QAAS,yBACT,YAAa,sCACb,aAAc,uCACd,UAAW,mCACb,EAEMC,EAAY,CAChB,QAAS,IAAID,EAAQ,UACrB,WAAY,IAAIA,EAAQ,WAAWA,EAAQ,iCAC3C,YAAa,IAAIA,EAAQ,WAAWA,EAAQ,mCAC5C,SAAU,IAAIA,EAAQ,WAAWA,EAAQ,4BAC3C,EAEaE,EAAoB,CAC/B,YAAAL,EACA,WAAAE,EACA,QAAAC,EACA,UAAAC,CACF,ECxBA,IAAME,EAAW,scACXC,EAAS,kqEAoBFC,EAAN,cAA+BC,CAA2C,CAU/E,aAAc,CACZ,MAAM,EAHR,KAAQ,UAAY,GAIlBC,EAAqB,KAAMJ,EAAUC,CAAM,EAC3C,KAAK,aAAeI,EAAiB,KAAMC,EAAkB,UAAU,OAAO,CAChF,CAbA,WAAkB,oBAA+B,CAC/C,MAAO,CACLA,EAAkB,WAAW,QAC/B,CACF,CAWO,mBAA0B,CAC/B,KAAK,YAAY,CACnB,CAEO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,EAAM,CACZ,KAAKD,EAAkB,WAAW,SAChC,KAAK,SAAWI,EAAcD,CAAQ,EACtC,KACJ,CACF,CAEQ,aAAoB,CAC1B,KAAK,aAAa,KAAK,SAAS,CAClC,CAEQ,aAAaE,EAA2B,CAC1CA,EACF,KAAK,aAAa,UAAU,IAAIL,EAAkB,QAAQ,QAAQ,EAElE,KAAK,aAAa,UAAU,OAAOA,EAAkB,QAAQ,QAAQ,CAEzE,CAEA,IAAW,UAAoB,CAC7B,OAAO,KAAK,SACd,CACA,IAAW,SAASM,EAAgB,CAClC,KAAK,UAAYA,EACjB,KAAK,aAAa,KAAK,SAAS,CAClC,CACF,EA/CaV,EAANW,EAAA,CAHNC,EAAc,CACb,KAAMR,EAAkB,WAC1B,CAAC,GACYJ,GCnBN,SAASa,GAA+B,CAC7CC,EAAoBC,CAAgB,CACtC",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "TOOLBAR_CONSTANTS", "template", "styles", "ToolbarComponent", "BaseComponent", "attachShadowTemplate", "getShadowElement", "TOOLBAR_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "isInverted", "value", "__decorateClass", "CustomElement", "defineToolbarComponent", "defineCustomElement", "ToolbarComponent"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as c,d as w}from"./chunk.RGPNNISQ.js";import{a as n}from"./chunk.NVUMRW44.js";import{a as A}from"./chunk.5V5ABSHI.js";import{a as x,b as O}from"./chunk.DTZFWZPB.js";import{a as k,e as M,f as u,k as D}from"./chunk.NK7H3MMM.js";import{i as C,r as T,s as y,t as p}from"./chunk.CFDK4RCW.js";import{c as f,d as E,k as m}from"./chunk.J2M2MXP2.js";import{a as _,d as s}from"./chunk.M3QDAYD2.js";var l=`${O}dialog`,S={ANIMATING:"forge-dialog--animating",OPEN:"forge-dialog--open",ACTION_BUTTON:"forge-dialog__action__button",BUTTON_TEXT:"forge-button__text",SCROLLABLE:"forge-dialog--scrollable",FULLSCREEN:"forge-dialog--fullscreen",MOVEABLE:"forge-dialog--moveable"},v={BACKDROP_CLOSE:"backdrop-close",ESCAPE_CLOSE:"escape-close",FULLSCREEN:"fullscreen",POSITION_TYPE:"position-type",POSITION_X:"position-x",POSITION_Y:"position-y",MOVEABLE:"moveable",MOVE_TARGET:"move-target",OPEN:"forge-dialog-open",INITIAL_FOCUS:"forge-dialog-focus",DFEAULT_MOVE_TARGET:"forge-dialog-move-target"},L={CONTAINER:".forge-dialog",SURFACE:".forge-dialog__surface",BACKDROP:c.elementName,INITIAL_FOCUS:`[${v.INITIAL_FOCUS}]`,DFEAULT_MOVE_TARGET:`[${v.DFEAULT_MOVE_TARGET}]`,CONTENT:".forge-dialog__body"},I={BEFORE_CLOSE:`${l}-before-close`,OPEN:`${l}-open`,CLOSE:`${l}-close`,READY:`${l}-ready`,MOVE_START:`${l}-move-start`,MOVED:`${l}-move`,MOVE_END:`${l}-move-end`},H={ANIMATION_DURATION:150,BACKDROP_MAX_OPACITY:.3},i={elementName:l,classes:S,selectors:L,attributes:v,events:I,numbers:H};var b=class{constructor(t){this._adapter=t;this._open=!1;this._backdropClose=!0;this._escapeClose=!0;this._fullscreen=!1;this._positionType="absolute";this._positionX=null;this._positionY=null;this._moveable=!1;this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET;this._isAnimating=!1;this._isMoving=!1;this._transitionEndHandler=e=>this._onTransitionEnd(),this._documentKeydownHandler=e=>this._onDocumentKeydown(e),this._backdropClickHandler=e=>this._onBackdropClick(e),this._moveTargetMouseDownHandler=e=>this._onMoveTargetMouseDown(e),this._moveTargetMouseMoveHandler=e=>this._onMoveTargetMouseMove(e),this._moveTargetMouseUpHandler=e=>this._onMoveTargetMouseUp(e)}initialize(){this._adapter.initializeAccessibility(),this._open&&this._moveable&&(this._adapter.setMoveable(this._moveable),this._initMoveTarget())}destroy(){this._open&&(this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}async _applyOpen(t){if(t){if(typeof this._openCallback=="function"&&!await this._executeOpenCallback())return;this._open=t,this._openDialog()}else{if(typeof this._closeCallback=="function"&&!await this._executeCloseCallback())return;this._open=t,this._closeDialog()}this._adapter.toggleHostAttribute(i.attributes.OPEN,this._open)}async _executeOpenCallback(){try{return await Promise.resolve(this._openCallback())!==!1}catch(t){return!1}}async _executeCloseCallback(){try{return await Promise.resolve(this._closeCallback())!==!1}catch(t){return!1}}initializeMoveTarget(){this._moveTarget||(this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET),this._initMoveTarget()}resetPosition(){this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)}async show(t){this._open||(this._open=!0,this._adapter.isConnected||this._adapter.attach(t),await this._openDialog())}async hide(t){this._open&&(this._open=!1,await this._closeDialog(),t&&this._adapter.detach())}_normalizePositionValue(t){return E(t)?`${t}px`:f(t)?t:null}_openDialog(){return this._fullscreen||(this._moveable&&this._adapter.setMoveable(this._moveable),(this._positionX!==null||this._positionY!==null)&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)),this._adapter.setBodyAttribute(i.attributes.OPEN,"true"),this._adapter.registerTransitionEndHandler(this._transitionEndHandler),this._setDocumentKeydownListener(this._escapeClose),this._adapter.setAnimating(!0),this._isAnimating=!0,window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.setVisibility(!0),this._setBackdropClickListener(this._backdropClose),this._adapter.emitHostEvent(i.events.OPEN),this._adapter.trySetInitialFocus(),this._adapter.isScrollable()&&this._adapter.addRootClass(i.classes.SCROLLABLE)})}),new Promise(t=>{window.setTimeout(()=>{window.requestAnimationFrame(()=>{this._open&&this._isAnimating&&(this._onTransitionEnd(),t())})},i.numbers.ANIMATION_DURATION)})}_closeDialog(){return this._moveTarget&&this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._escapeClose&&this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._backdropClose&&this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler),this._isAnimating=!1,this._moveContext=void 0,this._lastPosition=void 0,this._adapter.setAnimating(!0),this._adapter.setVisibility(!1),this._adapter.setSurfacePosition(null,null,null),new Promise(t=>{setTimeout(()=>{this._adapter.emitHostEvent(i.events.CLOSE),this._adapter.getOpenDialogs(`${i.elementName}[${i.attributes.OPEN}]`).length||this._adapter.removeBodyAttribute(i.attributes.OPEN),this._adapter.setAnimating(!1),t()},i.numbers.ANIMATION_DURATION)})}_onTransitionEnd(){this._isAnimating&&(this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.setAnimating(!1),this._adapter.emitHostEvent(i.events.READY),this._moveable&&this._initMoveTarget(),this._isAnimating=!1)}_initMoveTarget(){!this._fullscreen&&this._moveable&&this._moveTarget&&this._adapter.setMoveTarget(this._moveTarget)&&this._adapter.setMoveTargetHandler("mousedown",this._moveTargetMouseDownHandler)}_removeDragHandlers(){this._adapter.removeDragTargetHandler("mousedown",this._moveTargetMouseDownHandler),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseDown(t){t.preventDefault(),this._adapter.captureActiveElement();let e=this._adapter.getSurfaceBounds();this._moveContext={top:t.pageY-e.top,left:t.pageX-e.left,height:e.height,width:e.width},this._adapter.setDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.setDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseMove(t){t.preventDefault();let e=this._calculateOffsetPosition(t.pageX,t.pageY,this._moveContext);if(!this._isMoving&&(this._isMoving=!0,!this._adapter.emitHostEvent(i.events.MOVE_START,e,!0,!0)))return;let o=this._clampPosition(e,this._moveContext);if((!this._lastPosition||o.x!==this._lastPosition.x||o.y!==this._lastPosition.y)&&this._adapter.emitHostEvent(i.events.MOVED,o,!0,!0)){this._lastPosition=_({},o);let d=this._normalizePositionValue(o.x),P=this._normalizePositionValue(o.y);this._adapter.setSurfacePosition(d,P,"absolute")}}_onMoveTargetMouseUp(t){this._isMoving&&this._adapter.emitHostEvent(i.events.MOVE_END),this._moveComplete()}_moveComplete(){this._adapter.tryRestoreActiveElement(),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler),this._lastPosition=void 0,this._moveContext=void 0,this._isMoving=!1}_onDocumentKeydown(t){t.stopPropagation(),t.key&&(t.key==="Escape"||t.key==="Esc")&&this._tryClose()}_onBackdropClick(t){t.stopPropagation(),this._tryClose()}async _tryClose(){if(this._adapter.emitHostEvent(i.events.BEFORE_CLOSE,void 0,void 0,!0)){if(!this._beforeCloseCallback){this.open=!1;return}try{if(await Promise.resolve(this._beforeCloseCallback())!==!1){this.open=!1;return}}catch(e){return}}}_setBackdropClickListener(t){this._open&&(t&&this._backdropClose?this._adapter.registerBackdropClickHandler(this._backdropClickHandler):t||this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}_setDocumentKeydownListener(t){this._open&&(t&&this._escapeClose?this._adapter.setDocumentListener("keydown",this._documentKeydownHandler):t||this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler))}_calculateOffsetPosition(t,e,o){return{x:t-((o==null?void 0:o.left)||0),y:e-((o==null?void 0:o.top)||0)}}_clampPosition({x:t,y:e},o){let a=0,d=0;return o&&(a=o.width,d=o.height),t<=0?t=0:t+a>=window.innerWidth&&(t=window.innerWidth-a),e<=0?e=0:e+d>=window.innerHeight&&(e=window.innerHeight-d),{x:t,y:e}}set backdropClose(t){t=!!t,this._backdropClose!==t&&(this._backdropClose=t,this._setBackdropClickListener(this._backdropClose),this._adapter.toggleHostAttribute(i.attributes.BACKDROP_CLOSE,this._backdropClose))}get backdropClose(){return this._backdropClose}set escapeClose(t){t=!!t,this._escapeClose!==t&&(this._escapeClose=!!t,this._setDocumentKeydownListener(this._escapeClose),this._adapter.toggleHostAttribute(i.attributes.ESCAPE_CLOSE,this._escapeClose))}get escapeClose(){return this._escapeClose}get open(){return this._open}set open(t){this._open!==t&&(t=!!t,t!==this._open&&this._applyOpen(t))}get fullscreen(){return this._fullscreen}set fullscreen(t){this._fullscreen!==t&&(this._fullscreen=!!t,this._adapter.setFullscreen(this._fullscreen),this._adapter.toggleHostAttribute(i.attributes.FULLSCREEN,this._fullscreen))}get openCallback(){return this._openCallback}set openCallback(t){this._openCallback=t}get closeCallback(){return this._closeCallback}set closeCallback(t){this._closeCallback=t}get beforeCloseCallback(){return this._beforeCloseCallback}set beforeCloseCallback(t){this._beforeCloseCallback=t}get positionType(){return this._positionType}set positionType(t){this._positionType!==t&&(this._positionType=t,this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionX(){return this._positionX}set positionX(t){this._positionX!==t&&(this._positionX=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionY(){return this._positionY}set positionY(t){this._positionY!==t&&(this._positionY=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get moveable(){return this._moveable}set moveable(t){this._moveable!==t&&(this._moveable=!!t,this._open&&(this._adapter.setMoveable(this._moveable),this._moveable?this._initMoveTarget():(this._removeDragHandlers(),this._isMoving=!1)),this._adapter.toggleHostAttribute(i.attributes.MOVEABLE,this._moveable))}get moveTarget(){return this._moveTarget}set moveTarget(t){this._moveTarget=t}};var g=class extends A{constructor(e){super(e);this._containerElement=u(e,i.selectors.CONTAINER),this._surfaceElement=u(e,i.selectors.SURFACE)}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","dialog"),this._component.setAttribute("aria-modal","true")}setAnimating(e){p(this._containerElement,e,i.classes.ANIMATING)}setVisibility(e){p(this._containerElement,e,i.classes.OPEN),this._backdropElement||(this._backdropElement=document.createElement("forge-backdrop"),this._backdropElement.setAttribute("part","scrim"),this._containerElement.appendChild(this._backdropElement)),e?this._backdropElement.fadeIn():this._backdropElement.fadeOut()}attach(e=document.body){e.appendChild(this._component)}detach(){this._activeElement&&(this._activeElement=void 0),C(this._component)}registerTransitionEndHandler(e){this._surfaceElement.addEventListener("transitionend",e)}deregisterTransitionEndHandler(e){this._surfaceElement.removeEventListener("transitionend",e)}setDocumentListener(e,o){document.addEventListener(e,o)}removeDocumentListener(e,o){document.removeEventListener(e,o)}registerBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.addEventListener(c.events.BACKDROP_CLICK,e)}deregisterBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.removeEventListener(c.events.BACKDROP_CLICK,e)}getOpenDialogs(e){return document.querySelectorAll(e)}setBodyAttribute(e,o){document.body.setAttribute(e,o)}removeBodyAttribute(e){document.body.removeAttribute(e)}trySetInitialFocus(){let e=T(this._component,i.selectors.INITIAL_FOCUS);e&&e.length&&e[e.length-1].focus()}isScrollable(){let e=this._component.querySelector(i.selectors.CONTENT);return e?e.scrollHeight>e.offsetHeight:!1}addRootClass(e){this._component.classList.add(e)}setFullscreen(e){p(this._containerElement,e,i.classes.FULLSCREEN)}setMoveable(e){p(this._containerElement,e,i.classes.MOVEABLE)}setMoveTarget(e){return e?(this._moveTargetElement=this._component.querySelector(e),!!this._moveTargetElement):!1}setMoveTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.addEventListener(e,o)}removeDragTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.removeEventListener(e,o)}getSurfaceBounds(){return this._surfaceElement.getBoundingClientRect()}setSurfacePosition(e,o,a){a?this._surfaceElement.style.position=a==="absolute"?a:"relative":this._surfaceElement.style.removeProperty("position"),o!==null?this._surfaceElement.style.top=o:this._surfaceElement.style.removeProperty("top"),e!==null?this._surfaceElement.style.left=e:this._surfaceElement.style.removeProperty("left")}captureActiveElement(){var e;this._activeElement=y(),(e=this._activeElement)==null||e.blur()}tryRestoreActiveElement(){this._activeElement&&(this._activeElement.isConnected&&this._activeElement.focus(),this._activeElement=void 0)}};var N='<template><div class="forge-dialog" part="root"><div class="forge-dialog__surface" part="surface"><slot></slot></div></div></template>',B='.forge-dialog{position:fixed;top:0;bottom:0;left:0;right:0;z-index:8;z-index:var(--forge-z-index-dialog,8);-webkit-box-align:center;align-items:center;-webkit-box-align:var(--forge-dialog-align-items,center);align-items:var(--forge-dialog-align-items,center);top:0;top:var(--forge-dialog-top,0);padding:24px;padding:var(--forge-dialog-padding,24px);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;visibility:hidden}@media (max-width:599px){.forge-dialog{padding:0}}.forge-dialog--moveable:not(.forge-dialog--fullscreen) ::slotted([forge-dialog-move-target]){cursor:move}.forge-dialog--animating{visibility:visible}.forge-dialog--animating .forge-dialog--open .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--animating .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--scrollable .forge-dialog__footer,.forge-dialog--scrollable .forge-dialog__title{border-color:rgba(0,0,0,.12)}.forge-dialog--open{visibility:visible!important}.forge-dialog--open .forge-dialog__surface{-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-dialog__surface{-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);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);width:auto;width:var(--forge-dialog-width,auto);height:auto;height:var(--forge-dialog-height,auto);min-width:280px;min-width:var(--forge-dialog-min-width,280px);max-width:100%;max-width:var(--forge-dialog-max-width,100%);max-height:100%;max-height:var(--forge-dialog-max-height,100%);border-radius:4px;border-radius:var(--forge-dialog-border-radius,var(--mdc-shape-medium,4px));display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;overflow:hidden;z-index:inherit}.forge-dialog__header{margin:0;padding:0 24px 9px;border-bottom:1px solid transparent}.forge-dialog__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.forge-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.forge-dialog__body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-body1-font-size, 1rem);line-height:1.5rem;line-height:var(--mdc-typography-body1-line-height, 1.5rem);font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);padding-top:20px;padding:0 24px 24px;overflow:auto}.forge-dialog__body--scrollable{max-height:195px;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.forge-dialog__footer{display:-webkit-box;display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid transparent}.forge-dialog--fullscreen{padding:0}.forge-dialog--fullscreen .forge-dialog__surface{height:100%;width:100%;min-width:auto;max-width:100%;border-radius:0}:host{display:block}:host([hidden]){display:none}',r=class extends D{constructor(){super();M(this,N,B),this._foundation=new b(new g(this))}static get observedAttributes(){return[i.attributes.BACKDROP_CLOSE,i.attributes.ESCAPE_CLOSE,i.attributes.OPEN,i.attributes.FULLSCREEN,i.attributes.POSITION_TYPE,i.attributes.POSITION_X,i.attributes.POSITION_Y,i.attributes.MOVEABLE,i.attributes.MOVE_TARGET]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,o,a){switch(e){case i.attributes.BACKDROP_CLOSE:this.backdropClose=a==="true";break;case i.attributes.ESCAPE_CLOSE:this.escapeClose=a==="true";break;case i.attributes.OPEN:this.open=m(a);break;case i.attributes.FULLSCREEN:this.fullscreen=m(a);break;case i.attributes.POSITION_TYPE:this.positionType=a;break;case i.attributes.POSITION_X:this.positionX=a;break;case i.attributes.POSITION_Y:this.positionY=a;break;case i.attributes.MOVEABLE:this.moveable=m(a);break;case i.attributes.MOVE_TARGET:this.moveTarget=a;break}}initializeMoveTarget(){this._foundation.initializeMoveTarget()}resetPosition(){this._foundation.resetPosition()}show(e){return this._foundation.show(e)}hide(e){return this._foundation.hide(e)}};s([n()],r.prototype,"backdropClose",2),s([n()],r.prototype,"escapeClose",2),s([n()],r.prototype,"open",2),s([n()],r.prototype,"fullscreen",2),s([n()],r.prototype,"openCallback",2),s([n()],r.prototype,"closeCallback",2),s([n()],r.prototype,"beforeCloseCallback",2),s([n()],r.prototype,"positionType",2),s([n()],r.prototype,"positionX",2),s([n()],r.prototype,"positionY",2),s([n()],r.prototype,"moveable",2),s([n()],r.prototype,"moveTarget",2),r=s([x({name:i.elementName,dependencies:[w]})],r);function Ee(){k(r)}export{i as a,b,g as c,r as d,Ee as e};
7
+ //# sourceMappingURL=chunk.TT2VTZJ6.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/dialog/dialog-constants.ts", "../../src/dialog/dialog-foundation.ts", "../../src/dialog/dialog-adapter.ts", "../../src/dialog/dialog.ts", "../../src/dialog/index.ts"],
4
4
  "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { BACKDROP_CONSTANTS } from '../backdrop';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}dialog`;\n\nconst classes = {\n ANIMATING: 'forge-dialog--animating',\n OPEN: 'forge-dialog--open',\n ACTION_BUTTON: 'forge-dialog__action__button',\n BUTTON_TEXT: 'forge-button__text',\n SCROLLABLE: 'forge-dialog--scrollable',\n FULLSCREEN: 'forge-dialog--fullscreen',\n MOVEABLE: 'forge-dialog--moveable'\n};\n\nconst attributes = {\n BACKDROP_CLOSE: 'backdrop-close',\n ESCAPE_CLOSE: 'escape-close',\n FULLSCREEN: 'fullscreen',\n POSITION_TYPE: 'position-type',\n POSITION_X: 'position-x',\n POSITION_Y: 'position-y',\n MOVEABLE: 'moveable',\n MOVE_TARGET: 'move-target',\n OPEN: 'forge-dialog-open',\n INITIAL_FOCUS: 'forge-dialog-focus',\n DFEAULT_MOVE_TARGET: 'forge-dialog-move-target'\n};\n\nconst selectors = {\n CONTAINER: '.forge-dialog',\n SURFACE: '.forge-dialog__surface',\n BACKDROP: BACKDROP_CONSTANTS.elementName,\n INITIAL_FOCUS: `[${attributes.INITIAL_FOCUS}]`,\n DFEAULT_MOVE_TARGET: `[${attributes.DFEAULT_MOVE_TARGET}]`,\n CONTENT: '.forge-dialog__body'\n};\n\nconst events = {\n BEFORE_CLOSE: `${elementName}-before-close`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n READY: `${elementName}-ready`,\n MOVE_START: `${elementName}-move-start`,\n MOVED: `${elementName}-move`,\n MOVE_END: `${elementName}-move-end`\n};\n\nconst numbers = {\n ANIMATION_DURATION: 150,\n BACKDROP_MAX_OPACITY: 0.3\n};\n\nexport const DIALOG_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IDialogMoveEventData {\n x: number;\n y: number;\n}\n\nexport interface IDialogMoveContext {\n top: number;\n left: number;\n height: number;\n width: number;\n}\n\nexport interface IDialogMoveStartEventData extends IDialogMoveEventData {}\n\nexport type DialogPositionType = 'absolute' | 'relative';\nexport type DialogStateCallback = () => boolean | void | Promise<boolean | void>;\n", "import { ICustomElementFoundation, isDefined, isNumber, isString } from '@tylertech/forge-core';\nimport { IDialogAdapter } from './dialog-adapter';\nimport { DialogPositionType, DialogStateCallback, DIALOG_CONSTANTS, IDialogMoveContext, IDialogMoveStartEventData } from './dialog-constants';\n\nexport interface IDialogFoundation extends ICustomElementFoundation {\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n openCallback: DialogStateCallback;\n closeCallback: DialogStateCallback;\n beforeCloseCallback: DialogStateCallback;\n positionType: DialogPositionType;\n positionX: number | string | null | undefined;\n positionY: number | string | null | undefined;\n moveable: boolean;\n moveTarget: string;\n initializeMoveTarget(): void;\n resetPosition(): void;\n show(parent?: HTMLElement): Promise<void>;\n hide(remove?: boolean): Promise<void>;\n}\n\nexport class DialogFoundation implements IDialogFoundation {\n // Private vars\n private _open = false;\n private _backdropClose = true;\n private _escapeClose = true;\n private _fullscreen = false;\n private _openCallback: DialogStateCallback;\n private _closeCallback: DialogStateCallback;\n private _beforeCloseCallback: DialogStateCallback;\n private _positionType: DialogPositionType = 'absolute';\n private _positionX: string | null = null;\n private _positionY: string | null = null;\n private _moveable = false;\n private _moveTarget = DIALOG_CONSTANTS.selectors.DFEAULT_MOVE_TARGET;\n private _isAnimating = false;\n private _isMoving = false;\n private _moveContext: IDialogMoveContext | undefined;\n private _lastPosition: { x: number; y: number } | undefined;\n\n // Event handlers\n private _transitionEndHandler: (evt: TransitionEvent) => void;\n private _documentKeydownHandler: (evt: KeyboardEvent) => void;\n private _backdropClickHandler: (evt: CustomEvent) => void;\n private _moveTargetMouseDownHandler: (evt: MouseEvent) => void;\n private _moveTargetMouseMoveHandler: (evt: MouseEvent) => void;\n private _moveTargetMouseUpHandler: (evt: MouseEvent) => void;\n\n constructor(public _adapter: IDialogAdapter) {\n this._transitionEndHandler = (evt: TransitionEvent) => this._onTransitionEnd();\n this._documentKeydownHandler = (evt: KeyboardEvent) => this._onDocumentKeydown(evt);\n this._backdropClickHandler = (evt: CustomEvent) => this._onBackdropClick(evt);\n this._moveTargetMouseDownHandler = (evt: MouseEvent) => this._onMoveTargetMouseDown(evt);\n this._moveTargetMouseMoveHandler = (evt: MouseEvent) => this._onMoveTargetMouseMove(evt);\n this._moveTargetMouseUpHandler = (evt: MouseEvent) => this._onMoveTargetMouseUp(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeAccessibility();\n if (this._open) {\n if (this._moveable) {\n this._adapter.setMoveable(this._moveable);\n this._initMoveTarget();\n }\n }\n }\n\n public destroy(): void {\n if (this._open) {\n this._removeDragHandlers();\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n }\n\n private async _applyOpen(value: boolean): Promise<void> {\n if (value) {\n if (typeof this._openCallback === 'function' && !await this._executeOpenCallback()) {\n return;\n }\n this._open = value;\n this._openDialog();\n } else {\n if (typeof this._closeCallback === 'function' && !await this._executeCloseCallback()) {\n return;\n }\n this._open = value;\n this._closeDialog();\n }\n\n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.OPEN, this._open);\n }\n\n private async _executeOpenCallback(): Promise<boolean> {\n try {\n return await Promise.resolve(this._openCallback()) !== false;\n } catch (e) {\n return false;\n }\n }\n\n private async _executeCloseCallback(): Promise<boolean> {\n try {\n return await Promise.resolve(this._closeCallback()) !== false;\n } catch (e) {\n return false;\n }\n }\n\n public initializeMoveTarget(): void {\n if (!this._moveTarget) {\n this._moveTarget = DIALOG_CONSTANTS.selectors.DFEAULT_MOVE_TARGET;\n }\n this._initMoveTarget();\n }\n\n public resetPosition(): void {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n\n public async show(parent?: HTMLElement): Promise<void> {\n if (this._open) {\n return;\n }\n \n this._open = true;\n if (!this._adapter.isConnected) {\n this._adapter.attach(parent);\n }\n await this._openDialog();\n }\n\n public async hide(remove?: boolean): Promise<void> {\n if (!this._open) {\n return;\n }\n\n this._open = false;\n await this._closeDialog();\n if (remove) {\n this._adapter.detach();\n }\n }\n\n private _normalizePositionValue(value: number | string | null | undefined): string | null {\n if (isNumber(value)) {\n return `${value}px`;\n } else if (isString(value)) {\n return value;\n }\n return null;\n }\n\n private _openDialog(): Promise<void> {\n if (!this._fullscreen) {\n if (this._moveable) {\n this._adapter.setMoveable(this._moveable);\n }\n if (this._positionX !== null || this._positionY !== null) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n\n this._adapter.setBodyAttribute(DIALOG_CONSTANTS.attributes.OPEN, 'true');\n this._adapter.registerTransitionEndHandler(this._transitionEndHandler);\n this._setDocumentKeydownListener(this._escapeClose);\n this._adapter.setAnimating(true);\n this._isAnimating = true;\n\n // Ensure transitions are triggered properly\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n this._adapter.setVisibility(true);\n this._setBackdropClickListener(this._backdropClose); // Must come after setting visibility because the backdrop may not yet exist\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.OPEN);\n this._adapter.trySetInitialFocus();\n if (this._adapter.isScrollable()) {\n this._adapter.addRootClass(DIALOG_CONSTANTS.classes.SCROLLABLE);\n }\n });\n });\n\n return new Promise<void>(resolve => {\n // Wait for the dialog to finish animating open, then emit the ready event and attach any listeners\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n if (this._open && this._isAnimating) {\n this._onTransitionEnd();\n resolve();\n }\n });\n }, DIALOG_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n private _closeDialog(): Promise<void> {\n if (this._moveTarget) {\n this._removeDragHandlers();\n }\n\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n\n if (this._escapeClose) {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n }\n if (this._backdropClose) {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n\n this._isAnimating = false;\n this._moveContext = undefined;\n this._lastPosition = undefined;\n this._adapter.setAnimating(true);\n this._adapter.setVisibility(false);\n this._adapter.setSurfacePosition(null, null, null);\n\n return new Promise<void>(resolve => {\n setTimeout(() => {\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.CLOSE);\n const openDialogs = this._adapter.getOpenDialogs(`${DIALOG_CONSTANTS.elementName}[${DIALOG_CONSTANTS.attributes.OPEN}]`);\n if (!openDialogs.length) {\n this._adapter.removeBodyAttribute(DIALOG_CONSTANTS.attributes.OPEN);\n }\n this._adapter.setAnimating(false);\n resolve();\n }, DIALOG_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n private _onTransitionEnd(): void {\n if (!this._isAnimating) {\n return;\n }\n\n this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);\n this._adapter.setAnimating(false);\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.READY);\n\n if (this._moveable) {\n this._initMoveTarget();\n }\n \n this._isAnimating = false;\n }\n\n private _initMoveTarget(): void {\n if (!this._fullscreen && this._moveable && this._moveTarget && this._adapter.setMoveTarget(this._moveTarget)) {\n this._adapter.setMoveTargetHandler('mousedown', this._moveTargetMouseDownHandler);\n }\n }\n\n private _removeDragHandlers(): void {\n this._adapter.removeDragTargetHandler('mousedown', this._moveTargetMouseDownHandler);\n this._adapter.removeDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.removeDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n }\n\n private _onMoveTargetMouseDown(evt: MouseEvent): void {\n evt.preventDefault();\n this._adapter.captureActiveElement();\n const bounds = this._adapter.getSurfaceBounds();\n this._moveContext = {\n top: evt.pageY - bounds.top,\n left: evt.pageX - bounds.left,\n height: bounds.height,\n width: bounds.width\n };\n this._adapter.setDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.setDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n }\n\n private _onMoveTargetMouseMove(evt: MouseEvent): void {\n evt.preventDefault();\n const position = this._calculateOffsetPosition(evt.pageX, evt.pageY, this._moveContext);\n\n // If this is the beginning of the move sequence, we emit the start event (to allow for preventing default) and\n // then update the surface position if not prevented\n if (!this._isMoving) {\n this._isMoving = true;\n const canDrag = this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVE_START, position as IDialogMoveStartEventData, true, true);\n if (!canDrag) {\n return;\n }\n }\n\n // Ensure that the surface position stays within the bounds of the screen\n const newPosition = this._clampPosition(position, this._moveContext);\n\n // Only update the position if it actually changed\n if (!this._lastPosition || newPosition.x !== this._lastPosition.x || newPosition.y !== this._lastPosition.y) {\n const canMove = this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVED, newPosition as IDialogMoveStartEventData, true, true);\n if (canMove) {\n this._lastPosition = { ...newPosition };\n const newX = this._normalizePositionValue(newPosition.x);\n const newY = this._normalizePositionValue(newPosition.y);\n this._adapter.setSurfacePosition(newX, newY, 'absolute');\n }\n }\n }\n\n private _onMoveTargetMouseUp(evt: MouseEvent): void {\n if (this._isMoving) {\n this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.MOVE_END);\n }\n this._moveComplete();\n }\n\n private _moveComplete(): void {\n this._adapter.tryRestoreActiveElement();\n this._adapter.removeDocumentListener('mousemove', this._moveTargetMouseMoveHandler);\n this._adapter.removeDocumentListener('mouseup', this._moveTargetMouseUpHandler);\n this._lastPosition = undefined;\n this._moveContext = undefined;\n this._isMoving = false;\n }\n\n private _onDocumentKeydown(evt: KeyboardEvent): void {\n evt.stopPropagation();\n if (evt.key && (evt.key === 'Escape' || evt.key === 'Esc')) {\n this._tryClose();\n }\n }\n\n private _onBackdropClick(evt: CustomEvent): void {\n evt.stopPropagation();\n this._tryClose();\n }\n\n private async _tryClose(): Promise<void> {\n const isCancelled = !this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.BEFORE_CLOSE, undefined, undefined, true);\n if (isCancelled) {\n return;\n }\n\n if (!this._beforeCloseCallback) {\n this.open = false;\n return;\n }\n\n try {\n const shouldClose = await Promise.resolve(this._beforeCloseCallback()) !== false;\n if (shouldClose) {\n this.open = false;\n return;\n }\n } catch (err) {\n return;\n }\n }\n\n private _setBackdropClickListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach && this._backdropClose) {\n this._adapter.registerBackdropClickHandler(this._backdropClickHandler);\n } else if (!attach) {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n }\n\n private _setDocumentKeydownListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach && this._escapeClose) {\n this._adapter.setDocumentListener('keydown', this._documentKeydownHandler);\n } else if (!attach) {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n }\n }\n\n private _calculateOffsetPosition(pageX: number, pageY: number, context?: IDialogMoveContext): { x: number; y: number } {\n return {\n x: pageX - (context?.left || 0),\n y: pageY - (context?.top || 0)\n };\n }\n\n private _clampPosition({ x, y }: { x: number; y: number }, context?: IDialogMoveContext): { x: number; y: number } {\n let width = 0;\n let height = 0;\n\n if (context) {\n width = context.width;\n height = context.height;\n }\n\n if (x <= 0) {\n x = 0;\n } else if (x + width >= window.innerWidth) {\n x = window.innerWidth - width;\n }\n\n if (y <= 0) {\n y = 0;\n } else if (y + height >= window.innerHeight) {\n y = window.innerHeight - height;\n }\n\n return { x, y };\n }\n\n /** Controls whether clicking the backdrop closes the dialog or not. */\n public set backdropClose(value: boolean) {\n value = Boolean(value);\n if (this._backdropClose !== value) {\n this._backdropClose = value;\n this._setBackdropClickListener(this._backdropClose);\n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE, this._backdropClose);\n }\n }\n public get backdropClose(): boolean {\n return this._backdropClose;\n }\n\n /** Controls whether pressing the escape key closes the dialog or not. */\n public set escapeClose(value: boolean) {\n value = Boolean(value);\n if (this._escapeClose !== value) {\n this._escapeClose = !!value;\n this._setDocumentKeydownListener(this._escapeClose);\n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE, this._escapeClose);\n }\n }\n public get escapeClose(): boolean {\n return this._escapeClose;\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n value = Boolean(value);\n if (value !== this._open) {\n this._applyOpen(value);\n }\n }\n }\n\n public get fullscreen(): boolean {\n return this._fullscreen;\n }\n public set fullscreen(value: boolean) {\n if (this._fullscreen !== value) {\n this._fullscreen = !!value;\n this._adapter.setFullscreen(this._fullscreen);\n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.FULLSCREEN, this._fullscreen);\n }\n }\n\n public get openCallback(): DialogStateCallback {\n return this._openCallback;\n }\n public set openCallback(callback: DialogStateCallback) {\n this._openCallback = callback;\n }\n\n public get closeCallback(): DialogStateCallback {\n return this._closeCallback;\n }\n public set closeCallback(callback: DialogStateCallback) {\n this._closeCallback = callback;\n }\n\n public get beforeCloseCallback(): DialogStateCallback {\n return this._beforeCloseCallback;\n }\n public set beforeCloseCallback(callback: DialogStateCallback) {\n this._beforeCloseCallback = callback;\n }\n\n public get positionType(): DialogPositionType {\n return this._positionType;\n }\n public set positionType(value: DialogPositionType) {\n if (this._positionType !== value) {\n this._positionType = value;\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get positionX(): number | string | null | undefined {\n return this._positionX;\n }\n public set positionX(value: number | string | null | undefined) {\n if (this._positionX !== value) {\n this._positionX = this._normalizePositionValue(value);\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get positionY(): number | string | null | undefined {\n return this._positionY;\n }\n public set positionY(value: number | string | null | undefined) {\n if (this._positionY !== value) {\n this._positionY = this._normalizePositionValue(value);\n if (this._open) {\n this._adapter.setSurfacePosition(this._positionX, this._positionY, this._positionType);\n }\n }\n }\n\n public get moveable(): boolean {\n return this._moveable;\n }\n public set moveable(value: boolean) {\n if (this._moveable !== value) {\n this._moveable = !!value;\n\n if (this._open) {\n this._adapter.setMoveable(this._moveable);\n if (this._moveable) {\n this._initMoveTarget();\n } else {\n this._removeDragHandlers();\n this._isMoving = false;\n }\n }\n\n this._adapter.toggleHostAttribute(DIALOG_CONSTANTS.attributes.MOVEABLE, this._moveable);\n }\n }\n\n public get moveTarget(): string {\n return this._moveTarget;\n }\n public set moveTarget(value: string) {\n this._moveTarget = value;\n }\n}\n", "import { deepQuerySelectorAll, getActiveElement, getShadowElement, removeElement, toggleClass } from '@tylertech/forge-core';\nimport { BACKDROP_CONSTANTS, IBackdropComponent } from '../backdrop';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IDialogComponent } from './dialog';\nimport { DialogPositionType, DIALOG_CONSTANTS } from './dialog-constants';\n\nexport interface IDialogAdapter extends IBaseAdapter {\n initializeAccessibility(): void;\n setAnimating(animating: boolean): void;\n setVisibility(visible: boolean): void;\n attach(parent?: HTMLElement): void;\n detach(): void;\n setDocumentListener(type: string, listener: (evt: Event) => void): void;\n removeDocumentListener(type: string, listener: (evt: Event) => void): void;\n registerTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n deregisterTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n registerBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n deregisterBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n getOpenDialogs: (selector: string) => NodeListOf<HTMLElement>;\n setBodyAttribute: (name: string, value: string) => void;\n removeBodyAttribute: (name: string) => void;\n trySetInitialFocus: () => void;\n isScrollable(): boolean;\n addRootClass(name: string): void;\n setFullscreen(value: boolean): void;\n setMoveable(value: boolean): void;\n setMoveTarget(selector: string): boolean;\n setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n getSurfaceBounds(): DOMRect;\n setSurfacePosition(x: string | null, y: string | null, positionType: DialogPositionType | null): void;\n captureActiveElement(): void;\n tryRestoreActiveElement(): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `DialogComponent`.\n */\nexport class DialogAdapter extends BaseAdapter<IDialogComponent> implements IDialogAdapter {\n private _backdropElement?: IBackdropComponent;\n private _containerElement: HTMLElement;\n private _surfaceElement: HTMLElement;\n private _moveTargetElement: HTMLElement | null;\n private _activeElement: HTMLElement | undefined;\n\n constructor(component: IDialogComponent) {\n super(component);\n this._containerElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.CONTAINER);\n this._surfaceElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.SURFACE);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'dialog');\n }\n this._component.setAttribute('aria-modal', 'true');\n }\n\n public setAnimating(animating: boolean): void {\n toggleClass(this._containerElement, animating, DIALOG_CONSTANTS.classes.ANIMATING);\n }\n\n public setVisibility(visible: boolean): void {\n toggleClass(this._containerElement, visible, DIALOG_CONSTANTS.classes.OPEN);\n\n if (!this._backdropElement) {\n this._backdropElement = document.createElement('forge-backdrop');\n this._backdropElement.setAttribute('part', 'scrim');\n this._containerElement.appendChild(this._backdropElement);\n }\n \n if (visible) {\n this._backdropElement.fadeIn();\n } else {\n this._backdropElement.fadeOut();\n }\n }\n\n public attach(parent: HTMLElement = document.body): void {\n parent.appendChild(this._component);\n }\n\n public detach(): void {\n if (this._activeElement) {\n this._activeElement = undefined;\n }\n removeElement(this._component);\n }\n\n public registerTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._surfaceElement.addEventListener('transitionend', handler);\n }\n\n public deregisterTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._surfaceElement.removeEventListener('transitionend', handler);\n }\n\n public setDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.addEventListener(type, listener);\n }\n\n public removeDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.removeEventListener(type, listener);\n }\n\n public registerBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement?.addEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public deregisterBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement?.removeEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public getOpenDialogs(selector: string): NodeListOf<HTMLElement> {\n return document.querySelectorAll(selector);\n }\n\n public setBodyAttribute(name: string, value: string): void {\n document.body.setAttribute(name, value);\n }\n\n public removeBodyAttribute(name: string): void {\n document.body.removeAttribute(name);\n }\n\n public trySetInitialFocus(): void {\n const elements = deepQuerySelectorAll(this._component, DIALOG_CONSTANTS.selectors.INITIAL_FOCUS);\n if (elements && elements.length) {\n const initialElement = elements[elements.length - 1] as HTMLElement;\n initialElement.focus();\n }\n }\n\n public isScrollable(): boolean {\n const contentElement = this._component.querySelector(DIALOG_CONSTANTS.selectors.CONTENT) as HTMLElement;\n if (contentElement) {\n return contentElement.scrollHeight > contentElement.offsetHeight;\n }\n return false;\n }\n\n public addRootClass(name: string): void {\n this._component.classList.add(name);\n }\n\n public setFullscreen(value: boolean): void {\n toggleClass(this._containerElement, value, DIALOG_CONSTANTS.classes.FULLSCREEN);\n }\n\n public setMoveable(value: boolean): void {\n toggleClass(this._containerElement, value, DIALOG_CONSTANTS.classes.MOVEABLE);\n }\n\n public setMoveTarget(selector: string): boolean {\n if (!selector) {\n return false;\n }\n this._moveTargetElement = this._component.querySelector(selector);\n return !!this._moveTargetElement;\n }\n\n public setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n this._moveTargetElement?.addEventListener(type, listener);\n }\n\n public removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n this._moveTargetElement?.removeEventListener(type, listener);\n }\n\n public getSurfaceBounds(): DOMRect {\n return this._surfaceElement.getBoundingClientRect() as DOMRect;\n }\n\n public setSurfacePosition(x: string | null, y: string | null, positionType: DialogPositionType | null): void {\n if (positionType) {\n this._surfaceElement.style.position = positionType === 'absolute' ? positionType : 'relative';\n } else {\n this._surfaceElement.style.removeProperty('position');\n }\n\n if (y !== null) {\n this._surfaceElement.style.top = y;\n } else {\n this._surfaceElement.style.removeProperty('top');\n }\n\n if (x !== null) {\n this._surfaceElement.style.left = x;\n } else {\n this._surfaceElement.style.removeProperty('left');\n }\n }\n\n public captureActiveElement(): void {\n this._activeElement = getActiveElement() as HTMLElement;\n this._activeElement?.blur();\n }\n\n public tryRestoreActiveElement(): void {\n if (this._activeElement) {\n if (this._activeElement.isConnected) {\n this._activeElement.focus();\n }\n this._activeElement = undefined;\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\n\nimport { DialogFoundation } from './dialog-foundation';\nimport { DialogAdapter } from './dialog-adapter';\nimport { DIALOG_CONSTANTS, DialogPositionType, IDialogMoveStartEventData, IDialogMoveEventData, DialogStateCallback } from './dialog-constants';\nimport { BackdropComponent } from '../backdrop';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-dialog\\\" part=\\\"root\\\"><div class=\\\"forge-dialog__surface\\\" part=\\\"surface\\\"><slot></slot></div></div></template>';\nconst styles = '.forge-dialog{position:fixed;top:0;bottom:0;left:0;right:0;z-index:8;z-index:var(--forge-z-index-dialog,8);-webkit-box-align:center;align-items:center;-webkit-box-align:var(--forge-dialog-align-items,center);align-items:var(--forge-dialog-align-items,center);top:0;top:var(--forge-dialog-top,0);padding:24px;padding:var(--forge-dialog-padding,24px);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;visibility:hidden}@media (max-width:599px){.forge-dialog{padding:0}}.forge-dialog--moveable:not(.forge-dialog--fullscreen) ::slotted([forge-dialog-move-target]){cursor:move}.forge-dialog--animating{visibility:visible}.forge-dialog--animating .forge-dialog--open .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--animating .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--scrollable .forge-dialog__footer,.forge-dialog--scrollable .forge-dialog__title{border-color:rgba(0,0,0,.12)}.forge-dialog--open{visibility:visible!important}.forge-dialog--open .forge-dialog__surface{-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-dialog__surface{-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);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);width:auto;width:var(--forge-dialog-width,auto);height:auto;height:var(--forge-dialog-height,auto);min-width:280px;min-width:var(--forge-dialog-min-width,280px);max-width:100%;max-width:var(--forge-dialog-max-width,100%);max-height:100%;max-height:var(--forge-dialog-max-height,100%);border-radius:4px;border-radius:var(--forge-dialog-border-radius,var(--mdc-shape-medium,4px));display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;overflow:hidden;z-index:inherit}.forge-dialog__header{margin:0;padding:0 24px 9px;border-bottom:1px solid transparent}.forge-dialog__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.forge-dialog__title::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}.forge-dialog__body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-body1-font-size, 1rem);line-height:1.5rem;line-height:var(--mdc-typography-body1-line-height, 1.5rem);font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);padding-top:20px;padding:0 24px 24px;overflow:auto}.forge-dialog__body--scrollable{max-height:195px;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.forge-dialog__footer{display:-webkit-box;display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid transparent}.forge-dialog--fullscreen{padding:0}.forge-dialog--fullscreen .forge-dialog__surface{height:100%;width:100%;min-width:auto;max-width:100%;border-radius:0}:host{display:block}:host([hidden]){display:none}';\n\nexport interface IDialogComponent extends IBaseComponent {\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n openCallback: DialogStateCallback;\n closeCallback: DialogStateCallback;\n beforeCloseCallback: () => boolean | Promise<boolean>;\n positionType: DialogPositionType;\n positionX: number | string | null | undefined;\n positionY: number | string | null | undefined;\n moveable: boolean;\n moveTarget: string;\n initializeMoveTarget(): void;\n resetPosition(): void;\n show(parent?: HTMLElement): Promise<void>;\n hide(remove?: boolean): Promise<void>;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-dialog': IDialogComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-dialog-before-close': CustomEvent<void>;\n 'forge-dialog-open': CustomEvent<void>;\n 'forge-dialog-close': CustomEvent<void>;\n 'forge-dialog-ready': CustomEvent<void>;\n 'forge-dialog-move-start': CustomEvent<IDialogMoveStartEventData>;\n 'forge-dialog-move': CustomEvent<IDialogMoveEventData>;\n 'forge-dialog-move-end': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-dialog>` custom element.\n * \n * @tag forge-dialog\n */\n@CustomElement({\n name: DIALOG_CONSTANTS.elementName,\n dependencies: [BackdropComponent]\n})\nexport class DialogComponent extends BaseComponent implements IDialogComponent {\n public static get observedAttributes(): string[] {\n return [\n DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE,\n DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE,\n DIALOG_CONSTANTS.attributes.OPEN,\n DIALOG_CONSTANTS.attributes.FULLSCREEN,\n DIALOG_CONSTANTS.attributes.POSITION_TYPE,\n DIALOG_CONSTANTS.attributes.POSITION_X,\n DIALOG_CONSTANTS.attributes.POSITION_Y,\n DIALOG_CONSTANTS.attributes.MOVEABLE,\n DIALOG_CONSTANTS.attributes.MOVE_TARGET\n ];\n }\n\n private _foundation: DialogFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new DialogFoundation(new DialogAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DIALOG_CONSTANTS.attributes.BACKDROP_CLOSE:\n this.backdropClose = newValue === 'true';\n break;\n case DIALOG_CONSTANTS.attributes.ESCAPE_CLOSE:\n this.escapeClose = newValue === 'true';\n break;\n case DIALOG_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.FULLSCREEN:\n this.fullscreen = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_TYPE:\n this.positionType = newValue as DialogPositionType;\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_X:\n this.positionX = newValue;\n break;\n case DIALOG_CONSTANTS.attributes.POSITION_Y:\n this.positionY = newValue;\n break;\n case DIALOG_CONSTANTS.attributes.MOVEABLE:\n this.moveable = coerceBoolean(newValue);\n break;\n case DIALOG_CONSTANTS.attributes.MOVE_TARGET:\n this.moveTarget = newValue;\n break;\n }\n }\n\n /** Controls whether clicking the backdrop closes the dialog or not. Default is true. */\n @FoundationProperty()\n public declare backdropClose: boolean;\n\n /** Controls whether pressing the escape key closes the dialog or not. Default is true. */\n @FoundationProperty()\n public declare escapeClose: boolean;\n\n /** Controls whether the dialog is open or not. Default is false. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Controls whether the dialog is full screen or not. Default is false. */\n @FoundationProperty()\n public declare fullscreen: boolean;\n\n /** The function to call when the dialog wants to open. */\n @FoundationProperty()\n public declare openCallback: DialogStateCallback;\n\n /** the function to call when the dialog wants to close. */\n @FoundationProperty()\n public declare closeCallback: DialogStateCallback;\n\n /** the function to call when the dialog wants to close. */\n @FoundationProperty()\n public declare beforeCloseCallback: () => boolean | Promise<boolean>;\n\n /** Gets/sets the position type when using custom positioning values. Default is 'absolute'. */\n @FoundationProperty()\n public declare positionType: DialogPositionType;\n\n /** Controls the horizontal position of the dialog surface. */\n @FoundationProperty()\n public declare positionX: number | string | null | undefined;\n\n /** Controls the vertical position of the dialog surface. */\n @FoundationProperty()\n public declare positionY: number | string | null | undefined;\n\n /** Gets/sets whether the dialog surface can be moved or not. */\n @FoundationProperty()\n public declare moveable: boolean;\n\n /** Gets/sets the selector used to target the element that is used as the drag target. */\n @FoundationProperty()\n public declare moveTarget: string;\n\n public initializeMoveTarget(): void {\n this._foundation.initializeMoveTarget();\n }\n\n public resetPosition(): void {\n this._foundation.resetPosition();\n }\n\n public show(parent?: HTMLElement): Promise<void> {\n return this._foundation.show(parent);\n }\n public hide(remove?: boolean): Promise<void> {\n return this._foundation.hide(remove);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { DialogComponent } from './dialog';\n\nexport * from './dialog-adapter';\nexport * from './dialog-constants';\nexport * from './dialog-foundation';\nexport * from './dialog';\n\nexport function defineDialogComponent(): void {\n defineCustomElement(DialogComponent);\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "attributes", "selectors", "BACKDROP_CONSTANTS", "events", "numbers", "DIALOG_CONSTANTS", "DialogFoundation", "_adapter", "DIALOG_CONSTANTS", "evt", "value", "e", "parent", "remove", "isNumber", "isString", "resolve", "bounds", "position", "newPosition", "__spreadValues", "newX", "newY", "err", "attach", "pageX", "pageY", "context", "x", "y", "width", "height", "callback", "DialogAdapter", "BaseAdapter", "component", "getShadowElement", "DIALOG_CONSTANTS", "animating", "toggleClass", "visible", "parent", "removeElement", "handler", "type", "listener", "_a", "BACKDROP_CONSTANTS", "selector", "name", "value", "elements", "deepQuerySelectorAll", "contentElement", "x", "y", "positionType", "getActiveElement", "template", "styles", "DialogComponent", "BaseComponent", "attachShadowTemplate", "DialogFoundation", "DialogAdapter", "DIALOG_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "parent", "remove", "__decorateClass", "FoundationProperty", "CustomElement", "BackdropComponent", "defineDialogComponent", "defineCustomElement", "DialogComponent"]
7
7
  }