@tylertech/forge 2.16.5 → 2.16.6

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 (344) hide show
  1. package/dist/esm/accordion/index.js +1 -1
  2. package/dist/esm/app-bar/help-button/index.js +1 -1
  3. package/dist/esm/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/menu-button/index.js +1 -1
  5. package/dist/esm/app-bar/notification-button/index.js +1 -1
  6. package/dist/esm/app-bar/profile-button/index.js +1 -1
  7. package/dist/esm/app-bar/search/index.js +1 -1
  8. package/dist/esm/autocomplete/index.js +1 -1
  9. package/dist/esm/avatar/index.js +1 -1
  10. package/dist/esm/backdrop/index.js +1 -1
  11. package/dist/esm/badge/index.js +1 -1
  12. package/dist/esm/banner/index.js +1 -1
  13. package/dist/esm/bottom-sheet/index.js +1 -1
  14. package/dist/esm/busy-indicator/index.js +1 -1
  15. package/dist/esm/button/index.js +1 -1
  16. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  17. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  18. package/dist/esm/button-toggle/index.js +1 -1
  19. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  20. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  21. package/dist/esm/calendar/index.js +1 -1
  22. package/dist/esm/card/index.js +1 -1
  23. package/dist/esm/checkbox/index.js +1 -1
  24. package/dist/esm/chip-field/index.js +1 -1
  25. package/dist/esm/chips/chip/index.js +1 -1
  26. package/dist/esm/chips/chip-set/index.js +1 -1
  27. package/dist/esm/chips/index.js +1 -1
  28. package/dist/esm/chunks/{chunk.ZRRUDMBE.js → chunk.274MFEUZ.js} +2 -2
  29. package/dist/esm/chunks/{chunk.4FSAAN6W.js → chunk.2DAPNN6B.js} +2 -2
  30. package/dist/esm/chunks/{chunk.4FSAAN6W.js.map → chunk.2DAPNN6B.js.map} +2 -2
  31. package/dist/esm/chunks/{chunk.ARJ3EVVO.js → chunk.2KXSGD3S.js} +2 -2
  32. package/dist/esm/chunks/{chunk.VC2BG2RS.js → chunk.3FAYFYXF.js} +2 -2
  33. package/dist/esm/chunks/{chunk.G45OZEIS.js → chunk.3IXTRC6Z.js} +2 -2
  34. package/dist/esm/chunks/{chunk.77Y3EABF.js → chunk.3YT72ZWJ.js} +2 -2
  35. package/dist/esm/chunks/{chunk.WY7DECJD.js → chunk.4CWMNWZU.js} +2 -2
  36. package/dist/esm/chunks/{chunk.PN26D52V.js → chunk.4LA6HEA7.js} +2 -2
  37. package/dist/esm/chunks/{chunk.PN26D52V.js.map → chunk.4LA6HEA7.js.map} +3 -3
  38. package/dist/esm/chunks/{chunk.K2C4W3CO.js → chunk.4R6NK524.js} +2 -2
  39. package/dist/esm/chunks/{chunk.G5MGGEFP.js → chunk.5KC43VFL.js} +2 -2
  40. package/dist/esm/chunks/{chunk.ILRWZHH3.js → chunk.6ATSOUJQ.js} +2 -2
  41. package/dist/esm/chunks/{chunk.NSOALSSD.js → chunk.6CO3CIUY.js} +2 -2
  42. package/dist/esm/chunks/{chunk.RYMPSU4J.js → chunk.6TTAKWXI.js} +2 -2
  43. package/dist/esm/chunks/{chunk.4WPFFNLH.js → chunk.73GVVX4K.js} +2 -2
  44. package/dist/esm/chunks/{chunk.TR5YMNJJ.js → chunk.76PI42C5.js} +2 -2
  45. package/dist/esm/chunks/chunk.7BAO5IED.js +7 -0
  46. package/dist/esm/chunks/chunk.7GCT4NUC.js +7 -0
  47. package/dist/esm/chunks/chunk.7GCT4NUC.js.map +7 -0
  48. package/dist/esm/chunks/{chunk.AFLH5HUG.js → chunk.7K44O5RO.js} +2 -2
  49. package/dist/esm/chunks/{chunk.PALRSBSY.js → chunk.7SULS4D2.js} +2 -2
  50. package/dist/esm/chunks/{chunk.LYOQ2RGP.js → chunk.A4UN74PV.js} +2 -2
  51. package/dist/esm/chunks/chunk.AMES2WWC.js +7 -0
  52. package/dist/esm/chunks/chunk.AMES2WWC.js.map +7 -0
  53. package/dist/esm/chunks/{chunk.ZUNZKRRK.js → chunk.AMWDVFAU.js} +2 -2
  54. package/dist/esm/chunks/chunk.APHMTBRQ.js +7 -0
  55. package/dist/esm/chunks/chunk.APHMTBRQ.js.map +7 -0
  56. package/dist/esm/chunks/{chunk.47A2CN5U.js → chunk.BESB4RGK.js} +2 -2
  57. package/dist/esm/chunks/{chunk.IJW7Z6YD.js → chunk.BKAZC53W.js} +2 -2
  58. package/dist/esm/chunks/{chunk.VAKNDCLP.js → chunk.BL4IBI6G.js} +2 -2
  59. package/dist/esm/chunks/{chunk.FDLWB4QK.js → chunk.BTMBIAL2.js} +2 -2
  60. package/dist/esm/chunks/{chunk.I5BAZWUF.js → chunk.CE6NTUWI.js} +2 -2
  61. package/dist/esm/chunks/{chunk.7A6MX6CS.js → chunk.CG5CVENX.js} +2 -2
  62. package/dist/esm/chunks/{chunk.HNMFFOUF.js → chunk.CN4XKIQI.js} +2 -2
  63. package/dist/esm/chunks/{chunk.EGRUD7S7.js → chunk.CX7MOSLM.js} +2 -2
  64. package/dist/esm/chunks/{chunk.XZ4WI7VK.js → chunk.D24CE6KE.js} +2 -2
  65. package/dist/esm/chunks/{chunk.CDUN4ONU.js → chunk.D5OLAPHE.js} +2 -2
  66. package/dist/esm/chunks/chunk.DLALEZ73.js +7 -0
  67. package/dist/esm/chunks/chunk.DLALEZ73.js.map +7 -0
  68. package/dist/esm/chunks/{chunk.RG6CDWEX.js → chunk.DYF2MREZ.js} +2 -2
  69. package/dist/esm/chunks/{chunk.RG6CDWEX.js.map → chunk.DYF2MREZ.js.map} +2 -2
  70. package/dist/esm/chunks/{chunk.NWDZ5CGQ.js → chunk.EAGRODVX.js} +2 -2
  71. package/dist/esm/chunks/{chunk.SHTHI473.js → chunk.EMV7JGHB.js} +2 -2
  72. package/dist/esm/chunks/{chunk.UBD2DPQN.js → chunk.F5CFD2NG.js} +2 -2
  73. package/dist/esm/chunks/{chunk.ROR6JMAE.js → chunk.FFVZ6JMP.js} +2 -2
  74. package/dist/esm/chunks/{chunk.7BESNUTG.js → chunk.FOLQAW63.js} +2 -2
  75. package/dist/esm/chunks/{chunk.Y72NANFX.js → chunk.FPLHVO6D.js} +2 -2
  76. package/dist/esm/chunks/{chunk.4Y2QP7JX.js → chunk.G4DG233F.js} +2 -2
  77. package/dist/esm/chunks/{chunk.7UKA4E5A.js → chunk.GQCUI7YS.js} +2 -2
  78. package/dist/esm/chunks/{chunk.F2B24WLK.js → chunk.H3IPTBWM.js} +2 -2
  79. package/dist/esm/chunks/{chunk.Y4GKBJGI.js → chunk.HOXFK44F.js} +2 -2
  80. package/dist/esm/chunks/chunk.HRNLQ7GB.js +7 -0
  81. package/dist/esm/chunks/chunk.HRNLQ7GB.js.map +7 -0
  82. package/dist/esm/chunks/{chunk.M7QAOQQ4.js → chunk.HTH3CEDN.js} +2 -2
  83. package/dist/esm/chunks/chunk.IMEODSRH.js +7 -0
  84. package/dist/esm/chunks/chunk.IMEODSRH.js.map +7 -0
  85. package/dist/esm/chunks/chunk.ITXUKOKJ.js +7 -0
  86. package/dist/esm/chunks/{chunk.PYIFIHDK.js.map → chunk.ITXUKOKJ.js.map} +2 -2
  87. package/dist/esm/chunks/{chunk.INCKI5IX.js → chunk.IZSUW7WG.js} +2 -2
  88. package/dist/esm/chunks/{chunk.TWZXQQQO.js → chunk.JD4APKZS.js} +2 -2
  89. package/dist/esm/chunks/{chunk.N4PVZUJX.js → chunk.JDLEPQKN.js} +2 -2
  90. package/dist/esm/chunks/chunk.JRUIOKFS.js +12 -0
  91. package/dist/esm/chunks/chunk.K4SWLH26.js +7 -0
  92. package/dist/esm/chunks/chunk.K4SWLH26.js.map +7 -0
  93. package/dist/esm/chunks/chunk.K6LBO4KJ.js +7 -0
  94. package/dist/esm/chunks/chunk.K6LBO4KJ.js.map +7 -0
  95. package/dist/esm/chunks/{chunk.KU5CXXGS.js → chunk.K7HRCGML.js} +2 -2
  96. package/dist/esm/chunks/{chunk.Y5A7RQ5M.js → chunk.KII37K76.js} +2 -2
  97. package/dist/esm/chunks/chunk.KRUEPHLG.js +7 -0
  98. package/dist/esm/chunks/chunk.KRUEPHLG.js.map +7 -0
  99. package/dist/esm/chunks/{chunk.RBAVT3XQ.js → chunk.M6PJ3PNN.js} +2 -2
  100. package/dist/esm/chunks/{chunk.4NI63FGK.js → chunk.MSFGXRCM.js} +2 -2
  101. package/dist/esm/chunks/{chunk.XBW46N2J.js → chunk.MWHVRJW5.js} +2 -2
  102. package/dist/esm/chunks/{chunk.ASJHDPFL.js → chunk.NEFQWOLN.js} +2 -2
  103. package/dist/esm/chunks/{chunk.JEN6YP2Q.js → chunk.NLXSZNQI.js} +2 -2
  104. package/dist/esm/chunks/{chunk.MLV25D2G.js → chunk.NMKDIHFB.js} +2 -2
  105. package/dist/esm/chunks/{chunk.XUW3GG46.js → chunk.NX4EECNP.js} +2 -2
  106. package/dist/esm/chunks/{chunk.P3IA2WTO.js → chunk.ON2K3O3I.js} +2 -2
  107. package/dist/esm/chunks/{chunk.LJU5WSSF.js → chunk.P4Z7NC6O.js} +2 -2
  108. package/dist/esm/chunks/{chunk.O4FB4BV5.js → chunk.PADHAJLS.js} +2 -2
  109. package/dist/esm/chunks/chunk.PFYLJBUV.js +7 -0
  110. package/dist/esm/chunks/chunk.PFYLJBUV.js.map +7 -0
  111. package/dist/esm/chunks/{chunk.HPDBSBQJ.js → chunk.PKVY6EWM.js} +2 -2
  112. package/dist/esm/chunks/{chunk.P5HFRNJW.js → chunk.PW7IGEHF.js} +2 -2
  113. package/dist/esm/chunks/{chunk.YDBWGKR4.js → chunk.Q5YD3PKM.js} +2 -2
  114. package/dist/esm/chunks/{chunk.D6MLVA5G.js → chunk.QAWXAPHR.js} +2 -2
  115. package/dist/esm/chunks/{chunk.BE7PZANN.js → chunk.QOA2O575.js} +2 -2
  116. package/dist/esm/chunks/chunk.RGAPFLQE.js +7 -0
  117. package/dist/esm/chunks/chunk.RGAPFLQE.js.map +7 -0
  118. package/dist/esm/chunks/chunk.ROQGMLH3.js +7 -0
  119. package/dist/esm/chunks/chunk.ROQGMLH3.js.map +7 -0
  120. package/dist/esm/chunks/{chunk.H4Z4DHPA.js → chunk.RUK5PIER.js} +2 -2
  121. package/dist/esm/chunks/{chunk.JHBCYICS.js → chunk.S2YVOMLW.js} +2 -2
  122. package/dist/esm/chunks/{chunk.T76JYRPR.js → chunk.SAQSXX2T.js} +2 -2
  123. package/dist/esm/chunks/{chunk.HI2DQJZG.js → chunk.SATUJNQX.js} +2 -2
  124. package/dist/esm/chunks/{chunk.BTBHIIGI.js → chunk.SQTM36C3.js} +2 -2
  125. package/dist/esm/chunks/chunk.SXTM6OK4.js +7 -0
  126. package/dist/esm/chunks/chunk.SXTM6OK4.js.map +7 -0
  127. package/dist/esm/chunks/{chunk.RB5BTA5N.js → chunk.T6NVM7TN.js} +2 -2
  128. package/dist/esm/chunks/chunk.UHU4FUIS.js +7 -0
  129. package/dist/esm/chunks/{chunk.GCR7QZRO.js → chunk.USXO7YKN.js} +2 -2
  130. package/dist/esm/chunks/{chunk.NOC2446R.js → chunk.UVW3YDEX.js} +2 -2
  131. package/dist/esm/chunks/{chunk.NOC2446R.js.map → chunk.UVW3YDEX.js.map} +1 -1
  132. package/dist/esm/chunks/{chunk.FRYLJWYL.js → chunk.UW2HWAVL.js} +2 -2
  133. package/dist/esm/chunks/chunk.VNLVFGQ2.js +7 -0
  134. package/dist/esm/chunks/chunk.VNLVFGQ2.js.map +7 -0
  135. package/dist/esm/chunks/{chunk.RE5X26QT.js → chunk.VT2QJ7SM.js} +2 -2
  136. package/dist/esm/chunks/{chunk.UT7QUGAO.js → chunk.VTB27IL7.js} +2 -2
  137. package/dist/esm/chunks/{chunk.ELV22KTH.js → chunk.VUOTKGLB.js} +2 -2
  138. package/dist/esm/chunks/chunk.XFAOB6LU.js +7 -0
  139. package/dist/esm/chunks/{chunk.TBY35XZK.js → chunk.XMAKEISF.js} +2 -2
  140. package/dist/esm/chunks/{chunk.WP4QOOIS.js → chunk.XQ5CDWDY.js} +2 -2
  141. package/dist/esm/chunks/{chunk.G3ZTZ4AN.js → chunk.YG24YPYO.js} +2 -2
  142. package/dist/esm/chunks/{chunk.BJE6O5ES.js → chunk.YJTE34LC.js} +2 -2
  143. package/dist/esm/chunks/{chunk.4BEI55KI.js → chunk.YMBLWKRP.js} +2 -2
  144. package/dist/esm/chunks/{chunk.HBMNXZES.js → chunk.ZCQO3N25.js} +2 -2
  145. package/dist/esm/circular-progress/index.js +1 -1
  146. package/dist/esm/color-picker/index.js +1 -1
  147. package/dist/esm/core/base/index.js +1 -1
  148. package/dist/esm/core/delegates/index.js +1 -1
  149. package/dist/esm/core/index.js +1 -1
  150. package/dist/esm/date-picker/index.js +1 -1
  151. package/dist/esm/date-range-picker/index.js +1 -1
  152. package/dist/esm/dialog/index.js +1 -1
  153. package/dist/esm/divider/index.js +1 -1
  154. package/dist/esm/drawer/base/index.js +1 -1
  155. package/dist/esm/drawer/drawer/index.js +1 -1
  156. package/dist/esm/drawer/index.js +1 -1
  157. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  158. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  159. package/dist/esm/expansion-panel/index.js +1 -1
  160. package/dist/esm/file-picker/index.js +1 -1
  161. package/dist/esm/floating-action-button/index.js +1 -1
  162. package/dist/esm/floating-label/index.js +1 -1
  163. package/dist/esm/icon/index.js +1 -1
  164. package/dist/esm/icon-button/index.js +1 -1
  165. package/dist/esm/index.js +1 -1
  166. package/dist/esm/inline-message/index.js +1 -1
  167. package/dist/esm/keyboard-shortcut/index.js +1 -1
  168. package/dist/esm/label-value/index.js +1 -1
  169. package/dist/esm/linear-progress/index.js +1 -1
  170. package/dist/esm/list/index.js +1 -1
  171. package/dist/esm/list/list/index.js +1 -1
  172. package/dist/esm/list/list-item/index.js +1 -1
  173. package/dist/esm/list-dropdown/index.js +1 -1
  174. package/dist/esm/menu/index.js +1 -1
  175. package/dist/esm/open-icon/index.js +1 -1
  176. package/dist/esm/page-state/index.js +1 -1
  177. package/dist/esm/paginator/index.js +1 -1
  178. package/dist/esm/popup/index.js +1 -1
  179. package/dist/esm/product-icon/index.js +1 -1
  180. package/dist/esm/profile-card/index.js +1 -1
  181. package/dist/esm/quantity-field/index.js +1 -1
  182. package/dist/esm/radio/index.js +1 -1
  183. package/dist/esm/ripple/index.js +1 -1
  184. package/dist/esm/scaffold/index.js +1 -1
  185. package/dist/esm/select/core/index.js +1 -1
  186. package/dist/esm/select/index.js +1 -1
  187. package/dist/esm/select/option/index.js +1 -1
  188. package/dist/esm/select/option-group/index.js +1 -1
  189. package/dist/esm/select/select/index.js +1 -1
  190. package/dist/esm/select/select-dropdown/index.js +1 -1
  191. package/dist/esm/skeleton/index.js +1 -1
  192. package/dist/esm/slider/index.js +1 -1
  193. package/dist/esm/split-view/index.js +1 -1
  194. package/dist/esm/split-view/split-view/index.js +1 -1
  195. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  196. package/dist/esm/stack/index.js +1 -1
  197. package/dist/esm/stepper/index.js +1 -1
  198. package/dist/esm/stepper/step/index.js +1 -1
  199. package/dist/esm/stepper/stepper/index.js +1 -1
  200. package/dist/esm/switch/index.js +1 -1
  201. package/dist/esm/table/index.js +1 -1
  202. package/dist/esm/tabs/index.js +1 -1
  203. package/dist/esm/tabs/tab/index.js +1 -1
  204. package/dist/esm/tabs/tab-bar/index.js +1 -1
  205. package/dist/esm/text-field/index.js +1 -1
  206. package/dist/esm/time-picker/index.js +1 -1
  207. package/dist/esm/toast/index.js +1 -1
  208. package/dist/esm/toolbar/index.js +1 -1
  209. package/dist/esm/tooltip/index.js +1 -1
  210. package/dist/esm/view-switcher/index.js +1 -1
  211. package/dist/esm/view-switcher/view/index.js +1 -1
  212. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
  213. package/esm/autocomplete/autocomplete-adapter.js +1 -1
  214. package/esm/busy-indicator/busy-indicator-adapter.js +1 -1
  215. package/esm/chip-field/chip-field-foundation.js +1 -1
  216. package/esm/chips/chip/chip-adapter.js +2 -2
  217. package/esm/date-picker/date-picker-adapter.js +1 -1
  218. package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
  219. package/esm/dialog/dialog-adapter.js +1 -1
  220. package/esm/field/field-adapter.js +1 -1
  221. package/esm/list/list/list-adapter.js +2 -2
  222. package/esm/list/list-item/list-item.js +1 -1
  223. package/esm/popup/popup-adapter.js +2 -2
  224. package/esm/radio/radio-adapter.js +2 -1
  225. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  226. package/esm/stepper/stepper/stepper-adapter.js +1 -1
  227. package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
  228. package/esm/text-field/text-field-adapter.js +2 -1
  229. package/esm/time-picker/time-picker-adapter.js +2 -1
  230. package/package.json +2 -2
  231. package/styles/list/list-item/_mixins.scss +11 -1
  232. package/styles/list/list-item/_variables.scss +9 -0
  233. package/dist/esm/chunks/chunk.2NSEMS3F.js +0 -7
  234. package/dist/esm/chunks/chunk.2NSEMS3F.js.map +0 -7
  235. package/dist/esm/chunks/chunk.4FBPHKAE.js +0 -7
  236. package/dist/esm/chunks/chunk.4FBPHKAE.js.map +0 -7
  237. package/dist/esm/chunks/chunk.72AUOVCD.js +0 -7
  238. package/dist/esm/chunks/chunk.72AUOVCD.js.map +0 -7
  239. package/dist/esm/chunks/chunk.BABBOL37.js +0 -7
  240. package/dist/esm/chunks/chunk.BABBOL37.js.map +0 -7
  241. package/dist/esm/chunks/chunk.EHF5E5UL.js +0 -7
  242. package/dist/esm/chunks/chunk.EHF5E5UL.js.map +0 -7
  243. package/dist/esm/chunks/chunk.G4BS5GG7.js +0 -7
  244. package/dist/esm/chunks/chunk.G4BS5GG7.js.map +0 -7
  245. package/dist/esm/chunks/chunk.IGTXLDZS.js +0 -7
  246. package/dist/esm/chunks/chunk.IL23S7ME.js +0 -7
  247. package/dist/esm/chunks/chunk.IL23S7ME.js.map +0 -7
  248. package/dist/esm/chunks/chunk.JHY2CKEH.js +0 -7
  249. package/dist/esm/chunks/chunk.JMMMXLY7.js +0 -7
  250. package/dist/esm/chunks/chunk.JMMMXLY7.js.map +0 -7
  251. package/dist/esm/chunks/chunk.K6AFP52A.js +0 -7
  252. package/dist/esm/chunks/chunk.K6AFP52A.js.map +0 -7
  253. package/dist/esm/chunks/chunk.KE6GOYAB.js +0 -7
  254. package/dist/esm/chunks/chunk.KE6GOYAB.js.map +0 -7
  255. package/dist/esm/chunks/chunk.L6WXTCL2.js +0 -7
  256. package/dist/esm/chunks/chunk.MH3BTNU5.js +0 -7
  257. package/dist/esm/chunks/chunk.MH3BTNU5.js.map +0 -7
  258. package/dist/esm/chunks/chunk.OXWKSI6J.js +0 -7
  259. package/dist/esm/chunks/chunk.OXWKSI6J.js.map +0 -7
  260. package/dist/esm/chunks/chunk.PYIFIHDK.js +0 -7
  261. package/dist/esm/chunks/chunk.UV6RI52H.js +0 -12
  262. package/dist/esm/chunks/chunk.V7WKXEZC.js +0 -7
  263. package/dist/esm/chunks/chunk.V7WKXEZC.js.map +0 -7
  264. package/dist/esm/chunks/chunk.XSVUDEOW.js +0 -7
  265. package/dist/esm/chunks/chunk.XSVUDEOW.js.map +0 -7
  266. /package/dist/esm/chunks/{chunk.ZRRUDMBE.js.map → chunk.274MFEUZ.js.map} +0 -0
  267. /package/dist/esm/chunks/{chunk.ARJ3EVVO.js.map → chunk.2KXSGD3S.js.map} +0 -0
  268. /package/dist/esm/chunks/{chunk.VC2BG2RS.js.map → chunk.3FAYFYXF.js.map} +0 -0
  269. /package/dist/esm/chunks/{chunk.G45OZEIS.js.map → chunk.3IXTRC6Z.js.map} +0 -0
  270. /package/dist/esm/chunks/{chunk.77Y3EABF.js.map → chunk.3YT72ZWJ.js.map} +0 -0
  271. /package/dist/esm/chunks/{chunk.WY7DECJD.js.map → chunk.4CWMNWZU.js.map} +0 -0
  272. /package/dist/esm/chunks/{chunk.K2C4W3CO.js.map → chunk.4R6NK524.js.map} +0 -0
  273. /package/dist/esm/chunks/{chunk.G5MGGEFP.js.map → chunk.5KC43VFL.js.map} +0 -0
  274. /package/dist/esm/chunks/{chunk.ILRWZHH3.js.map → chunk.6ATSOUJQ.js.map} +0 -0
  275. /package/dist/esm/chunks/{chunk.NSOALSSD.js.map → chunk.6CO3CIUY.js.map} +0 -0
  276. /package/dist/esm/chunks/{chunk.RYMPSU4J.js.map → chunk.6TTAKWXI.js.map} +0 -0
  277. /package/dist/esm/chunks/{chunk.4WPFFNLH.js.map → chunk.73GVVX4K.js.map} +0 -0
  278. /package/dist/esm/chunks/{chunk.TR5YMNJJ.js.map → chunk.76PI42C5.js.map} +0 -0
  279. /package/dist/esm/chunks/{chunk.IGTXLDZS.js.map → chunk.7BAO5IED.js.map} +0 -0
  280. /package/dist/esm/chunks/{chunk.AFLH5HUG.js.map → chunk.7K44O5RO.js.map} +0 -0
  281. /package/dist/esm/chunks/{chunk.PALRSBSY.js.map → chunk.7SULS4D2.js.map} +0 -0
  282. /package/dist/esm/chunks/{chunk.LYOQ2RGP.js.map → chunk.A4UN74PV.js.map} +0 -0
  283. /package/dist/esm/chunks/{chunk.ZUNZKRRK.js.map → chunk.AMWDVFAU.js.map} +0 -0
  284. /package/dist/esm/chunks/{chunk.47A2CN5U.js.map → chunk.BESB4RGK.js.map} +0 -0
  285. /package/dist/esm/chunks/{chunk.IJW7Z6YD.js.map → chunk.BKAZC53W.js.map} +0 -0
  286. /package/dist/esm/chunks/{chunk.VAKNDCLP.js.map → chunk.BL4IBI6G.js.map} +0 -0
  287. /package/dist/esm/chunks/{chunk.FDLWB4QK.js.map → chunk.BTMBIAL2.js.map} +0 -0
  288. /package/dist/esm/chunks/{chunk.I5BAZWUF.js.map → chunk.CE6NTUWI.js.map} +0 -0
  289. /package/dist/esm/chunks/{chunk.7A6MX6CS.js.map → chunk.CG5CVENX.js.map} +0 -0
  290. /package/dist/esm/chunks/{chunk.HNMFFOUF.js.map → chunk.CN4XKIQI.js.map} +0 -0
  291. /package/dist/esm/chunks/{chunk.EGRUD7S7.js.map → chunk.CX7MOSLM.js.map} +0 -0
  292. /package/dist/esm/chunks/{chunk.XZ4WI7VK.js.map → chunk.D24CE6KE.js.map} +0 -0
  293. /package/dist/esm/chunks/{chunk.CDUN4ONU.js.map → chunk.D5OLAPHE.js.map} +0 -0
  294. /package/dist/esm/chunks/{chunk.NWDZ5CGQ.js.map → chunk.EAGRODVX.js.map} +0 -0
  295. /package/dist/esm/chunks/{chunk.SHTHI473.js.map → chunk.EMV7JGHB.js.map} +0 -0
  296. /package/dist/esm/chunks/{chunk.UBD2DPQN.js.map → chunk.F5CFD2NG.js.map} +0 -0
  297. /package/dist/esm/chunks/{chunk.ROR6JMAE.js.map → chunk.FFVZ6JMP.js.map} +0 -0
  298. /package/dist/esm/chunks/{chunk.7BESNUTG.js.map → chunk.FOLQAW63.js.map} +0 -0
  299. /package/dist/esm/chunks/{chunk.Y72NANFX.js.map → chunk.FPLHVO6D.js.map} +0 -0
  300. /package/dist/esm/chunks/{chunk.4Y2QP7JX.js.map → chunk.G4DG233F.js.map} +0 -0
  301. /package/dist/esm/chunks/{chunk.7UKA4E5A.js.map → chunk.GQCUI7YS.js.map} +0 -0
  302. /package/dist/esm/chunks/{chunk.F2B24WLK.js.map → chunk.H3IPTBWM.js.map} +0 -0
  303. /package/dist/esm/chunks/{chunk.Y4GKBJGI.js.map → chunk.HOXFK44F.js.map} +0 -0
  304. /package/dist/esm/chunks/{chunk.M7QAOQQ4.js.map → chunk.HTH3CEDN.js.map} +0 -0
  305. /package/dist/esm/chunks/{chunk.INCKI5IX.js.map → chunk.IZSUW7WG.js.map} +0 -0
  306. /package/dist/esm/chunks/{chunk.TWZXQQQO.js.map → chunk.JD4APKZS.js.map} +0 -0
  307. /package/dist/esm/chunks/{chunk.N4PVZUJX.js.map → chunk.JDLEPQKN.js.map} +0 -0
  308. /package/dist/esm/chunks/{chunk.UV6RI52H.js.map → chunk.JRUIOKFS.js.map} +0 -0
  309. /package/dist/esm/chunks/{chunk.KU5CXXGS.js.map → chunk.K7HRCGML.js.map} +0 -0
  310. /package/dist/esm/chunks/{chunk.Y5A7RQ5M.js.map → chunk.KII37K76.js.map} +0 -0
  311. /package/dist/esm/chunks/{chunk.RBAVT3XQ.js.map → chunk.M6PJ3PNN.js.map} +0 -0
  312. /package/dist/esm/chunks/{chunk.4NI63FGK.js.map → chunk.MSFGXRCM.js.map} +0 -0
  313. /package/dist/esm/chunks/{chunk.XBW46N2J.js.map → chunk.MWHVRJW5.js.map} +0 -0
  314. /package/dist/esm/chunks/{chunk.ASJHDPFL.js.map → chunk.NEFQWOLN.js.map} +0 -0
  315. /package/dist/esm/chunks/{chunk.JEN6YP2Q.js.map → chunk.NLXSZNQI.js.map} +0 -0
  316. /package/dist/esm/chunks/{chunk.MLV25D2G.js.map → chunk.NMKDIHFB.js.map} +0 -0
  317. /package/dist/esm/chunks/{chunk.XUW3GG46.js.map → chunk.NX4EECNP.js.map} +0 -0
  318. /package/dist/esm/chunks/{chunk.P3IA2WTO.js.map → chunk.ON2K3O3I.js.map} +0 -0
  319. /package/dist/esm/chunks/{chunk.LJU5WSSF.js.map → chunk.P4Z7NC6O.js.map} +0 -0
  320. /package/dist/esm/chunks/{chunk.O4FB4BV5.js.map → chunk.PADHAJLS.js.map} +0 -0
  321. /package/dist/esm/chunks/{chunk.HPDBSBQJ.js.map → chunk.PKVY6EWM.js.map} +0 -0
  322. /package/dist/esm/chunks/{chunk.P5HFRNJW.js.map → chunk.PW7IGEHF.js.map} +0 -0
  323. /package/dist/esm/chunks/{chunk.YDBWGKR4.js.map → chunk.Q5YD3PKM.js.map} +0 -0
  324. /package/dist/esm/chunks/{chunk.D6MLVA5G.js.map → chunk.QAWXAPHR.js.map} +0 -0
  325. /package/dist/esm/chunks/{chunk.BE7PZANN.js.map → chunk.QOA2O575.js.map} +0 -0
  326. /package/dist/esm/chunks/{chunk.H4Z4DHPA.js.map → chunk.RUK5PIER.js.map} +0 -0
  327. /package/dist/esm/chunks/{chunk.JHBCYICS.js.map → chunk.S2YVOMLW.js.map} +0 -0
  328. /package/dist/esm/chunks/{chunk.T76JYRPR.js.map → chunk.SAQSXX2T.js.map} +0 -0
  329. /package/dist/esm/chunks/{chunk.HI2DQJZG.js.map → chunk.SATUJNQX.js.map} +0 -0
  330. /package/dist/esm/chunks/{chunk.BTBHIIGI.js.map → chunk.SQTM36C3.js.map} +0 -0
  331. /package/dist/esm/chunks/{chunk.RB5BTA5N.js.map → chunk.T6NVM7TN.js.map} +0 -0
  332. /package/dist/esm/chunks/{chunk.JHY2CKEH.js.map → chunk.UHU4FUIS.js.map} +0 -0
  333. /package/dist/esm/chunks/{chunk.GCR7QZRO.js.map → chunk.USXO7YKN.js.map} +0 -0
  334. /package/dist/esm/chunks/{chunk.FRYLJWYL.js.map → chunk.UW2HWAVL.js.map} +0 -0
  335. /package/dist/esm/chunks/{chunk.RE5X26QT.js.map → chunk.VT2QJ7SM.js.map} +0 -0
  336. /package/dist/esm/chunks/{chunk.UT7QUGAO.js.map → chunk.VTB27IL7.js.map} +0 -0
  337. /package/dist/esm/chunks/{chunk.ELV22KTH.js.map → chunk.VUOTKGLB.js.map} +0 -0
  338. /package/dist/esm/chunks/{chunk.L6WXTCL2.js.map → chunk.XFAOB6LU.js.map} +0 -0
  339. /package/dist/esm/chunks/{chunk.TBY35XZK.js.map → chunk.XMAKEISF.js.map} +0 -0
  340. /package/dist/esm/chunks/{chunk.WP4QOOIS.js.map → chunk.XQ5CDWDY.js.map} +0 -0
  341. /package/dist/esm/chunks/{chunk.G3ZTZ4AN.js.map → chunk.YG24YPYO.js.map} +0 -0
  342. /package/dist/esm/chunks/{chunk.BJE6O5ES.js.map → chunk.YJTE34LC.js.map} +0 -0
  343. /package/dist/esm/chunks/{chunk.4BEI55KI.js.map → chunk.YMBLWKRP.js.map} +0 -0
  344. /package/dist/esm/chunks/{chunk.HBMNXZES.js.map → chunk.ZCQO3N25.js.map} +0 -0
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as T}from"./chunk.4DAIIJ37.js";import{a as S}from"./chunk.G5MGGEFP.js";import{a as h}from"./chunk.KTGSZEAG.js";import{a as x,b as M}from"./chunk.BE7PZANN.js";import{a as L,e as O,g as A}from"./chunk.Y4GKBJGI.js";import{b as C,d as k,h as m,x as w}from"./chunk.PN26D52V.js";import{b as y,k as E}from"./chunk.J2M2MXP2.js";import{f as u}from"./chunk.MCIQXNKY.js";var v=`${M}calendar-menu`,U={ANIMATION_TYPE:"animation-type",DATA_ANIMATION:"data-animation",DATA_VALUE:"data-value",POPUP_CONTEXT:"forge-popup-context",PREVENT_FOCUS:"prevent-focus"},c={BACKDROP:"forge-calendar-menu__backdrop",CLOSING:"forge-calendar-menu--closing",GRID:"forge-calendar-menu__grid",GRID_ITEM:"forge-calendar-menu__item--grid",GRID_FOUR_COL:"forge-calendar-menu__grid--four-col",GRID_THREE_COL:"forge-calendar-menu__grid--three-col",ITEM:"forge-calendar-menu__item",ITEM_FOCUSED:"forge-calendar-menu__item--focused",ITEM_SELECTED:"forge-calendar-menu__item--selected",LIST:"forge-calendar-menu__list",LIST_ITEM:"forge-calendar-menu__item--list",LIST_WRAPPER:"forge-calendar-menu__list__wrapper",MDC_RIPPLE_UPGRADED_FOCUSED:"mdc-ripple-upgraded--background-focused",OPEN:"forge-calendar-menu--open",REPLACING_VIEW:"forge-calendar-menu--replacing-view",SLIDE_LEFT:"forge-calendar-menu--slide-left",SLIDE_RIGHT:"forge-calendar-menu--slide-right",VIEW:"forge-calendar-menu__view"},I={SCROLL_SPY_BOTTOM:"scroll-spy-bottom",SCROLL_SPY_TOP:"scroll-spy-top"},G={ITEM:"menu-item",ITEM_BUTTON:"menu-item-button",ITEM_CONTENT:"menu-item-content",MENU:"menu"},H={CONTAINER:".forge-calendar-menu",FOCUSED:`.${c.ITEM_FOCUSED}`,GRID:`.${c.GRID}`,ITEM:`.${c.ITEM}`,LIST:`.${c.LIST}`,LIST_WRAPPER:`.${c.LIST_WRAPPER}`,SCROLL_SPY_BOTTOM:`#${I.SCROLL_SPY_BOTTOM}`,SCROLL_SPY_TOP:`#${I.SCROLL_SPY_TOP}`,SELECTED:`.${c.ITEM_SELECTED}`,VIEW:`.${c.VIEW}`},X={FOCUS_CHANGE:`${v}-focus-change`,SELECT:`${v}-select`},z={FOUR_COL:4,LARGE_ITEM_SET:13,LIST_SLICE_SIZE:20,THREE_COL:3},i={elementName:v,attributes:U,classes:c,ids:I,parts:G,selectors:H,events:X,numbers:z};function f(o){let t=document.createElement("div");t.setAttribute("part",i.parts.MENU),t.classList.add(i.classes.VIEW,i.classes.GRID);let e;return o.length>12?(t.classList.add(i.classes.GRID_FOUR_COL),e=F(o)):(t.classList.add(i.classes.GRID_THREE_COL),e=F(o)),e.forEach(r=>t.appendChild(r)),t}function F(o){return o.map(t=>{let e=document.createElement("div");return e.classList.add(i.classes.ITEM,i.classes.GRID_ITEM),e.innerText=t.label,e.setAttribute("role","button"),e.setAttribute("part",i.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute(i.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.add(i.classes.ITEM_SELECTED),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true"),e})}function R(o){let t=document.createElement("div"),e=document.createElement("div");return t.classList.add(i.classes.VIEW,i.classes.LIST_WRAPPER),e.classList.add(i.classes.LIST),e.setAttribute("role","list"),e.appendChild(P(i.ids.SCROLL_SPY_TOP)),_(o).forEach(r=>e.appendChild(r)),e.appendChild(P(i.ids.SCROLL_SPY_BOTTOM)),t.appendChild(e),t}function _(o){return o.map(t=>{let e=document.createElement("div");return e.innerText=t.label,e.classList.add(i.classes.ITEM,i.classes.LIST_ITEM),e.setAttribute("part",i.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute("role","listitem"),e.setAttribute(i.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.toggle(i.classes.ITEM_SELECTED,!0),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true"),e})}function P(o){let t=document.createElement("div");return t.id=o,t.setAttribute("aria-hidden","true"),t}function p(o){for(;o.childNodes.length>1;)o.firstChild&&o.removeChild(o.firstChild)}var g=class extends S{constructor(e){super(e);this.component=e;this._container=A(e,i.selectors.CONTAINER)}registerClickListener(e){this._container.addEventListener("click",e)}unregisterClickListener(e){this._container.removeEventListener("click",e)}registerIntersectionObserver(e){let r=this._container.querySelector(i.selectors.LIST_WRAPPER);if(!r)return;let n={root:r};this._intersectionObserver=new IntersectionObserver(e,n);let a=this._container.querySelector(i.selectors.SCROLL_SPY_BOTTOM),s=this._container.querySelector(i.selectors.SCROLL_SPY_TOP);a&&this._intersectionObserver.observe(a),s&&this._intersectionObserver.observe(s)}unregisterIntersectionObserver(){this._intersectionObserver&&(this._intersectionObserver.disconnect(),this._intersectionObserver=void 0)}setAnimationType(e){this._container.setAttribute(i.attributes.DATA_ANIMATION,e)}setClosed(){this._container.classList.remove(i.classes.OPEN),this._container.classList.add(i.classes.CLOSING),m(this._container,i.classes.CLOSING,!0).then(()=>{k(this._container),this.toggleHostAttribute("hidden",!0)})}setOpenAsGrid(e,r,n,a,s){let d=f(e);s&&m(this._container,i.classes.REPLACING_VIEW,!0).then(()=>{p(this._container),this.setFocusAtIndex(r,n,a)}),this._container.appendChild(d),this.toggleHostAttribute("hidden",!1),this._container.classList.add(i.classes.OPEN),s||this.setFocusAtIndex(r,n,a)}setOpenAsList(e,r,n,a,s){let d=R(e);s&&m(this._container,i.classes.REPLACING_VIEW,!0).then(()=>{p(this._container),this.setFocusAtIndex(r,n,a)}),this._container.appendChild(d),this.toggleHostAttribute("hidden",!1),this._container.classList.add(i.classes.OPEN),this._scrollItemIntoView("selected"),s||this.setFocusAtIndex(r,n,a)}appendListItemsToStart(e){let r=this._container.querySelector(i.selectors.LIST_WRAPPER),n=this._container.querySelector(i.selectors.LIST),a=n==null?void 0:n.querySelector(i.selectors.ITEM);if(r&&n&&a){let s=r.scrollTop,d=r.scrollHeight-r.clientHeight;_(e).forEach(D=>{n.insertBefore(D,a)});let N=r.scrollHeight-r.clientHeight;r.scrollTop=s+(N-d)}}appendListItemsToEnd(e){let r=this._container.querySelector(i.selectors.LIST),n=this._container.querySelector(i.selectors.SCROLL_SPY_BOTTOM);r&&n&&_(e).forEach(a=>{r.insertBefore(a,n)})}animateInFromLeft(e,r){m(this._container,i.classes.SLIDE_RIGHT,!0).then(()=>{p(this._container),r&&r()});let n=f(e);this._container.appendChild(n)}animateInFromRight(e,r){m(this._container,i.classes.SLIDE_LEFT,!0).then(()=>{p(this._container),r&&r()});let n=f(e);this._container.appendChild(n)}setFocusAtIndex(e,r,n){var d;let a=this._container.querySelector(i.selectors.FOCUSED);a==null||a.classList.remove(i.classes.ITEM_FOCUSED,i.classes.MDC_RIPPLE_UPGRADED_FOCUSED),a==null||a.setAttribute("tabindex","-1");let s=(d=this._container.querySelectorAll(i.selectors.ITEM))==null?void 0:d[e];s&&(s.classList.add(i.classes.ITEM_FOCUSED),s.setAttribute("tabindex",n?"-1":"0"),r&&!n?s.focus():n&&s.classList.add(i.classes.MDC_RIPPLE_UPGRADED_FOCUSED),this._scrollItemIntoView("focused"))}_scrollItemIntoView(e){let r=this._container.querySelector(i.selectors.LIST),n=r==null?void 0:r.querySelector(e==="selected"?i.selectors.SELECTED:i.selectors.FOCUSED);r&&n&&w(r.parentElement,n,e==="selected"?"auto":"smooth",e==="selected"?"center":"nearest")}};var b=class{constructor(t){this._adapter=t;this._animationType="scale";this._columnCount=3;this._focusedIndex=0;this._list=!1;this._open=!1;this._options=[];this._preventFocus=!1;this._sliceEnd=-1;this._sliceStart=-1;this._clickListener=e=>this._onClick(e),this._intersectionObserverCallback=e=>this._onIntersection(e)}initialize(){this._applyAnimationType(),this._applyPreventFocus(),this._adapter.setHostAttribute("exportparts",Object.values(i.parts).join(", ")),this._adapter.toggleHostAttribute("hidden",!0),this._adapter.registerClickListener(this._clickListener)}disconnect(){this._adapter.unregisterClickListener(this._clickListener),this._adapter.unregisterIntersectionObserver()}openAsGrid(t,e){this._list=!1,this._options=t,this._focusedIndex=0,this._setColumnCount(),this._adapter.setOpenAsGrid(t,this._focusedIndex,e,this._preventFocus,this._open),this._setGridListeners(),this._open=!0,this._emitFocusChangeEvent()}openAsList(t,e){this._list=!0,this._options=t;let r=this._getOptionSliceIncludingSelected();this._focusedIndex=Math.max(t.findIndex(n=>n.selected),this._sliceStart),this._adapter.setOpenAsList(r,this._focusedIndex-this._sliceStart,e,this._preventFocus,this._open),this._setListListeners(),this._open=!0,this._emitFocusChangeEvent()}close(){this._open=!1,this._options=[],this._adapter.setClosed()}animateIn(t,e,r){let n=()=>{this._setFocusFromStoredIndex(r)};e==="left"?this._adapter.animateInFromLeft(t,n):this._adapter.animateInFromRight(t,n),this._options=t,this._setColumnCount()}selectFocusedItem(){var t;this._adapter.emitHostEvent(i.events.SELECT,(t=this._options[this._focusedIndex])==null?void 0:t.value)}moveFocusBackward(){if(this._list)return!0;let t=this._focusedIndex-1,e=t>=0&&t%this._columnCount!==this._columnCount-1;return this._focusedIndexAfterAnimation=e?void 0:t+this._columnCount,this._tryMoveFocus(t,e)}moveFocusDown(){if(this._list){let t=Math.min(this._focusedIndex+=1,this._options.length-1);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex+this._columnCount,e=t<this._options.length;this._focusedIndexAfterAnimation=e?void 0:t%this._columnCount,this._tryMoveFocus(t,e)}}moveFocusForward(){if(this._list)return!0;let t=this._focusedIndex+1,e=t<this._options.length&&t%this._columnCount!==0;return this._focusedIndexAfterAnimation=e?void 0:t-this._columnCount,this._tryMoveFocus(t,e)}moveFocusUp(){if(this._list){let t=Math.max(this._focusedIndex-=1,0);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex-this._columnCount,e=t>=0;this._focusedIndexAfterAnimation=e?void 0:this._options.length+t,this._tryMoveFocus(t,e)}}_tryMoveFocus(t,e){var r;return e&&!((r=this._options[t])!=null&&r.disabled)&&(this._focusedIndex=t,this._adapter.setFocusAtIndex(this._list?this._focusedIndex-this._sliceStart:this._focusedIndex,!0,this._preventFocus),this._emitFocusChangeEvent()),e}_setFocusFromStoredIndex(t){var e,r;this._focusedIndexAfterAnimation!==void 0&&(this._options[this._focusedIndexAfterAnimation]&&!((e=this._options[this._focusedIndexAfterAnimation])!=null&&e.disabled)?this._focusedIndex=this._focusedIndexAfterAnimation:(r=this._options[0])!=null&&r.disabled?this._focusedIndex=this._options.findIndex(n=>!n.disabled):this._focusedIndex=this._options.length-this._options.slice().reverse().findIndex(n=>!n.disabled)-1,this._focusedIndexAfterAnimation=void 0,this._adapter.setFocusAtIndex(this._focusedIndex,t,this._preventFocus),this._emitFocusChangeEvent())}_onClick(t){let e=T(t).find(n=>n.classList&&n.classList.contains(i.classes.ITEM)),r=e==null?void 0:e.getAttribute(i.attributes.DATA_VALUE);y(r)&&this._adapter.emitHostEvent(i.events.SELECT,+r)}_onIntersection(t){this._sliceStart>0&&t.some(e=>e.target.id===i.ids.SCROLL_SPY_TOP&&e.isIntersecting)&&this._adapter.appendListItemsToStart(this._getPreviousOptionsSlice()),this._sliceEnd<this._options.length&&t.some(e=>e.target.id===i.ids.SCROLL_SPY_BOTTOM&&e.isIntersecting)&&this._adapter.appendListItemsToEnd(this._getNextOptionsSlice())}_setColumnCount(){this._columnCount=this._options.length>=i.numbers.LARGE_ITEM_SET?i.numbers.FOUR_COL:i.numbers.THREE_COL}_emitFocusChangeEvent(){var t;this._adapter.emitHostEvent(i.events.FOCUS_CHANGE,(t=this._options[this._focusedIndex])==null?void 0:t.value)}_setGridListeners(){this._adapter.unregisterIntersectionObserver()}_setListListeners(){this._adapter.unregisterIntersectionObserver(),this._adapter.registerIntersectionObserver(this._intersectionObserverCallback)}_getOptionSliceIncludingSelected(){if(this._options.length<=i.numbers.LIST_SLICE_SIZE)return this._sliceStart=0,this._sliceEnd=this._options.length,this._options.slice();let t=Math.max(this._options.findIndex(n=>n.selected),0),e=Math.max(Math.floor(t-i.numbers.LIST_SLICE_SIZE/2),0),r=e+i.numbers.LIST_SLICE_SIZE;return r>this._options.length&&(e=this._options.length-1-i.numbers.LIST_SLICE_SIZE,r=this._options.length),this._sliceStart=e,this._sliceEnd=r,this._options.slice(this._sliceStart,this._sliceEnd)}_getNextOptionsSlice(){let t=Math.min(this._sliceEnd+i.numbers.LIST_SLICE_SIZE,this._options.length),e=this._options.slice(this._sliceEnd,t);return this._sliceEnd=t,e}_getPreviousOptionsSlice(){let t=Math.max(this._sliceStart-i.numbers.LIST_SLICE_SIZE,0),e=this._options.slice(t,this._sliceStart);return this._sliceStart=t,e}_applyAnimationType(){this._adapter.setHostAttribute(i.attributes.ANIMATION_TYPE,this._animationType),this._adapter.setAnimationType(this._animationType)}_applyPreventFocus(){this._adapter.toggleHostAttribute(i.attributes.PREVENT_FOCUS,this._preventFocus),this._adapter.setFocusAtIndex(this._focusedIndex,!1,this._preventFocus)}get animationType(){return this._animationType}set animationType(t){this._animationType!==t&&(this._animationType=t,this._applyAnimationType())}get preventFocus(){return this._preventFocus}set preventFocus(t){this._preventFocus!==t&&(this._preventFocus=t,this._applyPreventFocus())}};var V='<template><div class="forge-calendar-menu" part="root"></div></template>',B='.forge-calendar-menu{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);position:relative;height:100%;width:100%;overflow:hidden}.forge-calendar-menu__view{position:absolute;top:0;left:0;height:100%;width:100%;background-color:inherit}.forge-calendar-menu__grid{max-height:320px;max-height:var(--forge-calendar-menu-max-height,320px);display:grid;gap:16px;justify-items:center;-webkit-box-align:center;align-items:center;padding:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-calendar-menu__grid--three-col{grid-template-columns:repeat(3,1fr)}.forge-calendar-menu__grid--four-col{grid-template-columns:repeat(4,1fr)}.forge-calendar-menu__list{position:relative;background-color:inherit}.forge-calendar-menu__list__wrapper{position:relative;height:100%;overflow:auto}.forge-calendar-menu__list__wrapper::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-calendar-menu__item--grid{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;width:100%;height:100%;border-radius:4px;overflow:hidden;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar-menu__item--grid:not([disabled]){--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;border:1px solid #e0e0e0;cursor:pointer}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-calendar-menu__item--grid:not([disabled])::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-calendar-menu__item--grid:not([disabled])::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-surface--hover::before,.forge-calendar-menu__item--grid:not([disabled]):hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar-menu__item--grid[disabled]{color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected{color:#fff;color:var(--mdc-theme-on-primary,#fff);background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected:hover{opacity:.87}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected.mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected:focus{opacity:.54}.forge-calendar-menu__item--list{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;margin:0 4px;width:calc(100% - 8px);height:48px;border-radius:4px;overflow:hidden;text-align:center;cursor:pointer}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-calendar-menu__item--list::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-calendar-menu__item--list::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar-menu__item--list.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--list.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar-menu__item--list.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar-menu__item--list.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar-menu__item--list.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-calendar-menu__item--list.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-calendar-menu__item--list.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar-menu__item--list.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar-menu__item--list.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar-menu__item--list--activated::before{opacity:.12;opacity:var(--mdc-ripple-activated-opacity, .12)}.forge-calendar-menu__item--list--activated::after,.forge-calendar-menu__item--list--activated::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--list--activated.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list--activated:hover::before{opacity:.16;opacity:var(--mdc-ripple-hover-opacity, .16)}.forge-calendar-menu__item--list--activated.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-calendar-menu__item--list--activated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-calendar-menu__item--list--selected::before{opacity:.08;opacity:var(--mdc-ripple-selected-opacity, .08)}.forge-calendar-menu__item--list--selected::after,.forge-calendar-menu__item--list--selected::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--list--selected.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list--selected:hover::before{opacity:.12;opacity:var(--mdc-ripple-hover-opacity, .12)}.forge-calendar-menu__item--list--selected.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.2;opacity:var(--mdc-ripple-focus-opacity, .2)}.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.2;opacity:var(--mdc-ripple-press-opacity, .2)}.forge-calendar-menu__item--list--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.2)}.forge-calendar-menu__item--list--selected:focus:hover.mdc-ripple-upgraded--background-focused:not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.28}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.12}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation):hover::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation):hover::before{opacity:.16}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::after,.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::after,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before{background-color:#000;background-color:var(--mdc-theme-on-surface,#000)}.forge-calendar-menu__item--list--active:focus.forge-list-item--selected.forge-list-item--activated:not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.24}.forge-calendar-menu__item--list--active:focus.forge-list-item--selected.forge-list-item--activated:not(.mdc-ripple-upgraded--foreground-activation):hover::before{opacity:.28}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected:hover{opacity:.87}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected.mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--list.forge-calendar-menu__item--selected:focus{opacity:.54}.forge-calendar-menu__item .mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--focused,.forge-calendar-menu__item:focus{outline:0}.forge-calendar-menu--open{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-open;animation-name:scale-open;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--open[data-animation=fade]{-webkit-animation-name:fade-in;animation-name:fade-in}.forge-calendar-menu--open[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--open{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--closing{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-closed;animation-name:scale-closed;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--closing[data-animation=fade]{-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--closing[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--closing{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-right;animation-name:slide-out-to-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-left;animation-name:slide-in-from-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-left;animation-name:slide-out-to-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-right;animation-name:slide-in-from-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-in;animation-name:fade-in}#scroll-spy-bottom{position:absolute;bottom:0;height:48px;pointer-events:none}#scroll-spy-top{position:absolute;top:0;height:48px;pointer-events:none}@-webkit-keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}:host{display:block;position:absolute;top:0;left:0;height:100%;width:100%}:host([hidden]){display:none}:host([forge-popup-context=true]) .forge-calendar-menu{background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff)}',l=class extends HTMLElement{constructor(){super();O(this,V,B),this._foundation=new b(new g(this))}static get observedAttributes(){return[i.attributes.ANIMATION_TYPE,i.attributes.PREVENT_FOCUS]}connectedCallback(){!this.hasAttribute(i.attributes.POPUP_CONTEXT)&&C(this).some(e=>e.tagName.toLowerCase()==="forge-popup")&&this.setAttribute(i.attributes.POPUP_CONTEXT,"true"),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,r,n){switch(e){case i.attributes.ANIMATION_TYPE:this.animationType=n;break;case i.attributes.PREVENT_FOCUS:this.preventFocus=E(n);break}}animateIn(e,r,n=!1){this._foundation.animateIn(e,r,n)}close(){this._foundation.close()}moveFocusDown(){this._foundation.moveFocusDown()}moveFocusBackward(){return this._foundation.moveFocusBackward()}moveFocusForward(){return this._foundation.moveFocusForward()}moveFocusUp(){this._foundation.moveFocusUp()}openAsGrid(e,r=!1){this._foundation.openAsGrid(e,r)}openAsList(e,r=!1){this._foundation.openAsList(e,r)}selectFocusedItem(){this._foundation.selectFocusedItem()}};u([h()],l.prototype,"animationType",2),u([h()],l.prototype,"preventFocus",2),l=u([x({name:i.elementName})],l);function ye(){L(l)}export{i as a,f as b,F as c,R as d,_ as e,P as f,p as g,g as h,b as i,l as j,ye as k};
7
- //# sourceMappingURL=chunk.O4FB4BV5.js.map
6
+ import{a as T}from"./chunk.4DAIIJ37.js";import{a as S}from"./chunk.5KC43VFL.js";import{a as h}from"./chunk.KTGSZEAG.js";import{a as x,b as M}from"./chunk.QOA2O575.js";import{a as L,e as O,g as A}from"./chunk.HOXFK44F.js";import{b as C,d as k,h as m,x as w}from"./chunk.4LA6HEA7.js";import{b as y,k as E}from"./chunk.J2M2MXP2.js";import{f as u}from"./chunk.MCIQXNKY.js";var v=`${M}calendar-menu`,U={ANIMATION_TYPE:"animation-type",DATA_ANIMATION:"data-animation",DATA_VALUE:"data-value",POPUP_CONTEXT:"forge-popup-context",PREVENT_FOCUS:"prevent-focus"},c={BACKDROP:"forge-calendar-menu__backdrop",CLOSING:"forge-calendar-menu--closing",GRID:"forge-calendar-menu__grid",GRID_ITEM:"forge-calendar-menu__item--grid",GRID_FOUR_COL:"forge-calendar-menu__grid--four-col",GRID_THREE_COL:"forge-calendar-menu__grid--three-col",ITEM:"forge-calendar-menu__item",ITEM_FOCUSED:"forge-calendar-menu__item--focused",ITEM_SELECTED:"forge-calendar-menu__item--selected",LIST:"forge-calendar-menu__list",LIST_ITEM:"forge-calendar-menu__item--list",LIST_WRAPPER:"forge-calendar-menu__list__wrapper",MDC_RIPPLE_UPGRADED_FOCUSED:"mdc-ripple-upgraded--background-focused",OPEN:"forge-calendar-menu--open",REPLACING_VIEW:"forge-calendar-menu--replacing-view",SLIDE_LEFT:"forge-calendar-menu--slide-left",SLIDE_RIGHT:"forge-calendar-menu--slide-right",VIEW:"forge-calendar-menu__view"},I={SCROLL_SPY_BOTTOM:"scroll-spy-bottom",SCROLL_SPY_TOP:"scroll-spy-top"},G={ITEM:"menu-item",ITEM_BUTTON:"menu-item-button",ITEM_CONTENT:"menu-item-content",MENU:"menu"},H={CONTAINER:".forge-calendar-menu",FOCUSED:`.${c.ITEM_FOCUSED}`,GRID:`.${c.GRID}`,ITEM:`.${c.ITEM}`,LIST:`.${c.LIST}`,LIST_WRAPPER:`.${c.LIST_WRAPPER}`,SCROLL_SPY_BOTTOM:`#${I.SCROLL_SPY_BOTTOM}`,SCROLL_SPY_TOP:`#${I.SCROLL_SPY_TOP}`,SELECTED:`.${c.ITEM_SELECTED}`,VIEW:`.${c.VIEW}`},X={FOCUS_CHANGE:`${v}-focus-change`,SELECT:`${v}-select`},z={FOUR_COL:4,LARGE_ITEM_SET:13,LIST_SLICE_SIZE:20,THREE_COL:3},i={elementName:v,attributes:U,classes:c,ids:I,parts:G,selectors:H,events:X,numbers:z};function f(o){let t=document.createElement("div");t.setAttribute("part",i.parts.MENU),t.classList.add(i.classes.VIEW,i.classes.GRID);let e;return o.length>12?(t.classList.add(i.classes.GRID_FOUR_COL),e=F(o)):(t.classList.add(i.classes.GRID_THREE_COL),e=F(o)),e.forEach(r=>t.appendChild(r)),t}function F(o){return o.map(t=>{let e=document.createElement("div");return e.classList.add(i.classes.ITEM,i.classes.GRID_ITEM),e.innerText=t.label,e.setAttribute("role","button"),e.setAttribute("part",i.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute(i.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.add(i.classes.ITEM_SELECTED),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true"),e})}function R(o){let t=document.createElement("div"),e=document.createElement("div");return t.classList.add(i.classes.VIEW,i.classes.LIST_WRAPPER),e.classList.add(i.classes.LIST),e.setAttribute("role","list"),e.appendChild(P(i.ids.SCROLL_SPY_TOP)),_(o).forEach(r=>e.appendChild(r)),e.appendChild(P(i.ids.SCROLL_SPY_BOTTOM)),t.appendChild(e),t}function _(o){return o.map(t=>{let e=document.createElement("div");return e.innerText=t.label,e.classList.add(i.classes.ITEM,i.classes.LIST_ITEM),e.setAttribute("part",i.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute("role","listitem"),e.setAttribute(i.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.toggle(i.classes.ITEM_SELECTED,!0),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true"),e})}function P(o){let t=document.createElement("div");return t.id=o,t.setAttribute("aria-hidden","true"),t}function p(o){for(;o.childNodes.length>1;)o.firstChild&&o.removeChild(o.firstChild)}var g=class extends S{constructor(e){super(e);this.component=e;this._container=A(e,i.selectors.CONTAINER)}registerClickListener(e){this._container.addEventListener("click",e)}unregisterClickListener(e){this._container.removeEventListener("click",e)}registerIntersectionObserver(e){let r=this._container.querySelector(i.selectors.LIST_WRAPPER);if(!r)return;let n={root:r};this._intersectionObserver=new IntersectionObserver(e,n);let a=this._container.querySelector(i.selectors.SCROLL_SPY_BOTTOM),s=this._container.querySelector(i.selectors.SCROLL_SPY_TOP);a&&this._intersectionObserver.observe(a),s&&this._intersectionObserver.observe(s)}unregisterIntersectionObserver(){this._intersectionObserver&&(this._intersectionObserver.disconnect(),this._intersectionObserver=void 0)}setAnimationType(e){this._container.setAttribute(i.attributes.DATA_ANIMATION,e)}setClosed(){this._container.classList.remove(i.classes.OPEN),this._container.classList.add(i.classes.CLOSING),m(this._container,i.classes.CLOSING,!0).then(()=>{k(this._container),this.toggleHostAttribute("hidden",!0)})}setOpenAsGrid(e,r,n,a,s){let d=f(e);s&&m(this._container,i.classes.REPLACING_VIEW,!0).then(()=>{p(this._container),this.setFocusAtIndex(r,n,a)}),this._container.appendChild(d),this.toggleHostAttribute("hidden",!1),this._container.classList.add(i.classes.OPEN),s||this.setFocusAtIndex(r,n,a)}setOpenAsList(e,r,n,a,s){let d=R(e);s&&m(this._container,i.classes.REPLACING_VIEW,!0).then(()=>{p(this._container),this.setFocusAtIndex(r,n,a)}),this._container.appendChild(d),this.toggleHostAttribute("hidden",!1),this._container.classList.add(i.classes.OPEN),this._scrollItemIntoView("selected"),s||this.setFocusAtIndex(r,n,a)}appendListItemsToStart(e){let r=this._container.querySelector(i.selectors.LIST_WRAPPER),n=this._container.querySelector(i.selectors.LIST),a=n==null?void 0:n.querySelector(i.selectors.ITEM);if(r&&n&&a){let s=r.scrollTop,d=r.scrollHeight-r.clientHeight;_(e).forEach(D=>{n.insertBefore(D,a)});let N=r.scrollHeight-r.clientHeight;r.scrollTop=s+(N-d)}}appendListItemsToEnd(e){let r=this._container.querySelector(i.selectors.LIST),n=this._container.querySelector(i.selectors.SCROLL_SPY_BOTTOM);r&&n&&_(e).forEach(a=>{r.insertBefore(a,n)})}animateInFromLeft(e,r){m(this._container,i.classes.SLIDE_RIGHT,!0).then(()=>{p(this._container),r&&r()});let n=f(e);this._container.appendChild(n)}animateInFromRight(e,r){m(this._container,i.classes.SLIDE_LEFT,!0).then(()=>{p(this._container),r&&r()});let n=f(e);this._container.appendChild(n)}setFocusAtIndex(e,r,n){var d;let a=this._container.querySelector(i.selectors.FOCUSED);a==null||a.classList.remove(i.classes.ITEM_FOCUSED,i.classes.MDC_RIPPLE_UPGRADED_FOCUSED),a==null||a.setAttribute("tabindex","-1");let s=(d=this._container.querySelectorAll(i.selectors.ITEM))==null?void 0:d[e];s&&(s.classList.add(i.classes.ITEM_FOCUSED),s.setAttribute("tabindex",n?"-1":"0"),r&&!n?s.focus():n&&s.classList.add(i.classes.MDC_RIPPLE_UPGRADED_FOCUSED),this._scrollItemIntoView("focused"))}_scrollItemIntoView(e){let r=this._container.querySelector(i.selectors.LIST),n=r==null?void 0:r.querySelector(e==="selected"?i.selectors.SELECTED:i.selectors.FOCUSED);r&&n&&w(r.parentElement,n,e==="selected"?"auto":"smooth",e==="selected"?"center":"nearest")}};var b=class{constructor(t){this._adapter=t;this._animationType="scale";this._columnCount=3;this._focusedIndex=0;this._list=!1;this._open=!1;this._options=[];this._preventFocus=!1;this._sliceEnd=-1;this._sliceStart=-1;this._clickListener=e=>this._onClick(e),this._intersectionObserverCallback=e=>this._onIntersection(e)}initialize(){this._applyAnimationType(),this._applyPreventFocus(),this._adapter.setHostAttribute("exportparts",Object.values(i.parts).join(", ")),this._adapter.toggleHostAttribute("hidden",!0),this._adapter.registerClickListener(this._clickListener)}disconnect(){this._adapter.unregisterClickListener(this._clickListener),this._adapter.unregisterIntersectionObserver()}openAsGrid(t,e){this._list=!1,this._options=t,this._focusedIndex=0,this._setColumnCount(),this._adapter.setOpenAsGrid(t,this._focusedIndex,e,this._preventFocus,this._open),this._setGridListeners(),this._open=!0,this._emitFocusChangeEvent()}openAsList(t,e){this._list=!0,this._options=t;let r=this._getOptionSliceIncludingSelected();this._focusedIndex=Math.max(t.findIndex(n=>n.selected),this._sliceStart),this._adapter.setOpenAsList(r,this._focusedIndex-this._sliceStart,e,this._preventFocus,this._open),this._setListListeners(),this._open=!0,this._emitFocusChangeEvent()}close(){this._open=!1,this._options=[],this._adapter.setClosed()}animateIn(t,e,r){let n=()=>{this._setFocusFromStoredIndex(r)};e==="left"?this._adapter.animateInFromLeft(t,n):this._adapter.animateInFromRight(t,n),this._options=t,this._setColumnCount()}selectFocusedItem(){var t;this._adapter.emitHostEvent(i.events.SELECT,(t=this._options[this._focusedIndex])==null?void 0:t.value)}moveFocusBackward(){if(this._list)return!0;let t=this._focusedIndex-1,e=t>=0&&t%this._columnCount!==this._columnCount-1;return this._focusedIndexAfterAnimation=e?void 0:t+this._columnCount,this._tryMoveFocus(t,e)}moveFocusDown(){if(this._list){let t=Math.min(this._focusedIndex+=1,this._options.length-1);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex+this._columnCount,e=t<this._options.length;this._focusedIndexAfterAnimation=e?void 0:t%this._columnCount,this._tryMoveFocus(t,e)}}moveFocusForward(){if(this._list)return!0;let t=this._focusedIndex+1,e=t<this._options.length&&t%this._columnCount!==0;return this._focusedIndexAfterAnimation=e?void 0:t-this._columnCount,this._tryMoveFocus(t,e)}moveFocusUp(){if(this._list){let t=Math.max(this._focusedIndex-=1,0);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex-this._columnCount,e=t>=0;this._focusedIndexAfterAnimation=e?void 0:this._options.length+t,this._tryMoveFocus(t,e)}}_tryMoveFocus(t,e){var r;return e&&!((r=this._options[t])!=null&&r.disabled)&&(this._focusedIndex=t,this._adapter.setFocusAtIndex(this._list?this._focusedIndex-this._sliceStart:this._focusedIndex,!0,this._preventFocus),this._emitFocusChangeEvent()),e}_setFocusFromStoredIndex(t){var e,r;this._focusedIndexAfterAnimation!==void 0&&(this._options[this._focusedIndexAfterAnimation]&&!((e=this._options[this._focusedIndexAfterAnimation])!=null&&e.disabled)?this._focusedIndex=this._focusedIndexAfterAnimation:(r=this._options[0])!=null&&r.disabled?this._focusedIndex=this._options.findIndex(n=>!n.disabled):this._focusedIndex=this._options.length-this._options.slice().reverse().findIndex(n=>!n.disabled)-1,this._focusedIndexAfterAnimation=void 0,this._adapter.setFocusAtIndex(this._focusedIndex,t,this._preventFocus),this._emitFocusChangeEvent())}_onClick(t){let e=T(t).find(n=>n.classList&&n.classList.contains(i.classes.ITEM)),r=e==null?void 0:e.getAttribute(i.attributes.DATA_VALUE);y(r)&&this._adapter.emitHostEvent(i.events.SELECT,+r)}_onIntersection(t){this._sliceStart>0&&t.some(e=>e.target.id===i.ids.SCROLL_SPY_TOP&&e.isIntersecting)&&this._adapter.appendListItemsToStart(this._getPreviousOptionsSlice()),this._sliceEnd<this._options.length&&t.some(e=>e.target.id===i.ids.SCROLL_SPY_BOTTOM&&e.isIntersecting)&&this._adapter.appendListItemsToEnd(this._getNextOptionsSlice())}_setColumnCount(){this._columnCount=this._options.length>=i.numbers.LARGE_ITEM_SET?i.numbers.FOUR_COL:i.numbers.THREE_COL}_emitFocusChangeEvent(){var t;this._adapter.emitHostEvent(i.events.FOCUS_CHANGE,(t=this._options[this._focusedIndex])==null?void 0:t.value)}_setGridListeners(){this._adapter.unregisterIntersectionObserver()}_setListListeners(){this._adapter.unregisterIntersectionObserver(),this._adapter.registerIntersectionObserver(this._intersectionObserverCallback)}_getOptionSliceIncludingSelected(){if(this._options.length<=i.numbers.LIST_SLICE_SIZE)return this._sliceStart=0,this._sliceEnd=this._options.length,this._options.slice();let t=Math.max(this._options.findIndex(n=>n.selected),0),e=Math.max(Math.floor(t-i.numbers.LIST_SLICE_SIZE/2),0),r=e+i.numbers.LIST_SLICE_SIZE;return r>this._options.length&&(e=this._options.length-1-i.numbers.LIST_SLICE_SIZE,r=this._options.length),this._sliceStart=e,this._sliceEnd=r,this._options.slice(this._sliceStart,this._sliceEnd)}_getNextOptionsSlice(){let t=Math.min(this._sliceEnd+i.numbers.LIST_SLICE_SIZE,this._options.length),e=this._options.slice(this._sliceEnd,t);return this._sliceEnd=t,e}_getPreviousOptionsSlice(){let t=Math.max(this._sliceStart-i.numbers.LIST_SLICE_SIZE,0),e=this._options.slice(t,this._sliceStart);return this._sliceStart=t,e}_applyAnimationType(){this._adapter.setHostAttribute(i.attributes.ANIMATION_TYPE,this._animationType),this._adapter.setAnimationType(this._animationType)}_applyPreventFocus(){this._adapter.toggleHostAttribute(i.attributes.PREVENT_FOCUS,this._preventFocus),this._adapter.setFocusAtIndex(this._focusedIndex,!1,this._preventFocus)}get animationType(){return this._animationType}set animationType(t){this._animationType!==t&&(this._animationType=t,this._applyAnimationType())}get preventFocus(){return this._preventFocus}set preventFocus(t){this._preventFocus!==t&&(this._preventFocus=t,this._applyPreventFocus())}};var V='<template><div class="forge-calendar-menu" part="root"></div></template>',B='.forge-calendar-menu{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);position:relative;height:100%;width:100%;overflow:hidden}.forge-calendar-menu__view{position:absolute;top:0;left:0;height:100%;width:100%;background-color:inherit}.forge-calendar-menu__grid{max-height:320px;max-height:var(--forge-calendar-menu-max-height,320px);display:grid;gap:16px;justify-items:center;-webkit-box-align:center;align-items:center;padding:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-calendar-menu__grid--three-col{grid-template-columns:repeat(3,1fr)}.forge-calendar-menu__grid--four-col{grid-template-columns:repeat(4,1fr)}.forge-calendar-menu__list{position:relative;background-color:inherit}.forge-calendar-menu__list__wrapper{position:relative;height:100%;overflow:auto}.forge-calendar-menu__list__wrapper::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-calendar-menu__item--grid{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;width:100%;height:100%;border-radius:4px;overflow:hidden;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar-menu__item--grid:not([disabled]){--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;border:1px solid #e0e0e0;cursor:pointer}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-calendar-menu__item--grid:not([disabled])::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-calendar-menu__item--grid:not([disabled])::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar-menu__item--grid:not([disabled])::after,.forge-calendar-menu__item--grid:not([disabled])::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-surface--hover::before,.forge-calendar-menu__item--grid:not([disabled]):hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--grid:not([disabled]):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar-menu__item--grid:not([disabled]).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar-menu__item--grid[disabled]{color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected{color:#fff;color:var(--mdc-theme-on-primary,#fff);background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected:hover{opacity:.87}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected.mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected:focus{opacity:.54}.forge-calendar-menu__item--list{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;margin:0 4px;width:calc(100% - 8px);height:48px;border-radius:4px;overflow:hidden;text-align:center;cursor:pointer}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-calendar-menu__item--list::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-calendar-menu__item--list::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar-menu__item--list.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--list.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar-menu__item--list.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar-menu__item--list.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar-menu__item--list.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-calendar-menu__item--list.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar-menu__item--list::after,.forge-calendar-menu__item--list::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-calendar-menu__item--list.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar-menu__item--list.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar-menu__item--list.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar-menu__item--list--activated::before{opacity:.12;opacity:var(--mdc-ripple-activated-opacity, .12)}.forge-calendar-menu__item--list--activated::after,.forge-calendar-menu__item--list--activated::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--list--activated.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list--activated:hover::before{opacity:.16;opacity:var(--mdc-ripple-hover-opacity, .16)}.forge-calendar-menu__item--list--activated.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list--activated:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-calendar-menu__item--list--activated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-calendar-menu__item--list--selected::before{opacity:.08;opacity:var(--mdc-ripple-selected-opacity, .08)}.forge-calendar-menu__item--list--selected::after,.forge-calendar-menu__item--list--selected::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-calendar-menu__item--list--selected.mdc-ripple-surface--hover::before,.forge-calendar-menu__item--list--selected:hover::before{opacity:.12;opacity:var(--mdc-ripple-hover-opacity, .12)}.forge-calendar-menu__item--list--selected.mdc-ripple-upgraded--background-focused::before,.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.2;opacity:var(--mdc-ripple-focus-opacity, .2)}.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar-menu__item--list--selected:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.2;opacity:var(--mdc-ripple-press-opacity, .2)}.forge-calendar-menu__item--list--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.2)}.forge-calendar-menu__item--list--selected:focus:hover.mdc-ripple-upgraded--background-focused:not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.28}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.12}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation):hover::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation):hover::before{opacity:.16}.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::after,.forge-calendar-menu__item--list--active:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::after,.forge-calendar-menu__item--list:focus:not(.forge-list-item--selected):not(.forge-list-item--activated):not(.mdc-ripple-upgraded--foreground-activation)::before{background-color:#000;background-color:var(--mdc-theme-on-surface,#000)}.forge-calendar-menu__item--list--active:focus.forge-list-item--selected.forge-list-item--activated:not(.mdc-ripple-upgraded--foreground-activation)::before{opacity:.24}.forge-calendar-menu__item--list--active:focus.forge-list-item--selected.forge-list-item--activated:not(.mdc-ripple-upgraded--foreground-activation):hover::before{opacity:.28}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected:hover{opacity:.87}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected.mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--list.forge-calendar-menu__item--selected:focus{opacity:.54}.forge-calendar-menu__item .mdc-ripple-upgraded--background-focused,.forge-calendar-menu__item--focused,.forge-calendar-menu__item:focus{outline:0}.forge-calendar-menu--open{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-open;animation-name:scale-open;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--open[data-animation=fade]{-webkit-animation-name:fade-in;animation-name:fade-in}.forge-calendar-menu--open[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--open{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--closing{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-closed;animation-name:scale-closed;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--closing[data-animation=fade]{-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--closing[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--closing{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-right;animation-name:slide-out-to-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-left;animation-name:slide-in-from-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-left;animation-name:slide-out-to-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-right;animation-name:slide-in-from-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-in;animation-name:fade-in}#scroll-spy-bottom{position:absolute;bottom:0;height:48px;pointer-events:none}#scroll-spy-top{position:absolute;top:0;height:48px;pointer-events:none}@-webkit-keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}:host{display:block;position:absolute;top:0;left:0;height:100%;width:100%}:host([hidden]){display:none}:host([forge-popup-context=true]) .forge-calendar-menu{background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff)}',l=class extends HTMLElement{constructor(){super();O(this,V,B),this._foundation=new b(new g(this))}static get observedAttributes(){return[i.attributes.ANIMATION_TYPE,i.attributes.PREVENT_FOCUS]}connectedCallback(){!this.hasAttribute(i.attributes.POPUP_CONTEXT)&&C(this).some(e=>e.tagName.toLowerCase()==="forge-popup")&&this.setAttribute(i.attributes.POPUP_CONTEXT,"true"),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,r,n){switch(e){case i.attributes.ANIMATION_TYPE:this.animationType=n;break;case i.attributes.PREVENT_FOCUS:this.preventFocus=E(n);break}}animateIn(e,r,n=!1){this._foundation.animateIn(e,r,n)}close(){this._foundation.close()}moveFocusDown(){this._foundation.moveFocusDown()}moveFocusBackward(){return this._foundation.moveFocusBackward()}moveFocusForward(){return this._foundation.moveFocusForward()}moveFocusUp(){this._foundation.moveFocusUp()}openAsGrid(e,r=!1){this._foundation.openAsGrid(e,r)}openAsList(e,r=!1){this._foundation.openAsList(e,r)}selectFocusedItem(){this._foundation.selectFocusedItem()}};u([h()],l.prototype,"animationType",2),u([h()],l.prototype,"preventFocus",2),l=u([x({name:i.elementName})],l);function ye(){L(l)}export{i as a,f as b,F as c,R as d,_ as e,P as f,p as g,g as h,b as i,l as j,ye as k};
7
+ //# sourceMappingURL=chunk.PADHAJLS.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 rt}from"./chunk.LIKJD4SK.js";import{d as at}from"./chunk.ITXUKOKJ.js";import{a as f,b as nt}from"./chunk.NMKDIHFB.js";import{h as st}from"./chunk.XMAKEISF.js";import{c as et}from"./chunk.SXTM6OK4.js";import{e as tt}from"./chunk.DYF2MREZ.js";import{e as it}from"./chunk.ROQGMLH3.js";import{a as C,b as ot}from"./chunk.CG5CVENX.js";import{j as K}from"./chunk.MZLPUI6R.js";import{a as F}from"./chunk.YI4JTY4T.js";import{a as Q,d as Z,l as E}from"./chunk.S2YVOMLW.js";import{a as $}from"./chunk.2KXSGD3S.js";import{g as J}from"./chunk.FVRSGKJD.js";import{j as b,k as X,n as G,o as q,p as Y,q as j}from"./chunk.U6WGJELL.js";import{a as W}from"./chunk.5KC43VFL.js";import{a as u}from"./chunk.KTGSZEAG.js";import{a as R,b as z}from"./chunk.QOA2O575.js";import{a as N,e as H,g as V,i as U,l as B}from"./chunk.HOXFK44F.js";import{m as A,s as P,u as x}from"./chunk.4LA6HEA7.js";import{a as D,k as m,l as y,o as L}from"./chunk.J2M2MXP2.js";import{a as w,f as p}from"./chunk.MCIQXNKY.js";var h=`${z}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends W{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this.destroyMask(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){var e;(e=this._inputMask)==null||e.destroy(),this._inputMask=void 0}initializeAccessibility(e){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")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${C.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let a=document.createElement(C.elementName);a.slot="trailing",a.dense=!0,a.densityLevel=3,a.style.marginRight="4px";let r=document.createElement("button");r.type="button",r.tabIndex=-1,r.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",r.appendChild(d),a.appendChild(r),e.appendChild(a),this._toggleElement=a}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P(this._component.ownerDocument)===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}hasActiveOption(){var e,i;return((i=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?i:-1)>=0}activateOptionByIndex(e){var i;(i=this._listDropdown)==null||i.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function v(o,t,e){if(!o||/^\s*$/.test(o))return null;let i=0,n=0,a=0;if(b.test(o)){let r=G(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0}else if(X.test(o)){let r=q(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0,i===12&&r.meridiem==="AM"&&(i=0),i<12&&r.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+T(n)+(e?O(a):0)}function c(o,t,e){if(typeof o!="number"||o<0)return null;let i=Math.min(pt(o),23),n=Math.min(ut(o),59),r=o/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(o),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${r}`),d}function pt(o){return Math.abs(Math.floor(o/(1e3*60*60)))}function ut(o){return Math.abs(Math.floor(I(o)%60))}function I(o){return o/(1e3*60)}function M(o){return Math.abs(Math.floor(It(o)%60))}function It(o){return o/1e3}function dt(o){return o*60*60*1e3}function T(o){return o*60*1e3}function O(o){return o*1e3}function ct(o){return o-O(M(o))}function S(o){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+T(i)+(o?O(t.getSeconds()):0)}function Rt(o,t,e=!1){o||(o=new Date);let i=v(t,!0,e);if(!i)return o.setHours(0,0,0),o;let n=pt(i),a=828e5;n>a?n=a:n<0&&(n=0);let r=ut(i),d=e?M(i):0;return o.setHours(n,r,d),o}var k=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=D(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){var e,i;if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),t.stopPropagation(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption():(this._openDropdown(),typeof((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0?this._adapter.activateOptionByIndex((i=this._dropdownConfig)==null?void 0:i.visibleStartIndex):this._adapter.activateFirstOption()));break;case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&(this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption()));break;case"Enter":case"NumpadEnter":case"Home":case"End":this._open&&((t.code==="Enter"||t.code==="NumpadEnter")&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let n=S(this._allowSeconds);if(this._value!==n){let a=c(n,!0,this._allowSeconds);this._emitChangeEvent(a)&&(this._applyValue(n),this._selectInputText())}break}}_trySetActiveOption(){var t,e;!this._adapter.hasActiveOption()&&typeof((t=this._dropdownConfig)==null?void 0:t.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0&&this._adapter.activateOptionByIndex((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText(),this.masked&&this._showMaskFormat&&this._applyMask()}_onInputBlur(t){this.masked&&this._showMaskFormat&&this._applyMask(),this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){this._adapter.destroyMask();let t={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:L(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=c(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(ct(this._value)),this._isInitialized&&t!==this._value){let e=c(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=c(t,!0,this._allowSeconds);return this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=S(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=c(t.time,!0,this._allowSeconds);!this._emitChangeEvent(e)||(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(a=>!a.divider&&!a.disabled),i=[],n=0;if(t.length)if(this._value!=null){let a=this._findClosestOptionIndex(this._value,e);a>=0&&(e[a].value.time===this._value?i=[e[a].value]:n=a)}else if(typeof this._startTime=="number"){let a=this._findClosestOptionIndex(this._startTime,e);a>=0&&a<e.length&&(n=a)}else this._startTime==null&&(n=this._getOptionIndexClosestCurrent(e));this._dropdownConfig={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,visibleStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:a=>this._onSelect(a),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:a=>this._adapter.setActiveDescendant(a),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)},this._adapter.attachDropdown(this._dropdownConfig),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._dropdownConfig=void 0,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_getOptionIndexClosestCurrent(t){let e=new Date,i=`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`,n=v(i,!0,!1);return this._findClosestOptionIndex(n,t)}_findClosestOptionIndex(t,e){let i=e.reduce((n,a)=>Math.abs((a.value.time||0)-t)<Math.abs((n.value.time||0)-t)?a:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&(this._adapter.setInputValue(i,t),this._adapter.emitInputEvent(s.events.INPUT,i))}_generateTimeOptions(){let t=this._min!=null?Math.max(I(this._min),0):0,e=this._max!=null?Math.min(I(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],a=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=T(d),_t=this._restrictedTimes.includes(_),ht=c(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let r=n.findIndex(d=>d.value.time/1e3/60>=720);r>=0&&r<n.length-1&&n.splice(r,0,{label:"",value:null,divider:!0})}if(this._showNow){let r={time:null,metadata:"now"};a.push({label:"Now",value:r})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let r=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});a=[...a,...r]}return a.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),a.forEach((r,d)=>n.splice(d,0,r))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),v(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):c(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t)}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return c(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return c(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return c(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>c(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return c(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",l=class extends B{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new k(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=m(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=m(n);break;case s.attributes.MASKED:this.masked=m(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=m(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=m(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=m(n);break;case s.attributes.SHOW_NOW:this.showNow=m(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=m(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=y(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=m(n);break;case s.attributes.DISABLED:this.disabled=m(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=m(n);break}}};p([u()],l.prototype,"value",2),p([u()],l.prototype,"open",2),p([u()],l.prototype,"allowSeconds",2),p([u()],l.prototype,"masked",2),p([u()],l.prototype,"showMaskFormat",2),p([u()],l.prototype,"use24HourTime",2),p([u()],l.prototype,"allowInvalidTime",2),p([u()],l.prototype,"min",2),p([u()],l.prototype,"max",2),p([u()],l.prototype,"restrictedTimes",2),p([u()],l.prototype,"startTime",2),p([u()],l.prototype,"step",2),p([u()],l.prototype,"allowInput",2),p([u()],l.prototype,"showNow",2),p([u()],l.prototype,"showHourOptions",2),p([u()],l.prototype,"customOptions",2),p([u()],l.prototype,"validationCallback",2),p([u()],l.prototype,"parseCallback",2),p([u()],l.prototype,"formatCallback",2),p([u()],l.prototype,"coercionCallback",2),p([u()],l.prototype,"prepareMaskCallback",2),p([u()],l.prototype,"disabled",2),p([u()],l.prototype,"popupClasses",2),p([u()],l.prototype,"allowDropdown",2),p([u()],l.prototype,"popupTarget",2),l=p([R({name:s.elementName,dependencies:[et,tt,ot,E,it,E,at]})],l);var mt=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){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.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")})}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,a,r,d;let i={props:w({},(a=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:a.props),options:w({},(d=(r=this._config.options)==null?void 0:r.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function xe(){N(l)}export{s as a,g as b,v as c,c as d,pt as e,ut as f,I as g,M as h,It as i,dt as j,T as k,O as l,ct as m,S as n,Rt as o,k as p,l as q,mt as r,xe as s};
7
+ //# sourceMappingURL=chunk.PFYLJBUV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/time-picker/time-picker-constants.ts", "../../src/time-picker/time-picker-adapter.ts", "../../src/time-picker/time-picker-utils.ts", "../../src/time-picker/time-picker-foundation.ts", "../../src/time-picker/time-picker.ts", "../../src/time-picker/time-picker-component-delegate.ts", "../../src/time-picker/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport IMask, { Masked, InputMask } from 'imask';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}time-picker`;\n\nconst attributes = {\n TOGGLE: 'forge-time-picker-toggle',\n VALUE: 'value',\n OPEN: 'open',\n ALLOW_SECONDS: 'allow-seconds',\n MASKED: 'masked',\n SHOW_MASK_FORMAT: 'show-mask-format',\n USE_24_HOUR_TIME: 'use-24-hour-time',\n ALLOW_INVALID_TIME: 'allow-invalid-time',\n MIN: 'min',\n MAX: 'max',\n START_TIME: 'start-time',\n STEP: 'step',\n ALLOW_INPUT: 'allow-input',\n SHOW_NOW: 'show-now',\n SHOW_HOUR_OPTIONS: 'show-hour-options',\n DISABLED: 'disabled',\n POPUP_CLASSES: 'popup-classes',\n ALLOW_DROPDOWN: 'allow-dropdown'\n};\n\nconst selectors = {\n INPUT: 'input, input[forge-time-picker-input]',\n TOGGLE: `[${attributes.TOGGLE}]`\n};\n\nconst events = {\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`,\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n DEFAULT_MINUTE_STEP: 60,\n MAX_DAY_MILLIS: 86400000,\n MAX_DAY_MINUTES: 1440\n};\n\nexport const TIME_PICKER_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n events,\n numbers\n};\n\nexport type TimePickerValidationCallback = (time: string) => boolean;\nexport type TimePickerParseCallback = (time: string) => number | null;\nexport type TimePickerFormatCallback = (value: number | null) => string;\nexport type TimePickerCustomOptionCallback<T> = (value: T, use24HourTime: boolean, allowSeconds: boolean) => number;\nexport type TimePickerCoercionCallback = (rawValue: string, coercedValue: string, allowSeconds: boolean) => string;\nexport type TimePickerPrepareMaskCallback = (value: string, masked: Masked<string>, flags: IMask.AppendFlags, maskInstance: InputMask<IMask.AnyMaskedOptions>) => string;\n\nexport interface ITimePickerOption<T = any> extends IListDropdownOption<T> {\n toMilliseconds: TimePickerCustomOptionCallback<T>;\n}\nexport interface ITimePickerOptionValue {\n time: number | null;\n metadata?: any;\n isCustom?: boolean;\n customCallback?: TimePickerCustomOptionCallback<any>;\n}\n", "import { getShadowElement, emitEvent, getActiveElement, toggleAttribute } from '@tylertech/forge-core';\nimport { ITimePickerComponent } from './time-picker';\nimport { BaseAdapter } from '../core';\nimport { TIME_PICKER_CONSTANTS } from './time-picker-constants';\nimport { ITimeInputMaskOptions, TimeInputMask } from '../core/mask/time-input-mask';\nimport { TEXT_FIELD_CONSTANTS, ITextFieldComponent } from '../text-field';\nimport { ICON_BUTTON_CONSTANTS, IIconButtonComponent } from '../icon-button';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\nimport { IListDropdownConfig, IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport { IListDropdown, ListDropdown } from '../list-dropdown';\n\nexport interface ITimePickerAdapter extends BaseAdapter<ITimePickerComponent> {\n initialize(): void;\n initializeMask(options: ITimeInputMaskOptions): void;\n destroy(): void;\n destroyMask(): void;\n initializeAccessibility(identifier: string): void;\n addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void;\n removeInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void;\n addToggleListener(type: string, listener: (event: Event) => void): void;\n removeToggleListener(type: string, listener: (event: Event) => void): void;\n hasInputElement(): boolean;\n tryCreateToggle(): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectInputText(): void;\n getInputValue(): string;\n setInputValue(value: string, emitEvents: boolean): void;\n isInputDisabled(): boolean;\n isInputFocused(): boolean;\n setDisabled(isDisabled: boolean): void;\n attachDropdown(config: IListDropdownConfig): void;\n detachDropdown(): void;\n setActiveDescendant(id: string): void;\n propagateKey(key: string): void;\n getTargetElementWidth(selector: string): number;\n emitInputEvent(type: string, data?: any): void;\n setInputReadonly(value: boolean): void;\n setToggleDisabled(value: boolean): void;\n hasActiveOption(): boolean;\n activateOptionByIndex(index: number): void;\n activateFirstOption(): void;\n getActiveOption(): IListDropdownOption | undefined;\n}\n\nexport class TimePickerAdapter extends BaseAdapter<ITimePickerComponent> implements ITimePickerAdapter {\n private _inputElement: HTMLInputElement;\n private _toggleElement?: HTMLElement;\n private _inputMask?: TimeInputMask;\n private _listDropdown?: IListDropdown;\n private _targetElement?: HTMLElement;\n\n constructor(component: ITimePickerComponent) {\n super(component);\n }\n\n public initialize(): void {\n this._inputElement = this._component.querySelector(TIME_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n }\n\n public initializeMask(options: ITimeInputMaskOptions): void {\n this.destroyMask();\n this._inputMask = new TimeInputMask(this._inputElement, options);\n }\n\n public destroy(): void {\n this._targetElement = undefined;\n this._toggleElement = undefined as any;\n this._inputElement = undefined as any;\n }\n\n public destroyMask(): void {\n this._inputMask?.destroy();\n this._inputMask = undefined;\n }\n\n public initializeAccessibility(identifier: string): 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 }\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 if (this._inputElement) {\n this._inputElement.removeEventListener(type, listener, { capture });\n }\n }\n\n public addToggleListener(type: string, listener: (event: Event) => void): void {\n if (this._toggleElement) {\n this._toggleElement.addEventListener(type, listener);\n }\n }\n\n public removeToggleListener(type: string, listener: (event: Event) => void): void {\n if (this._toggleElement) {\n this._toggleElement.removeEventListener(type, listener);\n }\n }\n\n public hasInputElement(): boolean {\n return !!this._inputElement;\n }\n\n public tryCreateToggle(): void {\n const textField = this._component.querySelector(TEXT_FIELD_CONSTANTS.elementName) as ITextFieldComponent;\n const toggleElement = this._component.querySelector(TIME_PICKER_CONSTANTS.selectors.TOGGLE);\n if (textField) {\n const existingIconButton = textField.querySelector(`${ICON_BUTTON_CONSTANTS.elementName}[slot=trailing]`);\n if (existingIconButton || toggleElement) {\n this._toggleElement = (existingIconButton || toggleElement) as IIconButtonComponent;\n return;\n }\n\n const iconButtonElement = document.createElement(ICON_BUTTON_CONSTANTS.elementName) as IIconButtonComponent;\n iconButtonElement.slot = 'trailing';\n iconButtonElement.dense = true;\n iconButtonElement.densityLevel = 3;\n iconButtonElement.style.marginRight = '4px'; // Override default trailing slot margin in text-field\n\n const buttonElement = document.createElement('button');\n buttonElement.type = 'button';\n buttonElement.tabIndex = -1;\n buttonElement.setAttribute('aria-label', 'Toggle time dropdown');\n\n const iconElement = document.createElement(ICON_CONSTANTS.elementName) as IIconComponent;\n iconElement.name = 'clock_outline';\n buttonElement.appendChild(iconElement);\n iconButtonElement.appendChild(buttonElement);\n\n textField.appendChild(iconButtonElement);\n this._toggleElement = iconButtonElement;\n } else if (toggleElement) {\n this._toggleElement = toggleElement as HTMLElement;\n }\n }\n\n public tryFocusInput(): void {\n this._inputElement.select();\n }\n\n public tryBlurInput(): void {\n this._inputElement.blur();\n }\n\n public selectInputText(): void {\n this._inputElement.select();\n }\n\n public isInputDisabled(): boolean {\n return this._inputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n const activeElement = getActiveElement(this._component.ownerDocument);\n return activeElement === this._inputElement;\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.update();\n }\n\n if (emitEvents) {\n this._emitInputEvent('change');\n this._emitInputEvent('input');\n }\n }\n\n public getInputValue(): string {\n return this._inputMask ? this._inputMask.maskedValue : this._inputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._inputElement.disabled = isDisabled;\n this._inputElement.setAttribute('aria-disabled', isDisabled.toString());\n this.setToggleDisabled(isDisabled);\n }\n\n public attachDropdown(config: IListDropdownConfig): void {\n this._listDropdown = new ListDropdown(this._inputElement, config);\n this._listDropdown.open();\n this._inputElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n \n public detachDropdown(): void {\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n this._inputElement.removeAttribute('aria-controls');\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public setActiveDescendant(id: string): void {\n toggleAttribute(this._inputElement, !!id, 'aria-activedescendant', id);\n }\n\n public getTargetElementWidth(selector: string): number {\n const targetElement = this._getTargetElement(selector);\n return targetElement.getBoundingClientRect().width;\n }\n\n private _emitInputEvent(type: string): void {\n this._inputElement.dispatchEvent(new Event(type));\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._inputElement, type, data);\n }\n\n public setInputReadonly(value: boolean): void {\n this._inputElement.readOnly = value;\n }\n\n public setToggleDisabled(value: boolean): void {\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', value.toString());\n if ('disabled' in this._toggleElement) {\n (this._toggleElement as HTMLButtonElement).disabled = value;\n } else {\n const button = this._toggleElement.querySelector('button') as HTMLButtonElement;\n if (button) {\n button.disabled = value;\n }\n }\n }\n }\n\n public hasActiveOption(): boolean {\n return (this._listDropdown?.getActiveOptionIndex() ?? -1) >= 0;\n }\n\n public activateOptionByIndex(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._listDropdown?.getActiveOption();\n }\n\n private _getTargetElement(selector?: string): HTMLElement {\n if (this._targetElement) {\n return this._targetElement;\n }\n this._targetElement = selector ? this._component.querySelector(selector) as HTMLElement || this._getDefaultTargetElement() : this._getDefaultTargetElement();\n return this._targetElement;\n }\n\n private _getDefaultTargetElement(): HTMLElement {\n // This component is often used with the text-field, if so, let's target our popup around one if its internal elements for proper alignnment\n const textField = this._component.querySelector(TEXT_FIELD_CONSTANTS.elementName) as HTMLElement;\n if (textField && textField.shadowRoot) {\n const textFieldRoot = getShadowElement(textField, TEXT_FIELD_CONSTANTS.selectors.ROOT) as HTMLElement;\n if (textFieldRoot) {\n return textFieldRoot;\n }\n }\n return this._component; // Otherwise we just use the time-picker host as the target\n }\n}\n", "import { tokenize24HourTimeString, tokenize12HourTimeString, TWENTY_FOUR_HOUR_TIME_REGEX, TWELVE_HOUR_TIME_REGEX } from '../core/utils/time-utils';\n\nexport function timeStringToMillis(time: string | null, use24HourTime: boolean, allowSeconds: boolean): number | null {\n if (!time || /^\\s*$/.test(time)) {\n return null;\n }\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (TWENTY_FOUR_HOUR_TIME_REGEX.test(time)) {\n const tokens = tokenize24HourTimeString(time);\n hours = +tokens.hours || 0;\n minutes = +tokens.minutes || 0;\n seconds = +tokens.seconds || 0;\n } else if (TWELVE_HOUR_TIME_REGEX.test(time)) {\n const tokens = tokenize12HourTimeString(time);\n hours = +tokens.hours || 0;\n minutes = +tokens.minutes || 0;\n seconds = +tokens.seconds || 0;\n if (hours === 12 && tokens.meridiem === 'AM') {\n hours = 0;\n }\n if (hours < 12 && tokens.meridiem === 'PM') {\n hours += 12;\n }\n } else {\n return null;\n }\n\n return hoursToMillis(hours) + minutesToMillis(minutes) + (allowSeconds ? secondsToMillis(seconds) : 0);\n}\n\nexport function millisToTimeString(value: number | null | undefined, use24HourTime: boolean, allowSeconds: boolean): string | null {\n if (typeof value !== 'number' || value < 0) {\n return null;\n }\n\n let hours = Math.min(millisToHours(value), 23);\n const minutes = Math.min(millisToMinutesClamped(value), 59);\n const totalMinutes = value / (1000 * 60);\n const meridiem = totalMinutes < 720 ? 'AM' : 'PM';\n\n if (!use24HourTime) {\n hours = hours <= 12 ? hours : hours - 12;\n if (hours === 0) {\n hours = 12;\n }\n }\n\n let time = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`;\n\n if (allowSeconds) {\n const seconds = Math.min(millisToSecondsClamped(value), 59);\n time += `:${String(seconds).padStart(2, '0')}`;\n }\n\n if (!use24HourTime) {\n time += ` ${meridiem}`;\n }\n\n return time;\n}\n\nexport function millisToHours(millis: number): number {\n return Math.abs(Math.floor(millis / (1000 * 60 * 60)));\n}\n\nexport function millisToMinutesClamped(millis: number): number {\n return Math.abs(Math.floor(millisToMinutes(millis) % 60));\n}\n\nexport function millisToMinutes(millis: number): number {\n return millis / (1000 * 60);\n}\n\nexport function millisToSecondsClamped(millis: number): number {\n return Math.abs(Math.floor(millisToSeconds(millis) % 60));\n}\n\nexport function millisToSeconds(millis: number): number {\n return millis / 1000;\n}\n\nexport function hoursToMillis(hours: number): number {\n return hours * 60 * 60 * 1000;\n}\n\nexport function minutesToMillis(minutes: number): number {\n return minutes * 60 * 1000;\n}\n\nexport function secondsToMillis(seconds: number): number {\n return seconds * 1000;\n}\n\nexport function stripSecondsFromMillis(millis: number): number {\n return millis - secondsToMillis(millisToSecondsClamped(millis));\n}\n\nexport function getCurrentTimeOfDayMillis(allowSeconds: boolean): number {\n const date = new Date();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n return hoursToMillis(hours) + minutesToMillis(minutes) + (allowSeconds ? secondsToMillis(date.getSeconds()) : 0);\n}\n\n/**\n * Combines a `Date` object with a 24-hour time string from the time-picker component.\n * @param date The `Date` object to adjust.\n * @param time The 24-hour time string.\n * @param useSeconds If your 24-hour time string contains seconds, set this to `true`.\n * @returns The same `Date` object that was provided, with the newly adjusted time.\n */\nexport function mergeDateWithTime(date: Date, time: string, useSeconds = false): Date {\n if (!date) {\n date = new Date();\n }\n\n const millis = timeStringToMillis(time, true, useSeconds);\n if (!millis) {\n date.setHours(0, 0, 0);\n return date;\n }\n\n let hours = millisToHours(millis);\n \n const twentyThreeHoursInMillis = 82800000;\n if (hours > twentyThreeHoursInMillis) {\n hours = twentyThreeHoursInMillis;\n } else if (hours < 0) {\n hours = 0;\n }\n\n const minutes = millisToMinutesClamped(millis);\n const seconds = useSeconds ? millisToSecondsClamped(millis) : 0;\n date.setHours(hours, minutes, seconds);\n\n return date;\n}\n", "import { ICustomElementFoundation, Platform, debounce, randomChars } from '@tylertech/forge-core';\nimport { ITimePickerAdapter } from './time-picker-adapter';\nimport { ITimeInputMaskOptions } from '../core/mask/time-input-mask';\nimport { isSupportedTimeFormat, TWENTY_FOUR_HOUR_TIME_REGEX, tryCoerceTimeString } from '../core/utils/time-utils';\nimport {\n TIME_PICKER_CONSTANTS,\n ITimePickerOptionValue,\n ITimePickerOption,\n TimePickerValidationCallback,\n TimePickerParseCallback,\n TimePickerFormatCallback,\n TimePickerCoercionCallback,\n TimePickerPrepareMaskCallback\n} from './time-picker-constants';\nimport { IListDropdownConfig, ListDropdownType, IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport { timeStringToMillis, millisToTimeString, minutesToMillis, getCurrentTimeOfDayMillis, millisToMinutes, stripSecondsFromMillis } from './time-picker-utils';\n\nexport interface ITimePickerFoundation extends ICustomElementFoundation {\n value: string | null | undefined;\n open: boolean;\n allowSeconds: boolean;\n masked: boolean;\n showMaskFormat: boolean;\n use24HourTime: boolean;\n allowInvalidTime: boolean;\n min: string | null | undefined;\n max: string | null | undefined;\n restrictedTimes: string[];\n startTime: string | null | undefined;\n step: number;\n allowInput: boolean;\n showNow: boolean;\n showHourOptions: boolean;\n customOptions: ITimePickerOption[];\n validationCallback: TimePickerValidationCallback;\n parseCallback: TimePickerParseCallback;\n formatCallback: TimePickerFormatCallback;\n coercionCallback: TimePickerCoercionCallback;\n prepareMaskCallback: TimePickerPrepareMaskCallback;\n disabled: boolean;\n popupClasses: string | string[];\n allowDropdown: boolean;\n}\n\nexport class TimePickerFoundation implements ITimePickerFoundation {\n // State vars\n private _value?: number | null = null;\n private _masked = true;\n private _use24HourTime = false;\n private _showMaskFormat = false;\n private _min?: number | null = null;\n private _max?: number | null = null;\n private _restrictedTimes: number[] = [];\n private _startTime?: number | null = null;\n private _step = TIME_PICKER_CONSTANTS.numbers.DEFAULT_MINUTE_STEP;\n private _allowInput = true;\n private _identifier: string;\n private _open = false;\n private _allowSeconds = false;\n private _allowInvalidTime = false;\n private _popupTarget: string;\n private _showNow = false;\n private _showHourOptions = true;\n private _customOptions: ITimePickerOption[] = [];\n private _validationCallback: TimePickerValidationCallback;\n private _parseCallback: TimePickerParseCallback;\n private _formatCallback: TimePickerFormatCallback;\n private _coercionCallback: TimePickerCoercionCallback;\n private _prepareMaskCallback: TimePickerPrepareMaskCallback;\n private _disabled = false;\n private _popupClasses: string[] = [];\n private _allowDropdown = true;\n \n // Internal state vars\n private _isInitialized = false;\n private _dropdownConfig: IListDropdownConfig<ITimePickerOptionValue> | undefined;\n\n // Listeners\n private _inputListener: (evt: Event) => void;\n private _inputKeydownListener: (evt: KeyboardEvent) => void;\n private _toggleMousedownListener: (evt: MouseEvent) => void;\n private _inputFocusListener: (evt: Event) => void;\n private _inputBlurListener: (evt: Event) => void;\n private _inputMousedownListener: (evt: MouseEvent) => void;\n \n constructor(private _adapter: ITimePickerAdapter) {\n this._identifier = randomChars(); // This is a unique identifier for this instance of the time picker (used for a11y purposes)\n\n // Set up listeners\n this._inputListener = evt => this._onInput(evt);\n this._inputKeydownListener = evt => this._onInputKeydown(evt);\n this._toggleMousedownListener = evt => this._onToggleMousedown(evt);\n this._inputFocusListener = evt => this._onInputFocus(evt);\n this._inputBlurListener = evt => this._onInputBlur(evt);\n this._inputMousedownListener = evt => this._onInputMousedown(evt);\n }\n\n public initialize(): void {\n this._adapter.initialize();\n \n // We require an input element to be a child of this component\n if (!this._adapter.hasInputElement()) {\n throw new Error('Unable to locate <input> element to attach to.');\n }\n\n this._adapter.initializeAccessibility(this._identifier);\n\n // Detect if a value already exists in the input and set our values based on that\n if (!this._value) {\n const inputValue = this._adapter.getInputValue();\n this._setValue(this._convertTimeStringToMillis(inputValue, this._use24HourTime, this._allowSeconds));\n }\n\n // Attach required listeners\n this._adapter.addInputListener('focus', this._inputFocusListener);\n this._adapter.addInputListener('blur', this._inputBlurListener);\n this._adapter.addInputListener('keydown', this._inputKeydownListener, true);\n\n // Ensure our input has the correct time format (make sure not to emit input events manually at this point)\n this._formatInputValue(false);\n\n // Apply our state\n if (typeof this._value === 'number') {\n this._applyValue(this._value, false);\n }\n this._applyAllowInput();\n this._applyAllowDropdown();\n this._applyDisabled();\n this._applyMask();\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n\n // Remove listeners\n this._adapter.removeInputListener('input', this._inputListener);\n this._adapter.removeInputListener('focus', this._inputFocusListener);\n this._adapter.removeInputListener('blur', this._inputBlurListener);\n this._adapter.removeToggleListener('mousedown', this._toggleMousedownListener);\n this._adapter.removeInputListener('keydown', this._inputKeydownListener, true);\n\n // If we are using an input mask, let's destroy that now\n if (this._masked) {\n this._adapter.destroyMask();\n }\n\n // Ensure we remove our dropdown\n this._closeDropdown();\n\n // Cleanup any resources used in the adapter\n this._adapter.destroy();\n }\n\n /** Called when the input mask changes or the `input` event occurs on our `<input>` element. */\n private _onInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n private _onInputKeydown(evt: KeyboardEvent): void {\n if (evt.shiftKey) {\n switch (evt.code) {\n case 'Backspace':\n case 'Delete':\n evt.preventDefault();\n const result = this._trySetValue(null);\n if (result) {\n this._formatInputValue();\n }\n return;\n }\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Esc':\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown(true);\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (this._allowDropdown) {\n evt.preventDefault();\n if (!this._open) {\n this._openDropdown();\n if (typeof this._dropdownConfig?.visibleStartIndex === 'number' && this._dropdownConfig.visibleStartIndex >= 0) {\n this._adapter.activateOptionByIndex(this._dropdownConfig?.visibleStartIndex);\n } else {\n this._adapter.activateFirstOption();\n }\n // TODO: Should we cycle the hours, minutes, seconds, or meridiem where the cursor is instead of opening the dropdown?\n } else {\n if (!this._adapter.hasActiveOption()) {\n this._trySetActiveOption();\n } else {\n this._adapter.propagateKey(evt.code);\n }\n }\n }\n break;\n case 'ArrowUp':\n if (this._allowDropdown) {\n evt.preventDefault();\n if (this._open) {\n if (!this._adapter.hasActiveOption()) {\n this._trySetActiveOption();\n } else {\n this._adapter.propagateKey(evt.code);\n }\n } else {\n // TODO: cycle the hours, minutes, seconds, or meridiem where the cursor is\n }\n }\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Home':\n case 'End':\n if (this._open) {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter') {\n evt.stopPropagation();\n }\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'KeyN':\n evt.preventDefault();\n const nowMillis = getCurrentTimeOfDayMillis(this._allowSeconds);\n if (this._value !== nowMillis) {\n const timeString = millisToTimeString(nowMillis, true, this._allowSeconds);\n const canContinue = this._emitChangeEvent(timeString);\n if (canContinue) {\n this._applyValue(nowMillis);\n this._selectInputText();\n }\n }\n break;\n }\n }\n\n private _trySetActiveOption(): void {\n if (!this._adapter.hasActiveOption() && typeof this._dropdownConfig?.visibleStartIndex === 'number' && this._dropdownConfig.visibleStartIndex >= 0) {\n this._adapter.activateOptionByIndex(this._dropdownConfig?.visibleStartIndex);\n }\n }\n\n private _selectActiveOption(): void {\n const activeOption = this._adapter.getActiveOption();\n if (activeOption) {\n this._onSelect(activeOption.value);\n }\n }\n\n private _onToggleMousedown(evt: Event): void {\n if (this._disabled || !this.allowDropdown) {\n return;\n }\n\n evt.stopPropagation();\n\n if (this._adapter.isInputDisabled()) {\n return;\n }\n\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown(true);\n } else {\n if (!Platform.isMobile) {\n this._adapter.tryFocusInput();\n } else {\n this._adapter.tryBlurInput();\n }\n this._openDropdown();\n }\n }\n\n private _onInputFocus(evt: Event): void {\n if (this._allowInput) {\n this._adapter.selectInputText();\n }\n\n if (this.masked && this._showMaskFormat) {\n this._applyMask();\n }\n }\n\n private _onInputBlur(evt: Event): void {\n if (this.masked && this._showMaskFormat) {\n this._applyMask();\n }\n\n this._formatInputValue();\n\n if (this._open && !this._adapter.isInputFocused()) {\n this._closeDropdown(true);\n }\n }\n\n private _onInputMousedown(evt: MouseEvent): void {\n if (!this._allowInput && !this._open) {\n this._openDropdown();\n this._adapter.tryFocusInput();\n window.requestAnimationFrame(() => this._adapter.selectInputText());\n }\n }\n\n private _applyDisabled(): void {\n this._adapter.setDisabled(this._disabled);\n }\n\n private _applyMask(): void {\n if (this._masked && this._allowInput) {\n this._adapter.destroyMask();\n const options: ITimeInputMaskOptions = {\n showMaskFormat: this._showMaskFormat && this._adapter.isInputFocused(),\n use24HourTime: this._use24HourTime,\n showSeconds: this._allowSeconds,\n prepareCallback: this._prepareMaskCallback,\n onChange: debounce((value: string) => this._handleInput(value), 0, true) // debounce this to avoid multiple callbacks for same value\n };\n this._adapter.initializeMask(options);\n } else {\n this._adapter.destroyMask();\n this._formatInputValue();\n }\n }\n\n private _applyAllowInput(): void {\n this._adapter.setInputReadonly(!this._allowInput);\n if (this._allowInput) {\n this._adapter.removeInputListener('mousedown', this._inputMousedownListener);\n // If not using an input mask we need to attach our own `input` listener, otherwise\n // we use the mask to notify us of changes\n if (!this._masked) {\n this._adapter.addInputListener('input', this._inputListener);\n }\n } else {\n this._adapter.addInputListener('mousedown', this._inputMousedownListener);\n this._adapter.removeInputListener('input', this._inputListener);\n }\n }\n\n private _applyAllowDropdown(): void {\n this._adapter.setToggleDisabled(!this._allowDropdown);\n if (this._allowDropdown) {\n this._adapter.removeToggleListener('mousedown', this._toggleMousedownListener);\n this._adapter.tryCreateToggle();\n this._adapter.addToggleListener('mousedown', this._toggleMousedownListener);\n } else if (this._open) {\n this._closeDropdown(true);\n }\n }\n\n private _applyAllowSeconds(): void {\n const originalValue = this._value;\n if (!this._allowSeconds) {\n // If we are not using seconds, we need to remove our seconds from the value\n if (typeof this._value !== 'number') {\n return;\n }\n\n this._setValue(stripSecondsFromMillis(this._value));\n\n if (this._isInitialized && originalValue !== this._value) {\n // We need to emit a change event with our new value which does not include the seconds\n const timeString = millisToTimeString(this._value, true, false);\n this._emitChangeEvent(timeString);\n }\n } else if (this._isInitialized && originalValue !== this._value) {\n // We need to emit a change event with our new value which includes the seconds\n const timeString = millisToTimeString(this._value, true, true);\n this._emitChangeEvent(timeString);\n }\n }\n\n private _handleInput(value: string): void {\n const rawValue = value;\n\n if (!this._allowInput) {\n return;\n }\n\n if (this._open) {\n this._closeDropdown(true);\n }\n\n // Let's attempt to coerce our time string into a known format to help with ease of entry\n value = tryCoerceTimeString(value, this._use24HourTime, this._allowSeconds);\n\n // If we were provided a custom coercion callback then we need to call that now to perform any further coercion by the consumer\n if (typeof this._coercionCallback === 'function') {\n value = this._coercionCallback.call(null, rawValue, value, this._allowSeconds);\n }\n\n // Validate the time format and make sure it's supported\n if (!this._isValidTimeFormat(value)) {\n value = '';\n }\n\n // Convert the time string to milliseconds\n let millis: number | null | undefined;\n if (!this._masked && typeof this._parseCallback === 'function') {\n millis = this._parseCallback.call(null, value);\n } else {\n millis = this._convertTimeStringToMillis(value, this._use24HourTime, this._allowSeconds);\n }\n\n // Validate that our time can be chosen as a valid value\n millis = this._validateMillis(millis);\n\n // Update our value\n this._trySetValue(millis);\n }\n\n private _emitChangeEvent(value: string | null, force = false): boolean {\n return this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.CHANGE, value, true, !force);\n }\n\n private _trySetValue(millis: number | null | undefined): boolean {\n // If our value hasn't changed, we can just return\n if (millis === this._value) {\n return false;\n }\n\n // Convert our milliseconds to a 24-hour time string to use as our normalized value\n const timeString = millisToTimeString(millis, true, this._allowSeconds);\n\n // Dispatch our custom input event to let consumers know raw input occurred (before our change event)\n this._adapter.emitInputEvent(TIME_PICKER_CONSTANTS.events.INPUT, timeString);\n\n // Only emit our change event if the value is different\n if (this._value !== millis) {\n const canContinue = this._emitChangeEvent(timeString);\n if (canContinue) {\n this._setValue(millis);\n return true;\n }\n }\n\n return false;\n }\n\n private _setValue(value: number | null | undefined): void {\n this._value = this._normalizeTimeValue(value);\n }\n\n private _validateMillis(millis: number | null | undefined): number | null | undefined {\n // Trap for min/max validation\n if (typeof millis === 'number') {\n const isBelowMin = typeof this._min === 'number' && millis < this._min;\n const isAboveMax = typeof this._max === 'number' && millis > this._max;\n if (isBelowMin || isAboveMax) {\n millis = null;\n }\n }\n \n // Trap for restricted times\n if (typeof millis === 'number' && this._restrictedTimes.length) {\n if (this._restrictedTimes.includes(millis)) {\n millis = null;\n }\n }\n\n return millis;\n }\n\n private _isValidTimeFormat(value: string): boolean {\n if (!this._masked && typeof this._validationCallback === 'function') {\n return this._validationCallback.call(this, value);\n }\n return isSupportedTimeFormat(value);\n }\n\n private _isValidInputValue(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value);\n }\n\n private _onSelect(value: ITimePickerOptionValue): void {\n this._closeDropdown(true);\n\n // Check if the \"Now\" option was selected\n if (!value.isCustom && value.metadata === 'now') {\n value.time = getCurrentTimeOfDayMillis(this._allowSeconds);\n }\n\n // Check if this is a custom option, and then call the provided callback for it\n if (value.isCustom) {\n if (typeof value.customCallback === 'function') {\n const result = value.customCallback.call(null, value.metadata);\n if (typeof result !== 'number') {\n throw new Error('Custom options must provide a time of day value in milliseconds.');\n }\n value.time = result;\n } else {\n throw new Error('You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.');\n }\n }\n\n // Make sure the time is different than what is already populated or we can just return\n if (this._value === value.time) {\n return;\n }\n\n // Emit the change event\n const timeString = millisToTimeString(value.time, true, this._allowSeconds);\n const canContinue = this._emitChangeEvent(timeString);\n if (!canContinue) {\n return;\n }\n\n // This will update our state and the UI at once\n this._applyValue(value.time);\n\n // Select full input text\n this._selectInputText();\n }\n\n private _selectInputText(): void {\n // We need to select the text of the input in the next cycle to allow time for the UI to update\n // with the selected text (assuming it still has focus)\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n if (this._adapter.isInputFocused()) {\n this._adapter.selectInputText();\n }\n });\n });\n }\n\n private _applyValue(value: number | null | undefined, emitEvents = true): void {\n this._setValue(value);\n const formattedValue = this._formatValue(this._value);\n if (this._adapter.getInputValue() !== formattedValue) {\n this._adapter.setInputValue(formattedValue, emitEvents);\n }\n }\n\n private _normalizeTimeValue(value: number | null | undefined): number | null {\n if (value == null) {\n return null;\n } else if (value < 0) {\n return 0;\n } else if (value > TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MILLIS) {\n return TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MILLIS;\n }\n return value;\n }\n\n private _openDropdown(): void {\n const options = this._generateTimeOptions();\n\n if (!this.allowDropdown || !options.length) {\n return;\n }\n \n this._formatInputValue();\n this._open = true;\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.OPEN);\n \n const selectableOptions = options.filter(o => !o.divider && !o.disabled);\n let selectedValues: ITimePickerOptionValue[] = [];\n let visibleStartIndex = 0;\n \n // Find closest match in list of time options and activate/select it\n if (options.length) {\n if (this._value != null) {\n const optionIndex = this._findClosestOptionIndex(this._value, selectableOptions);\n if (optionIndex >= 0) {\n const isExactMatch = selectableOptions[optionIndex].value.time === this._value;\n if (isExactMatch) {\n selectedValues = [selectableOptions[optionIndex].value];\n } else {\n visibleStartIndex = optionIndex;\n }\n }\n } else if (typeof this._startTime === 'number') {\n const optionIndex = this._findClosestOptionIndex(this._startTime, selectableOptions);\n if (optionIndex >= 0 && optionIndex < selectableOptions.length) {\n visibleStartIndex = optionIndex;\n }\n } else if (this._startTime == null) {\n // If we don't have a start time set then let's scroll the closest time to current time into view\n visibleStartIndex = this._getOptionIndexClosestCurrent(selectableOptions);\n }\n }\n\n this._dropdownConfig = {\n id: `forge-time-picker-${this._identifier}`,\n selectedValues,\n syncWidth: true,\n visibleStartIndex,\n popupClasses: this._popupClasses,\n popupStatic: true,\n type: ListDropdownType.Standard,\n options,\n selectCallback: value => this._onSelect(value),\n closeCallback: () => this._closeDropdown(true),\n activeChangeCallback: id => this._adapter.setActiveDescendant(id),\n targetWidthCallback: () => this._adapter.getTargetElementWidth(this._popupTarget)\n };\n this._adapter.attachDropdown(this._dropdownConfig);\n this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n private _closeDropdown(emitCloseEvent = false): void {\n this._open = false;\n this._dropdownConfig = undefined;\n this._adapter.removeHostAttribute(TIME_PICKER_CONSTANTS.attributes.OPEN);\n this._adapter.detachDropdown();\n if (emitCloseEvent) {\n this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.CLOSE, true, false);\n }\n }\n\n private _getOptionIndexClosestCurrent(options: IListDropdownOption<ITimePickerOptionValue>[]): number {\n const date = new Date();\n const currentTimeString = `${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`;\n const currentTimeMillis = timeStringToMillis(currentTimeString, true, false) as number;\n return this._findClosestOptionIndex(currentTimeMillis, options);\n }\n\n private _findClosestOptionIndex(value: number, options: Array<IListDropdownOption<ITimePickerOptionValue>>): number {\n const closestItem = options.reduce((prev, curr) => {\n return Math.abs((curr.value.time || 0) - value) < Math.abs((prev.value.time || 0) - value) ? curr : prev;\n });\n return options.indexOf(closestItem);\n }\n\n private _formatInputValue(emitEvents = true): void {\n const inputValue = this._adapter.getInputValue();\n \n // If we allow invalid times, we can leave the input value as-is (only when unmasked)\n if (this._allowInvalidTime && !this._masked && inputValue && !this._value) {\n return;\n }\n\n const formattedValue = this._formatValue(this._value);\n \n if (inputValue !== formattedValue) {\n this._adapter.setInputValue(formattedValue, emitEvents);\n this._adapter.emitInputEvent(TIME_PICKER_CONSTANTS.events.INPUT, formattedValue);\n }\n }\n\n private _generateTimeOptions(): Array<IListDropdownOption<ITimePickerOptionValue>> {\n const minMinutes = this._min != null ? Math.max(millisToMinutes(this._min), 0) : 0;\n const maxMinutes = this._max != null ? Math.min(millisToMinutes(this._max), TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) : TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES;\n const minuteStep = this._step;\n const times: IListDropdownOption[] = [];\n let leadingOptions: IListDropdownOption[] = [];\n \n if (this._showHourOptions) {\n for (let totalMinutes = minMinutes; totalMinutes <= maxMinutes; totalMinutes += minuteStep) {\n if (totalMinutes === TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) {\n break;\n }\n const millis = minutesToMillis(totalMinutes);\n const disabled = this._restrictedTimes.includes(millis);\n const label = millisToTimeString(millis, this._use24HourTime, false) || '';\n const value: ITimePickerOptionValue = { time: millis };\n times.push({ label, value, disabled });\n }\n\n // Add divider between AM/PM times\n const firstPmIndex = times.findIndex(t => t.value.time / 1000 / 60 >= 720);\n if (firstPmIndex >= 0 && firstPmIndex < times.length - 1) {\n times.splice(firstPmIndex, 0, { label: '', value: null, divider: true });\n }\n }\n\n\n // Check if we need to prepend a \"Now\" option\n if (this._showNow) {\n const value: ITimePickerOptionValue = { time: null, metadata: 'now' };\n leadingOptions.push({ label: 'Now', value });\n }\n\n // Check for any custom provided options to prepend\n if (Array.isArray(this._customOptions) && this._customOptions.length) {\n const options = this._customOptions.map(o => {\n const value: ITimePickerOptionValue = { time: null, metadata: o.value, isCustom: true, customCallback: o.toMilliseconds };\n return { label: o.label, value };\n });\n leadingOptions = [...leadingOptions, ...options];\n }\n\n // Append all leading options\n if (leadingOptions.length) {\n if (times.length) {\n times.splice(0, 0, { label: '', value: null, divider: true });\n }\n leadingOptions.forEach((o, index) => times.splice(index, 0, o));\n }\n\n return times;\n }\n\n private _convertTimeStringToMillis(value: string | null, use24HourTime: boolean, allowSeconds: boolean): number | null {\n if (!value || !this._isValidTimeFormat(value)) {\n value = '';\n }\n return timeStringToMillis(value, use24HourTime, allowSeconds);\n }\n\n private _formatValue(value: number | null | undefined): string {\n if (!this._masked && typeof this._formatCallback === 'function') {\n return this._formatCallback.call(null, value, this._use24HourTime, this._allowSeconds);\n }\n return millisToTimeString(this._value, this._use24HourTime, this._allowSeconds) || '';\n }\n\n private _warnInvalidFormat(value: string): void {\n console.warn(`The specified value \"${value}\" does not conform to the required format. The format is \"HH:mm\", \"HH:mm:ss\" where HH is 00-23, mm is 00-59, and ss is 00-59.`);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n if (this._isInitialized) {\n this._open = value;\n if (this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n }\n\n public get masked(): boolean {\n return this._masked;\n }\n public set masked(value: boolean) {\n if (this._masked !== value) {\n this._masked = value;\n if (this._isInitialized) {\n if (this._masked) {\n this._adapter.removeInputListener('input', this._inputListener);\n this._applyMask();\n } else {\n this._adapter.destroyMask();\n this._formatInputValue();\n this._adapter.addInputListener('input', this._inputListener);\n }\n }\n }\n }\n\n public get showMaskFormat(): boolean {\n return this._showMaskFormat;\n }\n public set showMaskFormat(value: boolean) {\n if (this._showMaskFormat !== value) {\n this._showMaskFormat = value;\n }\n }\n\n public get allowSeconds(): boolean {\n return this._allowSeconds;\n }\n public set allowSeconds(value: boolean) {\n if (this._allowSeconds !== value) {\n this._allowSeconds = !!value;\n this._applyAllowSeconds();\n\n if (this._isInitialized) {\n this._applyMask();\n this._formatInputValue();\n }\n\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS, `${!!value}`);\n }\n }\n\n public get use24HourTime(): boolean {\n return this._use24HourTime;\n }\n public set use24HourTime(value: boolean) {\n if (this._use24HourTime !== value) {\n this._use24HourTime = !!value;\n \n if (this._isInitialized) {\n this._applyMask();\n this._formatInputValue();\n }\n\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME, `${!!value}`);\n }\n }\n\n public get allowInvalidTime(): boolean {\n return this._allowInvalidTime;\n }\n public set allowInvalidTime(value: boolean) {\n if (this._allowInvalidTime !== value) {\n this._allowInvalidTime = !!value;\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME, `${!!value}`);\n }\n }\n\n public get value(): string | null {\n return millisToTimeString(this._value, true, this._allowSeconds);\n }\n public set value(value: string | null) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n const millis = this._validateMillis(this._convertTimeStringToMillis(value, true, true));\n this._setValue(millis);\n if (this._isInitialized) {\n this._applyValue(this._value);\n }\n }\n\n public get min(): string | null {\n return millisToTimeString(this._min, true, this._allowSeconds);\n }\n public set min(value: string | null) {\n if (this._min !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._min = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n\n // Validate and reset our millis to ensure within range\n const millis = this._validateMillis(this._value);\n this._setValue(millis);\n\n if (this._isInitialized) {\n this._applyValue(millis);\n }\n }\n }\n\n public get max(): string | null {\n return millisToTimeString(this._max, true, this._allowSeconds);\n }\n public set max(value: string | null) {\n if (this._max !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._max = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n \n // Validate and reset our millis to ensure within range\n const millis = this._validateMillis(this._value);\n this._setValue(millis);\n\n if (this._isInitialized) {\n this._applyValue(millis);\n }\n }\n }\n\n public get restrictedTimes(): string[] {\n return this._restrictedTimes\n .map(t => millisToTimeString(t, true, this._allowSeconds))\n .filter(v => typeof v === 'string') as string[];\n }\n public set restrictedTimes(value: string[]) {\n if (!Array.isArray(value)) {\n value = [];\n }\n this._restrictedTimes = value\n .filter(v => typeof v === 'string')\n .map(v => this._convertTimeStringToMillis(v, true, true))\n .filter(v => typeof v === 'number') as number[];\n }\n\n public get startTime(): string | null {\n return millisToTimeString(this._startTime, true, this._allowSeconds);\n }\n public set startTime(value: string | null) {\n if (this._startTime !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._startTime = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n }\n }\n\n public get step(): number {\n return this._step;\n }\n public set step(value: number) {\n this._step = value;\n }\n\n public get allowInput(): boolean {\n return this._allowInput;\n }\n public set allowInput(value: boolean) {\n if (this._allowInput !== value) {\n this._allowInput = value;\n if (this._isInitialized) {\n this._applyAllowInput();\n this._applyMask();\n }\n }\n }\n\n public get popupTarget(): string {\n return this._popupTarget;\n }\n public set popupTarget(value: string) {\n if (this._popupTarget !== value) {\n this._popupTarget = value;\n }\n }\n\n public get showNow(): boolean {\n return this._showNow;\n }\n public set showNow(value: boolean) {\n if (this._showNow !== value) {\n this._showNow = value;\n }\n }\n\n public get showHourOptions(): boolean {\n return this._showHourOptions;\n }\n public set showHourOptions(value: boolean) {\n if (this._showHourOptions !== value) {\n this._showHourOptions = value;\n }\n }\n\n public get customOptions(): ITimePickerOption[] {\n return this._customOptions;\n }\n public set customOptions(value: ITimePickerOption[]) {\n this._customOptions = Array.isArray(value) ? value : [];\n }\n\n public set validationCallback(cb: TimePickerValidationCallback) {\n this._validationCallback = cb;\n if (this._isInitialized) {\n this._applyMask();\n }\n }\n\n public set parseCallback(cb: TimePickerParseCallback) {\n this._parseCallback = cb;\n }\n\n public set formatCallback(cb: TimePickerFormatCallback) {\n this._formatCallback = cb;\n }\n\n public set coercionCallback(cb: TimePickerCoercionCallback) {\n this._coercionCallback = cb;\n }\n\n public set prepareMaskCallback(cb: TimePickerPrepareMaskCallback) {\n this._prepareMaskCallback = cb;\n if (this._isInitialized) {\n this._applyMask();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = !!value;\n if (this._isInitialized) {\n this._applyDisabled();\n }\n this._adapter.toggleHostAttribute(TIME_PICKER_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get popupClasses(): string | string[] {\n if (Array.isArray(this._popupClasses)) {\n return [...this._popupClasses];\n }\n\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (Array.isArray(value)) {\n this._popupClasses = [...value];\n } else {\n this._popupClasses = [value];\n }\n }\n\n public get allowDropdown(): boolean {\n return this._allowDropdown;\n }\n public set allowDropdown(value: boolean) {\n if (this._allowDropdown !== value) {\n this._allowDropdown = value;\n if (this._isInitialized) {\n this._applyAllowDropdown();\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean, coerceNumber, ensureChild } from '@tylertech/forge-core';\nimport { tylIconClockOutline } from '@tylertech/tyler-icons/extended';\nimport { tylIconClose } from '@tylertech/tyler-icons/standard';\nimport { TimePickerAdapter } from './time-picker-adapter';\nimport { TimePickerFoundation } from './time-picker-foundation';\nimport {\n TIME_PICKER_CONSTANTS,\n ITimePickerOption,\n TimePickerParseCallback,\n TimePickerValidationCallback,\n TimePickerFormatCallback,\n TimePickerCoercionCallback,\n TimePickerPrepareMaskCallback\n} from './time-picker-constants';\nimport { IconRegistry, IconComponent } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DialogComponent } from '../dialog';\nimport { ListComponent, ListItemComponent } from '../list';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface ITimePickerComponent extends IBaseComponent {\n value: string | null | undefined;\n open: boolean;\n allowSeconds: boolean;\n masked: boolean;\n showMaskFormat: boolean;\n use24HourTime: boolean;\n allowInvalidTime: boolean;\n min: string | null | undefined;\n max: string | null | undefined;\n restrictedTimes: string[];\n startTime: string | null | undefined;\n step: number;\n allowInput: boolean;\n showNow: boolean;\n showHourOptions: boolean;\n customOptions: ITimePickerOption[];\n validationCallback: TimePickerValidationCallback;\n parseCallback: TimePickerParseCallback;\n formatCallback: TimePickerFormatCallback;\n coercionCallback: TimePickerCoercionCallback;\n prepareMaskCallback: TimePickerPrepareMaskCallback;\n disabled: boolean;\n popupClasses: string | string[];\n allowDropdown: boolean;\n popupTarget: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-time-picker': ITimePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-time-picker-open': CustomEvent<void>;\n 'forge-time-picker-close': CustomEvent<void>;\n 'forge-time-picker-input': Event;\n 'forge-time-picker-change': CustomEvent<string | null>;\n }\n}\n\n/**\n * The web component class behind the `<forge-time-picker>` custom element.\n * \n * @tag forge-time-picker\n */\n@CustomElement({\n name: TIME_PICKER_CONSTANTS.elementName,\n dependencies: [\n ListComponent,\n ListItemComponent,\n IconButtonComponent,\n IconComponent,\n PopupComponent,\n IconComponent,\n DialogComponent\n ]\n})\nexport class TimePickerComponent extends BaseComponent implements ITimePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n TIME_PICKER_CONSTANTS.attributes.VALUE,\n TIME_PICKER_CONSTANTS.attributes.OPEN,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS,\n TIME_PICKER_CONSTANTS.attributes.MASKED,\n TIME_PICKER_CONSTANTS.attributes.SHOW_MASK_FORMAT,\n TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME,\n TIME_PICKER_CONSTANTS.attributes.MIN,\n TIME_PICKER_CONSTANTS.attributes.MAX,\n TIME_PICKER_CONSTANTS.attributes.START_TIME,\n TIME_PICKER_CONSTANTS.attributes.STEP,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_INPUT,\n TIME_PICKER_CONSTANTS.attributes.SHOW_NOW,\n TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS,\n TIME_PICKER_CONSTANTS.attributes.DISABLED,\n TIME_PICKER_CONSTANTS.attributes.POPUP_CLASSES,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_DROPDOWN\n ];\n }\n\n private _foundation: TimePickerFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconClockOutline, tylIconClose]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TimePickerFoundation(new TimePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n if (this.querySelector(TIME_PICKER_CONSTANTS.selectors.INPUT)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, TIME_PICKER_CONSTANTS.selectors.INPUT).then(() => this._foundation.initialize());\n }\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 TIME_PICKER_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS:\n this.allowSeconds = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.MASKED:\n this.masked = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_MASK_FORMAT:\n this.showMaskFormat = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME:\n this.use24HourTime = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME:\n this.allowInvalidTime = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_NOW:\n this.showNow = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS:\n this.showHourOptions = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.MIN:\n this.min = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.MAX:\n this.max = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.START_TIME:\n this.startTime = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.STEP:\n this.step = coerceNumber(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_INPUT:\n this.allowInput = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.POPUP_CLASSES:\n this.popupClasses = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_DROPDOWN:\n this.allowDropdown = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare value: string | null | undefined;\n\n @FoundationProperty()\n public declare open: boolean;\n\n @FoundationProperty()\n public declare allowSeconds: boolean;\n\n @FoundationProperty()\n public declare masked: boolean;\n\n @FoundationProperty()\n public declare showMaskFormat: boolean;\n\n @FoundationProperty()\n public declare use24HourTime: boolean;\n\n @FoundationProperty()\n public declare allowInvalidTime: boolean;\n\n @FoundationProperty()\n public declare min: string | null | undefined;\n\n @FoundationProperty()\n public declare max: string | null | undefined;\n\n @FoundationProperty()\n public declare restrictedTimes: string[];\n\n @FoundationProperty()\n public declare startTime: string | null | undefined;\n\n @FoundationProperty()\n public declare step: number;\n\n @FoundationProperty()\n public declare allowInput: boolean;\n\n @FoundationProperty()\n public declare showNow: boolean;\n\n /** Whether or not to display hour options in dropdown */\n @FoundationProperty()\n public declare showHourOptions: boolean;\n\n @FoundationProperty()\n public declare customOptions: ITimePickerOption[];\n\n @FoundationProperty()\n public declare validationCallback: TimePickerValidationCallback;\n \n @FoundationProperty()\n public declare parseCallback: TimePickerParseCallback;\n\n @FoundationProperty()\n public declare formatCallback: TimePickerFormatCallback;\n\n @FoundationProperty()\n public declare coercionCallback: TimePickerCoercionCallback;\n\n @FoundationProperty()\n public declare prepareMaskCallback: TimePickerPrepareMaskCallback;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare popupClasses: string | string[];\n\n @FoundationProperty()\n public declare allowDropdown: boolean;\n\n @FoundationProperty()\n public declare popupTarget: string;\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 { ITimePickerComponent } from './time-picker';\nimport { TIME_PICKER_CONSTANTS } from './time-picker-constants';\n\nexport type TimePickerComponentDelegateProps = Partial<ITimePickerComponent>;\nexport interface ITimePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\nexport interface ITimePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<ITimePickerComponent, ITimePickerComponentDelegateOptions> {}\n\nexport class TimePickerComponentDelegate extends FormFieldComponentDelegate<ITimePickerComponent, ITimePickerComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n\n constructor(config?: ITimePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): ITimePickerComponent {\n const timePicker = document.createElement(TIME_PICKER_CONSTANTS.elementName);\n this._attachTextField(timePicker);\n return timePicker;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._textFieldDelegate.inputElement;\n }\n\n public get textFieldElement(): 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 this._element.addEventListener(TIME_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<string>) => listener(evt.detail ?? ''));\n }\n\n public onInput(listener: (value: string) => void): void {\n this._element.addEventListener(TIME_PICKER_CONSTANTS.events.INPUT, (evt: CustomEvent<string>) => listener(evt.detail ?? ''));\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(component: ITimePickerComponent): 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 component.appendChild(this._textFieldDelegate.element);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TimePickerComponent } from './time-picker';\n\nexport * from './time-picker-adapter';\nexport * from './time-picker-component-delegate';\nexport * from './time-picker-constants';\nexport * from './time-picker-foundation';\nexport * from './time-picker-utils';\nexport * from './time-picker';\n\nexport function defineTimePickerComponent(): void {\n defineCustomElement(TimePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "events", "numbers", "TIME_PICKER_CONSTANTS", "TimePickerAdapter", "BaseAdapter", "component", "TIME_PICKER_CONSTANTS", "options", "TimeInputMask", "_a", "identifier", "type", "listener", "capture", "textField", "TEXT_FIELD_CONSTANTS", "toggleElement", "existingIconButton", "ICON_BUTTON_CONSTANTS", "iconButtonElement", "buttonElement", "iconElement", "ICON_CONSTANTS", "getActiveElement", "value", "emitEvents", "isDisabled", "config", "ListDropdown", "key", "id", "toggleAttribute", "selector", "data", "emitEvent", "button", "_b", "index", "textFieldRoot", "getShadowElement", "timeStringToMillis", "time", "use24HourTime", "allowSeconds", "hours", "minutes", "seconds", "TWENTY_FOUR_HOUR_TIME_REGEX", "tokens", "tokenize24HourTimeString", "TWELVE_HOUR_TIME_REGEX", "tokenize12HourTimeString", "hoursToMillis", "minutesToMillis", "secondsToMillis", "millisToTimeString", "value", "millisToHours", "millisToMinutesClamped", "meridiem", "millisToSecondsClamped", "millis", "millisToMinutes", "millisToSeconds", "stripSecondsFromMillis", "getCurrentTimeOfDayMillis", "date", "mergeDateWithTime", "useSeconds", "twentyThreeHoursInMillis", "TimePickerFoundation", "_adapter", "TIME_PICKER_CONSTANTS", "randomChars", "evt", "inputValue", "_a", "_b", "nowMillis", "getCurrentTimeOfDayMillis", "timeString", "millisToTimeString", "activeOption", "Platform", "options", "debounce", "value", "originalValue", "stripSecondsFromMillis", "rawValue", "tryCoerceTimeString", "millis", "force", "isBelowMin", "isAboveMax", "isSupportedTimeFormat", "TWENTY_FOUR_HOUR_TIME_REGEX", "result", "emitEvents", "formattedValue", "selectableOptions", "o", "selectedValues", "visibleStartIndex", "optionIndex", "id", "emitCloseEvent", "date", "currentTimeString", "currentTimeMillis", "timeStringToMillis", "closestItem", "prev", "curr", "minMinutes", "millisToMinutes", "maxMinutes", "minuteStep", "times", "leadingOptions", "totalMinutes", "minutesToMillis", "disabled", "label", "firstPmIndex", "t", "index", "use24HourTime", "allowSeconds", "v", "cb", "template", "styles", "TimePickerComponent", "BaseComponent", "IconRegistry", "tylIconClockOutline", "tylIconClose", "attachShadowTemplate", "TimePickerFoundation", "TimePickerAdapter", "TIME_PICKER_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "coerceBoolean", "coerceNumber", "__decorateClass", "FoundationProperty", "CustomElement", "ListComponent", "ListItemComponent", "IconButtonComponent", "IconComponent", "PopupComponent", "DialogComponent", "TimePickerComponentDelegate", "FormFieldComponentDelegate", "config", "timePicker", "TIME_PICKER_CONSTANTS", "value", "listener", "evt", "_a", "component", "_b", "_c", "_d", "textFieldConfig", "__spreadValues", "TextFieldComponentDelegate", "defineTimePickerComponent", "defineCustomElement", "TimePickerComponent"]
7
+ }