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

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 (755) hide show
  1. package/custom-elements.json +47415 -39475
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/chunk.24NQGTNU.js +7 -0
  32. package/dist/esm/chunks/chunk.24NQGTNU.js.map +7 -0
  33. package/dist/esm/chunks/chunk.2JCTFKCR.js +7 -0
  34. package/dist/esm/chunks/{chunk.Q54DACHS.js.map → chunk.2JCTFKCR.js.map} +1 -1
  35. package/dist/esm/chunks/chunk.2OZ2HVBZ.js +7 -0
  36. package/dist/esm/chunks/{chunk.PMSCH6VK.js.map → chunk.2OZ2HVBZ.js.map} +3 -3
  37. package/dist/esm/chunks/chunk.2YE556AM.js +7 -0
  38. package/dist/esm/chunks/{chunk.5KYKGNGY.js.map → chunk.2YE556AM.js.map} +1 -1
  39. package/dist/esm/chunks/chunk.3U6A353B.js +7 -0
  40. package/dist/esm/chunks/{chunk.ZT7U7WOX.js.map → chunk.3U6A353B.js.map} +1 -1
  41. package/dist/esm/chunks/chunk.3VHQPHQP.js +7 -0
  42. package/dist/esm/chunks/chunk.3VHQPHQP.js.map +7 -0
  43. package/dist/esm/chunks/chunk.436USWLL.js +7 -0
  44. package/dist/esm/chunks/{chunk.4JDJ33IU.js.map → chunk.436USWLL.js.map} +1 -1
  45. package/dist/esm/chunks/chunk.4GMGQZOW.js +7 -0
  46. package/dist/esm/chunks/{chunk.6FUXTHO6.js.map → chunk.4GMGQZOW.js.map} +1 -1
  47. package/dist/esm/chunks/chunk.4JB3SESQ.js +7 -0
  48. package/dist/esm/chunks/{chunk.AIPDMLJD.js.map → chunk.4JB3SESQ.js.map} +1 -1
  49. package/dist/esm/chunks/chunk.4JL5LW5J.js +7 -0
  50. package/dist/esm/chunks/{chunk.BS73Y6IN.js.map → chunk.4JL5LW5J.js.map} +1 -1
  51. package/dist/esm/chunks/chunk.4O6OEUGY.js +7 -0
  52. package/dist/esm/chunks/{chunk.4XN2WGMP.js.map → chunk.4O6OEUGY.js.map} +2 -2
  53. package/dist/esm/chunks/chunk.4OG3OGVO.js +7 -0
  54. package/dist/esm/chunks/chunk.4OG3OGVO.js.map +7 -0
  55. package/dist/esm/chunks/chunk.4QOXI2GM.js +7 -0
  56. package/dist/esm/chunks/chunk.4QOXI2GM.js.map +7 -0
  57. package/dist/esm/chunks/{chunk.MTSWCXTY.js → chunk.55D2BMXX.js} +2 -2
  58. package/dist/esm/chunks/chunk.5LCWC3A7.js +7 -0
  59. package/dist/esm/chunks/{chunk.VG452D3L.js.map → chunk.5LCWC3A7.js.map} +1 -1
  60. package/dist/esm/chunks/chunk.5T7TT3AB.js +7 -0
  61. package/dist/esm/chunks/{chunk.YMSX4F3J.js.map → chunk.5T7TT3AB.js.map} +1 -1
  62. package/dist/esm/chunks/{chunk.JHELTQKA.js → chunk.5WVOPPBY.js} +2 -2
  63. package/dist/esm/chunks/{chunk.JHELTQKA.js.map → chunk.5WVOPPBY.js.map} +2 -2
  64. package/dist/esm/chunks/chunk.5XLCY232.js +7 -0
  65. package/dist/esm/chunks/chunk.5XLCY232.js.map +7 -0
  66. package/dist/esm/chunks/chunk.65WE722H.js +7 -0
  67. package/dist/esm/chunks/chunk.65WE722H.js.map +7 -0
  68. package/dist/esm/chunks/chunk.6IPX5C4B.js +7 -0
  69. package/dist/esm/chunks/chunk.6IPX5C4B.js.map +7 -0
  70. package/dist/esm/chunks/chunk.6PB5OWMP.js +7 -0
  71. package/dist/esm/chunks/{chunk.ONII3BV3.js.map → chunk.6PB5OWMP.js.map} +2 -2
  72. package/dist/esm/chunks/chunk.74HZVSDM.js +7 -0
  73. package/dist/esm/chunks/chunk.74HZVSDM.js.map +7 -0
  74. package/dist/esm/chunks/chunk.74JHE77R.js +7 -0
  75. package/dist/esm/chunks/{chunk.Y4ZS3A6F.js.map → chunk.74JHE77R.js.map} +2 -2
  76. package/dist/esm/chunks/chunk.7SYU6KRU.js +15 -0
  77. package/dist/esm/chunks/chunk.7SYU6KRU.js.map +7 -0
  78. package/dist/esm/chunks/{chunk.BC7WB5RG.js → chunk.B53Q676I.js} +2 -2
  79. package/dist/esm/chunks/chunk.BKQSLDMK.js +7 -0
  80. package/dist/esm/chunks/{chunk.NVR6KN2B.js.map → chunk.BKQSLDMK.js.map} +1 -1
  81. package/dist/esm/chunks/chunk.BZG47SA5.js +7 -0
  82. package/dist/esm/chunks/{chunk.THNCYT3E.js.map → chunk.BZG47SA5.js.map} +2 -2
  83. package/dist/esm/chunks/chunk.BZVLSWZR.js +7 -0
  84. package/dist/esm/chunks/{chunk.4IMRT2B3.js.map → chunk.BZVLSWZR.js.map} +1 -1
  85. package/dist/esm/chunks/chunk.C72LM2AL.js +7 -0
  86. package/dist/esm/chunks/chunk.C72LM2AL.js.map +7 -0
  87. package/dist/esm/chunks/chunk.DGG5ABL3.js +7 -0
  88. package/dist/esm/chunks/{chunk.WARVAVAW.js.map → chunk.DGG5ABL3.js.map} +1 -1
  89. package/dist/esm/chunks/chunk.DPIWAXEW.js +7 -0
  90. package/dist/esm/chunks/{chunk.UOEJCU6R.js.map → chunk.DPIWAXEW.js.map} +1 -1
  91. package/dist/esm/chunks/chunk.E62ZPQSM.js +7 -0
  92. package/dist/esm/chunks/chunk.E62ZPQSM.js.map +7 -0
  93. package/dist/esm/chunks/chunk.ECJBVX3D.js +7 -0
  94. package/dist/esm/chunks/{chunk.DLBAZD5X.js.map → chunk.ECJBVX3D.js.map} +1 -1
  95. package/dist/esm/chunks/chunk.EN2HVFJ4.js +7 -0
  96. package/dist/esm/chunks/chunk.EN2HVFJ4.js.map +7 -0
  97. package/dist/esm/chunks/chunk.EPRRK33O.js +7 -0
  98. package/dist/esm/chunks/chunk.EPRRK33O.js.map +7 -0
  99. package/dist/esm/chunks/chunk.ETDUW5K2.js +7 -0
  100. package/dist/esm/chunks/{chunk.FSILMO6U.js.map → chunk.ETDUW5K2.js.map} +1 -1
  101. package/dist/esm/chunks/chunk.EWFNM4WO.js +7 -0
  102. package/dist/esm/chunks/chunk.EWFNM4WO.js.map +7 -0
  103. package/dist/esm/chunks/{chunk.U7S4DJTU.js → chunk.FGHSNC2V.js} +2 -2
  104. package/dist/esm/chunks/chunk.FPRBYGET.js +7 -0
  105. package/dist/esm/chunks/{chunk.LK6QHLW2.js.map → chunk.FPRBYGET.js.map} +1 -1
  106. package/dist/esm/chunks/chunk.FQVR2QNF.js +7 -0
  107. package/dist/esm/chunks/{chunk.X3QZY7V4.js.map → chunk.FQVR2QNF.js.map} +1 -1
  108. package/dist/esm/chunks/chunk.FWWBFNQA.js +7 -0
  109. package/dist/esm/chunks/{chunk.O6F4U4VY.js.map → chunk.FWWBFNQA.js.map} +1 -1
  110. package/dist/esm/chunks/{chunk.URKQICJD.js → chunk.FZELFLPE.js} +2 -2
  111. package/dist/esm/chunks/chunk.FZZUNYH5.js +7 -0
  112. package/dist/esm/chunks/{chunk.5QZPUOGG.js.map → chunk.FZZUNYH5.js.map} +1 -1
  113. package/dist/esm/chunks/chunk.GHMAI3SM.js +15 -0
  114. package/dist/esm/chunks/chunk.GHMAI3SM.js.map +7 -0
  115. package/dist/esm/chunks/{chunk.5EGEZ4IY.js → chunk.GLUKTMQU.js} +2 -2
  116. package/dist/esm/chunks/chunk.GTBCTNMI.js +7 -0
  117. package/dist/esm/chunks/{chunk.ICIGXLJW.js.map → chunk.GTBCTNMI.js.map} +1 -1
  118. package/dist/esm/chunks/chunk.GTGXHY4A.js +7 -0
  119. package/dist/esm/chunks/chunk.GTGXHY4A.js.map +7 -0
  120. package/dist/esm/chunks/chunk.GURV4TDZ.js +7 -0
  121. package/dist/esm/chunks/{chunk.TSUAFZGY.js.map → chunk.GURV4TDZ.js.map} +1 -1
  122. package/dist/esm/chunks/chunk.H6MMHAQI.js +15 -0
  123. package/dist/esm/chunks/chunk.H6MMHAQI.js.map +7 -0
  124. package/dist/esm/chunks/chunk.HJUFU2PV.js +7 -0
  125. package/dist/esm/chunks/{chunk.RCPUTZON.js.map → chunk.HJUFU2PV.js.map} +2 -2
  126. package/dist/esm/chunks/chunk.HPCXVNG6.js +7 -0
  127. package/dist/esm/chunks/{chunk.CZOABXEQ.js.map → chunk.HPCXVNG6.js.map} +3 -3
  128. package/dist/esm/chunks/chunk.IA27LU2O.js +7 -0
  129. package/dist/esm/chunks/{chunk.JEZR25US.js.map → chunk.IA27LU2O.js.map} +1 -1
  130. package/dist/esm/chunks/chunk.INQZNXG6.js +7 -0
  131. package/dist/esm/chunks/chunk.INQZNXG6.js.map +7 -0
  132. package/dist/esm/chunks/chunk.IO3TM653.js +7 -0
  133. package/dist/esm/chunks/chunk.IO3TM653.js.map +7 -0
  134. package/dist/esm/chunks/chunk.JXJVPJRO.js +177 -0
  135. package/dist/esm/chunks/{chunk.AVRBHXDT.js.map → chunk.JXJVPJRO.js.map} +1 -1
  136. package/dist/esm/chunks/chunk.K3STAW42.js +7 -0
  137. package/dist/esm/chunks/{chunk.XQLQ73NG.js.map → chunk.K3STAW42.js.map} +1 -1
  138. package/dist/esm/chunks/chunk.KM5XYTE3.js +7 -0
  139. package/dist/esm/chunks/chunk.KM5XYTE3.js.map +7 -0
  140. package/dist/esm/chunks/chunk.KPC6IS3C.js +7 -0
  141. package/dist/esm/chunks/{chunk.OTUEB7SD.js.map → chunk.KPC6IS3C.js.map} +1 -1
  142. package/dist/esm/chunks/{chunk.PRJHBUU2.js → chunk.KPNGLSCU.js} +1 -1
  143. package/dist/esm/chunks/chunk.KPNGLSCU.js.map +7 -0
  144. package/dist/esm/chunks/chunk.KV7PGQJ7.js +7 -0
  145. package/dist/esm/chunks/{chunk.KR4BNI6X.js.map → chunk.KV7PGQJ7.js.map} +1 -1
  146. package/dist/esm/chunks/chunk.LCS2O4Y7.js +7 -0
  147. package/dist/esm/chunks/chunk.LCS2O4Y7.js.map +7 -0
  148. package/dist/esm/chunks/chunk.M4KCRUKW.js +7 -0
  149. package/dist/esm/chunks/chunk.M4KCRUKW.js.map +7 -0
  150. package/dist/esm/chunks/{chunk.IHIKIZIT.js → chunk.M5JGYRH4.js} +2 -2
  151. package/dist/esm/chunks/{chunk.O6MGA3XK.js → chunk.N75VD4S4.js} +2 -2
  152. package/dist/esm/chunks/chunk.NHOGZDLN.js +7 -0
  153. package/dist/esm/chunks/chunk.NHOGZDLN.js.map +7 -0
  154. package/dist/esm/chunks/chunk.NKEAMFO4.js +7 -0
  155. package/dist/esm/chunks/{chunk.KUNIEX72.js.map → chunk.NKEAMFO4.js.map} +1 -1
  156. package/dist/esm/chunks/{chunk.KDJZN6EW.js → chunk.NW54VA4E.js} +2 -2
  157. package/dist/esm/chunks/chunk.OJGPKHHC.js +7 -0
  158. package/dist/esm/chunks/{chunk.EMCY55MX.js.map → chunk.OJGPKHHC.js.map} +2 -2
  159. package/dist/esm/chunks/chunk.OSCODMUG.js +7 -0
  160. package/dist/esm/chunks/chunk.OSCODMUG.js.map +7 -0
  161. package/dist/esm/chunks/chunk.OT3JZ6JO.js +7 -0
  162. package/dist/esm/chunks/{chunk.7PVVZC7P.js.map → chunk.OT3JZ6JO.js.map} +3 -3
  163. package/dist/esm/chunks/{chunk.BAQYPAUM.js → chunk.OXVCCHM5.js} +2 -2
  164. package/dist/esm/chunks/chunk.P5XHGSJY.js +7 -0
  165. package/dist/esm/chunks/{chunk.5FCUOZSU.js.map → chunk.P5XHGSJY.js.map} +1 -1
  166. package/dist/esm/chunks/chunk.Q5YXX4DU.js +7 -0
  167. package/dist/esm/chunks/{chunk.ZIRA4PYV.js.map → chunk.Q5YXX4DU.js.map} +1 -1
  168. package/dist/esm/chunks/{chunk.MHH26REX.js → chunk.QKTNCOVX.js} +2 -2
  169. package/dist/esm/chunks/chunk.QZ57WM3D.js +7 -0
  170. package/dist/esm/chunks/{chunk.Q2Q626DG.js.map → chunk.QZ57WM3D.js.map} +1 -1
  171. package/dist/esm/chunks/chunk.R2QENXIL.js +7 -0
  172. package/dist/esm/chunks/{chunk.LYZXJYTW.js.map → chunk.R2QENXIL.js.map} +1 -1
  173. package/dist/esm/chunks/chunk.R53VHVKB.js +12 -0
  174. package/dist/esm/chunks/chunk.R53VHVKB.js.map +7 -0
  175. package/dist/esm/chunks/{chunk.42YDA5FH.js → chunk.RDQ3QGWS.js} +2 -2
  176. package/dist/esm/chunks/chunk.RFKKHN7V.js +7 -0
  177. package/dist/esm/chunks/{chunk.KGHABAFA.js.map → chunk.RFKKHN7V.js.map} +1 -1
  178. package/dist/esm/chunks/{chunk.AR6YUJUH.js → chunk.RKG66YKS.js} +2 -2
  179. package/dist/esm/chunks/chunk.RRNSZCVJ.js +7 -0
  180. package/dist/esm/chunks/{chunk.T4J66YX5.js.map → chunk.RRNSZCVJ.js.map} +4 -4
  181. package/dist/esm/chunks/chunk.S32JKL3M.js +7 -0
  182. package/dist/esm/chunks/chunk.S32JKL3M.js.map +7 -0
  183. package/dist/esm/chunks/chunk.SJQPD3CO.js +7 -0
  184. package/dist/esm/chunks/chunk.SJQPD3CO.js.map +7 -0
  185. package/dist/esm/chunks/chunk.T235SNYZ.js +7 -0
  186. package/dist/esm/chunks/{chunk.CBY7M4X6.js.map → chunk.T235SNYZ.js.map} +1 -1
  187. package/dist/esm/chunks/chunk.T4N7KZHZ.js +7 -0
  188. package/dist/esm/chunks/chunk.T4N7KZHZ.js.map +7 -0
  189. package/dist/esm/chunks/chunk.TE6ZNUAM.js +7 -0
  190. package/dist/esm/chunks/{chunk.JZ27GPZJ.js.map → chunk.TE6ZNUAM.js.map} +2 -2
  191. package/dist/esm/chunks/{chunk.WMP2OLMG.js → chunk.TNEUDWZU.js} +2 -2
  192. package/dist/esm/chunks/{chunk.WMP2OLMG.js.map → chunk.TNEUDWZU.js.map} +2 -2
  193. package/dist/esm/chunks/{chunk.BTWJPE4Y.js → chunk.TZ67MC2N.js} +2 -2
  194. package/{styles/focus-indicator/_configuration.scss → dist/esm/chunks/chunk.U6FJJGO3.js} +1 -5
  195. package/dist/esm/chunks/chunk.U6FJJGO3.js.map +7 -0
  196. package/dist/esm/chunks/chunk.V3IHX6B2.js +7 -0
  197. package/dist/esm/chunks/{chunk.GGQL3OZB.js.map → chunk.V3IHX6B2.js.map} +1 -1
  198. package/dist/esm/chunks/chunk.V564JB6A.js +7 -0
  199. package/dist/esm/chunks/chunk.V564JB6A.js.map +7 -0
  200. package/dist/esm/chunks/{chunk.7LOMI6J3.js → chunk.VGIZJ32U.js} +2 -2
  201. package/dist/esm/chunks/chunk.VZTV4GXC.js +7 -0
  202. package/dist/esm/chunks/chunk.VZTV4GXC.js.map +7 -0
  203. package/dist/esm/chunks/chunk.W5TDBDVY.js +7 -0
  204. package/dist/esm/chunks/{chunk.BIVQ4GTK.js.map → chunk.W5TDBDVY.js.map} +1 -1
  205. package/dist/esm/chunks/chunk.WA2YP4NC.js +7 -0
  206. package/dist/esm/chunks/{chunk.MROUV35N.js.map → chunk.WA2YP4NC.js.map} +1 -1
  207. package/dist/esm/chunks/{chunk.U42I3PGF.js → chunk.WFQYTXCB.js} +2 -2
  208. package/dist/esm/chunks/chunk.WNH7EHZP.js +7 -0
  209. package/dist/esm/chunks/{chunk.FQUZWINF.js.map → chunk.WNH7EHZP.js.map} +2 -2
  210. package/dist/esm/chunks/{chunk.KWBYYSH3.js → chunk.WQHKUNR7.js} +2 -2
  211. package/dist/esm/chunks/chunk.WYSUQK6Z.js +7 -0
  212. package/dist/esm/chunks/{chunk.L27ANAIL.js.map → chunk.WYSUQK6Z.js.map} +2 -2
  213. package/dist/esm/chunks/{chunk.NBLL7VAA.js → chunk.X57DRPFB.js} +2 -2
  214. package/dist/esm/chunks/{chunk.L45HXBDS.js → chunk.X7YTDVNT.js} +2 -2
  215. package/dist/esm/chunks/chunk.XBFH6M72.js +7 -0
  216. package/dist/esm/chunks/{chunk.FXGY5IVK.js.map → chunk.XBFH6M72.js.map} +2 -2
  217. package/dist/esm/chunks/chunk.XOH2JCRS.js +7 -0
  218. package/dist/esm/chunks/{chunk.AEO2X5OZ.js.map → chunk.XOH2JCRS.js.map} +1 -1
  219. package/dist/esm/chunks/chunk.Y6D5Z56X.js +7 -0
  220. package/dist/esm/chunks/{chunk.3KEXRSB5.js.map → chunk.Y6D5Z56X.js.map} +2 -2
  221. package/dist/esm/chunks/chunk.YBPAGWVG.js +7 -0
  222. package/dist/esm/chunks/chunk.YBPAGWVG.js.map +7 -0
  223. package/dist/esm/chunks/chunk.YWDYBX3G.js +7 -0
  224. package/dist/esm/chunks/chunk.YWDYBX3G.js.map +7 -0
  225. package/dist/esm/chunks/chunk.ZHMV5SR4.js +7 -0
  226. package/dist/esm/chunks/{chunk.Z37CZMMR.js.map → chunk.ZHMV5SR4.js.map} +1 -1
  227. package/dist/esm/chunks/chunk.ZLACSRD4.js +7 -0
  228. package/dist/esm/chunks/{chunk.WJCZJ6XD.js.map → chunk.ZLACSRD4.js.map} +1 -1
  229. package/dist/esm/chunks/chunk.ZPVRRFT7.js +7 -0
  230. package/dist/esm/chunks/{chunk.W7BP2DDU.js.map → chunk.ZPVRRFT7.js.map} +2 -2
  231. package/dist/esm/chunks/chunk.ZS3T6MJS.js +7 -0
  232. package/dist/esm/chunks/{chunk.YA5OQD37.js.map → chunk.ZS3T6MJS.js.map} +2 -2
  233. package/dist/esm/chunks/chunk.ZUTQPJ2B.js +7 -0
  234. package/dist/esm/chunks/{chunk.Q74SG6BV.js.map → chunk.ZUTQPJ2B.js.map} +1 -1
  235. package/dist/esm/chunks/chunk.ZWIEYVZC.js +7 -0
  236. package/dist/esm/chunks/chunk.ZWIEYVZC.js.map +7 -0
  237. package/dist/esm/chunks/chunk.ZY3ETQ3D.js +7 -0
  238. package/dist/esm/chunks/chunk.ZY3ETQ3D.js.map +7 -0
  239. package/dist/esm/chunks/chunk.ZYCKD6K5.js +7 -0
  240. package/dist/esm/chunks/{chunk.447QNYAZ.js.map → chunk.ZYCKD6K5.js.map} +1 -1
  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/index.js +1 -1
  245. package/dist/esm/core/utils/index.js +1 -1
  246. package/dist/esm/date-picker/index.js +1 -1
  247. package/dist/esm/date-range-picker/index.js +1 -1
  248. package/dist/esm/dialog/index.js +1 -1
  249. package/dist/esm/divider/index.js +1 -1
  250. package/dist/esm/drawer/base/index.js +1 -1
  251. package/dist/esm/drawer/drawer/index.js +1 -1
  252. package/dist/esm/drawer/index.js +1 -1
  253. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  254. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  255. package/dist/esm/expansion-panel/index.js +1 -1
  256. package/dist/esm/file-picker/index.js +1 -1
  257. package/dist/esm/floating-action-button/index.js +1 -1
  258. package/dist/esm/floating-label/index.js +1 -1
  259. package/dist/esm/focus-indicator/index.js +1 -1
  260. package/dist/esm/icon/index.js +1 -1
  261. package/dist/esm/icon-button/index.js +1 -1
  262. package/dist/esm/index.js +1 -1
  263. package/dist/esm/inline-message/index.js +1 -1
  264. package/dist/esm/keyboard-shortcut/index.js +1 -1
  265. package/dist/esm/label/index.js +1 -1
  266. package/dist/esm/label-value/index.js +1 -1
  267. package/dist/esm/linear-progress/index.js +1 -1
  268. package/dist/esm/list/index.js +1 -1
  269. package/dist/esm/list/list/index.js +1 -1
  270. package/dist/esm/list/list-item/index.js +1 -1
  271. package/dist/esm/list-dropdown/index.js +1 -1
  272. package/dist/esm/menu/index.js +1 -1
  273. package/dist/esm/open-icon/index.js +1 -1
  274. package/dist/esm/overlay/index.js +7 -0
  275. package/dist/esm/overlay/index.js.map +7 -0
  276. package/dist/esm/page-state/index.js +1 -1
  277. package/dist/esm/paginator/index.js +1 -1
  278. package/dist/esm/popover/index.js +7 -0
  279. package/dist/esm/popover/index.js.map +7 -0
  280. package/dist/esm/popup/index.js +1 -1
  281. package/dist/esm/product-icon/index.js +1 -1
  282. package/dist/esm/profile-card/index.js +1 -1
  283. package/dist/esm/quantity-field/index.js +1 -1
  284. package/dist/esm/radio/index.js +1 -1
  285. package/dist/esm/radio/radio/index.js +1 -1
  286. package/dist/esm/radio/radio-group/index.js +1 -1
  287. package/dist/esm/ripple/index.js +1 -1
  288. package/dist/esm/scaffold/index.js +1 -1
  289. package/dist/esm/select/core/index.js +1 -1
  290. package/dist/esm/select/index.js +1 -1
  291. package/dist/esm/select/option/index.js +1 -1
  292. package/dist/esm/select/option-group/index.js +1 -1
  293. package/dist/esm/select/select/index.js +1 -1
  294. package/dist/esm/select/select-dropdown/index.js +1 -1
  295. package/dist/esm/skeleton/index.js +1 -1
  296. package/dist/esm/slider/index.js +1 -1
  297. package/dist/esm/split-button/index.js +1 -1
  298. package/dist/esm/split-view/index.js +1 -1
  299. package/dist/esm/split-view/split-view/index.js +1 -1
  300. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  301. package/dist/esm/stack/index.js +1 -1
  302. package/dist/esm/state-layer/index.js +1 -1
  303. package/dist/esm/stepper/index.js +1 -1
  304. package/dist/esm/stepper/step/index.js +1 -1
  305. package/dist/esm/stepper/stepper/index.js +1 -1
  306. package/dist/esm/switch/index.js +1 -1
  307. package/dist/esm/table/index.js +1 -1
  308. package/dist/esm/tabs/index.js +1 -1
  309. package/dist/esm/tabs/tab/index.js +1 -1
  310. package/dist/esm/tabs/tab-bar/index.js +1 -1
  311. package/dist/esm/text-field/index.js +1 -1
  312. package/dist/esm/time-picker/index.js +1 -1
  313. package/dist/esm/toast/index.js +1 -1
  314. package/dist/esm/toolbar/index.js +1 -1
  315. package/dist/esm/tooltip/index.js +1 -1
  316. package/dist/esm/view-switcher/index.js +1 -1
  317. package/dist/esm/view-switcher/view/index.js +1 -1
  318. package/dist/forge-dark.css +1 -1
  319. package/dist/forge.css +1 -1
  320. package/dist/theme/forge-theme.css +1 -1
  321. package/esm/app-bar/help-button/app-bar-help-button-adapter.js +3 -3
  322. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  323. package/esm/app-bar/menu-button/app-bar-menu-button.js +4 -4
  324. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +3 -3
  325. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  326. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +3 -3
  327. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +1 -0
  328. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  329. package/esm/banner/banner.js +1 -1
  330. package/esm/button/base/base-button-adapter.d.ts +0 -3
  331. package/esm/button/base/base-button-adapter.js +5 -14
  332. package/esm/button/base/base-button-constants.d.ts +28 -28
  333. package/esm/button/base/base-button-foundation.d.ts +0 -2
  334. package/esm/button/base/base-button-foundation.js +1 -4
  335. package/esm/button/base/base-button.d.ts +8 -6
  336. package/esm/button/base/base-button.js +19 -15
  337. package/esm/button/button.js +2 -2
  338. package/esm/button-toggle/button-toggle/button-toggle-adapter.d.ts +6 -14
  339. package/esm/button-toggle/button-toggle/button-toggle-adapter.js +19 -45
  340. package/esm/button-toggle/button-toggle/button-toggle-constants.d.ts +11 -15
  341. package/esm/button-toggle/button-toggle/button-toggle-constants.js +6 -17
  342. package/esm/button-toggle/button-toggle/button-toggle-foundation.d.ts +18 -12
  343. package/esm/button-toggle/button-toggle/button-toggle-foundation.js +74 -30
  344. package/esm/button-toggle/button-toggle/button-toggle.d.ts +67 -14
  345. package/esm/button-toggle/button-toggle/button-toggle.js +82 -29
  346. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.d.ts +7 -13
  347. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +26 -91
  348. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +20 -11
  349. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.js +8 -2
  350. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.d.ts +20 -12
  351. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.js +101 -97
  352. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +75 -9
  353. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +134 -25
  354. package/esm/calendar/calendar-dom-utils.js +1 -2
  355. package/esm/calendar/calendar-foundation.d.ts +1 -1
  356. package/esm/calendar/calendar-foundation.js +13 -16
  357. package/esm/checkbox/checkbox.js +1 -1
  358. package/esm/circular-progress/circular-progress-adapter.js +8 -12
  359. package/esm/circular-progress/circular-progress.d.ts +7 -3
  360. package/esm/circular-progress/circular-progress.js +4 -2
  361. package/esm/color-picker/color-picker.js +1 -1
  362. package/esm/constants.d.ts +1 -0
  363. package/esm/constants.js +2 -0
  364. package/esm/core/base/base-adapter.d.ts +2 -0
  365. package/esm/core/base/base-adapter.js +7 -4
  366. package/esm/core/base/index.d.ts +0 -4
  367. package/esm/core/base/index.js +0 -4
  368. package/esm/core/{base/base-focusable-component.d.ts → mixins/focus/with-focusable.d.ts} +2 -2
  369. package/esm/core/{base/base-focusable-component.js → mixins/focus/with-focusable.js} +1 -1
  370. package/esm/core/{base/base-form-associated-component.d.ts → mixins/form/with-form-associated.d.ts} +4 -10
  371. package/esm/core/{base/base-form-associated-component.js → mixins/form/with-form-associated.js} +1 -1
  372. package/esm/core/mixins/form/with-form-validity.d.ts +35 -0
  373. package/esm/core/mixins/form/with-form-validity.js +43 -0
  374. package/esm/core/mixins/interactions/longpress/with-longpress-listener.d.ts +33 -0
  375. package/esm/core/mixins/interactions/longpress/with-longpress-listener.js +82 -0
  376. package/esm/core/mixins/internals/with-default-aria.d.ts +32 -0
  377. package/esm/core/mixins/internals/with-default-aria.js +22 -0
  378. package/esm/core/mixins/internals/with-element-internals.d.ts +26 -0
  379. package/esm/core/mixins/internals/with-element-internals.js +22 -0
  380. package/esm/core/{base/base-label-aware-component.d.ts → mixins/label/with-label-aware.d.ts} +2 -2
  381. package/esm/core/utils/a11y-utils.d.ts +4 -34
  382. package/esm/core/utils/a11y-utils.js +7 -61
  383. package/esm/core/utils/deferred.d.ts +29 -0
  384. package/esm/core/utils/deferred.js +32 -0
  385. package/esm/core/utils/dismissible-stack.d.ts +74 -0
  386. package/esm/core/utils/dismissible-stack.js +133 -0
  387. package/esm/core/utils/feature-detection.d.ts +5 -0
  388. package/esm/core/utils/feature-detection.js +12 -3
  389. package/esm/core/utils/form-utils.d.ts +1 -1
  390. package/esm/core/utils/position-utils.d.ts +78 -0
  391. package/esm/core/utils/position-utils.js +197 -0
  392. package/esm/core/utils/utils.d.ts +14 -0
  393. package/esm/core/utils/utils.js +25 -7
  394. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  395. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  396. package/esm/dialog/dialog-constants.d.ts +1 -0
  397. package/esm/dialog/dialog-constants.js +2 -1
  398. package/esm/dialog/dialog-foundation.js +3 -6
  399. package/esm/dialog/dialog.js +1 -1
  400. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  401. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  402. package/esm/floating-action-button/floating-action-button.js +1 -1
  403. package/esm/icon-button/icon-button-component-delegate.js +1 -1
  404. package/esm/icon-button/icon-button.js +1 -1
  405. package/esm/index.d.ts +2 -0
  406. package/esm/index.js +7 -1
  407. package/esm/label/label-adapter.js +3 -3
  408. package/esm/label/label-constants.d.ts +1 -1
  409. package/esm/label/label-constants.js +3 -1
  410. package/esm/linear-progress/linear-progress-adapter.js +13 -12
  411. package/esm/linear-progress/linear-progress-constants.d.ts +6 -0
  412. package/esm/linear-progress/linear-progress-constants.js +4 -2
  413. package/esm/linear-progress/linear-progress-foundation.js +2 -1
  414. package/esm/linear-progress/linear-progress.d.ts +7 -3
  415. package/esm/linear-progress/linear-progress.js +8 -11
  416. package/esm/list/list/list.js +1 -1
  417. package/esm/list/list-item/list-item.js +1 -1
  418. package/esm/menu/menu.js +1 -5
  419. package/esm/open-icon/open-icon.js +2 -2
  420. package/esm/overlay/base/base-overlay-foundation.d.ts +50 -0
  421. package/esm/overlay/base/base-overlay-foundation.js +11 -0
  422. package/esm/overlay/base/base-overlay.d.ts +49 -0
  423. package/esm/overlay/base/base-overlay.js +106 -0
  424. package/esm/overlay/base/overlay-aware-adapter.d.ts +17 -0
  425. package/esm/overlay/base/overlay-aware-adapter.js +15 -0
  426. package/esm/overlay/base/overlay-aware-foundation.d.ts +53 -0
  427. package/esm/overlay/base/overlay-aware-foundation.js +158 -0
  428. package/esm/overlay/base/overlay-aware.d.ts +36 -0
  429. package/esm/overlay/base/overlay-aware.js +102 -0
  430. package/esm/overlay/index.d.ts +10 -0
  431. package/esm/overlay/index.js +14 -0
  432. package/esm/overlay/mixins/with-overlay-aware.d.ts +105 -0
  433. package/esm/overlay/mixins/with-overlay-aware.js +152 -0
  434. package/esm/overlay/overlay-adapter.d.ts +54 -0
  435. package/esm/overlay/overlay-adapter.js +182 -0
  436. package/esm/overlay/overlay-constants.d.ts +71 -0
  437. package/esm/overlay/overlay-constants.js +48 -0
  438. package/esm/overlay/overlay-foundation.d.ts +76 -0
  439. package/esm/overlay/overlay-foundation.js +288 -0
  440. package/esm/overlay/overlay.d.ts +90 -0
  441. package/esm/overlay/overlay.js +105 -0
  442. package/esm/paginator/paginator.js +1 -1
  443. package/esm/popover/index.d.ts +10 -0
  444. package/esm/popover/index.js +14 -0
  445. package/esm/popover/popover-adapter.d.ts +46 -0
  446. package/esm/popover/popover-adapter.js +105 -0
  447. package/esm/popover/popover-constants.d.ts +42 -0
  448. package/esm/popover/popover-constants.js +42 -0
  449. package/esm/popover/popover-foundation.d.ts +139 -0
  450. package/esm/popover/popover-foundation.js +458 -0
  451. package/esm/popover/popover.d.ts +96 -0
  452. package/esm/popover/popover.js +147 -0
  453. package/esm/popup/popup-constants.d.ts +1 -1
  454. package/esm/profile-card/profile-card.js +1 -1
  455. package/esm/radio/core/radio-group-manager.js +1 -1
  456. package/esm/radio/radio/radio-adapter.js +4 -10
  457. package/esm/radio/radio/radio-constants.d.ts +0 -2
  458. package/esm/radio/radio/radio-constants.js +1 -14
  459. package/esm/radio/radio/radio.d.ts +8 -3
  460. package/esm/radio/radio/radio.js +10 -8
  461. package/esm/radio/radio-group/radio-group-adapter.js +1 -3
  462. package/esm/radio/radio-group/radio-group-constants.d.ts +0 -2
  463. package/esm/radio/radio-group/radio-group-constants.js +1 -6
  464. package/esm/radio/radio-group/radio-group.d.ts +6 -3
  465. package/esm/radio/radio-group/radio-group.js +5 -3
  466. package/esm/slider/slider.d.ts +2 -2
  467. package/esm/slider/slider.js +2 -2
  468. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  469. package/esm/state-layer/state-layer-foundation.js +9 -10
  470. package/esm/switch/switch.js +1 -1
  471. package/esm/table/table-utils.js +2 -3
  472. package/esm/tabs/tab/tab.js +1 -1
  473. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +1 -1
  474. package/esm/tabs/tab-bar/tab-bar-adapter.js +3 -3
  475. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +1 -1
  476. package/esm/tabs/tab-bar/tab-bar-constants.js +1 -1
  477. package/esm/tabs/tab-bar/tab-bar.js +2 -2
  478. package/esm/toast/toast-constants.d.ts +1 -1
  479. package/esm/toolbar/toolbar.js +1 -1
  480. package/esm/tooltip/index.d.ts +0 -1
  481. package/esm/tooltip/index.js +0 -1
  482. package/esm/tooltip/tooltip-adapter.d.ts +30 -60
  483. package/esm/tooltip/tooltip-adapter.js +105 -97
  484. package/esm/tooltip/tooltip-constants.d.ts +44 -21
  485. package/esm/tooltip/tooltip-constants.js +27 -22
  486. package/esm/tooltip/tooltip-foundation.d.ts +72 -84
  487. package/esm/tooltip/tooltip-foundation.js +265 -192
  488. package/esm/tooltip/tooltip.d.ts +93 -26
  489. package/esm/tooltip/tooltip.js +129 -31
  490. package/package.json +2 -4
  491. package/styles/app-bar/app-bar/_core.scss +2 -0
  492. package/styles/app-bar/app-bar/app-bar.scss +17 -17
  493. package/styles/app-bar/app-bar/index.scss +0 -2
  494. package/styles/app-bar/search/_core.scss +2 -0
  495. package/styles/app-bar/search/app-bar-search.scss +5 -6
  496. package/styles/app-bar/search/index.scss +0 -2
  497. package/styles/button/_core.scss +2 -0
  498. package/styles/button/button.scss +31 -25
  499. package/styles/button/index.scss +0 -2
  500. package/styles/button-toggle/button-toggle/_core.scss +78 -0
  501. package/styles/button-toggle/button-toggle/_token-utils.scss +30 -0
  502. package/styles/button-toggle/button-toggle/button-toggle.scss +65 -11
  503. package/styles/{app-bar/search/_configuration.scss → button-toggle/button-toggle/index.scss} +1 -5
  504. package/styles/button-toggle/button-toggle-group/_core.scss +62 -0
  505. package/styles/button-toggle/button-toggle-group/_token-utils.scss +30 -0
  506. package/styles/button-toggle/button-toggle-group/button-toggle-group.scss +123 -3
  507. package/styles/button-toggle/button-toggle-group/index.scss +8 -0
  508. package/styles/checkbox/_core.scss +3 -0
  509. package/styles/checkbox/checkbox.scss +24 -26
  510. package/styles/checkbox/index.scss +0 -2
  511. package/styles/circular-progress/_core.scss +2 -0
  512. package/styles/circular-progress/circular-progress.scss +36 -27
  513. package/styles/circular-progress/index.scss +0 -2
  514. package/styles/core/styles/elevation/index.scss +1 -1
  515. package/styles/core/styles/tokens/_token-utils.scss +14 -5
  516. package/styles/core/styles/tokens/button/_tokens.scss +4 -4
  517. package/styles/core/styles/tokens/button-toggle/button-toggle/_tokens.scss +68 -0
  518. package/styles/core/styles/tokens/button-toggle/button-toggle-group/_tokens.scss +48 -0
  519. package/styles/core/styles/tokens/checkbox/_tokens.scss +6 -6
  520. package/styles/core/styles/tokens/floating-action-button/_tokens.scss +1 -1
  521. package/styles/core/styles/tokens/icon-button/_tokens.scss +3 -3
  522. package/styles/core/styles/tokens/overlay/_tokens.scss +23 -0
  523. package/styles/core/styles/tokens/popover/_tokens.scss +56 -0
  524. package/styles/core/styles/tokens/profile-card/_tokens.scss +1 -1
  525. package/styles/core/styles/tokens/radio/_tokens.scss +1 -1
  526. package/styles/core/styles/tokens/switch/_tokens.scss +3 -3
  527. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +5 -5
  528. package/styles/core/styles/tokens/theme/_token-utils.scss +12 -11
  529. package/styles/core/styles/tokens/theme/_tokens.surface.scss +3 -0
  530. package/styles/core/styles/tokens/theme/_tokens.text.scss +4 -4
  531. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +3 -0
  532. package/styles/core/styles/tokens/tooltip/_tokens.scss +53 -0
  533. package/styles/dialog/_mixins.scss +1 -1
  534. package/styles/drawer/mini-drawer/_mixins.scss +0 -2
  535. package/styles/floating-action-button/_core.scss +2 -0
  536. package/styles/floating-action-button/floating-action-button.scss +14 -14
  537. package/styles/floating-action-button/index.scss +0 -2
  538. package/styles/focus-indicator/_core.scss +2 -0
  539. package/styles/focus-indicator/focus-indicator.scss +7 -8
  540. package/styles/focus-indicator/index.scss +0 -2
  541. package/styles/forge.scss +0 -1
  542. package/styles/icon-button/_core.scss +2 -0
  543. package/styles/icon-button/icon-button.scss +29 -28
  544. package/styles/icon-button/index.scss +0 -2
  545. package/styles/label/label.scss +2 -2
  546. package/styles/linear-progress/_core.scss +2 -0
  547. package/styles/linear-progress/index.scss +0 -2
  548. package/styles/linear-progress/linear-progress.scss +29 -18
  549. package/styles/list/list/_core.scss +2 -0
  550. package/styles/list/list/index.scss +0 -2
  551. package/styles/list/list/list.scss +4 -4
  552. package/styles/list/list-item/_core.scss +2 -0
  553. package/styles/list/list-item/index.scss +0 -2
  554. package/styles/list/list-item/list-item.scss +50 -44
  555. package/styles/overlay/_core.scss +46 -0
  556. package/styles/overlay/_token-utils.scss +31 -0
  557. package/styles/{checkbox/_configuration.scss → overlay/index.scss} +1 -5
  558. package/styles/overlay/overlay.scss +66 -0
  559. package/styles/popover/_animations.scss +36 -0
  560. package/styles/popover/_core.scss +56 -0
  561. package/styles/popover/_token-utils.scss +31 -0
  562. package/styles/{list/list/_configuration.scss → popover/index.scss} +1 -5
  563. package/styles/popover/popover.scss +254 -0
  564. package/styles/profile-card/_core.scss +2 -0
  565. package/styles/profile-card/index.scss +0 -2
  566. package/styles/profile-card/profile-card.scss +9 -11
  567. package/styles/radio/radio/_core.scss +3 -0
  568. package/styles/radio/radio/index.scss +0 -2
  569. package/styles/radio/radio/radio.scss +12 -15
  570. package/styles/slider/_core.scss +2 -0
  571. package/styles/slider/index.scss +0 -2
  572. package/styles/slider/slider.scss +45 -41
  573. package/styles/split-button/index.scss +0 -1
  574. package/styles/split-button/split-button.scss +3 -2
  575. package/styles/state-layer/_core.scss +3 -2
  576. package/styles/state-layer/index.scss +0 -2
  577. package/styles/state-layer/state-layer.scss +7 -8
  578. package/styles/switch/_core.scss +3 -0
  579. package/styles/switch/index.scss +0 -2
  580. package/styles/switch/switch.scss +28 -30
  581. package/styles/tabs/tab/_core.scss +2 -0
  582. package/styles/tabs/tab/index.scss +0 -2
  583. package/styles/tabs/tab/tab.scss +27 -28
  584. package/styles/tabs/tab-bar/_core.scss +2 -0
  585. package/styles/tabs/tab-bar/index.scss +0 -2
  586. package/styles/tabs/tab-bar/tab-bar.scss +21 -23
  587. package/styles/theme/_theme-dark.scss +14 -2
  588. package/styles/theme/_theme-values.scss +2 -0
  589. package/styles/toolbar/_mixins.scss +2 -1
  590. package/styles/tooltip/_animations.scss +18 -0
  591. package/styles/tooltip/_core.scss +86 -0
  592. package/styles/tooltip/_token-utils.scss +31 -0
  593. package/styles/tooltip/index.scss +6 -0
  594. package/styles/tooltip/tooltip.scss +107 -0
  595. package/dist/esm/chunks/chunk.3KEXRSB5.js +0 -7
  596. package/dist/esm/chunks/chunk.3TKTJ3BY.js +0 -7
  597. package/dist/esm/chunks/chunk.3TKTJ3BY.js.map +0 -7
  598. package/dist/esm/chunks/chunk.447QNYAZ.js +0 -7
  599. package/dist/esm/chunks/chunk.4IMRT2B3.js +0 -7
  600. package/dist/esm/chunks/chunk.4JDJ33IU.js +0 -7
  601. package/dist/esm/chunks/chunk.4QCGBFLU.js +0 -7
  602. package/dist/esm/chunks/chunk.4QCGBFLU.js.map +0 -7
  603. package/dist/esm/chunks/chunk.4XN2WGMP.js +0 -7
  604. package/dist/esm/chunks/chunk.5FCUOZSU.js +0 -7
  605. package/dist/esm/chunks/chunk.5KYKGNGY.js +0 -7
  606. package/dist/esm/chunks/chunk.5QZPUOGG.js +0 -7
  607. package/dist/esm/chunks/chunk.5ZMM75CJ.js +0 -7
  608. package/dist/esm/chunks/chunk.5ZMM75CJ.js.map +0 -7
  609. package/dist/esm/chunks/chunk.6FUXTHO6.js +0 -7
  610. package/dist/esm/chunks/chunk.6ORVPXNN.js +0 -7
  611. package/dist/esm/chunks/chunk.6ORVPXNN.js.map +0 -7
  612. package/dist/esm/chunks/chunk.6ZJIHOIG.js +0 -7
  613. package/dist/esm/chunks/chunk.6ZJIHOIG.js.map +0 -7
  614. package/dist/esm/chunks/chunk.7PVVZC7P.js +0 -7
  615. package/dist/esm/chunks/chunk.AEO2X5OZ.js +0 -7
  616. package/dist/esm/chunks/chunk.AIPDMLJD.js +0 -7
  617. package/dist/esm/chunks/chunk.APFDK6YA.js +0 -7
  618. package/dist/esm/chunks/chunk.APFDK6YA.js.map +0 -7
  619. package/dist/esm/chunks/chunk.AVRBHXDT.js +0 -177
  620. package/dist/esm/chunks/chunk.BIVQ4GTK.js +0 -7
  621. package/dist/esm/chunks/chunk.BJD6BKGC.js +0 -31
  622. package/dist/esm/chunks/chunk.BJD6BKGC.js.map +0 -7
  623. package/dist/esm/chunks/chunk.BS73Y6IN.js +0 -7
  624. package/dist/esm/chunks/chunk.BWGDZUJV.js +0 -12
  625. package/dist/esm/chunks/chunk.BWGDZUJV.js.map +0 -7
  626. package/dist/esm/chunks/chunk.CBY7M4X6.js +0 -7
  627. package/dist/esm/chunks/chunk.CZOABXEQ.js +0 -7
  628. package/dist/esm/chunks/chunk.DLBAZD5X.js +0 -7
  629. package/dist/esm/chunks/chunk.DTWXICOY.js +0 -7
  630. package/dist/esm/chunks/chunk.DTWXICOY.js.map +0 -7
  631. package/dist/esm/chunks/chunk.EMCY55MX.js +0 -7
  632. package/dist/esm/chunks/chunk.ESQWFHCF.js +0 -7
  633. package/dist/esm/chunks/chunk.ESQWFHCF.js.map +0 -7
  634. package/dist/esm/chunks/chunk.FDZSLGIW.js +0 -7
  635. package/dist/esm/chunks/chunk.FDZSLGIW.js.map +0 -7
  636. package/dist/esm/chunks/chunk.FJ5VNWYK.js +0 -7
  637. package/dist/esm/chunks/chunk.FJ5VNWYK.js.map +0 -7
  638. package/dist/esm/chunks/chunk.FJRCWWE2.js +0 -7
  639. package/dist/esm/chunks/chunk.FJRCWWE2.js.map +0 -7
  640. package/dist/esm/chunks/chunk.FQUZWINF.js +0 -7
  641. package/dist/esm/chunks/chunk.FSILMO6U.js +0 -7
  642. package/dist/esm/chunks/chunk.FXGY5IVK.js +0 -7
  643. package/dist/esm/chunks/chunk.G67LO74A.js +0 -7
  644. package/dist/esm/chunks/chunk.G67LO74A.js.map +0 -7
  645. package/dist/esm/chunks/chunk.GGQL3OZB.js +0 -7
  646. package/dist/esm/chunks/chunk.I7OY43HW.js +0 -7
  647. package/dist/esm/chunks/chunk.I7OY43HW.js.map +0 -7
  648. package/dist/esm/chunks/chunk.I7X25KEB.js +0 -7
  649. package/dist/esm/chunks/chunk.I7X25KEB.js.map +0 -7
  650. package/dist/esm/chunks/chunk.ICIGXLJW.js +0 -7
  651. package/dist/esm/chunks/chunk.ILUXZNGY.js +0 -7
  652. package/dist/esm/chunks/chunk.ILUXZNGY.js.map +0 -7
  653. package/dist/esm/chunks/chunk.JEZR25US.js +0 -7
  654. package/dist/esm/chunks/chunk.JPI4XCQL.js +0 -7
  655. package/dist/esm/chunks/chunk.JPI4XCQL.js.map +0 -7
  656. package/dist/esm/chunks/chunk.JRSFCVYQ.js +0 -7
  657. package/dist/esm/chunks/chunk.JRSFCVYQ.js.map +0 -7
  658. package/dist/esm/chunks/chunk.JZ27GPZJ.js +0 -7
  659. package/dist/esm/chunks/chunk.K3TJMIKD.js +0 -7
  660. package/dist/esm/chunks/chunk.K3TJMIKD.js.map +0 -7
  661. package/dist/esm/chunks/chunk.KGHABAFA.js +0 -7
  662. package/dist/esm/chunks/chunk.KR4BNI6X.js +0 -7
  663. package/dist/esm/chunks/chunk.KUNIEX72.js +0 -7
  664. package/dist/esm/chunks/chunk.L27ANAIL.js +0 -7
  665. package/dist/esm/chunks/chunk.L4UXWCVD.js +0 -7
  666. package/dist/esm/chunks/chunk.L4UXWCVD.js.map +0 -7
  667. package/dist/esm/chunks/chunk.LK6QHLW2.js +0 -7
  668. package/dist/esm/chunks/chunk.LYZXJYTW.js +0 -7
  669. package/dist/esm/chunks/chunk.LZ2YQYJA.js +0 -7
  670. package/dist/esm/chunks/chunk.LZ2YQYJA.js.map +0 -7
  671. package/dist/esm/chunks/chunk.MROUV35N.js +0 -7
  672. package/dist/esm/chunks/chunk.NM7FJISF.js +0 -7
  673. package/dist/esm/chunks/chunk.NM7FJISF.js.map +0 -7
  674. package/dist/esm/chunks/chunk.NVR6KN2B.js +0 -7
  675. package/dist/esm/chunks/chunk.O6F4U4VY.js +0 -7
  676. package/dist/esm/chunks/chunk.ONII3BV3.js +0 -7
  677. package/dist/esm/chunks/chunk.OTUEB7SD.js +0 -7
  678. package/dist/esm/chunks/chunk.PMSCH6VK.js +0 -7
  679. package/dist/esm/chunks/chunk.PRJHBUU2.js.map +0 -7
  680. package/dist/esm/chunks/chunk.Q2Q626DG.js +0 -7
  681. package/dist/esm/chunks/chunk.Q4YL47ZL.js +0 -7
  682. package/dist/esm/chunks/chunk.Q4YL47ZL.js.map +0 -7
  683. package/dist/esm/chunks/chunk.Q54DACHS.js +0 -7
  684. package/dist/esm/chunks/chunk.Q74SG6BV.js +0 -7
  685. package/dist/esm/chunks/chunk.QGMWM7IT.js +0 -7
  686. package/dist/esm/chunks/chunk.QGMWM7IT.js.map +0 -7
  687. package/dist/esm/chunks/chunk.RCPUTZON.js +0 -7
  688. package/dist/esm/chunks/chunk.SBKKBQDX.js +0 -7
  689. package/dist/esm/chunks/chunk.SBKKBQDX.js.map +0 -7
  690. package/dist/esm/chunks/chunk.SVVF632P.js +0 -7
  691. package/dist/esm/chunks/chunk.SVVF632P.js.map +0 -7
  692. package/dist/esm/chunks/chunk.T4J66YX5.js +0 -7
  693. package/dist/esm/chunks/chunk.THNCYT3E.js +0 -7
  694. package/dist/esm/chunks/chunk.TSUAFZGY.js +0 -7
  695. package/dist/esm/chunks/chunk.UOEJCU6R.js +0 -7
  696. package/dist/esm/chunks/chunk.VG452D3L.js +0 -7
  697. package/dist/esm/chunks/chunk.VQPSP4HV.js +0 -7
  698. package/dist/esm/chunks/chunk.VQPSP4HV.js.map +0 -7
  699. package/dist/esm/chunks/chunk.W7BP2DDU.js +0 -7
  700. package/dist/esm/chunks/chunk.WARVAVAW.js +0 -7
  701. package/dist/esm/chunks/chunk.WEHQUUXJ.js +0 -7
  702. package/dist/esm/chunks/chunk.WEHQUUXJ.js.map +0 -7
  703. package/dist/esm/chunks/chunk.WJCZJ6XD.js +0 -7
  704. package/dist/esm/chunks/chunk.X3QZY7V4.js +0 -7
  705. package/dist/esm/chunks/chunk.XQLQ73NG.js +0 -7
  706. package/dist/esm/chunks/chunk.Y4ZS3A6F.js +0 -7
  707. package/dist/esm/chunks/chunk.YA5OQD37.js +0 -7
  708. package/dist/esm/chunks/chunk.YMSX4F3J.js +0 -7
  709. package/dist/esm/chunks/chunk.Z37CZMMR.js +0 -7
  710. package/dist/esm/chunks/chunk.ZIRA4PYV.js +0 -7
  711. package/dist/esm/chunks/chunk.ZT7U7WOX.js +0 -7
  712. package/dist/esm/chunks/chunk.ZX3CGET2.js +0 -7
  713. package/dist/esm/chunks/chunk.ZX3CGET2.js.map +0 -7
  714. package/dist/tooltip/forge-tooltip.css +0 -6
  715. package/esm/core/base/base-element-internals-component.d.ts +0 -41
  716. package/esm/core/base/base-element-internals-component.js +0 -47
  717. package/esm/tooltip/tooltip-utils.d.ts +0 -13
  718. package/esm/tooltip/tooltip-utils.js +0 -53
  719. package/styles/app-bar/app-bar/_configuration.scss +0 -16
  720. package/styles/button/_configuration.scss +0 -16
  721. package/styles/button-toggle/button-toggle/_mixins.scss +0 -117
  722. package/styles/button-toggle/button-toggle-group/_mixins.scss +0 -79
  723. package/styles/circular-progress/_configuration.scss +0 -16
  724. package/styles/floating-action-button/_configuration.scss +0 -16
  725. package/styles/icon-button/_configuration.scss +0 -16
  726. package/styles/linear-progress/_configuration.scss +0 -28
  727. package/styles/list/list-item/_configuration.scss +0 -16
  728. package/styles/radio/radio/_configuration.scss +0 -10
  729. package/styles/split-button/_configuration.scss +0 -12
  730. package/styles/state-layer/_configuration.scss +0 -10
  731. package/styles/switch/_configuration.scss +0 -10
  732. package/styles/tabs/tab/_configuration.scss +0 -27
  733. package/styles/tabs/tab-bar/_configuration.scss +0 -10
  734. package/styles/tooltip/_mixins.scss +0 -98
  735. package/styles/tooltip/_variables.scss +0 -18
  736. package/styles/tooltip/forge-tooltip.scss +0 -12
  737. /package/dist/esm/chunks/{chunk.MTSWCXTY.js.map → chunk.55D2BMXX.js.map} +0 -0
  738. /package/dist/esm/chunks/{chunk.BC7WB5RG.js.map → chunk.B53Q676I.js.map} +0 -0
  739. /package/dist/esm/chunks/{chunk.U7S4DJTU.js.map → chunk.FGHSNC2V.js.map} +0 -0
  740. /package/dist/esm/chunks/{chunk.URKQICJD.js.map → chunk.FZELFLPE.js.map} +0 -0
  741. /package/dist/esm/chunks/{chunk.5EGEZ4IY.js.map → chunk.GLUKTMQU.js.map} +0 -0
  742. /package/dist/esm/chunks/{chunk.IHIKIZIT.js.map → chunk.M5JGYRH4.js.map} +0 -0
  743. /package/dist/esm/chunks/{chunk.O6MGA3XK.js.map → chunk.N75VD4S4.js.map} +0 -0
  744. /package/dist/esm/chunks/{chunk.KDJZN6EW.js.map → chunk.NW54VA4E.js.map} +0 -0
  745. /package/dist/esm/chunks/{chunk.BAQYPAUM.js.map → chunk.OXVCCHM5.js.map} +0 -0
  746. /package/dist/esm/chunks/{chunk.MHH26REX.js.map → chunk.QKTNCOVX.js.map} +0 -0
  747. /package/dist/esm/chunks/{chunk.42YDA5FH.js.map → chunk.RDQ3QGWS.js.map} +0 -0
  748. /package/dist/esm/chunks/{chunk.AR6YUJUH.js.map → chunk.RKG66YKS.js.map} +0 -0
  749. /package/dist/esm/chunks/{chunk.BTWJPE4Y.js.map → chunk.TZ67MC2N.js.map} +0 -0
  750. /package/dist/esm/chunks/{chunk.7LOMI6J3.js.map → chunk.VGIZJ32U.js.map} +0 -0
  751. /package/dist/esm/chunks/{chunk.U42I3PGF.js.map → chunk.WFQYTXCB.js.map} +0 -0
  752. /package/dist/esm/chunks/{chunk.KWBYYSH3.js.map → chunk.WQHKUNR7.js.map} +0 -0
  753. /package/dist/esm/chunks/{chunk.NBLL7VAA.js.map → chunk.X57DRPFB.js.map} +0 -0
  754. /package/dist/esm/chunks/{chunk.L45HXBDS.js.map → chunk.X7YTDVNT.js.map} +0 -0
  755. /package/esm/core/{base/base-label-aware-component.js → mixins/label/with-label-aware.js} +0 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as E,d as v}from"./chunk.OT3JZ6JO.js";import{c as M}from"./chunk.ZWIEYVZC.js";import{a as g,d as T}from"./chunk.GTGXHY4A.js";import{o as C}from"./chunk.EWT2PBEP.js";import{a as A,d as N}from"./chunk.4JB3SESQ.js";import{m as O}from"./chunk.QG5EYBS3.js";import{a as h}from"./chunk.ZY3ETQ3D.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as I,b as B}from"./chunk.RRNSZCVJ.js";import{a as f,d as _,g as p,k as b}from"./chunk.TPXXHX5J.js";import{v as d}from"./chunk.HZUQXCOQ.js";import{a as u,d as r}from"./chunk.M3QDAYD2.js";var H=`${B}app-bar-help-button`,x={ICON:"icon"},P={ICON:"help"},y=["aria-label","aria-labelledby"],e={elementName:H,attributes:x,forwardedAttributes:y,defaults:P};var s=class extends h{constructor(t){super(t)}initialize(){this._menuElement=p(this._component,E.elementName),this._iconButtonElement=p(this._component,g.elementName),this._iconElement=p(this._component,A.elementName);let t=this._iconButtonElement.getAttribute("aria-labelledby");this._forwardObserver=O(this._component,e.forwardedAttributes,(m,n)=>{m==="aria-labelledby"&&!n&&(n=t),d(this._iconButtonElement,!!n,m,n!=null?n:void 0)})}destroy(){var t;(t=this._forwardObserver)==null||t.disconnect(),this._forwardObserver=void 0}setMenuOptions(t){this._menuElement.options=t}setIcon(t){this._iconElement.name=t}};var a=class{constructor(o){this._adapter=o;this._options=[];this._icon=e.defaults.ICON;this._isInitialized=!1}initialize(){this._adapter.initialize(),this._adapter.setMenuOptions(this._options),this._adapter.setIcon(this._icon),this._isInitialized=!0}disconnect(){this._adapter.destroy(),this._isInitialized=!1}get options(){return this._options}set options(o){this._options=o.map(t=>u({},t)),this._isInitialized&&this._adapter.setMenuOptions(o)}get icon(){return this._icon}set icon(o){this._icon!==o&&(this._icon=o||e.defaults.ICON,this._isInitialized&&this._adapter.setIcon(o),this._adapter.setHostAttribute(e.attributes.ICON,this._icon))}};var S='<template><forge-menu placement="bottom-end"><forge-icon-button><forge-icon name="help"></forge-icon></forge-icon-button><forge-tooltip type="label" placement="bottom">Help</forge-tooltip></forge-menu></template>',i=class extends b{constructor(){super();N.define(C),this._foundation=new a(new s(this))}static get observedAttributes(){return[e.attributes.ICON]}initializedCallback(){_(this,S)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,m,n){switch(t){case e.attributes.ICON:this.icon=n;break}}};r([l()],i.prototype,"options",2),r([l()],i.prototype,"icon",2),i=r([I({name:e.elementName,dependencies:[v,T,M]})],i);function dt(){f(i)}export{e as a,s as b,a as c,i as d,dt as e};
7
+ //# sourceMappingURL=chunk.OSCODMUG.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/app-bar/help-button/app-bar-help-button-constants.ts", "../../src/app-bar/help-button/app-bar-help-button-adapter.ts", "../../src/app-bar/help-button/app-bar-help-button-foundation.ts", "../../src/app-bar/help-button/app-bar-help-button.ts", "../../src/app-bar/help-button/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}app-bar-help-button`;\n\nconst attributes = {\n ICON: 'icon'\n};\n\nconst defaults = {\n ICON: 'help'\n};\n\nconst forwardedAttributes = ['aria-label', 'aria-labelledby'];\n\nexport const APP_BAR_HELP_BUTTON_CONSTANTS = {\n elementName,\n attributes,\n forwardedAttributes,\n defaults\n};\n", "import { getLightElement, toggleAttribute } from '@tylertech/forge-core';\nimport { forwardAttributes } from '../../core/utils/reflect-utils';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IMenuComponent, IMenuOption, MENU_CONSTANTS } from '../../menu';\nimport type { IAppBarHelpButtonComponent } from './app-bar-help-button';\nimport type { IIconButtonComponent } from '../../icon-button/icon-button';\nimport { ICON_BUTTON_CONSTANTS } from '../../icon-button/icon-button-constants';\nimport { APP_BAR_HELP_BUTTON_CONSTANTS } from './app-bar-help-button-constants';\nimport { ICON_CONSTANTS, IIconComponent } from '../../icon';\n\nexport interface IAppBarHelpButtonAdapter extends IBaseAdapter {\n initialize(): void;\n destroy(): void;\n setMenuOptions(options: IMenuOption[]): void;\n setIcon(icon: string): void;\n}\n\nexport class AppBarHelpButtonAdapter extends BaseAdapter<IAppBarHelpButtonComponent> implements IAppBarHelpButtonAdapter {\n private _menuElement: IMenuComponent;\n private _iconButtonElement: IIconButtonComponent;\n private _iconElement: IIconComponent;\n private _forwardObserver?: MutationObserver;\n\n constructor(component: IAppBarHelpButtonComponent) {\n super(component);\n }\n\n public initialize(): void {\n this._menuElement = getLightElement(this._component, MENU_CONSTANTS.elementName) as IMenuComponent;\n this._iconButtonElement = getLightElement(this._component, ICON_BUTTON_CONSTANTS.elementName) as IIconButtonComponent;\n this._iconElement = getLightElement(this._component, ICON_CONSTANTS.elementName) as IIconComponent;\n\n const originalAriaLabelledBy = this._iconButtonElement.getAttribute('aria-labelledby');\n\n this._forwardObserver = forwardAttributes(this._component, APP_BAR_HELP_BUTTON_CONSTANTS.forwardedAttributes, (name, value) => {\n if (name === 'aria-labelledby' && !value) {\n value = originalAriaLabelledBy;\n }\n toggleAttribute(this._iconButtonElement, !!value, name, value ?? undefined);\n });\n }\n\n public destroy(): void {\n this._forwardObserver?.disconnect();\n this._forwardObserver = undefined;\n }\n\n public setMenuOptions(options: IMenuOption[]): void {\n this._menuElement.options = options;\n }\n\n public setIcon(icon: string): void {\n this._iconElement.name = icon;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IMenuOption } from '../../menu';\nimport { IAppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\nimport { APP_BAR_HELP_BUTTON_CONSTANTS } from './app-bar-help-button-constants';\n\nexport interface IAppBarHelpButtonFoundation extends ICustomElementFoundation {\n options: IMenuOption[];\n icon: string;\n}\n\nexport class AppBarHelpButtonFoundation implements IAppBarHelpButtonFoundation {\n private _options: IMenuOption[] = [];\n private _icon = APP_BAR_HELP_BUTTON_CONSTANTS.defaults.ICON;\n private _isInitialized = false;\n\n constructor(private _adapter: IAppBarHelpButtonAdapter) {}\n\n public initialize(): void {\n this._adapter.initialize();\n this._adapter.setMenuOptions(this._options);\n this._adapter.setIcon(this._icon);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._adapter.destroy();\n this._isInitialized = false;\n }\n\n public get options(): IMenuOption[] {\n return this._options;\n }\n public set options(value: IMenuOption[]) {\n this._options = value.map(o => ({ ...o }));\n if (this._isInitialized) {\n this._adapter.setMenuOptions(value);\n }\n }\n\n public get icon(): string {\n return this._icon;\n }\n public set icon(value: string) {\n if (this._icon !== value) {\n this._icon = value || APP_BAR_HELP_BUTTON_CONSTANTS.defaults.ICON;\n if (this._isInitialized) {\n this._adapter.setIcon(value);\n }\n this._adapter.setHostAttribute(APP_BAR_HELP_BUTTON_CONSTANTS.attributes.ICON, this._icon);\n }\n }\n}\n", "import { CustomElement, attachLightTemplate, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconHelp } from '@tylertech/tyler-icons/standard';\nimport { IMenuOption, MenuComponent } from '../../menu';\nimport { AppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\nimport { AppBarHelpButtonFoundation } from './app-bar-help-button-foundation';\nimport { APP_BAR_HELP_BUTTON_CONSTANTS } from './app-bar-help-button-constants';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TooltipComponent } from '../../tooltip';\nimport { IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><forge-menu placement=\\\"bottom-end\\\"><forge-icon-button><forge-icon name=\\\"help\\\"></forge-icon></forge-icon-button><forge-tooltip type=\\\"label\\\" placement=\\\"bottom\\\">Help</forge-tooltip></forge-menu></template>';\n\nexport interface IAppBarHelpButtonComponent extends IBaseComponent {\n options: IMenuOption[];\n icon: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-app-bar-help-button': IAppBarHelpButtonComponent;\n }\n}\n\n/**\n * @tag forge-app-bar-help-button\n * \n * @description A utility component with predefined icon and descriptions for use in an app bar `end` slot.\n * \n * @property {IMenuOption[]} options - The menu options to display when the button is clicked\n * @property {string} icon - The name of an alternative icon to display.\n * \n * @attribute {string} [icon] - The name of an alternative icon to display.\n * @attribute {string} [aria-label] - The aria-label to apply to the button.\n * @attribute {string} [aria-labelledby] - The id of an element to use as the aria-labelledby attribute.\n */\n@CustomElement({\n name: APP_BAR_HELP_BUTTON_CONSTANTS.elementName,\n dependencies: [\n MenuComponent,\n IconButtonComponent,\n TooltipComponent\n ]\n})\nexport class AppBarHelpButtonComponent extends BaseComponent implements IAppBarHelpButtonComponent {\n public static get observedAttributes(): string[] {\n return [\n APP_BAR_HELP_BUTTON_CONSTANTS.attributes.ICON\n ];\n }\n\n private _foundation: AppBarHelpButtonFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconHelp);\n this._foundation = new AppBarHelpButtonFoundation(new AppBarHelpButtonAdapter(this));\n }\n\n public initializedCallback(): void {\n attachLightTemplate(this, template);\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 APP_BAR_HELP_BUTTON_CONSTANTS.attributes.ICON:\n this.icon = newValue;\n break;\n }\n }\n\n @FoundationProperty()\n public declare options: IMenuOption[];\n\n @FoundationProperty()\n public declare icon: string;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AppBarHelpButtonComponent } from './app-bar-help-button';\n\nexport * from './app-bar-help-button-adapter';\nexport * from './app-bar-help-button-constants';\nexport * from './app-bar-help-button-foundation';\nexport * from './app-bar-help-button';\n\nexport function defineAppBarHelpButtonComponent(): void {\n defineCustomElement(AppBarHelpButtonComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "defaults", "forwardedAttributes", "APP_BAR_HELP_BUTTON_CONSTANTS", "AppBarHelpButtonAdapter", "BaseAdapter", "component", "getLightElement", "MENU_CONSTANTS", "ICON_BUTTON_CONSTANTS", "ICON_CONSTANTS", "originalAriaLabelledBy", "forwardAttributes", "APP_BAR_HELP_BUTTON_CONSTANTS", "name", "value", "toggleAttribute", "_a", "options", "icon", "AppBarHelpButtonFoundation", "_adapter", "APP_BAR_HELP_BUTTON_CONSTANTS", "value", "o", "__spreadValues", "template", "AppBarHelpButtonComponent", "BaseComponent", "IconRegistry", "tylIconHelp", "AppBarHelpButtonFoundation", "AppBarHelpButtonAdapter", "APP_BAR_HELP_BUTTON_CONSTANTS", "attachLightTemplate", "name", "oldValue", "newValue", "__decorateClass", "FoundationProperty", "CustomElement", "MenuComponent", "IconButtonComponent", "TooltipComponent", "defineAppBarHelpButtonComponent", "defineCustomElement", "AppBarHelpButtonComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as x}from"./chunk.QKTNCOVX.js";import{e as F,h as V,j as B}from"./chunk.RDQ3QGWS.js";import{c as N}from"./chunk.5WVOPPBY.js";import{a as A,b as m}from"./chunk.74JHE77R.js";import{e as k}from"./chunk.74HZVSDM.js";import{d as P}from"./chunk.EWT2PBEP.js";import{d as w}from"./chunk.4JB3SESQ.js";import{a as T}from"./chunk.ZY3ETQ3D.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as y,b as S,d as D}from"./chunk.RRNSZCVJ.js";import{a as L,e as C}from"./chunk.TPXXHX5J.js";import{m as M}from"./chunk.HZUQXCOQ.js";import{a as g,b as O,i as I,k as _}from"./chunk.J2M2MXP2.js";import{a as c,b,d as a}from"./chunk.M3QDAYD2.js";var l=`${S}menu`,H={POPUP:"forge-menu__popup",MENU:"mdc-menu"},K={TOGGLE:`.${l}__toggle,[${l}-toggle],forge-button,forge-icon-button,forge-fab,button,[type=button],[role=button],a,[tabindex]:not([tabindex^="-"])`,MENU_LIST:"forge-list"},G={OPEN:"open",PLACEMENT:"placement",SELECTED_INDEX:"selected-index",SELECTED_VALUE:"selected-value",DENSE:"dense",ICON_CLASS:"icon-class",PERSIST_SELECTION:"persist-selection",MODE:"mode",SYNC_POPUP_WIDTH:"sync-popup-width",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold"},U={SELECT:`${l}-select`,OPEN:`${l}-open`,CLOSE:`${l}-close`,ACTIVE_CHANGE:`${l}-active-change`},R={CHILD_MOUSE_LEAVE_TIMEOUT:300,POPUP_MOUSE_LEAVE_TIMEOUT:500},i={elementName:l,classes:H,selectors:K,attributes:G,events:U,numbers:R};var u=class extends T{constructor(e){super(e);this._childMenus=new Map}getDropdownElement(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.dropdownElement)!=null?t:null}hasTargetElement(){return!!this._targetElement}initializeTarget(){this._targetElement=this._component.querySelector(i.selectors.TOGGLE),this._targetElement||(this._targetElement=this._component.firstElementChild)}initializeAccessibility(e){this._targetElement&&(this._targetElement.setAttribute("aria-atomic","true"),this._targetElement.setAttribute("aria-live","assertive"),this._targetElement.setAttribute("aria-haspopup","true"),this._targetElement.setAttribute("aria-expanded","false"),this._targetElement.hasAttribute("aria-label")||this._targetElement.setAttribute("aria-label",this._targetElement.textContent||""))}addTargetListener(e,t,n=!1){this._targetElement&&this._targetElement.addEventListener(e,t,n)}removeTargetListener(e,t){this._targetElement&&this._targetElement.removeEventListener(e,t)}attachMenu(e){this._listDropdown||!this._targetElement||(this._listDropdown=new V(this._targetElement,e),this._listDropdown.open(),this._targetElement.setAttribute("aria-expanded","true"),this._targetElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`))}setOptions(e){this._listDropdown&&this._listDropdown.setOptions(e)}detachMenu(){this._targetElement&&(this._targetElement.removeAttribute("aria-activedescendant"),this._targetElement.removeAttribute("aria-expanded"),this._targetElement.removeAttribute("aria-controls")),this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0)}setActiveOption(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}setCascadeTargetInactive(){let e=this._targetElement;e!=null&&e.active&&(e.active=!1)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:-1}focusTarget(){this._targetElement&&this._targetElement.focus()}isTargetFocused(){return document.activeElement===this._targetElement}updateActiveDescendant(e){this._targetElement&&(e?this._targetElement.setAttribute("aria-activedescendant",e):this._targetElement.removeAttribute("aria-activedescendant"))}addDropdownListener(e,t){!this._listDropdown||!this._listDropdown.dropdownElement||this._listDropdown.dropdownElement.addEventListener(e,t)}isOwnElement(e){return!this._targetElement||!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._targetElement.contains(e)||!!this._listDropdown.dropdownElement.contains(e)}propagateKey(e){var t;(t=this._listDropdown)==null||t.handleKey(e)}proxyKeyboardEventToChild(e,t){if(!this.getDropdownElement())return;let n=this._getOpenChildMenu(t);n&&n.propagateKeyEvent(e)}toggleChildMenu(e,t){let r=this._getListItems()[e].parentElement;r&&r.tagName.toLowerCase()===i.elementName&&(t===void 0?r.open=!r.open:r.open=t,r.activateFirstOption())}createChildMenu(e,t,n,o,r){let d=document.createElement("forge-menu");return d.style.display="block",d.addEventListener(i.events.OPEN,()=>{this._childMenus.set(e,d),n(e)}),d.addEventListener(i.events.CLOSE,()=>{this._childMenus.delete(e),o(e)}),d.addEventListener(i.events.SELECT,E=>{E.stopPropagation(),r(b(c({},E.detail),{parentValue:t}))}),d}closeOtherChildMenus(e){let t=[];this._childMenus.forEach((n,o)=>{o!==e&&(n.open=!1,t.push(o))}),t.forEach(n=>this._childMenus.delete(n))}setSelectedValues(e){var t;(t=this._listDropdown)==null||t.setSelectedValues(e)}_getOpenChildMenu(e){if(!this.getDropdownElement())return null;let t=this._getOwnList(e);return t?t.querySelector(`${i.elementName}[${i.attributes.OPEN}]`):null}_getOwnList(e){let t=this.getDropdownElement();return t?t.querySelector(`${m.elementName}[id="list-dropdown-list-${e}"]`):null}_getListItems(){let e=this.getDropdownElement();if(!e)return[];let t=e.querySelector(m.elementName);return t?Array.from(t.querySelectorAll(A.elementName)):[]}};var h=class extends B{constructor(e){super({popupTimeout:i.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,targetTimeout:i.numbers.CHILD_MOUSE_LEAVE_TIMEOUT});this._adapter=e;this._placement="bottom-start";this._fallbackPlacements=[];this._dense=!1;this._iconClass=D;this._persistSelection=!1;this._mode="click";this._identifier=g(),this._clickListener=t=>this._onTargetClick(t),this._blurListener=t=>this._onTargetBlur(t),this._selectListener=t=>this._handleSelectEvent(t),this._keydownListener=t=>this.onKeydown(t),this._activeChangeListener=t=>this._onActiveOptionChanged(t)}initialize(){this._adapter.initializeTarget(),this._adapter.initializeAccessibility(this._identifier),this._initializeInteractionListeners()}disconnect(){this._open&&this._closeDropdown(),this._destroyInteractionListeners()}activateFirstOption(){this._adapter.activateFirstOption()}_applyMode(){this._adapter.hasTargetElement()&&(this._mode!=="cascade"?this._adapter.addTargetListener("click",this._clickListener):this._attachCascadingListeners())}_initializeInteractionListeners(){this._adapter.hasTargetElement()&&(this._applyMode(),this._adapter.addTargetListener("keydown",this._keydownListener,!0),this._adapter.addTargetListener("focusout",this._blurListener))}_destroyInteractionListeners(){this._adapter.hasTargetElement()&&(this._adapter.removeTargetListener("keydown",this._clickListener),this._adapter.removeTargetListener("focusout",this._blurListener),this._adapter.removeTargetListener("click",this._clickListener),this._detachCascadingListeners())}_attachCascadingListeners(){this._adapter.addTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.addTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.addDocumentListener("mousemove",this._documentMouseMoveListener)}_detachCascadingListeners(){this._adapter.removeTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.removeTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.removeDocumentListener("mousemove",this._documentMouseMoveListener)}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}get _flatOptions(){return this._flattenOptions(this._options)}_flattenOptions(e){return F(e,1)?e.reduce((t,n)=>n.options?t.concat(n.options):t,[]):e}_onTargetClick(e){if(this._open){this._closeDropdown();return}this.open=!this._open,this._open&&this._adapter.focusTarget()}_onTargetBlur(e){this._open&&this._closeDropdown()}_onActiveOptionChanged(e){let t={id:e},n=this._adapter.emitHostEvent(i.events.ACTIVE_CHANGE,t,!0,!0);this._mode!=="cascade"&&n&&this._adapter.updateActiveDescendant(e)}onKeydown(e){if(this._childOpen){this._adapter.proxyKeyboardEventToChild(e,this._identifier);return}switch(e.code){case"Tab":this._open&&this._selectActiveOption();break;case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeDropdown());break;case"Space":e.preventDefault(),this._open?this._closeDropdown():this._openDropdown({fromKeyboard:!0});break;case"Home":case"End":this._open&&(e.preventDefault(),this._adapter.propagateKey(e.code));break;case"Enter":if(e.preventDefault(),!this._open){e.preventDefault(),this._openDropdown({fromKeyboard:!0});return}e.stopImmediatePropagation(),this._adapter.propagateKey(e.code);let t=this._adapter.getActiveOptionIndex(),n=this._nonDividerOptions[t];n&&n.options&&n.options.length&&this._adapter.toggleChildMenu(t);break;case"ArrowUp":case"ArrowDown":if(this._open&&e.stopImmediatePropagation(),e.preventDefault(),!this._open&&e.code==="ArrowDown"){this._openDropdown({fromKeyboard:!0}),this._adapter.activateFirstOption();return}this._adapter.propagateKey(e.code);break;case"ArrowLeft":this._open&&e.stopImmediatePropagation(),this._mode==="cascade"&&this._open&&this._closeDropdown();break;case"ArrowRight":if(this._open&&e.stopImmediatePropagation(),!this._open)return;let o=this._adapter.getActiveOptionIndex(),r=this._nonDividerOptions[o];if(r&&r.options){this._adapter.toggleChildMenu(o,e.code==="ArrowRight");return}break}}async _openMenu({fromKeyboard:e}={}){this._open=!0;let t=[];if(typeof this._optionsFactory=="function")this._loadOptionsAsync(),this._options=[];else{if(!this._options||!this._options.length)return;t=this._options}this._persistSelection||t.forEach(r=>r.selected=!1),this._mapIconToLeadingIcon();let n=this._persistSelection?this._getSelectedValues():[],o={id:this._identifier,type:"menu",options:this._options,selectedValues:n,iconClass:this._iconClass,dense:this._dense,multiple:!1,popupStatic:!0,allowBusy:!0,asyncStyle:"spinner",optionBuilder:this._optionBuilder,optionLimit:this._optionLimit,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,popupPlacement:this._placement,popupFallbackPlacements:this._fallbackPlacements,activeStartIndex:e?0:void 0,popupClasses:[i.classes.POPUP,i.classes.MENU,...this._popupClasses],syncWidth:this._syncPopupWidth,activeChangeCallback:this._activeChangeListener,selectCallback:this._selectListener,popupOffset:this._popupOffset,cascadingElementFactory:r=>this._createCascadingElement(r)};this._adapter.setHostAttribute(i.attributes.OPEN,""),this._adapter.attachMenu(o),this._mode==="cascade"&&(this._adapter.addDropdownListener("mouseenter",this._childPopupMouseEnterListener),this._adapter.addDropdownListener("mouseleave",this._childPopupMouseLeaveListener)),this._adapter.addDropdownListener(i.events.ACTIVE_CHANGE,r=>{this._onActiveOptionChanged(r.detail.id)}),this._adapter.emitHostEvent(i.events.OPEN)}_closeMenu(){this._open=!1,this._childOpen=!1,this._adapter.detachMenu(),this._activeMouseLeaveTimeout!==void 0&&window.clearTimeout(this._activeMouseLeaveTimeout),this._adapter.removeHostAttribute(i.attributes.OPEN),this._adapter.emitHostEvent(i.events.CLOSE)}_loadOptionsAsync(){return this._optionsFactory?Promise.resolve(this._optionsFactory()).then(e=>{if(this._persistSelection||this._flattenOptions(e).filter(n=>n.selected).forEach(n=>n.selected=!1),this._open)if(e&&I(e)&&e.length){this._options=e,this._adapter.setOptions(e);let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}else this._open&&this._closeDropdown()}).catch(e=>{console.error("An unexpected error ocurred while opening the menu:",e),this._open&&this._closeDropdown()}):(this._open&&this._closeMenu(),Promise.resolve())}_handleSelectEvent(e){let t=this._nonDividerOptions.findIndex(n=>n.value===e);t<0||this._selectOptionByIndex(t)}_selectActiveOption(){let e=this._adapter.getActiveOptionIndex();e>=0&&this._nonDividerOptions[e]&&this._selectOptionByIndex(e)}_selectOptionByIndex(e){let{options:t,value:n}=this._nonDividerOptions[e];if(t){this._adapter.setActiveOption(e);return}this._closeDropdown();let o={index:e,value:n};!this._adapter.emitHostEvent(i.events.SELECT,o,!0,!0)||(this._selectedValue=this._persistSelection?n:void 0)}_getSelectedValues(){let e=this._flatOptions.filter(t=>t.selected).map(t=>t.value);return this._selectedValue!==void 0&&e.push(this._selectedValue),e}_onCascadingOptionSelected(e){this._persistSelection&&(this._selectedValue=e.value),this._adapter.emitHostEvent(i.events.SELECT,e),this._closeDropdown()}_onCascadingChildOpen(e){super._clearMouseLeaveTimeout(),this._adapter.closeOtherChildMenus(e),this._childOpen=!0,this._adapter.setActiveOption(e)}_onCascadingChildClose(e){this._childOpen=!1}_closeDropdown(){this._closeMenu()}_openDropdown({fromKeyboard:e}={}){this._openMenu({fromKeyboard:e})}_setCascadeTargetInactive(){this._adapter.setCascadeTargetInactive()}_isOwnElement(e){return this._adapter.isOwnElement(e)}_createCascadingElement({index:e,options:t,parentValue:n}){let o=this._adapter.createChildMenu(e,n,this._onCascadingChildOpen.bind(this),this._onCascadingChildClose.bind(this),this._onCascadingOptionSelected.bind(this));return o.mode="cascade",o.popupOffset={x:0,y:-8},o.dense=this._dense,o.placement="right-start",o.fallbackPlacements=["left-start","right-start"],o.persistSelection=this._persistSelection,this._persistSelection&&(o.selectedValue=this._selectedValue),o.options=t,o.optionBuilder=this._optionBuilder,o.iconClass=this._iconClass,o}_mapIconToLeadingIcon(){this._flatOptions.filter(e=>e.icon).forEach(e=>e.leadingIcon=e.icon)}get open(){return this._open}set open(e){e=!!e,this._open!==e&&(this._open=e,e?this._openDropdown():this._closeDropdown())}set options(e){if(typeof e=="function")this.optionsFactory=e;else if(this.optionsFactory=void 0,this._options=e.map(t=>c({},t)),this._open&&(this._mapIconToLeadingIcon(),this._adapter.setOptions(this._options),this._persistSelection)){let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}}get options(){return this._options?this._flatOptions.map(e=>c({},e)):[]}set optionsFactory(e){this._optionsFactory=e}set selectedIndex(e){let t=this._nonDividerOptions[e];t&&t.value!==this._selectedValue&&(this.selectedValue=t.value)}get selectedIndex(){return this._selectedValue!==void 0?this._nonDividerOptions.findIndex(e=>e.value===this._selectedValue):-1}set selectedValue(e){this._selectedValue!==e&&(this._selectedValue=e,this._adapter.setSelectedValues(this._selectedValue))}get selectedValue(){return this._selectedValue}get placement(){return this._placement}set placement(e){this._placement!==e&&(this._placement=e||"bottom-start",this._adapter.setHostAttribute(i.attributes.PLACEMENT,this._placement))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(e){this._fallbackPlacements=Array.isArray(e)?e:[]}get dense(){return this._dense}set dense(e){this._dense=e}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass=e}get persistSelection(){return this._persistSelection}set persistSelection(e){this._persistSelection!==e&&(this._persistSelection=e,this._adapter.toggleHostAttribute(i.attributes.PERSIST_SELECTION,this._persistSelection),this._persistSelection||(this._flatOptions.forEach(t=>t.selected=!1),this._selectedValue=void 0))}get mode(){return this._mode}set mode(e){this._mode!==e&&(this._mode=e,this._destroyInteractionListeners(),this._applyMode(),this._adapter.setHostAttribute(i.attributes.MODE,this._mode))}get popupOffset(){return this._popupOffset}set popupOffset(e){this._popupOffset=e}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get popupElement(){return this._adapter.getDropdownElement()}};var $="<template><slot></slot></template>",z=":host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}",s=class extends x{constructor(){super();w.define(P),this._foundation=new h(new u(this)),C(this,$,z)}static get observedAttributes(){return[i.attributes.OPEN,i.attributes.PLACEMENT,i.attributes.SELECTED_INDEX,i.attributes.SELECTED_VALUE,i.attributes.DENSE,i.attributes.ICON_CLASS,i.attributes.PERSIST_SELECTION,i.attributes.MODE,i.attributes.SYNC_POPUP_WIDTH,i.attributes.POPUP_CLASSES,i.attributes.OPTION_LIMIT,i.attributes.OBSERVE_SCROLL,i.attributes.OBSERVE_SCROLL_THRESHOLD]}connectedCallback(){this.querySelector(i.selectors.TOGGLE)?this._foundation.initialize():M(this,i.selectors.TOGGLE).then(()=>this._foundation.initialize())}attributeChangedCallback(e,t,n){switch(super.attributeChangedCallback(e,t,n),e){case i.attributes.OPEN:this._foundation.open=O(n);break;case i.attributes.PLACEMENT:this._foundation.placement=n;break;case i.attributes.SELECTED_INDEX:this._foundation.selectedIndex=Number(n);break;case i.attributes.SELECTED_VALUE:this._foundation.selectedValue=n;break;case i.attributes.DENSE:this._foundation.dense=_(n);break;case i.attributes.ICON_CLASS:this._foundation.iconClass=n;break;case i.attributes.PERSIST_SELECTION:this.persistSelection=_(n);break;case i.attributes.MODE:this.mode=n;break}}disconnectedCallback(){this._foundation.disconnect()}propagateKeyEvent(e){this._foundation.onKeydown(e)}activateFirstOption(){this._foundation.activateFirstOption()}};a([p()],s.prototype,"open",2),a([p()],s.prototype,"options",2),a([p()],s.prototype,"selectedIndex",2),a([p()],s.prototype,"selectedValue",2),a([p()],s.prototype,"placement",2),a([p()],s.prototype,"fallbackPlacements",2),a([p()],s.prototype,"dense",2),a([p()],s.prototype,"iconClass",2),a([p()],s.prototype,"persistSelection",2),a([p()],s.prototype,"mode",2),a([p()],s.prototype,"popupOffset",2),a([p()],s.prototype,"optionBuilder",2),a([p({set:!1})],s.prototype,"popupElement",2),s=a([y({name:i.elementName,dependencies:[k,N]})],s);function Ye(){L(s)}export{i as a,u as b,h as c,s as d,Ye as e};
7
+ //# sourceMappingURL=chunk.OT3JZ6JO.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/menu/menu-constants.ts", "../../src/menu/menu-adapter.ts", "../../src/menu/menu-foundation.ts", "../../src/menu/menu.ts", "../../src/menu/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${elementName}__toggle,[${elementName}-toggle],forge-button,forge-icon-button,forge-fab,button,[type=button],[role=button],a,[tabindex]:not([tabindex^=\"-\"])`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => Array<IMenuOption | IMenuOptionGroup>) | (() => Promise<Array<IMenuOption | IMenuOptionGroup>>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData, IMenuOptionGroup } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: Array<IMenuOption | IMenuOptionGroup>): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n setCascadeTargetInactive(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: Array<IMenuOption | IMenuOptionGroup>): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public setCascadeTargetInactive(): void {\n const listItem = this._targetElement as IListItemComponent;\n if (listItem?.active) {\n listItem.active = false;\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n childMenu.activateFirstOption();\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n activateFirstOption(): void;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _fallbackPlacements: PopupPlacement[] = [];\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n public activateFirstOption(): void {\n this._adapter.activateFirstOption();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('focusout', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('focusout', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n return this._flattenOptions(this._options);\n }\n\n private _flattenOptions(options: Array<IMenuOption | IMenuOptionGroup>): IMenuOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n return (options as IMenuOptionGroup[])\n .reduce((previousValue, currentValue) => {\n return currentValue.options ? previousValue.concat(currentValue.options) : previousValue;\n }, [] as IMenuOption[]);\n }\n return options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown({ fromKeyboard: true });\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n evt.preventDefault();\n\n if (!this._open) {\n evt.preventDefault();\n this._openDropdown({ fromKeyboard: true });\n return;\n }\n\n evt.stopImmediatePropagation();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown({ fromKeyboard: true });\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu({ fromKeyboard }: { fromKeyboard?: boolean } = {}): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n this._mapIconToLeadingIcon();\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n popupFallbackPlacements: this._fallbackPlacements,\n activeStartIndex: fromKeyboard ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n const flatResults = this._flattenOptions(results);\n flatResults.filter(o => o.selected).forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(index: number): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean } = {}): void {\n this._openMenu({ fromKeyboard });\n }\n\n protected _setCascadeTargetInactive(): void {\n this._adapter.setCascadeTargetInactive();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.fallbackPlacements = ['left-start', 'right-start']; // Cascading menus should only fallback to left or right placement if needed\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n private _mapIconToLeadingIcon(): void {\n // For backwards compatibility with old API, map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n this._flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._mapIconToLeadingIcon();\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get fallbackPlacements(): PopupPlacement[] {\n return this._fallbackPlacements;\n }\n public set fallbackPlacements(value: PopupPlacement[]) {\n this._fallbackPlacements = Array.isArray(value) ? value : [];\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChild, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n activateFirstOption(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent,\n CircularProgressComponent,\n LinearProgressComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.querySelector(MENU_CONSTANTS.selectors.TOGGLE)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, MENU_CONSTANTS.selectors.TOGGLE).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public declare options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public declare selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public declare selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public declare placement: `${PopupPlacement}`;\n\n /** Gets/sets the fallback menu placement for overriding the default of any side. */\n @FoundationProperty()\n public declare fallbackPlacements: `${PopupPlacement}`[];\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public declare dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public declare iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public declare persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public declare mode: MenuMode;\n\n /** Sets the position adjustment on the internal popup element. */\n @FoundationProperty()\n public declare popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public declare optionBuilder: MenuOptionBuilder;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public declare popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n\n public activateFirstOption(): void {\n this._foundation.activateFirstOption();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "events", "numbers", "MENU_CONSTANTS", "MenuAdapter", "BaseAdapter", "component", "_a", "_b", "MENU_CONSTANTS", "id", "event", "callback", "bubbles", "config", "ListDropdown", "options", "index", "listItem", "type", "listener", "el", "key", "evt", "openMenu", "open", "childMenu", "parentValue", "openCb", "closeCb", "selectCb", "menu", "__spreadProps", "__spreadValues", "excludeIndex", "menusToRemove", "values", "list", "popup", "LIST_CONSTANTS", "listElement", "LIST_ITEM_CONSTANTS", "MenuFoundation", "CascadingListDropdownAwareFoundation", "_adapter", "MENU_CONSTANTS", "ICON_CLASS_NAME", "randomChars", "evt", "value", "id", "o", "options", "isListDropdownOptionType", "previousValue", "currentValue", "data", "canSetActiveDescendant", "activeIndex", "activeOption", "hoveredIndex", "hoveredOption", "fromKeyboard", "selectedValues", "config", "params", "results", "isArray", "index", "values", "element", "parentValue", "menu", "__spreadValues", "factory", "option", "cb", "template", "styles", "MenuComponent", "ListDropdownAware", "IconRegistry", "tylIconArrowRight", "MenuFoundation", "MenuAdapter", "attachShadowTemplate", "MENU_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "isDefined", "coerceBoolean", "evt", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "ListComponent", "CircularProgressComponent", "LinearProgressComponent", "defineMenuComponent", "defineCustomElement", "MenuComponent"]
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${elementName}__toggle,[${elementName}-toggle],forge-button,forge-icon-button,forge-fab,button,[type=button],[role=button],a,[tabindex]:not([tabindex^=\"-\"])`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => Array<IMenuOption | IMenuOptionGroup>) | (() => Promise<Array<IMenuOption | IMenuOptionGroup>>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData, IMenuOptionGroup } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: Array<IMenuOption | IMenuOptionGroup>): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n setCascadeTargetInactive(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: Array<IMenuOption | IMenuOptionGroup>): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public setCascadeTargetInactive(): void {\n const listItem = this._targetElement as IListItemComponent;\n if (listItem?.active) {\n listItem.active = false;\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n childMenu.activateFirstOption();\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n activateFirstOption(): void;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _fallbackPlacements: PopupPlacement[] = [];\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n public activateFirstOption(): void {\n this._adapter.activateFirstOption();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('focusout', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('focusout', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n return this._flattenOptions(this._options);\n }\n\n private _flattenOptions(options: Array<IMenuOption | IMenuOptionGroup>): IMenuOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n return (options as IMenuOptionGroup[])\n .reduce((previousValue, currentValue) => {\n return currentValue.options ? previousValue.concat(currentValue.options) : previousValue;\n }, [] as IMenuOption[]);\n }\n return options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown({ fromKeyboard: true });\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n evt.preventDefault();\n\n if (!this._open) {\n evt.preventDefault();\n this._openDropdown({ fromKeyboard: true });\n return;\n }\n\n evt.stopImmediatePropagation();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown({ fromKeyboard: true });\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu({ fromKeyboard }: { fromKeyboard?: boolean } = {}): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n this._mapIconToLeadingIcon();\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n popupFallbackPlacements: this._fallbackPlacements,\n activeStartIndex: fromKeyboard ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n const flatResults = this._flattenOptions(results);\n flatResults.filter(o => o.selected).forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(index: number): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean } = {}): void {\n this._openMenu({ fromKeyboard });\n }\n\n protected _setCascadeTargetInactive(): void {\n this._adapter.setCascadeTargetInactive();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.fallbackPlacements = ['left-start', 'right-start']; // Cascading menus should only fallback to left or right placement if needed\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n private _mapIconToLeadingIcon(): void {\n // For backwards compatibility with old API, map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n this._flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._mapIconToLeadingIcon();\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get fallbackPlacements(): PopupPlacement[] {\n return this._fallbackPlacements;\n }\n public set fallbackPlacements(value: PopupPlacement[]) {\n this._fallbackPlacements = Array.isArray(value) ? value : [];\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChild, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n activateFirstOption(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.querySelector(MENU_CONSTANTS.selectors.TOGGLE)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, MENU_CONSTANTS.selectors.TOGGLE).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public declare options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public declare selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public declare selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public declare placement: `${PopupPlacement}`;\n\n /** Gets/sets the fallback menu placement for overriding the default of any side. */\n @FoundationProperty()\n public declare fallbackPlacements: `${PopupPlacement}`[];\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public declare dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public declare iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public declare persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public declare mode: MenuMode;\n\n /** Sets the position adjustment on the internal popup element. */\n @FoundationProperty()\n public declare popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public declare optionBuilder: MenuOptionBuilder;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public declare popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n\n public activateFirstOption(): void {\n this._foundation.activateFirstOption();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
5
+ "mappings": "wnBAGA,IAAMA,EAA2C,GAAGC,QAE9CC,EAAU,CACd,MAAO,oBACP,KAAM,UACR,EAEMC,EAAY,CAChB,OAAQ,IAAIH,cAAwBA,0HACpC,UAAW,YACb,EAEMI,EAAa,CACjB,KAAM,OACN,UAAW,YACX,eAAgB,iBAChB,eAAgB,iBAChB,MAAO,QACP,WAAY,aACZ,kBAAmB,oBACnB,KAAM,OACN,iBAAkB,mBAClB,cAAe,gBACf,aAAc,eACd,eAAgB,iBAChB,yBAA0B,0BAC5B,EAEMC,EAAS,CACb,OAAQ,GAAGL,WACX,KAAM,GAAGA,SACT,MAAO,GAAGA,UACV,cAAe,GAAGA,iBACpB,EAEMM,EAAU,CACd,0BAA2B,IAC3B,0BAA2B,GAC7B,EAEaC,EAAiB,CAC5B,YAAAP,EACA,QAAAE,EACA,UAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,CACF,EChBO,IAAME,EAAN,cAA0BC,CAAoD,CAKnF,YAAYC,EAA2B,CACrC,MAAMA,CAAS,EAHjB,KAAQ,YAAc,IAAI,GAI1B,CAEO,oBAAyC,CA3ClD,IAAAC,EAAAC,EA4CI,OAAOA,GAAAD,EAAA,KAAK,gBAAL,YAAAA,EAAoB,kBAApB,KAAAC,EAAuC,IAChD,CAEO,kBAA4B,CACjC,MAAO,CAAC,CAAC,KAAK,cAChB,CAEO,kBAAyB,CAC9B,KAAK,eAAiB,KAAK,WAAW,cAAcC,EAAe,UAAU,MAAM,EAC9E,KAAK,iBACR,KAAK,eAAiB,KAAK,WAAW,kBAE1C,CAEO,wBAAwBC,EAAkB,CAC1C,KAAK,iBAIV,KAAK,eAAe,aAAa,cAAe,MAAM,EACtD,KAAK,eAAe,aAAa,YAAa,WAAW,EACzD,KAAK,eAAe,aAAa,gBAAiB,MAAM,EACxD,KAAK,eAAe,aAAa,gBAAiB,OAAO,EAEpD,KAAK,eAAe,aAAa,YAAY,GAChD,KAAK,eAAe,aAAa,aAAc,KAAK,eAAe,aAAe,EAAE,EAExF,CAEO,kBAAkBC,EAAeC,EAAkCC,EAAU,GAAa,CAC3F,KAAK,gBACP,KAAK,eAAe,iBAAiBF,EAAOC,EAAUC,CAAO,CAEjE,CAEO,qBAAqBF,EAAeC,EAAwC,CAC7E,KAAK,gBACP,KAAK,eAAe,oBAAoBD,EAAOC,CAAQ,CAE3D,CAEO,WAAWE,EAAmC,CAC/C,KAAK,eAAiB,CAAC,KAAK,iBAGhC,KAAK,cAAgB,IAAIC,EAAa,KAAK,eAA+BD,CAAM,EAChF,KAAK,cAAc,KAAK,EACxB,KAAK,eAAe,aAAa,gBAAiB,MAAM,EACxD,KAAK,eAAe,aAAa,gBAAiB,uBAAuBA,EAAO,IAAI,EACtF,CAEO,WAAWE,EAAsD,CAClE,KAAK,eACP,KAAK,cAAc,WAAWA,CAAO,CAEzC,CAEO,YAAmB,CACpB,KAAK,iBACP,KAAK,eAAe,gBAAgB,uBAAuB,EAC3D,KAAK,eAAe,gBAAgB,eAAe,EACnD,KAAK,eAAe,gBAAgB,eAAe,GAGjD,KAAK,gBACP,KAAK,cAAc,MAAM,EACzB,KAAK,cAAc,QAAQ,EAC3B,KAAK,cAAgB,OAEzB,CAEO,gBAAgBC,EAAqB,CAnH9C,IAAAV,GAoHIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,eAAeU,EACrC,CAEO,qBAA4B,CAvHrC,IAAAV,GAwHIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,qBACtB,CAEO,0BAAiC,CACtC,IAAMW,EAAW,KAAK,eAClBA,GAAA,MAAAA,EAAU,SACZA,EAAS,OAAS,GAEtB,CAEO,sBAA+B,CAlIxC,IAAAX,EAAAC,EAmII,OAAOA,GAAAD,EAAA,KAAK,gBAAL,YAAAA,EAAoB,yBAApB,KAAAC,EAA8C,EACvD,CAEO,aAAoB,CACrB,KAAK,gBACP,KAAK,eAAe,MAAM,CAE9B,CAEO,iBAA2B,CAChC,OAAO,SAAS,gBAAkB,KAAK,cACzC,CAEO,uBAAuBE,EAAkB,CACzC,KAAK,iBAGNA,EACF,KAAK,eAAe,aAAa,wBAAyBA,CAAE,EAE5D,KAAK,eAAe,gBAAgB,uBAAuB,EAE/D,CAEO,oBAAoBS,EAAcC,EAAoC,CACvE,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,iBAG/C,KAAK,cAAc,gBAAgB,iBAAiBD,EAAMC,CAAQ,CACpE,CAEO,aAAaC,EAAsB,CACxC,MAAI,CAAC,KAAK,gBAAkB,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,gBAC9D,GAEF,KAAK,eAAe,SAASA,CAAE,GAAK,CAAC,CAAC,KAAK,cAAc,gBAAgB,SAASA,CAAE,CAC7F,CAEO,aAAaC,EAAmB,CAzKzC,IAAAf,GA0KIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,UAAUe,EAChC,CAEO,0BAA0BC,EAAoBb,EAAkB,CACrE,GAAI,CAAC,KAAK,mBAAmB,EAC3B,OAEF,IAAMc,EAAW,KAAK,kBAAkBd,CAAE,EACtCc,GACFA,EAAS,kBAAkBD,CAAG,CAElC,CAEO,gBAAgBN,EAAeQ,EAAsB,CAG1D,IAAMC,EAFY,KAAK,cAAc,EACVT,CAAK,EACL,cACvBS,GAAaA,EAAU,QAAQ,YAAY,IAAMjB,EAAe,cAC9DgB,IAAS,OACXC,EAAU,KAAO,CAACA,EAAU,KAE5BA,EAAU,KAAOD,EAEnBC,EAAU,oBAAoB,EAElC,CAEO,gBAAgBT,EAAeU,EAAkBC,EAAiCC,EAAkCC,EAAgE,CACzL,IAAMC,EAAO,SAAS,cAAc,YAAY,EAChD,OAAAA,EAAK,MAAM,QAAU,QAGrBA,EAAK,iBAAiBtB,EAAe,OAAO,KAAM,IAAM,CACtD,KAAK,YAAY,IAAIQ,EAAOc,CAAI,EAChCH,EAAOX,CAAK,CACd,CAAC,EACDc,EAAK,iBAAiBtB,EAAe,OAAO,MAAO,IAAM,CACvD,KAAK,YAAY,OAAOQ,CAAK,EAC7BY,EAAQZ,CAAK,CACf,CAAC,EACDc,EAAK,iBAAiBtB,EAAe,OAAO,OAASc,GAA2C,CAC9FA,EAAI,gBAAgB,EACpBO,EAASE,EAAAC,EAAA,GAAKV,EAAI,QAAT,CAAiB,YAAAI,CAAY,EAAC,CACzC,CAAC,EAEMI,CACT,CAEO,qBAAqBG,EAA6B,CACvD,IAAMC,EAA0B,CAAC,EACjC,KAAK,YAAY,QAAQ,CAACJ,EAAMd,IAAU,CACpCA,IAAUiB,IACZH,EAAK,KAAO,GACZI,EAAc,KAAKlB,CAAK,EAE5B,CAAC,EACDkB,EAAc,QAAQlB,GAAS,KAAK,YAAY,OAAOA,CAAK,CAAC,CAC/D,CAEO,kBAAkBmB,EAAqB,CArOhD,IAAA7B,GAsOIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,kBAAkB6B,EACxC,CAEQ,kBAAkB1B,EAAmC,CAC3D,GAAI,CAAC,KAAK,mBAAmB,EAC3B,OAAO,KAET,IAAM2B,EAAO,KAAK,YAAY3B,CAAE,EAChC,OAAO2B,EAAOA,EAAK,cAAc,GAAG5B,EAAe,eAAeA,EAAe,WAAW,OAAO,EAAI,IACzG,CAEQ,YAAYC,EAAmC,CACrD,IAAM4B,EAAQ,KAAK,mBAAmB,EACtC,OAAKA,EAGEA,EAAM,cAAc,GAAGC,EAAe,sCAAsC7B,KAAM,EAFhF,IAGX,CAEQ,eAAsC,CAC5C,IAAM4B,EAAQ,KAAK,mBAAmB,EACtC,GAAI,CAACA,EACH,MAAO,CAAC,EAEV,IAAME,EAAcF,EAAM,cAAcC,EAAe,WAAW,EAClE,OAAIC,EACK,MAAM,KAAKA,EAAY,iBAAiBC,EAAoB,WAAW,CAAC,EAE1E,CAAC,CACV,CACF,ECvOO,IAAMC,EAAN,cAA6BC,CAAgG,CAkBlI,YAAoBC,EAAwB,CAC1C,MAAM,CACJ,aAAcC,EAAe,QAAQ,0BACrC,cAAeA,EAAe,QAAQ,yBACxC,CAAC,EAJiB,cAAAD,EAhBpB,KAAQ,WAA6B,eACrC,KAAQ,oBAAwC,CAAC,EACjD,KAAQ,OAAS,GAEjB,KAAQ,WAAaE,EACrB,KAAQ,kBAAoB,GAC5B,KAAQ,MAAkB,QAexB,KAAK,YAAcC,EAAY,EAC/B,KAAK,eAAiBC,GAAO,KAAK,eAAeA,CAAG,EACpD,KAAK,cAAgBA,GAAO,KAAK,cAAcA,CAAG,EAClD,KAAK,gBAAkBC,GAAS,KAAK,mBAAmBA,CAAK,EAC7D,KAAK,iBAAmBD,GAAO,KAAK,UAAUA,CAAG,EACjD,KAAK,sBAAwBE,GAAM,KAAK,uBAAuBA,CAAE,CACnE,CAEO,YAAmB,CACxB,KAAK,SAAS,iBAAiB,EAC/B,KAAK,SAAS,wBAAwB,KAAK,WAAW,EACtD,KAAK,gCAAgC,CACvC,CAEO,YAAmB,CACpB,KAAK,OACP,KAAK,eAAe,EAEtB,KAAK,6BAA6B,CACpC,CAEO,qBAA4B,CACjC,KAAK,SAAS,oBAAoB,CACpC,CAEQ,YAAmB,CACpB,KAAK,SAAS,iBAAiB,IAIhC,KAAK,QAAU,UACjB,KAAK,SAAS,kBAAkB,QAAS,KAAK,cAAc,EAE5D,KAAK,0BAA0B,EAEnC,CAEQ,iCAAwC,CACzC,KAAK,SAAS,iBAAiB,IAGpC,KAAK,WAAW,EAChB,KAAK,SAAS,kBAAkB,UAAW,KAAK,iBAAkB,EAAI,EACtE,KAAK,SAAS,kBAAkB,WAAY,KAAK,aAAa,EAChE,CAEQ,8BAAqC,CACtC,KAAK,SAAS,iBAAiB,IAGpC,KAAK,SAAS,qBAAqB,UAAW,KAAK,cAAc,EACjE,KAAK,SAAS,qBAAqB,WAAY,KAAK,aAAa,EACjE,KAAK,SAAS,qBAAqB,QAAS,KAAK,cAAc,EAC/D,KAAK,0BAA0B,EACjC,CAEU,2BAAkC,CAC1C,KAAK,SAAS,kBAAkB,aAAc,KAAK,yBAAyB,EAC5E,KAAK,SAAS,kBAAkB,aAAc,KAAK,yBAAyB,EAI5E,KAAK,SAAS,oBAAoB,YAAa,KAAK,0BAA0B,CAChF,CAEU,2BAAkC,CAC1C,KAAK,SAAS,qBAAqB,aAAc,KAAK,yBAAyB,EAC/E,KAAK,SAAS,qBAAqB,aAAc,KAAK,yBAAyB,EAC/E,KAAK,SAAS,uBAAuB,YAAa,KAAK,0BAA0B,CACnF,CAEA,IAAY,oBAAoC,CAC9C,OAAO,KAAK,aAAa,OAAOC,GAAK,CAACA,EAAE,OAAO,CACjD,CAEA,IAAY,cAA8B,CACxC,OAAO,KAAK,gBAAgB,KAAK,QAAQ,CAC3C,CAEQ,gBAAgBC,EAA+D,CACrF,OAAIC,EAAyBD,GAAqC,EACxDA,EACL,OAAO,CAACE,EAAeC,IACfA,EAAa,QAAUD,EAAc,OAAOC,EAAa,OAAO,EAAID,EAC1E,CAAC,CAAkB,EAEnBF,CACT,CAEQ,eAAeJ,EAAuB,CAC5C,GAAI,KAAK,MAAO,CACd,KAAK,eAAe,EACpB,OAEF,KAAK,KAAO,CAAC,KAAK,MACd,KAAK,OACP,KAAK,SAAS,YAAY,CAE9B,CAEQ,cAAcA,EAAkB,CAClC,KAAK,OACP,KAAK,eAAe,CAExB,CAEQ,uBAAuBE,EAAkB,CAE/C,IAAMM,EAAmC,CAAE,GAAAN,CAAG,EACxCO,EAAyB,KAAK,SAAS,cAAcZ,EAAe,OAAO,cAAeW,EAAM,GAAM,EAAI,EAC5G,KAAK,QAAU,WAAaC,GAC9B,KAAK,SAAS,uBAAuBP,CAAE,CAE3C,CAEO,UAAUF,EAA0B,CAEzC,GAAI,KAAK,WAAY,CACnB,KAAK,SAAS,0BAA0BA,EAAK,KAAK,WAAW,EAC7D,OAGF,OAAQA,EAAI,KAAM,CAChB,IAAK,MACC,KAAK,OACP,KAAK,oBAAoB,EAE3B,MACF,IAAK,SACC,KAAK,QACPA,EAAI,eAAe,EACnBA,EAAI,gBAAgB,EACpB,KAAK,eAAe,GAEtB,MACF,IAAK,QACHA,EAAI,eAAe,EAEf,KAAK,MACP,KAAK,eAAe,EAEpB,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EAE3C,MACF,IAAK,OACL,IAAK,MACC,KAAK,QACPA,EAAI,eAAe,EACnB,KAAK,SAAS,aAAaA,EAAI,IAAI,GAErC,MACF,IAAK,QAGH,GAFAA,EAAI,eAAe,EAEf,CAAC,KAAK,MAAO,CACfA,EAAI,eAAe,EACnB,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EACzC,OAGFA,EAAI,yBAAyB,EAE7B,KAAK,SAAS,aAAaA,EAAI,IAAI,EAGnC,IAAMU,EAAc,KAAK,SAAS,qBAAqB,EACjDC,EAAe,KAAK,mBAAmBD,CAAW,EACpDC,GAAgBA,EAAa,SAAWA,EAAa,QAAQ,QAC/D,KAAK,SAAS,gBAAgBD,CAAW,EAE3C,MACF,IAAK,UACL,IAAK,YAOH,GANI,KAAK,OACPV,EAAI,yBAAyB,EAG/BA,EAAI,eAAe,EAEf,CAAC,KAAK,OAASA,EAAI,OAAS,YAAa,CAC3C,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EACzC,KAAK,SAAS,oBAAoB,EAClC,OAGF,KAAK,SAAS,aAAaA,EAAI,IAAI,EACnC,MACF,IAAK,YACC,KAAK,OACPA,EAAI,yBAAyB,EAE3B,KAAK,QAAU,WAAa,KAAK,OACnC,KAAK,eAAe,EAEtB,MACF,IAAK,aAIH,GAHI,KAAK,OACPA,EAAI,yBAAyB,EAE3B,CAAC,KAAK,MACR,OAEF,IAAMY,EAAe,KAAK,SAAS,qBAAqB,EAClDC,EAAgB,KAAK,mBAAmBD,CAAY,EAC1D,GAAIC,GAAiBA,EAAc,QAAS,CAC1C,KAAK,SAAS,gBAAgBD,EAAcZ,EAAI,OAAS,YAAY,EACrE,OAEF,KACJ,CACF,CAEA,MAAc,UAAU,CAAE,aAAAc,CAAa,EAAgC,CAAC,EAAkB,CACxF,KAAK,MAAQ,GACb,IAAIV,EAAyB,CAAC,EAE9B,GAAI,OAAO,KAAK,iBAAoB,WAClC,KAAK,kBAAkB,EACvB,KAAK,SAAW,CAAC,MACZ,CACL,GAAI,CAAC,KAAK,UAAY,CAAC,KAAK,SAAS,OACnC,OAEFA,EAAU,KAAK,SAGZ,KAAK,mBACRA,EAAQ,QAAQD,GAAKA,EAAE,SAAW,EAAK,EAGzC,KAAK,sBAAsB,EAE3B,IAAMY,EAAiB,KAAK,kBAAoB,KAAK,mBAAmB,EAAI,CAAC,EAEvEC,EAA8B,CAClC,GAAI,KAAK,YACT,YACA,QAAS,KAAK,SACd,eAAAD,EACA,UAAW,KAAK,WAChB,MAAO,KAAK,OACZ,SAAU,GACV,YAAa,GACb,UAAW,GACX,qBACA,cAAe,KAAK,eACpB,YAAa,KAAK,aAClB,cAAe,KAAK,oBACpB,cAAe,KAAK,oBACpB,cAAe,KAAK,eACpB,uBAAwB,KAAK,wBAC7B,eAAgB,KAAK,WACrB,wBAAyB,KAAK,oBAC9B,iBAAkBD,EAAe,EAAI,OACrC,aAAc,CACZjB,EAAe,QAAQ,MACvBA,EAAe,QAAQ,KACvB,GAAG,KAAK,aACV,EACA,UAAW,KAAK,gBAChB,qBAAsB,KAAK,sBAC3B,eAAgB,KAAK,gBACrB,YAAa,KAAK,aAClB,wBAAyBoB,GAAU,KAAK,wBAAwBA,CAAM,CACxE,EAEA,KAAK,SAAS,iBAAiBpB,EAAe,WAAW,KAAM,EAAE,EACjE,KAAK,SAAS,WAAWmB,CAAM,EAG3B,KAAK,QAAU,YACjB,KAAK,SAAS,oBAAoB,aAAc,KAAK,6BAA6B,EAClF,KAAK,SAAS,oBAAoB,aAAc,KAAK,6BAA6B,GAGpF,KAAK,SAAS,oBAAoBnB,EAAe,OAAO,cAAgBG,GAAiD,CACvH,KAAK,uBAAuBA,EAAI,OAAO,EAAE,CAC3C,CAAC,EACD,KAAK,SAAS,cAAcH,EAAe,OAAO,IAAI,CACxD,CAEQ,YAAmB,CACzB,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,SAAS,WAAW,EAErB,KAAK,2BAA6B,QACpC,OAAO,aAAa,KAAK,wBAAwB,EAGnD,KAAK,SAAS,oBAAoBA,EAAe,WAAW,IAAI,EAChE,KAAK,SAAS,cAAcA,EAAe,OAAO,KAAK,CACzD,CAEQ,mBAAmC,CACzC,OAAK,KAAK,gBAOH,QAAQ,QAAQ,KAAK,gBAAgB,CAAC,EAC1C,KAAKqB,GAAW,CAMf,GALK,KAAK,mBACY,KAAK,gBAAgBA,CAAO,EACpC,OAAOf,GAAKA,EAAE,QAAQ,EAAE,QAAQA,GAAKA,EAAE,SAAW,EAAK,EAGjE,KAAK,MACP,GAAIe,GAAWC,EAAQD,CAAO,GAAKA,EAAQ,OAAQ,CACjD,KAAK,SAAWA,EAChB,KAAK,SAAS,WAAWA,CAAO,EAChC,IAAMH,EAAiB,KAAK,mBAAmB,EAC3CA,EAAe,QACjB,KAAK,SAAS,kBAAkBA,CAAc,OAEvC,KAAK,OACd,KAAK,eAAe,CAG1B,CAAC,EACA,MAAM,GAAK,CACV,QAAQ,MAAM,sDAAuD,CAAC,EAClE,KAAK,OACP,KAAK,eAAe,CAExB,CAAC,GA/BG,KAAK,OACP,KAAK,WAAW,EAEX,QAAQ,QAAQ,EA6B3B,CAEQ,mBAAmBd,EAAkB,CAC3C,IAAMmB,EAAQ,KAAK,mBAAmB,UAAUjB,GAAKA,EAAE,QAAUF,CAAK,EAClEmB,EAAQ,GAGZ,KAAK,qBAAqBA,CAAK,CACjC,CAEQ,qBAA4B,CAClC,IAAMA,EAAQ,KAAK,SAAS,qBAAqB,EAC7CA,GAAS,GAAK,KAAK,mBAAmBA,CAAK,GAC7C,KAAK,qBAAqBA,CAAK,CAEnC,CAEQ,qBAAqBA,EAAqB,CAChD,GAAM,CAAE,QAAAhB,EAAS,MAAAH,CAAM,EAAI,KAAK,mBAAmBmB,CAAK,EAGxD,GAAIhB,EAAS,CACX,KAAK,SAAS,gBAAgBgB,CAAK,EACnC,OAGF,KAAK,eAAe,EAEpB,IAAMZ,EAA6B,CAAE,MAAAY,EAAO,MAAAnB,CAAM,EAC9B,CAAC,KAAK,SAAS,cAAcJ,EAAe,OAAO,OAAQW,EAAM,GAAM,EAAI,IAE7F,KAAK,eAAiB,KAAK,kBAAoBP,EAAQ,OAE3D,CAEQ,oBAA4B,CAClC,IAAMoB,EAAS,KAAK,aAAa,OAAOlB,GAAKA,EAAE,QAAQ,EAAE,IAAIA,GAAKA,EAAE,KAAK,EACzE,OAAI,KAAK,iBAAmB,QAC1BkB,EAAO,KAAK,KAAK,cAAc,EAE1BA,CACT,CAGU,2BAA2Bb,EAAkC,CACjE,KAAK,oBACP,KAAK,eAAiBA,EAAK,OAE7B,KAAK,SAAS,cAAcX,EAAe,OAAO,OAAQW,CAAI,EAC9D,KAAK,eAAe,CACtB,CAGU,sBAAsBY,EAAqB,CACnD,MAAM,wBAAwB,EAC9B,KAAK,SAAS,qBAAqBA,CAAK,EACxC,KAAK,WAAa,GAClB,KAAK,SAAS,gBAAgBA,CAAK,CACrC,CAGU,uBAAuBA,EAAqB,CACpD,KAAK,WAAa,EACpB,CAEU,gBAAuB,CAC/B,KAAK,WAAW,CAClB,CAEU,cAAc,CAAE,aAAAN,CAAa,EAAgC,CAAC,EAAS,CAC/E,KAAK,UAAU,CAAE,aAAAA,CAAa,CAAC,CACjC,CAEU,2BAAkC,CAC1C,KAAK,SAAS,yBAAyB,CACzC,CAEU,cAAcQ,EAA2B,CACjD,OAAO,KAAK,SAAS,aAAaA,CAAO,CAC3C,CAEQ,wBAAwB,CAAE,MAAAF,EAAO,QAAAhB,EAAS,YAAAmB,CAAY,EAA4D,CACxH,IAAMC,EAAO,KAAK,SAAS,gBACzBJ,EACAG,EACA,KAAK,sBAAsB,KAAK,IAAI,EACpC,KAAK,uBAAuB,KAAK,IAAI,EACrC,KAAK,2BAA2B,KAAK,IAAI,CAC3C,EACA,OAAAC,EAAK,KAAO,UACZA,EAAK,YAAc,CAAE,EAAG,EAAG,EAAG,EAAG,EACjCA,EAAK,MAAQ,KAAK,OAClBA,EAAK,UAAY,cACjBA,EAAK,mBAAqB,CAAC,aAAc,aAAa,EACtDA,EAAK,iBAAmB,KAAK,kBACzB,KAAK,oBACPA,EAAK,cAAgB,KAAK,gBAE5BA,EAAK,QAAUpB,EACfoB,EAAK,cAAgB,KAAK,eAC1BA,EAAK,UAAY,KAAK,WAEfA,CACT,CAEQ,uBAA8B,CAEpC,KAAK,aAAa,OAAOrB,GAAKA,EAAE,IAAI,EAAE,QAAQA,GAAKA,EAAE,YAAcA,EAAE,IAAI,CAC3E,CAEA,IAAW,MAAgB,CACzB,OAAO,KAAK,KACd,CACA,IAAW,KAAKF,EAAgB,CAC9BA,EAAQ,EAAQA,EACZ,KAAK,QAAUA,IACjB,KAAK,MAAQA,EACTA,EACF,KAAK,cAAc,EAEnB,KAAK,eAAe,EAG1B,CAEA,IAAW,QAAQG,EAAwB,CACzC,GAAI,OAAOA,GAAY,WACrB,KAAK,eAAiBA,UAEtB,KAAK,eAAiB,OAEtB,KAAK,SAAWA,EAAQ,IAAID,GAAMsB,EAAA,GAAKtB,EAAI,EAEvC,KAAK,QACP,KAAK,sBAAsB,EAC3B,KAAK,SAAS,WAAW,KAAK,QAAyB,EACnD,KAAK,mBAAmB,CAC1B,IAAMY,EAAiB,KAAK,mBAAmB,EAC3CA,EAAe,QACjB,KAAK,SAAS,kBAAkBA,CAAc,EAKxD,CACA,IAAW,SAAyB,CAClC,OAAK,KAAK,SAKH,KAAK,aAAa,IAAIZ,GAAMsB,EAAA,GAAKtB,EAAI,EAJnC,CAAC,CAKZ,CAEA,IAAW,eAAeuB,EAAwC,CAChE,KAAK,gBAAkBA,CACzB,CAEA,IAAW,cAAczB,EAAe,CACtC,IAAM0B,EAAS,KAAK,mBAAmB1B,CAAK,EACxC0B,GAAUA,EAAO,QAAU,KAAK,iBAClC,KAAK,cAAgBA,EAAO,MAEhC,CACA,IAAW,eAAwB,CACjC,OAAO,KAAK,iBAAmB,OAAY,KAAK,mBAAmB,UAAUxB,GAAKA,EAAE,QAAU,KAAK,cAAc,EAAI,EACvH,CAEA,IAAW,cAAcF,EAAY,CAC/B,KAAK,iBAAmBA,IAC1B,KAAK,eAAiBA,EACtB,KAAK,SAAS,kBAAkB,KAAK,cAAc,EAEvD,CACA,IAAW,eAAqB,CAC9B,OAAO,KAAK,cACd,CAEA,IAAW,WAA4B,CACrC,OAAO,KAAK,UACd,CACA,IAAW,UAAUA,EAAuB,CACtC,KAAK,aAAeA,IACtB,KAAK,WAAaA,GAAS,eAC3B,KAAK,SAAS,iBAAiBJ,EAAe,WAAW,UAAW,KAAK,UAAU,EAEvF,CAEA,IAAW,oBAAuC,CAChD,OAAO,KAAK,mBACd,CACA,IAAW,mBAAmBI,EAAyB,CACrD,KAAK,oBAAsB,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAAC,CAC7D,CAEA,IAAW,OAAiB,CAC1B,OAAO,KAAK,MACd,CACA,IAAW,MAAMA,EAAgB,CAC/B,KAAK,OAASA,CAChB,CAEA,IAAW,WAAoB,CAC7B,OAAO,KAAK,UACd,CACA,IAAW,UAAUA,EAAe,CAClC,KAAK,WAAaA,CACpB,CAEA,IAAW,kBAA4B,CACrC,OAAO,KAAK,iBACd,CACA,IAAW,iBAAiBA,EAAgB,CACtC,KAAK,oBAAsBA,IAI/B,KAAK,kBAAoBA,EACzB,KAAK,SAAS,oBAAoBJ,EAAe,WAAW,kBAAmB,KAAK,iBAAiB,EAEhG,KAAK,oBACR,KAAK,aAAa,QAAQM,GAAKA,EAAE,SAAW,EAAK,EACjD,KAAK,eAAiB,QAE1B,CAEA,IAAW,MAAiB,CAC1B,OAAO,KAAK,KACd,CACA,IAAW,KAAKF,EAAiB,CAC3B,KAAK,QAAUA,IACjB,KAAK,MAAQA,EACb,KAAK,6BAA6B,EAClC,KAAK,WAAW,EAChB,KAAK,SAAS,iBAAiBJ,EAAe,WAAW,KAAM,KAAK,KAAK,EAE7E,CAEA,IAAW,aAA8B,CACvC,OAAO,KAAK,YACd,CACA,IAAW,YAAYI,EAAuB,CAC5C,KAAK,aAAeA,CACtB,CAEA,IAAW,eAA+C,CACxD,OAAO,KAAK,cACd,CACA,IAAW,cAAc2B,EAAmC,CAC1D,KAAK,eAAiBA,CACxB,CAEA,IAAW,cAAmC,CAC5C,OAAO,KAAK,SAAS,mBAAmB,CAC1C,CACF,EChnBA,IAAMC,EAAW,qCACXC,EAAS,qFA6CFC,EAAN,cAA4BC,CAA4C,CAqB7E,aAAc,CACZ,MAAM,EACNC,EAAa,OAAOC,CAAiB,EACrC,KAAK,YAAc,IAAIC,EAAe,IAAIC,EAAY,IAAI,CAAC,EAC3DC,EAAqB,KAAMR,EAAUC,CAAM,CAC7C,CAzBA,WAAkB,oBAA+B,CAC/C,MAAO,CACLQ,EAAe,WAAW,KAC1BA,EAAe,WAAW,UAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,MAC1BA,EAAe,WAAW,WAC1BA,EAAe,WAAW,kBAC1BA,EAAe,WAAW,KAC1BA,EAAe,WAAW,iBAC1BA,EAAe,WAAW,cAC1BA,EAAe,WAAW,aAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,wBAC5B,CACF,CAWO,mBAA0B,CAC3B,KAAK,cAAcA,EAAe,UAAU,MAAM,EACpD,KAAK,YAAY,WAAW,EAE5BC,EAAY,KAAMD,EAAe,UAAU,MAAM,EAAE,KAAK,IAAM,KAAK,YAAY,WAAW,CAAC,CAE/F,CAEO,yBAAyBE,EAAcC,EAAkBC,EAAwB,CAEtF,OADA,MAAM,yBAAyBF,EAAMC,EAAUC,CAAQ,EAC/CF,EAAM,CACZ,KAAKF,EAAe,WAAW,KAC7B,KAAK,YAAY,KAAOK,EAAUD,CAAQ,EAC1C,MACF,KAAKJ,EAAe,WAAW,UAC7B,KAAK,YAAY,UAAYI,EAC7B,MACF,KAAKJ,EAAe,WAAW,eAC7B,KAAK,YAAY,cAAgB,OAAOI,CAAQ,EAChD,MACF,KAAKJ,EAAe,WAAW,eAC7B,KAAK,YAAY,cAAgBI,EACjC,MACF,KAAKJ,EAAe,WAAW,MAC7B,KAAK,YAAY,MAAQM,EAAcF,CAAQ,EAC/C,MACF,KAAKJ,EAAe,WAAW,WAC7B,KAAK,YAAY,UAAYI,EAC7B,MACF,KAAKJ,EAAe,WAAW,kBAC7B,KAAK,iBAAmBM,EAAcF,CAAQ,EAC9C,MACF,KAAKJ,EAAe,WAAW,KAC7B,KAAK,KAAOI,EACZ,KACJ,CACF,CAEO,sBAA6B,CAClC,KAAK,YAAY,WAAW,CAC9B,CA0DO,kBAAkBG,EAA0B,CACjD,KAAK,YAAY,UAAUA,CAAG,CAChC,CAEO,qBAA4B,CACjC,KAAK,YAAY,oBAAoB,CACvC,CACF,EA7DiBC,EAAA,CADdC,EAAmB,GAvEThB,EAwEI,oBAIAe,EAAA,CADdC,EAAmB,GA3EThB,EA4EI,uBAIAe,EAAA,CADdC,EAAmB,GA/EThB,EAgFI,6BAIAe,EAAA,CADdC,EAAmB,GAnFThB,EAoFI,6BAIAe,EAAA,CADdC,EAAmB,GAvFThB,EAwFI,yBAIAe,EAAA,CADdC,EAAmB,GA3FThB,EA4FI,kCAIAe,EAAA,CADdC,EAAmB,GA/FThB,EAgGI,qBAIAe,EAAA,CADdC,EAAmB,GAnGThB,EAoGI,yBAOAe,EAAA,CADdC,EAAmB,GA1GThB,EA2GI,gCAIAe,EAAA,CADdC,EAAmB,GA9GThB,EA+GI,oBAIAe,EAAA,CADdC,EAAmB,GAlHThB,EAmHI,2BAIAe,EAAA,CADdC,EAAmB,GAtHThB,EAuHI,6BAIAe,EAAA,CADdC,EAAmB,CAAE,IAAK,EAAM,CAAC,GA1HvBhB,EA2HI,4BA3HJA,EAANe,EAAA,CAPNE,EAAc,CACb,KAAMV,EAAe,YACrB,aAAc,CACZW,EACAC,CACF,CACF,CAAC,GACYnB,GChDN,SAASoB,IAA4B,CAC1CC,EAAoBC,CAAa,CACnC",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "events", "numbers", "MENU_CONSTANTS", "MenuAdapter", "BaseAdapter", "component", "_a", "_b", "MENU_CONSTANTS", "id", "event", "callback", "bubbles", "config", "ListDropdown", "options", "index", "listItem", "type", "listener", "el", "key", "evt", "openMenu", "open", "childMenu", "parentValue", "openCb", "closeCb", "selectCb", "menu", "__spreadProps", "__spreadValues", "excludeIndex", "menusToRemove", "values", "list", "popup", "LIST_CONSTANTS", "listElement", "LIST_ITEM_CONSTANTS", "MenuFoundation", "CascadingListDropdownAwareFoundation", "_adapter", "MENU_CONSTANTS", "ICON_CLASS_NAME", "randomChars", "evt", "value", "id", "o", "options", "isListDropdownOptionType", "previousValue", "currentValue", "data", "canSetActiveDescendant", "activeIndex", "activeOption", "hoveredIndex", "hoveredOption", "fromKeyboard", "selectedValues", "config", "params", "results", "isArray", "index", "values", "element", "parentValue", "menu", "__spreadValues", "factory", "option", "cb", "template", "styles", "MenuComponent", "ListDropdownAware", "IconRegistry", "tylIconArrowRight", "MenuFoundation", "MenuAdapter", "attachShadowTemplate", "MENU_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "isDefined", "coerceBoolean", "evt", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "ListComponent", "defineMenuComponent", "defineCustomElement", "MenuComponent"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{d as t}from"./chunk.Q4YL47ZL.js";import{a as o}from"./chunk.TPXXHX5J.js";function m(){o(t)}export{m as a};
7
- //# sourceMappingURL=chunk.BAQYPAUM.js.map
6
+ import{d as t}from"./chunk.5XLCY232.js";import{a as o}from"./chunk.TPXXHX5J.js";function m(){o(t)}export{m as a};
7
+ //# sourceMappingURL=chunk.OXVCCHM5.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as S,b as L,d as O,e as B}from"./chunk.WFQYTXCB.js";import{E as w}from"./chunk.OJGPKHHC.js";import{F as N}from"./chunk.TNEUDWZU.js";import{e as y}from"./chunk.74HZVSDM.js";import{b as M}from"./chunk.NW54VA4E.js";import{e as g}from"./chunk.UV3WIHCM.js";import{d as V}from"./chunk.GTGXHY4A.js";import{p as P}from"./chunk.EWT2PBEP.js";import{d as T,l as F}from"./chunk.4JB3SESQ.js";import{e as m}from"./chunk.QG5EYBS3.js";import{b as A}from"./chunk.XIQFHO5R.js";import{a as x}from"./chunk.YTBNAGLS.js";import{a as b,b as k}from"./chunk.RRNSZCVJ.js";import{a as E,e as C,h as I}from"./chunk.TPXXHX5J.js";import{t as f}from"./chunk.HZUQXCOQ.js";import{a as D}from"./chunk.MGLWXAZO.js";import{f as v}from"./chunk.J2M2MXP2.js";import{a as d,d as _}from"./chunk.M3QDAYD2.js";var r=`${k}date-picker`,z={VALUE:"value"},U={INPUT:"input,input[forge-date-picker-input]"},R={CHANGE:`${r}-change`,OPEN:`${r}-open`,CLOSE:`${r}-close`,INPUT:`${r}-input`},n={elementName:r,selectors:U,events:R,observedAttributes:z};var l=class extends O{constructor(e){super(e);this._dropdownIdentifier=`forge-date-picker-${this._identifier}`}_initializeInput(){this._inputElement=this._component.querySelector(n.selectors.INPUT)}_initializeCalendarDropdown(){let e=this._getDefaultTargetElement();this._calendarDropdown=new N(e,this._dropdownIdentifier)}initializeMask(e){var t;(t=this._inputMask)==null||t.destroy(),this._inputMask=new A(this._inputElement,e)}destroyMask(){var e;(e=this._inputMask)==null||e.destroy(),this._inputMask=void 0}initializeAccessibility(){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false"),this._inputElement.setAttribute("aria-owns",this._dropdownIdentifier)}addInputListener(e,t,i){var a;(a=this._inputElement)==null||a.addEventListener(e,t,{capture:i})}removeInputListener(e,t,i){var a;(a=this._inputElement)==null||a.removeEventListener(e,t,{capture:i})}setInputValueChangedListener(e,t){this.destroyValueChangeListener();let i=g(e,this._inputElement,"value",t);this._valueChangeListeners.push(i)}hasInputElement(){return!!this._inputElement}attachCalendar(e,t){super.attachCalendar(e,t),this._inputElement.setAttribute("aria-expanded","true")}detachCalendar(){super.detachCalendar(),this._inputElement&&(this._inputElement.setAttribute("aria-expanded","false"),this._inputElement.removeAttribute("aria-activedescendant"))}setActiveDescendant(e){this._inputElement.setAttribute("aria-activedescendant",e)}setInputValue(e,t){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.updateMask(),t&&(this._inputElement.dispatchEvent(new Event("change")),this._inputElement.dispatchEvent(new Event("input"))))}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return f(this._component.ownerDocument)===this._inputElement}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this._toggleElement&&(this._toggleElement.setAttribute("aria-disabled",e.toString()),this._toggleElement.hasOwnProperty("disabled")&&(this._toggleElement.disabled=e))}tryFocusInput(){this._inputElement.focus()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}emitInputEvent(e,t){I(this._inputElement,e,t)}};var p=class extends B{constructor(e){super(e);this._mode="single"}_initializeState(){this._value||(this._value=this._coerceDateValue(this._adapter.getInputValue()))}_emitChangeEvent(e,t){let i=this._getTypedValue(e);return this._adapter.emitHostEvent(n.events.CHANGE,i,!0,!t)?(this._setValue(e),!0):!1}_emitOpenEvent(){this._adapter.emitHostEvent(n.events.OPEN,void 0,!1)}_emitCloseEvent(){this._adapter.emitHostEvent(n.events.CLOSE,void 0,!1)}_onToday(){let e=new Date;e.setHours(0,0,0,0),this._onDateSelected({date:e,selected:!0,type:"date"})}_onClear(){this._onDateSelected({date:null,selected:!1,type:"date"})}_getCurrentValue(){return this._value}_setFormattedInputValue(e){let t=this._formatDate(this._value);t?this._adapter.setInputValue(t,e?!1:this._notifyInputValueChanges):this._allowInvalidDate||this._adapter.setInputValue("",e?!1:this._notifyInputValueChanges)}_setValue(e){(!e||this._isDateValueAcceptable(e))&&(this._value=e)}_onDateSelected(e){let t=e.date;if(e.type==="date"&&this._closeCalendar(!0),!this._emitChangeEvent(t))return;let i=this._formatDate(t);this._adapter.setInputValue(i,this._notifyInputValueChanges),this._formatInputValue(),D.isMobile||this._adapter.selectInputText()}_openCalendar(e){super._openCalendar(e);let t=this._getCurrentValue();t&&this._adapter.goToCalendarDate(new Date(t))}_applyMin(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),super._applyMin()}_applyMax(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),super._applyMax()}_applyDisabledDates(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue())}_applyDisabledDaysOfWeek(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue())}_handleInput(e){let t=this._getSanitizedDateString(e),i=this._coerceDateValue(t);this._masked&&this._adapter.emitInputEvent(n.events.INPUT,t),!m(i,this._value)&&this._isDateValueAcceptable(i)&&this._emitChangeEvent(i)}_onInputValueChanged(e){let t=this._getSanitizedDateString(e);if(this._masked&&t)return;let i=this._coerceDateValue(t);!m(i,this._value)&&this._isDateValueAcceptable(i)&&(this.value=i,this._emitChangeEvent(this._value))}_applyValue(){this._setFormattedInputValue(),this._open&&this._adapter.setCalendarValue(this._value)}get value(){let e=this._getTypedValue(this._value);return e?v(e)?new Date(e.getTime()):e:null}set value(e){this._value!==e&&(this._setValue(this._coerceDateValue(e)),this._isInitialized&&this._applyValue())}};var K="<template><slot></slot></template>",$=":host{display:block}:host([hidden]){display:none}",o=class extends L{static get observedAttributes(){return[...Object.values(S.observedAttributes),n.observedAttributes.VALUE]}constructor(){super(),T.define(P),C(this,K,$),this._foundation=new p(new l(this))}attributeChangedCallback(s,e,t){switch(s){case n.observedAttributes.VALUE:this.value=t;return}super.attributeChangedCallback(s,e,t)}};o=_([b({name:n.elementName,dependencies:[y,w,V,F]})],o);var H=class extends x{constructor(e){super(e)}_build(){let e=document.createElement(n.elementName);return this._attachTextField(e),e}getInputElement(){return this._textFieldDelegate.inputElement}getTextFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.masked?this._element.addEventListener(n.events.INPUT,t=>e(t.target.value)):this.getInputElement().addEventListener("input",t=>e(t.target.value))}onInput(e){this._element.masked?this._element.addEventListener(n.events.INPUT,t=>e(t.detail)):this._textFieldDelegate.inputElement.addEventListener("input",t=>e(t.target.value))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",t=>e(t))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",t=>e(t))}_attachTextField(e){var i,a,c,h;let t={props:d({},(a=(i=this._config.options)==null?void 0:i.textFieldDelegateConfig)==null?void 0:a.props),options:d({},(h=(c=this._config.options)==null?void 0:c.textFieldDelegateConfig)==null?void 0:h.options)};this._textFieldDelegate=new M(t),e.appendChild(this._textFieldDelegate.element)}};function ye(){E(o)}export{n as a,l as b,p as c,o as d,H as e,ye as f};
7
+ //# sourceMappingURL=chunk.P5XHGSJY.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/date-picker/date-picker-constants.ts", "../../src/date-picker/date-picker-adapter.ts", "../../src/date-picker/date-picker-foundation.ts", "../../src/date-picker/date-picker.ts", "../../src/date-picker/date-picker-component-delegate.ts", "../../src/date-picker/index.ts"],
4
4
  "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-picker`;\n\nconst observedAttributes = {\n VALUE: 'value'\n};\n\nconst selectors = {\n INPUT: 'input,input[forge-date-picker-input]'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { CalendarDropdown } from '../calendar/calendar-dropdown/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from './base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from './base/base-date-picker-constants';\nimport { IDatePickerComponent } from './date-picker';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport interface IDatePickerAdapter extends IBaseDatePickerAdapter {}\n\nexport class DatePickerAdapter extends BaseDatePickerAdapter<IDatePickerComponent> implements IDatePickerAdapter {\n private _inputElement: HTMLInputElement;\n private _inputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n\n constructor(component: IDatePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._inputElement = this._component.querySelector(DATE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public initializeMask(options: IDateInputMaskOptions): void {\n this._inputMask?.destroy();\n this._inputMask = new DateInputMask(this._inputElement, options);\n }\n\n public destroyMask(): void {\n this._inputMask?.destroy();\n this._inputMask = undefined;\n }\n\n public initializeAccessibility(): void {\n this._inputElement.setAttribute('autocomplete', 'off');\n this._inputElement.setAttribute('autocorrect', 'off');\n this._inputElement.setAttribute('autocapitalize', 'off');\n this._inputElement.setAttribute('spellcheck', 'false');\n this._inputElement.setAttribute('role', 'combobox');\n this._inputElement.setAttribute('aria-live', 'assertive');\n this._inputElement.setAttribute('aria-atomic', 'true');\n this._inputElement.setAttribute('aria-haspopup', 'true');\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._inputElement.setAttribute('aria-owns', this._dropdownIdentifier);\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._inputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._inputElement?.removeEventListener(type, listener, { capture });\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this.destroyValueChangeListener();\n const destroyListenerCb = listenOwnProperty(context, this._inputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public hasInputElement(): boolean {\n return !!this._inputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._inputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._inputElement) {\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._inputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._inputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._inputElement.value === value) {\n return;\n }\n\n this._inputElement.value = value;\n \n if (this._inputMask) {\n this._inputMask.updateMask();\n }\n\n if (emitEvents) {\n this._inputElement.dispatchEvent(new Event('change'));\n this._inputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._inputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return getActiveElement(this._component.ownerDocument) === this._inputElement;\n }\n\n public getInputValue(): string {\n return this._inputMask ? this._inputMask.maskedValue : this._inputElement.value;\n }\n\n public setDisabled(value: boolean): void {\n this._inputElement.disabled = value;\n this._inputElement.setAttribute('aria-disabled', value.toString());\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', value.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = value;\n }\n }\n }\n\n public tryFocusInput(): void {\n this._inputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._inputElement.blur();\n }\n\n public selectInputText(): void {\n this._inputElement.select();\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._inputElement, type, data);\n }\n}\n", "import { isDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from './base/base-date-picker-foundation';\nimport { IDatePickerAdapter } from './date-picker-adapter';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport interface IDatePickerFoundation extends IBaseDatePickerFoundation<Date | string> {}\n\nexport class DatePickerFoundation extends BaseDatePickerFoundation<IDatePickerAdapter, Date | string | null | undefined, Date> implements IDatePickerFoundation {\n protected _mode: CalendarMode = 'single';\n\n constructor(adapter: IDatePickerAdapter) {\n super(adapter);\n }\n\n protected _initializeState(): void {\n if (!this._value) {\n this._value = this._coerceDateValue(this._adapter.getInputValue());\n }\n }\n\n protected _emitChangeEvent(value: Date | null | undefined, force?: boolean): boolean {\n const typedValue = this._getTypedValue(value);\n const wasCancelled = !this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.CHANGE, typedValue, true, !force);\n if (!wasCancelled) {\n this._setValue(value);\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n\n protected _onToday(): void {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n this._onDateSelected({ date: today, selected: true, type: 'date' });\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, selected: false, type: 'date' });\n }\n\n protected _getCurrentValue(): Date | null | undefined {\n return this._value;\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n const formattedDate = this._formatDate(this._value);\n if (formattedDate) {\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setInputValue('', suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n }\n }\n\n protected _setValue(value?: Date | null): void {\n if (!value || this._isDateValueAcceptable(value)) {\n this._value = value;\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.date;\n\n if (event.type === 'date') {\n this._closeCalendar(true);\n }\n \n if (!this._emitChangeEvent(value)) {\n return;\n }\n\n const formattedValue = this._formatDate(value);\n\n this._adapter.setInputValue(formattedValue, this._notifyInputValueChanges);\n this._formatInputValue();\n\n if (!Platform.isMobile) {\n this._adapter.selectInputText();\n }\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue) {\n this._adapter.goToCalendarDate(new Date(currentValue));\n }\n }\n\n protected override _applyMin(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n super._applyMax();\n }\n\n protected _applyDisabledDates(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._value) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(date);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n if (this._masked && sanitizedValue) {\n // If masked, allow clearing value by setting input.value directly\n // To set a date value, dispatch `input` event and mask will handle it.\n return;\n }\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._value) && this._isDateValueAcceptable(date)) {\n this.value = date;\n this._emitChangeEvent(this._value);\n }\n }\n\n private _applyValue(): void {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(this._value);\n }\n }\n\n public get value(): Date | string | null | undefined {\n const date = this._getTypedValue(this._value);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n\n public set value(value: Date | string | null | undefined) {\n if (this._value !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._applyValue();\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement } from '@tylertech/forge-core';\nimport { tylIconInsertInvitation } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from './base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from './base/base-date-picker-constants';\nimport { DatePickerAdapter } from './date-picker-adapter';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\nimport { DatePickerFoundation } from './date-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDatePickerComponent extends IBaseDatePickerComponent<Date | string | null> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-picker': IDatePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-picker-change': CustomEvent<Date | string | null>;\n 'forge-date-picker-open': CustomEvent<void>;\n 'forge-date-picker-close': CustomEvent<void>;\n 'forge-date-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-picker>` element.\n * \n * @tag forge-date-picker\n */\n@CustomElement({\n name: DATE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DatePickerComponent extends BaseDatePickerComponent<Date | string | undefined, Date, DatePickerFoundation> implements IDatePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_PICKER_CONSTANTS.observedAttributes.VALUE\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconInsertInvitation);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DatePickerFoundation(new DatePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_PICKER_CONSTANTS.observedAttributes.VALUE:\n this.value = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { ITextFieldComponent, ITextFieldComponentDelegateConfig, TextFieldComponentDelegate } from '../text-field';\nimport { IDatePickerComponent } from './date-picker';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport type DatePickerComponentDelegateProps = Partial<IDatePickerComponent>;\nexport interface IDatePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\nexport interface IDatePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDatePickerComponent, IDatePickerComponentDelegateOptions> {}\n\nexport class DatePickerComponentDelegate extends FormFieldComponentDelegate<IDatePickerComponent, IDatePickerComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n\n constructor(config?: IDatePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDatePickerComponent {\n const datePicker = document.createElement(DATE_PICKER_CONSTANTS.elementName);\n this._attachTextField(datePicker);\n return datePicker;\n }\n\n public getInputElement(): HTMLInputElement {\n return this._textFieldDelegate.inputElement;\n }\n\n public getTextFieldElement(): ITextFieldComponent {\n return this._textFieldDelegate.element;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textFieldDelegate.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textFieldDelegate.invalid = value;\n }\n\n public onChange(listener: (value: string) => void): void {\n if (this._element.masked) {\n this._element.addEventListener(DATE_PICKER_CONSTANTS.events.INPUT, evt => listener((evt.target as HTMLInputElement).value));\n } else {\n this.getInputElement().addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n }\n\n public onInput(listener: (value: string) => void): void {\n if (this._element.masked) {\n this._element.addEventListener(DATE_PICKER_CONSTANTS.events.INPUT, (evt: CustomEvent) => listener(evt.detail));\n } else {\n this._textFieldDelegate.inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('focus', (evt: FocusEvent) => listener(evt));\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('blur', (evt: FocusEvent) => listener(evt));\n }\n\n private _attachTextField(datePicker: IDatePickerComponent): void {\n const textFieldConfig: ITextFieldComponentDelegateConfig = {\n props: { ...this._config.options?.textFieldDelegateConfig?.props },\n options: { ...this._config.options?.textFieldDelegateConfig?.options }\n };\n this._textFieldDelegate = new TextFieldComponentDelegate(textFieldConfig);\n datePicker.appendChild(this._textFieldDelegate.element);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DatePickerComponent } from './date-picker';\n\nexport * from './date-picker';\nexport * from './date-picker-adapter';\nexport * from './date-picker-component-delegate';\nexport * from './date-picker-constants';\nexport * from './date-picker-foundation';\n\nexport function defineDatePickerComponent(): void {\n defineCustomElement(DatePickerComponent);\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "selectors", "events", "DATE_PICKER_CONSTANTS", "DatePickerAdapter", "BaseDatePickerAdapter", "component", "DATE_PICKER_CONSTANTS", "targetElement", "CalendarDropdown", "options", "_a", "DateInputMask", "type", "listener", "capture", "context", "destroyListenerCb", "listenOwnProperty", "calendarConfig", "dropdownConfig", "id", "value", "emitEvents", "getActiveElement", "data", "emitEvent", "DatePickerFoundation", "BaseDatePickerFoundation", "adapter", "value", "force", "typedValue", "DATE_PICKER_CONSTANTS", "today", "suppressValueChanges", "formattedDate", "event", "formattedValue", "Platform", "emitOpenEvent", "currentValue", "sanitizedValue", "date", "isSameDate", "isDate", "template", "styles", "DatePickerComponent", "BaseDatePickerComponent", "BASE_DATE_PICKER_CONSTANTS", "DATE_PICKER_CONSTANTS", "IconRegistry", "tylIconInsertInvitation", "attachShadowTemplate", "DatePickerFoundation", "DatePickerAdapter", "name", "oldValue", "newValue", "__decorateClass", "CustomElement", "PopupComponent", "CalendarComponent", "IconButtonComponent", "IconComponent", "DatePickerComponentDelegate", "FormFieldComponentDelegate", "config", "datePicker", "DATE_PICKER_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "textFieldConfig", "__spreadValues", "TextFieldComponentDelegate", "defineDatePickerComponent", "defineCustomElement", "DatePickerComponent"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{d as A}from"./chunk.5LCWC3A7.js";import{A as _}from"./chunk.EWT2PBEP.js";import{d as E,l as I}from"./chunk.4JB3SESQ.js";import{a as f}from"./chunk.ZY3ETQ3D.js";import{a as n}from"./chunk.NVUMRW44.js";import{a as g,b as y}from"./chunk.RRNSZCVJ.js";import{a as u,e as b,f as m,k as v}from"./chunk.TPXXHX5J.js";import{n as h}from"./chunk.HZUQXCOQ.js";import{k as d}from"./chunk.J2M2MXP2.js";import{d as p}from"./chunk.M3QDAYD2.js";var T=`${y}app-bar-search`,x={ROOT:".forge-app-bar-search",INPUT:"input"},L={DISABLED:"disabled",VALUE:"value",PLACEHOLDER:"placeholder"},C={INPUT:`${T}-input`},e={elementName:T,selectors:x,attributes:L,events:C};var s=class{constructor(a){this._adapter=a;this._disabled=!1;this._keydownListener=a=>this._onKeydown(a)}initialize(){this._adapter.initialize(),this._tryForwardInputState(),this._adapter.addInputEventListener("keydown",this._keydownListener)}_tryForwardInputState(){this._disabled&&this._adapter.setInputProperty("disabled",this._disabled),this._adapter.hasHostAttribute(e.attributes.VALUE)&&this._adapter.setInputProperty("value",this._adapter.getHostAttribute(e.attributes.VALUE)),this._adapter.hasHostAttribute(e.attributes.PLACEHOLDER)&&this._adapter.setInputProperty("placeholder",this._adapter.getHostAttribute(e.attributes.PLACEHOLDER))}_onKeydown({key:a,target:t}){if(!this._disabled&&a==="Enter"){let r={value:t.value};this._adapter.emitHostEvent(e.events.INPUT,r,!0)}}disconnect(){this._adapter.removeInputEventListener("keydown",this._keydownListener)}get disabled(){return this._disabled}set disabled(a){a!==this._disabled&&(this._disabled=a,this._adapter.setInputProperty("disabled",this._disabled),this._adapter.toggleHostAttribute(e.attributes.DISABLED,this._disabled))}get value(){return this._adapter.getInputProperty("value")}set value(a){this._adapter.setInputProperty("value",a)}get placeholder(){return this._adapter.getInputProperty("placeholder")}set placeholder(a){this._adapter.setInputProperty("placeholder",a)}};var c=class extends f{constructor(t){super(t);this._rootElement=m(t,e.selectors.ROOT)}initialize(){let t=this._component.querySelector(e.selectors.INPUT);if(t){this._inputElement=t,this._inputElement.hasAttribute("slot")||(this._inputElement.slot="input");let r=document.createElement("forge-focus-indicator");r.targetElement=this._inputElement,this._rootElement.appendChild(r)}}addInputEventListener(t,r){var o;(o=this._inputElement)==null||o.addEventListener(t,r)}removeInputEventListener(t,r){var o;(o=this._inputElement)==null||o.removeEventListener(t,r)}setInputProperty(t,r){this._inputElement&&(this._inputElement[t]=r)}getInputProperty(t){var r;return(r=this._inputElement)==null?void 0:r[t]}};var S='<template><div class="forge-app-bar-search" part="root"><slot name="start"><forge-icon name="search" class="icon" part="icon"></forge-icon></slot><slot name="input"></slot><slot name="end"></slot></div></template>',k=':host{display:block}:host([hidden]){display:none}.forge-app-bar-search{--_app-bar-search-color:var(--forge-app-bar-search-color, currentColor);--_app-bar-search-height:var(--forge-app-bar-search-height, 36px);--_app-bar-search-padding:var(--forge-app-bar-search-padding, 8px);--_app-bar-search-shape:var(--forge-app-bar-search-shape, var(--forge-shape-small, 2px));--_app-bar-search-gap:var(--forge-app-bar-search-gap, 4px);--_app-bar-search-input-placeholder-color:var(--forge-app-bar-search-input-placeholder-color, var(--_app-bar-search-color));--_app-bar-search-input-placeholder-opacity:var(--forge-app-bar-search-input-placeholder-opacity, 0.38);--_app-bar-search-background-color:var(--forge-app-bar-search-background-color, var(--_app-bar-search-color));--_app-bar-search-background-color-opacity:var(--forge-app-bar-search-background-color-opacity, 0.08);--_app-bar-search-border-color:var(--forge-app-bar-search-border-color, var(--_app-bar-search-color));--_app-bar-search-border-opacity:var(--forge-app-bar-search-border-opacity, 0.54);--_app-bar-search-border-hover-opacity:var(--forge-app-bar-search-border-hover-opacity, 0.87);--_app-bar-search-transition-duration:var(--forge-app-bar-search-transition-duration, var(--forge-animation-duration-short3, 150ms));--_app-bar-search-transition-timing-function:var(--forge-app-bar-search-transition-timing-function, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-app-bar-search{position:relative;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-flex:1;flex:1 1 auto;gap:var(--_app-bar-search-gap);height:var(--_app-bar-search-height);width:100%;padding-inline:var(--_app-bar-search-padding);-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--_app-bar-search-shape)}.forge-app-bar-search:hover::after{opacity:var(--_app-bar-search-border-hover-opacity)}.forge-app-bar-search::before{content:"";position:absolute;inset:0;pointer-events:none;background-color:var(--_app-bar-search-background-color);opacity:var(--_app-bar-search-background-color-opacity)}.forge-app-bar-search::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--_app-bar-search-border-opacity);border-radius:var(--_app-bar-search-shape);outline:1px solid var(--_app-bar-search-border-color);-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-duration:var(--_app-bar-search-transition-duration);transition-duration:var(--_app-bar-search-transition-duration);-webkit-transition-timing-function:var(--_app-bar-search-transition-timing-function);transition-timing-function:var(--_app-bar-search-transition-timing-function)}:host([disabled]){cursor:not-allowed}:host([disabled]) .forge-app-bar-search{pointer-events:none;opacity:38%}:host([disabled]) ::slotted(input){pointer-events:none}forge-focus-indicator{--forge-focus-indicator-color:currentColor;--forge-focus-indicator-outward-offset:0px}::slotted(input){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));font-weight:var(--forge-typography-body2-font-weight,400);line-height:var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body2-text-decoration,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);display:block;overflow:hidden;background:0 0;color:currentColor;border:none;width:100%;margin:0;outline:0}::slotted(input)::-webkit-input-placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}::slotted(input)::-moz-placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}::slotted(input):-ms-input-placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}::slotted(input)::-ms-input-placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}::slotted(input)::placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}',i=class extends v{constructor(){super();E.define(_),b(this,S,k),this._foundation=new s(new c(this))}static get observedAttributes(){return[e.attributes.DISABLED,e.attributes.VALUE,e.attributes.PLACEHOLDER]}connectedCallback(){this.querySelector(e.selectors.INPUT)?this._foundation.initialize():h(this).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,o){switch(t){case e.attributes.DISABLED:this.disabled=d(o);break;case e.attributes.VALUE:this.value=o;break;case e.attributes.PLACEHOLDER:this.placeholder=o;break}}};p([n()],i.prototype,"value",2),p([n()],i.prototype,"disabled",2),p([n()],i.prototype,"placeholder",2),i=p([g({name:e.elementName,dependencies:[I,A]})],i);function ae(){u(i)}export{e as a,s as b,c,i as d,ae as e};
7
+ //# sourceMappingURL=chunk.Q5YXX4DU.js.map