@tylertech/forge 2.16.4 → 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 (345) 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.4UV7AVZQ.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.IGLAQLE4.js → chunk.UVW3YDEX.js} +2 -2
  131. package/dist/esm/chunks/{chunk.IGLAQLE4.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/field/field-foundation.js +5 -0
  222. package/esm/list/list/list-adapter.js +2 -2
  223. package/esm/list/list-item/list-item.js +1 -1
  224. package/esm/popup/popup-adapter.js +2 -2
  225. package/esm/radio/radio-adapter.js +2 -1
  226. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  227. package/esm/stepper/stepper/stepper-adapter.js +1 -1
  228. package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
  229. package/esm/text-field/text-field-adapter.js +2 -1
  230. package/esm/time-picker/time-picker-adapter.js +2 -1
  231. package/package.json +2 -2
  232. package/styles/list/list-item/_mixins.scss +11 -1
  233. package/styles/list/list-item/_variables.scss +9 -0
  234. package/dist/esm/chunks/chunk.2NSEMS3F.js +0 -7
  235. package/dist/esm/chunks/chunk.2NSEMS3F.js.map +0 -7
  236. package/dist/esm/chunks/chunk.4FBPHKAE.js +0 -7
  237. package/dist/esm/chunks/chunk.4FBPHKAE.js.map +0 -7
  238. package/dist/esm/chunks/chunk.72AUOVCD.js +0 -7
  239. package/dist/esm/chunks/chunk.72AUOVCD.js.map +0 -7
  240. package/dist/esm/chunks/chunk.7JYM7675.js +0 -12
  241. package/dist/esm/chunks/chunk.A47X5VG3.js +0 -7
  242. package/dist/esm/chunks/chunk.A47X5VG3.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.LFUON5T3.js +0 -7
  257. package/dist/esm/chunks/chunk.LFUON5T3.js.map +0 -7
  258. package/dist/esm/chunks/chunk.LQ6IHK6T.js +0 -7
  259. package/dist/esm/chunks/chunk.LQ6IHK6T.js.map +0 -7
  260. package/dist/esm/chunks/chunk.OXWKSI6J.js +0 -7
  261. package/dist/esm/chunks/chunk.OXWKSI6J.js.map +0 -7
  262. package/dist/esm/chunks/chunk.PYIFIHDK.js +0 -7
  263. package/dist/esm/chunks/chunk.V7WKXEZC.js +0 -7
  264. package/dist/esm/chunks/chunk.V7WKXEZC.js.map +0 -7
  265. package/dist/esm/chunks/chunk.YWVKDJXZ.js +0 -7
  266. package/dist/esm/chunks/chunk.YWVKDJXZ.js.map +0 -7
  267. /package/dist/esm/chunks/{chunk.ZRRUDMBE.js.map → chunk.274MFEUZ.js.map} +0 -0
  268. /package/dist/esm/chunks/{chunk.ARJ3EVVO.js.map → chunk.2KXSGD3S.js.map} +0 -0
  269. /package/dist/esm/chunks/{chunk.VC2BG2RS.js.map → chunk.3FAYFYXF.js.map} +0 -0
  270. /package/dist/esm/chunks/{chunk.G45OZEIS.js.map → chunk.3IXTRC6Z.js.map} +0 -0
  271. /package/dist/esm/chunks/{chunk.77Y3EABF.js.map → chunk.3YT72ZWJ.js.map} +0 -0
  272. /package/dist/esm/chunks/{chunk.WY7DECJD.js.map → chunk.4CWMNWZU.js.map} +0 -0
  273. /package/dist/esm/chunks/{chunk.K2C4W3CO.js.map → chunk.4R6NK524.js.map} +0 -0
  274. /package/dist/esm/chunks/{chunk.G5MGGEFP.js.map → chunk.5KC43VFL.js.map} +0 -0
  275. /package/dist/esm/chunks/{chunk.ILRWZHH3.js.map → chunk.6ATSOUJQ.js.map} +0 -0
  276. /package/dist/esm/chunks/{chunk.NSOALSSD.js.map → chunk.6CO3CIUY.js.map} +0 -0
  277. /package/dist/esm/chunks/{chunk.RYMPSU4J.js.map → chunk.6TTAKWXI.js.map} +0 -0
  278. /package/dist/esm/chunks/{chunk.4WPFFNLH.js.map → chunk.73GVVX4K.js.map} +0 -0
  279. /package/dist/esm/chunks/{chunk.TR5YMNJJ.js.map → chunk.76PI42C5.js.map} +0 -0
  280. /package/dist/esm/chunks/{chunk.IGTXLDZS.js.map → chunk.7BAO5IED.js.map} +0 -0
  281. /package/dist/esm/chunks/{chunk.AFLH5HUG.js.map → chunk.7K44O5RO.js.map} +0 -0
  282. /package/dist/esm/chunks/{chunk.PALRSBSY.js.map → chunk.7SULS4D2.js.map} +0 -0
  283. /package/dist/esm/chunks/{chunk.LYOQ2RGP.js.map → chunk.A4UN74PV.js.map} +0 -0
  284. /package/dist/esm/chunks/{chunk.ZUNZKRRK.js.map → chunk.AMWDVFAU.js.map} +0 -0
  285. /package/dist/esm/chunks/{chunk.47A2CN5U.js.map → chunk.BESB4RGK.js.map} +0 -0
  286. /package/dist/esm/chunks/{chunk.IJW7Z6YD.js.map → chunk.BKAZC53W.js.map} +0 -0
  287. /package/dist/esm/chunks/{chunk.VAKNDCLP.js.map → chunk.BL4IBI6G.js.map} +0 -0
  288. /package/dist/esm/chunks/{chunk.FDLWB4QK.js.map → chunk.BTMBIAL2.js.map} +0 -0
  289. /package/dist/esm/chunks/{chunk.I5BAZWUF.js.map → chunk.CE6NTUWI.js.map} +0 -0
  290. /package/dist/esm/chunks/{chunk.7A6MX6CS.js.map → chunk.CG5CVENX.js.map} +0 -0
  291. /package/dist/esm/chunks/{chunk.HNMFFOUF.js.map → chunk.CN4XKIQI.js.map} +0 -0
  292. /package/dist/esm/chunks/{chunk.EGRUD7S7.js.map → chunk.CX7MOSLM.js.map} +0 -0
  293. /package/dist/esm/chunks/{chunk.XZ4WI7VK.js.map → chunk.D24CE6KE.js.map} +0 -0
  294. /package/dist/esm/chunks/{chunk.CDUN4ONU.js.map → chunk.D5OLAPHE.js.map} +0 -0
  295. /package/dist/esm/chunks/{chunk.4UV7AVZQ.js.map → chunk.EAGRODVX.js.map} +0 -0
  296. /package/dist/esm/chunks/{chunk.SHTHI473.js.map → chunk.EMV7JGHB.js.map} +0 -0
  297. /package/dist/esm/chunks/{chunk.UBD2DPQN.js.map → chunk.F5CFD2NG.js.map} +0 -0
  298. /package/dist/esm/chunks/{chunk.ROR6JMAE.js.map → chunk.FFVZ6JMP.js.map} +0 -0
  299. /package/dist/esm/chunks/{chunk.7BESNUTG.js.map → chunk.FOLQAW63.js.map} +0 -0
  300. /package/dist/esm/chunks/{chunk.Y72NANFX.js.map → chunk.FPLHVO6D.js.map} +0 -0
  301. /package/dist/esm/chunks/{chunk.4Y2QP7JX.js.map → chunk.G4DG233F.js.map} +0 -0
  302. /package/dist/esm/chunks/{chunk.7UKA4E5A.js.map → chunk.GQCUI7YS.js.map} +0 -0
  303. /package/dist/esm/chunks/{chunk.F2B24WLK.js.map → chunk.H3IPTBWM.js.map} +0 -0
  304. /package/dist/esm/chunks/{chunk.Y4GKBJGI.js.map → chunk.HOXFK44F.js.map} +0 -0
  305. /package/dist/esm/chunks/{chunk.M7QAOQQ4.js.map → chunk.HTH3CEDN.js.map} +0 -0
  306. /package/dist/esm/chunks/{chunk.INCKI5IX.js.map → chunk.IZSUW7WG.js.map} +0 -0
  307. /package/dist/esm/chunks/{chunk.TWZXQQQO.js.map → chunk.JD4APKZS.js.map} +0 -0
  308. /package/dist/esm/chunks/{chunk.N4PVZUJX.js.map → chunk.JDLEPQKN.js.map} +0 -0
  309. /package/dist/esm/chunks/{chunk.7JYM7675.js.map → chunk.JRUIOKFS.js.map} +0 -0
  310. /package/dist/esm/chunks/{chunk.KU5CXXGS.js.map → chunk.K7HRCGML.js.map} +0 -0
  311. /package/dist/esm/chunks/{chunk.Y5A7RQ5M.js.map → chunk.KII37K76.js.map} +0 -0
  312. /package/dist/esm/chunks/{chunk.RBAVT3XQ.js.map → chunk.M6PJ3PNN.js.map} +0 -0
  313. /package/dist/esm/chunks/{chunk.4NI63FGK.js.map → chunk.MSFGXRCM.js.map} +0 -0
  314. /package/dist/esm/chunks/{chunk.XBW46N2J.js.map → chunk.MWHVRJW5.js.map} +0 -0
  315. /package/dist/esm/chunks/{chunk.ASJHDPFL.js.map → chunk.NEFQWOLN.js.map} +0 -0
  316. /package/dist/esm/chunks/{chunk.JEN6YP2Q.js.map → chunk.NLXSZNQI.js.map} +0 -0
  317. /package/dist/esm/chunks/{chunk.MLV25D2G.js.map → chunk.NMKDIHFB.js.map} +0 -0
  318. /package/dist/esm/chunks/{chunk.XUW3GG46.js.map → chunk.NX4EECNP.js.map} +0 -0
  319. /package/dist/esm/chunks/{chunk.P3IA2WTO.js.map → chunk.ON2K3O3I.js.map} +0 -0
  320. /package/dist/esm/chunks/{chunk.LJU5WSSF.js.map → chunk.P4Z7NC6O.js.map} +0 -0
  321. /package/dist/esm/chunks/{chunk.O4FB4BV5.js.map → chunk.PADHAJLS.js.map} +0 -0
  322. /package/dist/esm/chunks/{chunk.HPDBSBQJ.js.map → chunk.PKVY6EWM.js.map} +0 -0
  323. /package/dist/esm/chunks/{chunk.P5HFRNJW.js.map → chunk.PW7IGEHF.js.map} +0 -0
  324. /package/dist/esm/chunks/{chunk.YDBWGKR4.js.map → chunk.Q5YD3PKM.js.map} +0 -0
  325. /package/dist/esm/chunks/{chunk.D6MLVA5G.js.map → chunk.QAWXAPHR.js.map} +0 -0
  326. /package/dist/esm/chunks/{chunk.BE7PZANN.js.map → chunk.QOA2O575.js.map} +0 -0
  327. /package/dist/esm/chunks/{chunk.H4Z4DHPA.js.map → chunk.RUK5PIER.js.map} +0 -0
  328. /package/dist/esm/chunks/{chunk.JHBCYICS.js.map → chunk.S2YVOMLW.js.map} +0 -0
  329. /package/dist/esm/chunks/{chunk.T76JYRPR.js.map → chunk.SAQSXX2T.js.map} +0 -0
  330. /package/dist/esm/chunks/{chunk.HI2DQJZG.js.map → chunk.SATUJNQX.js.map} +0 -0
  331. /package/dist/esm/chunks/{chunk.BTBHIIGI.js.map → chunk.SQTM36C3.js.map} +0 -0
  332. /package/dist/esm/chunks/{chunk.RB5BTA5N.js.map → chunk.T6NVM7TN.js.map} +0 -0
  333. /package/dist/esm/chunks/{chunk.JHY2CKEH.js.map → chunk.UHU4FUIS.js.map} +0 -0
  334. /package/dist/esm/chunks/{chunk.GCR7QZRO.js.map → chunk.USXO7YKN.js.map} +0 -0
  335. /package/dist/esm/chunks/{chunk.FRYLJWYL.js.map → chunk.UW2HWAVL.js.map} +0 -0
  336. /package/dist/esm/chunks/{chunk.RE5X26QT.js.map → chunk.VT2QJ7SM.js.map} +0 -0
  337. /package/dist/esm/chunks/{chunk.UT7QUGAO.js.map → chunk.VTB27IL7.js.map} +0 -0
  338. /package/dist/esm/chunks/{chunk.ELV22KTH.js.map → chunk.VUOTKGLB.js.map} +0 -0
  339. /package/dist/esm/chunks/{chunk.L6WXTCL2.js.map → chunk.XFAOB6LU.js.map} +0 -0
  340. /package/dist/esm/chunks/{chunk.TBY35XZK.js.map → chunk.XMAKEISF.js.map} +0 -0
  341. /package/dist/esm/chunks/{chunk.WP4QOOIS.js.map → chunk.XQ5CDWDY.js.map} +0 -0
  342. /package/dist/esm/chunks/{chunk.G3ZTZ4AN.js.map → chunk.YG24YPYO.js.map} +0 -0
  343. /package/dist/esm/chunks/{chunk.BJE6O5ES.js.map → chunk.YJTE34LC.js.map} +0 -0
  344. /package/dist/esm/chunks/{chunk.4BEI55KI.js.map → chunk.YMBLWKRP.js.map} +0 -0
  345. /package/dist/esm/chunks/{chunk.HBMNXZES.js.map → chunk.ZCQO3N25.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as g,d as $}from"./chunk.HPDBSBQJ.js";import{b as q}from"./chunk.7A6MX6CS.js";import{a as u,b as j}from"./chunk.2DXG2R3M.js";import{a as f,b as x,d as U,f as X,g as G}from"./chunk.F3MP6AXF.js";import{r as W,s as F}from"./chunk.MZLPUI6R.js";import{a as k}from"./chunk.YI4JTY4T.js";import{d as Y,l as V}from"./chunk.JHBCYICS.js";import{a as z}from"./chunk.G5MGGEFP.js";import{a as m}from"./chunk.KTGSZEAG.js";import{a as P,b as H}from"./chunk.BE7PZANN.js";import{a as M,e as D,g as b,l as K}from"./chunk.Y4GKBJGI.js";import{g as O,s as N,t as E}from"./chunk.PN26D52V.js";import{d as R,h as B,k as _,l as w}from"./chunk.J2M2MXP2.js";import{f as p}from"./chunk.MCIQXNKY.js";var J=`${H}tab-bar`,lt={ACTIVE_TAB:"active-tab",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",UNDERLINE:"underline",AUTO_ACTIVATE:"auto-activate",STACKED:"stacked",SCROLL_BUTTONS:"scroll-buttons",FORCE_SCROLL_BUTTONS:"force-scroll-buttons"},st={UNDERLINED:"forge-tab-bar--underlined",ALIGN_CENTER:"forge-tab-bar--align-center",ALIGN_END:"forge-tab-bar--align-end",FIXED:"forge-tab-bar--fixed",STACKED:"forge-tab-bar--stacked"},ct={ROOT:".forge-tab-bar",TAB_SCROLLER:".mdc-tab-scroller",TAB_SCROLLER_AREA:".mdc-tab-scroller__scroll-area",TAB_SCROLLER_CONTENT:".mdc-tab-scroller__scroll-content",PREV_BUTTON_CONTAINER:".forge-tab-bar__scroll-prev-container",PREV_BUTTON:"#scroll-prev-btn",NEXT_BUTTON_CONTAINER:".forge-tab-bar__scroll-next-container",NEXT_BUTTON:"#scroll-next-btn"},dt={ACTIVATE:`${J}-activate`},d={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space"},v={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,ENTER_KEYCODE:13,EXTRA_SCROLL_AMOUNT:20,HOME_KEYCODE:36,SPACE_KEYCODE:32},i={attributes:lt,elementName:J,classes:st,selectors:ct,events:dt,strings:d,numbers:v},Q=[d.ARROW_LEFT_KEY,d.ARROW_RIGHT_KEY,d.END_KEY,d.HOME_KEY,d.ENTER_KEY,d.SPACE_KEY],Z={[v.ARROW_LEFT_KEYCODE]:d.ARROW_LEFT_KEY,[v.ARROW_RIGHT_KEYCODE]:d.ARROW_RIGHT_KEY,[v.END_KEYCODE]:d.END_KEY,[v.HOME_KEYCODE]:d.HOME_KEY,[v.ENTER_KEYCODE]:d.ENTER_KEY,[v.SPACE_KEYCODE]:d.SPACE_KEY};var y=class{constructor(e){this._adapter=e;this._isInitialized=!1;this._activeTab=-1;this._layoutMode="fixed";this._layoutAlign="start";this._underline=!1;this._autoActivate=!1;this._stacked=!1;this._scrollButtons=!0;this._forceScrollButtons=!1;this._tabsChangedListener=t=>this._onTabsChanged(t),this._tabInteractedListener=t=>this._onTabInteracted(t),this._keydownListener=t=>this._onKeydown(t),this._scrollPrevClickListener=t=>this._onScrollPrevious(t),this._scrollPrevMousedownListener=t=>t.preventDefault(),this._scrollNextClickListener=t=>this._onScrollNext(t),this._scrollNextMousedownListener=t=>t.preventDefault(),this._scrollListener=t=>this._onScroll(t)}initialize(){this._adapter.initializeTabs(this._activeTab,this._isFixed),this._adapter.initializeTabScroller(),this._adapter.initializeAccessibility(),this._adapter.addTabChangeListener(this._tabsChangedListener),this._adapter.addScrollPreviousListener("click",this._scrollPrevClickListener),this._adapter.addScrollPreviousListener("mousedown",this._scrollPrevMousedownListener),this._adapter.addScrollNextListener("click",this._scrollNextClickListener),this._adapter.addScrollNextListener("mousedown",this._scrollNextMousedownListener),this._adapter.addHostListener(g.events.INTERACTED,this._tabInteractedListener),this._adapter.addHostListener("keydown",this._keydownListener),this._adapter.addScrollListener(this._scrollListener),this._adapter.setUnderline(this._underline),this._adapter.setLayoutMode(this._layoutMode),this._adapter.setLayoutAlign(this._layoutAlign),window.requestAnimationFrame(()=>{this._syncScrollButtons(),this._adapter.ensureFocusableTab()}),this._isInitialized=!0}disconnect(){this._adapter.destroyTabScroller(),this._adapter.removeTabChangeListener(this._tabsChangedListener),this._adapter.removeHostListener(g.events.INTERACTED,this._tabInteractedListener),this._adapter.removeHostListener("keydown",this._keydownListener),this._isInitialized=!1}_onTabsChanged(e){this._adapter.initializeTabs(this._activeTab,this._isFixed),this._adapter.ensureFocusableTab(),window.setTimeout(()=>{window.requestAnimationFrame(()=>{this.scrollIntoView(this._activeTab),this._syncScrollButtons()})})}_onTabInteracted(e){let t=e.target,r=this._adapter.getTabIndex(t),o=t.tagName.toLowerCase()===g.elementName,n=r!==this._activeTab&&this._indexIsInRange(r);if(!o||!n)return;let s={index:r};!this._adapter.emitHostEvent(i.events.ACTIVATE,s,!0,!0)||(this.activateTab(r),this._adapter.focusTabAtIndex(r))}_onKeydown(e){let t=this._getKeyFromEvent(e);if(!!t)if(this._isActivationKey(t)||e.preventDefault(),this._autoActivate){if(this._isActivationKey(t))return;let r=this._determineTargetFromKey(this._activeTab,t);if(this._activeTab===r)return;let o={index:r};this._adapter.emitHostEvent(i.events.ACTIVATE,o,!0,!0)&&(this.activateTab(r),this._adapter.focusTabAtIndex(r))}else{let r=this._adapter.getFocusedTabIndex();if(r===-1)return;if(this._isActivationKey(t)){let o={index:r};this._adapter.emitHostEvent(i.events.ACTIVATE,o,!0,!0)&&this.activateTab(r)}else{let o=this._determineTargetFromKey(r,t);if(r===o)return;this._adapter.focusTabAtIndex(o),this.scrollIntoView(o)}}}_onScrollPrevious(e){let t=-this._adapter.getOffsetWidth();this._adapter.incrementScroll(t),this._syncScrollButtons()}_onScrollNext(e){let t=this._adapter.getOffsetWidth();this._adapter.incrementScroll(t),this._syncScrollButtons()}_onScroll(e){this._syncScrollButtons()}_syncScrollButtons(){let e=this._isScrollable();this._adapter.setPreviousButtonVisibility(e),this._adapter.setNextButtonVisibility(e),e&&(this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled()),this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd()))}_findAdjacentTabIndexClosestToEdge(e,t,r,o){let n=t.rootLeft-r,s=t.rootRight-r-o,h=n+s,l=n<0||h<0,S=s>0||h>0;return l?e-1:S?e+1:-1}_calculateScrollIncrement(e,t,r,o){let n=this._adapter.getTabDimensionsAtIndex(t),s=n.contentLeft-r-o,l=n.contentRight-r-i.numbers.EXTRA_SCROLL_AMOUNT,S=s+i.numbers.EXTRA_SCROLL_AMOUNT;return t<e?Math.min(l,0):Math.max(S,0)}_determineTargetFromKey(e,t,r){if(e===r)return e;let o=this._adapter.getTabCount()-1,n=t===i.strings.END_KEY,s=t===i.strings.ARROW_LEFT_KEY,h=t===i.strings.ARROW_RIGHT_KEY,l=r!==void 0?r:e;return n?l=o:s?l-=1:h?l+=1:l=0,l<0?l=o:l>o&&(l=0),this._adapter.isTabDisabled(l)?this._determineTargetFromKey(e,t,l):l}_isScrollable(){return this._forceScrollButtons||this._scrollButtons&&!k.isMobile&&!this._isFixed&&this._adapter.getScrollContentWidth()>this._adapter.getOffsetWidth()}_getKeyFromEvent(e){return Q.includes(e.key)?e.key:Z[e.keyCode]}_isActivationKey(e){return e===i.strings.SPACE_KEY||e===i.strings.ENTER_KEY}_indexIsInRange(e){return e>=0&&e<this._adapter.getTabCount()}activateTab(e){R(e)||(e=-1),this._activeTab!==-1&&this._adapter.deactivateTab(this._activeTab);let t=this._adapter.getTabBounds(this._activeTab);this._adapter.activateTab(e,t),this._adapter.syncTabIndex(e),this._adapter.ensureFocusableTab(),this.scrollIntoView(e),this._activeTab=e,this._syncScrollButtons(),this._adapter.setHostAttribute(i.attributes.ACTIVE_TAB,this._activeTab.toString())}scrollIntoView(e){if(!this._indexIsInRange(e))return;if(e===0)return this._adapter.scrollTo(0);if(e===this._adapter.getTabCount()-1)return this._adapter.scrollTo(this._adapter.getScrollContentWidth());let t=this._adapter.getScrollPosition(),r=this._adapter.getOffsetWidth(),o=this._adapter.getTabDimensionsAtIndex(e),n=this._findAdjacentTabIndexClosestToEdge(e,o,t,r);if(!this._indexIsInRange(n))return;let s=this._calculateScrollIncrement(e,n,t,r);this._adapter.incrementScroll(s)}get activeTab(){return this._activeTab}set activeTab(e){this._activeTab!==e&&(this._isInitialized?this.activateTab(e):(this._activeTab=e,this._adapter.setHostAttribute(i.attributes.ACTIVE_TAB,this._activeTab.toString())))}get _isFixed(){return this._layoutMode==="fixed"}get layoutMode(){return this._layoutMode}set layoutMode(e){this._layoutMode!==e&&(this._layoutMode=e,this._adapter.setLayoutMode(this._layoutMode),this._syncScrollButtons())}get layoutAlign(){return this._layoutAlign}set layoutAlign(e){this._layoutAlign!==e&&(this._layoutAlign=e,this._adapter.setLayoutAlign(this._layoutAlign))}get underline(){return this._underline}set underline(e){this._underline!==e&&(this._underline=e,this._adapter.setUnderline(this._underline),this._adapter.toggleHostAttribute(i.attributes.UNDERLINE,this._underline))}get stacked(){return this._stacked}set stacked(e){this._stacked!==e&&(this._stacked=e,this._adapter.setStacked(this._stacked),this._stacked?this._adapter.setHostAttribute(i.attributes.STACKED):this._adapter.removeHostAttribute(i.attributes.STACKED))}get scrollButtons(){return this._scrollButtons}set scrollButtons(e){this._scrollButtons!==e&&(this._scrollButtons=e,this._adapter.setHostAttribute(i.attributes.SCROLL_BUTTONS,this._scrollButtons.toString()),this._isInitialized&&this._syncScrollButtons())}get forceScrollButtons(){return this._forceScrollButtons}set forceScrollButtons(e){this._forceScrollButtons!==e&&(this._forceScrollButtons=e,this._isInitialized&&this._syncScrollButtons())}get autoActivate(){return this._autoActivate}set autoActivate(e){this._autoActivate!==e&&(this._autoActivate=e,this._adapter.setHostAttribute(i.attributes.AUTO_ACTIVATE,this._autoActivate.toString()))}};var A={ANIMATING:"mdc-tab-scroller--animating",SCROLL_AREA_SCROLL:"mdc-tab-scroller__scroll-area--scroll",SCROLL_TEST:"mdc-tab-scroller__test"},tt={AREA_SELECTOR:".mdc-tab-scroller__scroll-area",CONTENT_SELECTOR:".mdc-tab-scroller__scroll-content"};var I;function et(a,e){if(e===void 0&&(e=!0),e&&typeof I!="undefined")return I;var t=a.createElement("div");t.classList.add(A.SCROLL_TEST),a.body.appendChild(t);var r=t.offsetHeight-t.clientHeight;return a.body.removeChild(t),e&&(I=r),r}var T=function(){function a(e){this.adapter=e}return a}();var rt=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(){var t=this.adapter.getScrollAreaScrollLeft(),r=this.calculateScrollEdges().right;return Math.round(r-t)},e.prototype.scrollToRTL=function(t){var r=this.calculateScrollEdges(),o=this.adapter.getScrollAreaScrollLeft(),n=this.clampScrollValue(r.right-t);return{finalScrollPosition:n,scrollDelta:n-o}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.getAnimatingScrollPosition=function(t){return t},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:0,right:t-r}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.left,t),r.right)},e}(T);var ot=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft();return Math.round(t-r)},e.prototype.scrollToRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.getAnimatingScrollPosition=function(t,r){return t-r},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:r-t,right:0}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.max(Math.min(r.right,t),r.left)},e}(T);var it=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft();return Math.round(r-t)},e.prototype.scrollToRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(t);return{finalScrollPosition:o,scrollDelta:r-o}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r+t);return{finalScrollPosition:o,scrollDelta:r-o}},e.prototype.getAnimatingScrollPosition=function(t,r){return t+r},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:t-r,right:0}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.right,t),r.left)},e}(T);var L=function(a){f(e,a);function e(t){var r=a.call(this,x(x({},e.defaultAdapter),t))||this;return r.isAnimating=!1,r}return Object.defineProperty(e,"cssClasses",{get:function(){return A},enumerable:!1,configurable:!0}),Object.defineProperty(e,"strings",{get:function(){return tt},enumerable:!1,configurable:!0}),Object.defineProperty(e,"defaultAdapter",{get:function(){return{eventTargetMatchesSelector:function(){return!1},addClass:function(){},removeClass:function(){},addScrollAreaClass:function(){},setScrollAreaStyleProperty:function(){},setScrollContentStyleProperty:function(){},getScrollContentStyleValue:function(){return""},setScrollAreaScrollLeft:function(){},getScrollAreaScrollLeft:function(){return 0},getScrollContentOffsetWidth:function(){return 0},getScrollAreaOffsetWidth:function(){return 0},computeScrollAreaClientRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},computeScrollContentClientRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},computeHorizontalScrollbarHeight:function(){return 0}}},enumerable:!1,configurable:!0}),e.prototype.init=function(){var t=this.adapter.computeHorizontalScrollbarHeight();this.adapter.setScrollAreaStyleProperty("margin-bottom",-t+"px"),this.adapter.addScrollAreaClass(e.cssClasses.SCROLL_AREA_SCROLL)},e.prototype.getScrollPosition=function(){if(this.isRTL())return this.computeCurrentScrollPositionRTL();var t=this.calculateCurrentTranslateX(),r=this.adapter.getScrollAreaScrollLeft();return r-t},e.prototype.handleInteraction=function(){!this.isAnimating||this.stopScrollAnimation()},e.prototype.handleTransitionEnd=function(t){var r=t.target;!this.isAnimating||!this.adapter.eventTargetMatchesSelector(r,e.strings.CONTENT_SELECTOR)||(this.isAnimating=!1,this.adapter.removeClass(e.cssClasses.ANIMATING))},e.prototype.incrementScroll=function(t){t!==0&&this.animate(this.getIncrementScrollOperation(t))},e.prototype.incrementScrollImmediate=function(t){if(t!==0){var r=this.getIncrementScrollOperation(t);r.scrollDelta!==0&&(this.stopScrollAnimation(),this.adapter.setScrollAreaScrollLeft(r.finalScrollPosition))}},e.prototype.scrollTo=function(t){if(this.isRTL()){this.scrollToImplRTL(t);return}this.scrollToImpl(t)},e.prototype.getRTLScroller=function(){return this.rtlScrollerInstance||(this.rtlScrollerInstance=this.rtlScrollerFactory()),this.rtlScrollerInstance},e.prototype.calculateCurrentTranslateX=function(){var t=this.adapter.getScrollContentStyleValue("transform");if(t==="none")return 0;var r=/\((.+?)\)/.exec(t);if(!r)return 0;var o=r[1],n=U(o.split(","),6),s=n[0],h=n[1],l=n[2],S=n[3],at=n[4],ft=n[5];return parseFloat(at)},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.left,t),r.right)},e.prototype.computeCurrentScrollPositionRTL=function(){var t=this.calculateCurrentTranslateX();return this.getRTLScroller().getScrollPositionRTL(t)},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:0,right:t-r}},e.prototype.scrollToImpl=function(t){var r=this.getScrollPosition(),o=this.clampScrollValue(t),n=o-r;this.animate({finalScrollPosition:o,scrollDelta:n})},e.prototype.scrollToImplRTL=function(t){var r=this.getRTLScroller().scrollToRTL(t);this.animate(r)},e.prototype.getIncrementScrollOperation=function(t){if(this.isRTL())return this.getRTLScroller().incrementScrollRTL(t);var r=this.getScrollPosition(),o=t+r,n=this.clampScrollValue(o),s=n-r;return{finalScrollPosition:n,scrollDelta:s}},e.prototype.animate=function(t){var r=this;t.scrollDelta!==0&&(this.stopScrollAnimation(),this.adapter.setScrollAreaScrollLeft(t.finalScrollPosition),this.adapter.setScrollContentStyleProperty("transform","translateX("+t.scrollDelta+"px)"),this.adapter.computeScrollAreaClientRect(),requestAnimationFrame(function(){r.adapter.addClass(e.cssClasses.ANIMATING),r.adapter.setScrollContentStyleProperty("transform","none")}),this.isAnimating=!0)},e.prototype.stopScrollAnimation=function(){this.isAnimating=!1;var t=this.getAnimatingScrollPosition();this.adapter.removeClass(e.cssClasses.ANIMATING),this.adapter.setScrollContentStyleProperty("transform","translateX(0px)"),this.adapter.setScrollAreaScrollLeft(t)},e.prototype.getAnimatingScrollPosition=function(){var t=this.calculateCurrentTranslateX(),r=this.adapter.getScrollAreaScrollLeft();return this.isRTL()?this.getRTLScroller().getAnimatingScrollPosition(r,t):r-t},e.prototype.rtlScrollerFactory=function(){var t=this.adapter.getScrollAreaScrollLeft();this.adapter.setScrollAreaScrollLeft(t-1);var r=this.adapter.getScrollAreaScrollLeft();if(r<0)return this.adapter.setScrollAreaScrollLeft(t),new ot(this.adapter);var o=this.adapter.computeScrollAreaClientRect(),n=this.adapter.computeScrollContentClientRect(),s=Math.round(n.right-o.right);return this.adapter.setScrollAreaScrollLeft(t),s===r?new it(this.adapter):new rt(this.adapter)},e.prototype.isRTL=function(){return this.adapter.getScrollContentStyleValue("direction")==="rtl"},e}(X);var nt=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.attachTo=function(t){return new e(t)},e.prototype.initialize=function(){this.area=this.root.querySelector(L.strings.AREA_SELECTOR),this.content=this.root.querySelector(L.strings.CONTENT_SELECTOR)},e.prototype.initialSyncWithDOM=function(){var t=this;this.handleInteraction=function(){t.foundation.handleInteraction()},this.handleTransitionEnd=function(r){t.foundation.handleTransitionEnd(r)},this.area.addEventListener("wheel",this.handleInteraction,u()),this.area.addEventListener("touchstart",this.handleInteraction,u()),this.area.addEventListener("pointerdown",this.handleInteraction,u()),this.area.addEventListener("mousedown",this.handleInteraction,u()),this.area.addEventListener("keydown",this.handleInteraction,u()),this.content.addEventListener("transitionend",this.handleTransitionEnd)},e.prototype.destroy=function(){a.prototype.destroy.call(this),this.area.removeEventListener("wheel",this.handleInteraction,u()),this.area.removeEventListener("touchstart",this.handleInteraction,u()),this.area.removeEventListener("pointerdown",this.handleInteraction,u()),this.area.removeEventListener("mousedown",this.handleInteraction,u()),this.area.removeEventListener("keydown",this.handleInteraction,u()),this.content.removeEventListener("transitionend",this.handleTransitionEnd)},e.prototype.getDefaultFoundation=function(){var t=this,r={eventTargetMatchesSelector:function(o,n){return j(o,n)},addClass:function(o){t.root.classList.add(o)},removeClass:function(o){t.root.classList.remove(o)},addScrollAreaClass:function(o){t.area.classList.add(o)},setScrollAreaStyleProperty:function(o,n){t.area.style.setProperty(o,n)},setScrollContentStyleProperty:function(o,n){t.content.style.setProperty(o,n)},getScrollContentStyleValue:function(o){return window.getComputedStyle(t.content).getPropertyValue(o)},setScrollAreaScrollLeft:function(o){return t.area.scrollLeft=o},getScrollAreaScrollLeft:function(){return t.area.scrollLeft},getScrollContentOffsetWidth:function(){return t.content.offsetWidth},getScrollAreaOffsetWidth:function(){return t.area.offsetWidth},computeScrollAreaClientRect:function(){return t.area.getBoundingClientRect()},computeScrollContentClientRect:function(){return t.content.getBoundingClientRect()},computeHorizontalScrollbarHeight:function(){return et(document)}};return new L(r)},e.prototype.getScrollPosition=function(){return this.foundation.getScrollPosition()},e.prototype.getScrollContentWidth=function(){return this.content.offsetWidth},e.prototype.incrementScroll=function(t){this.foundation.incrementScroll(t)},e.prototype.scrollTo=function(t){this.foundation.scrollTo(t)},e}(G);var C=class extends z{constructor(t){super(t);this._tabs=[];this._rootElement=b(this._component,i.selectors.ROOT),this._tabScrollElement=b(this._component,i.selectors.TAB_SCROLLER),this._tabScrollAreaElement=b(this._component,i.selectors.TAB_SCROLLER_AREA),this._tabScrollContentElement=b(this._component,i.selectors.TAB_SCROLLER_CONTENT),this._defaultSlotElement=b(this._component,g.selectors.DEFAULT_SLOT),this._prevButtonContainerElement=b(this._component,i.selectors.PREV_BUTTON_CONTAINER),this._prevButtonElement=b(this._component,i.selectors.PREV_BUTTON),this._nextButtonContainerElement=b(this._component,i.selectors.NEXT_BUTTON_CONTAINER),this._nextButtonElement=b(this._component,i.selectors.NEXT_BUTTON)}initializeTabs(t,r){this._tabs=this._getTabs(),this._tabs.length&&(this._tabs.forEach(o=>{o.active=!1,o.stretch=r}),t>=0&&t<this._tabs.length?this._tabs[t].active=!0:this.ensureFocusableTab())}initializeTabScroller(){this._tabScroller=new nt(this._tabScrollElement)}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}destroyTabScroller(){this._tabScroller&&this._tabScroller.destroy()}addTabChangeListener(t){this._defaultSlotElement.addEventListener("slotchange",t)}removeTabChangeListener(t){this._defaultSlotElement.removeEventListener("slotchange",t)}addScrollListener(t){this._tabScrollAreaElement.addEventListener("scroll",t)}getTabIndex(t){return this._tabs.indexOf(t)}getTabCount(){return this._tabs.length}activateTab(t,r){let o=this._getTabByIndex(t);o&&o.activate(r)}deactivateTab(t){let r=this._getTabByIndex(t);r&&r.deactivate()}syncTabIndex(t){let r=this._getTabs(),o=r[t];r.filter(n=>n!==o).forEach(n=>n.setTabIndex(-1))}getTabBounds(t){let r=this._getTabByIndex(t);if(r)return r.computeIndicatorBounds()}setUnderline(t){E(this._rootElement,t,i.classes.UNDERLINED)}setStacked(t){E(this._rootElement,t,i.classes.STACKED)}scrollTo(t){this._tabScroller&&this._tabScroller.scrollTo(t)}getScrollContentWidth(){return this._tabScroller?this._tabScroller.getScrollContentWidth():0}getScrollPosition(){return this._tabScroller?this._tabScroller.getScrollPosition():0}getOffsetWidth(){return this._tabScrollElement.offsetWidth}getTabDimensionsAtIndex(t){let r=this._getTabByIndex(t);return r?r.computeDimensions():{rootLeft:0,rootRight:0,contentLeft:0,contentRight:0}}incrementScroll(t){this._tabScroller&&this._tabScroller.incrementScroll(t)}isScrolled(){return this._tabScrollAreaElement.scrollLeft>0}isScrolledEnd(){let t=Math.round(this._tabScrollAreaElement.scrollLeft),r=Math.round(this._tabScrollContentElement.scrollWidth-this._tabScrollElement.offsetWidth);return t>=r}getFocusedTabIndex(){let t=N();return this._tabs.findIndex(r=>r===t?!0:!!r.shadowRoot.contains(t))}focusTabAtIndex(t){let r=this._getTabByIndex(t);if(r)return r.focus()}setLayoutMode(t){let r=t==="fixed";E(this._rootElement,r,i.classes.FIXED),this._tabs.forEach(o=>o.stretch=r)}setLayoutAlign(t){switch(O([i.classes.ALIGN_CENTER,i.classes.ALIGN_END],this._rootElement),t){case"center":this._rootElement.classList.add(i.classes.ALIGN_CENTER);break;case"end":this._rootElement.classList.add(i.classes.ALIGN_END);break}}setPreviousButtonVisibility(t){t?this._prevButtonContainerElement.style.removeProperty("display"):this._prevButtonContainerElement.style.display="none"}setPreviousButtonEnabled(t){this._prevButtonElement.disabled=!t}setNextButtonVisibility(t){t?this._nextButtonContainerElement.style.removeProperty("display"):this._nextButtonContainerElement.style.display="none"}setNextButtonEnabled(t){this._nextButtonElement.disabled=!t}addScrollPreviousListener(t,r){this._prevButtonElement.addEventListener(t,r)}addScrollNextListener(t,r){this._nextButtonElement.addEventListener(t,r)}isTabDisabled(t){let r=this._getTabByIndex(t);return r?r.disabled:!0}ensureFocusableTab(){let t=this._getTabs();if(!t.some(o=>o.active)&&t.length){let o=t[0];B(o.setTabIndex)&&t[0].setTabIndex(0)}}_getTabs(){return Array.from(this._component.querySelectorAll(g.elementName))}_getTabByIndex(t){return this._tabs[t]}};var pt='<template><div class="forge-tab-bar" part="root"><div class="forge-tab-bar__scroll-prev-container" part="previous-container"><forge-icon-button part="previous-button"><button type="button" tabindex="-1" aria-label="Scroll left" id="scroll-prev-btn" part="previous-button-element"><forge-icon name="keyboard_arrow_left" part="previous-button-icon"></forge-icon></button></forge-icon-button></div><div class="mdc-tab-scroller" part="tab-scroller"><div class="mdc-tab-scroller__scroll-area" part="scroll-area"><div class="mdc-tab-scroller__scroll-content" part="scroll-content"><slot></slot></div></div></div><div class="forge-tab-bar__scroll-next-container" part="next-container"><forge-icon-button part="next-button"><button type="button" tabindex="-1" aria-label="Scroll right" id="scroll-next-btn" part="next-button-element"><forge-icon name="keyboard_arrow_right" part="next-button-icon"></forge-icon></button></forge-icon-button></div></div></template>',bt='.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--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}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::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-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.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-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.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-icon-button.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-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:"";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}',c=class extends K{constructor(){super();Y.define([W,F]),D(this,pt,bt),this._foundation=new y(new C(this))}static get observedAttributes(){return[i.attributes.ACTIVE_TAB,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.UNDERLINE,i.attributes.AUTO_ACTIVATE,i.attributes.STACKED,i.attributes.SCROLL_BUTTONS,i.attributes.FORCE_SCROLL_BUTTONS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,o){switch(t){case i.attributes.ACTIVE_TAB:this.activeTab=w(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.UNDERLINE:this.underline=_(o);break;case i.attributes.AUTO_ACTIVATE:this.autoActivate=_(o);break;case i.attributes.STACKED:this.stacked=_(o);break;case i.attributes.SCROLL_BUTTONS:this.scrollButtons=_(o);break;case i.attributes.FORCE_SCROLL_BUTTONS:this.forceScrollButtons=_(o);break}}activateTab(t){this._foundation.activateTab(t)}scrollTabIntoView(t){this._foundation.scrollIntoView(t)}};p([m()],c.prototype,"activeTab",2),p([m()],c.prototype,"layoutMode",2),p([m()],c.prototype,"layoutAlign",2),p([m()],c.prototype,"underline",2),p([m()],c.prototype,"autoActivate",2),p([m()],c.prototype,"stacked",2),p([m()],c.prototype,"scrollButtons",2),p([m()],c.prototype,"forceScrollButtons",2),c=p([P({name:i.elementName,dependencies:[$,q,V]})],c);function ye(){M(c)}export{i as a,Q as b,Z as c,y as d,C as e,c as f,ye as g};
6
+ import{a as g,d as $}from"./chunk.PKVY6EWM.js";import{b as q}from"./chunk.CG5CVENX.js";import{a as u,b as j}from"./chunk.2DXG2R3M.js";import{a as f,b as x,d as U,f as X,g as G}from"./chunk.F3MP6AXF.js";import{r as W,s as F}from"./chunk.MZLPUI6R.js";import{a as k}from"./chunk.YI4JTY4T.js";import{d as Y,l as V}from"./chunk.S2YVOMLW.js";import{a as z}from"./chunk.5KC43VFL.js";import{a as m}from"./chunk.KTGSZEAG.js";import{a as P,b as H}from"./chunk.QOA2O575.js";import{a as M,e as D,g as b,l as K}from"./chunk.HOXFK44F.js";import{g as O,s as N,t as E}from"./chunk.4LA6HEA7.js";import{d as R,h as B,k as _,l as w}from"./chunk.J2M2MXP2.js";import{f as p}from"./chunk.MCIQXNKY.js";var J=`${H}tab-bar`,lt={ACTIVE_TAB:"active-tab",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",UNDERLINE:"underline",AUTO_ACTIVATE:"auto-activate",STACKED:"stacked",SCROLL_BUTTONS:"scroll-buttons",FORCE_SCROLL_BUTTONS:"force-scroll-buttons"},st={UNDERLINED:"forge-tab-bar--underlined",ALIGN_CENTER:"forge-tab-bar--align-center",ALIGN_END:"forge-tab-bar--align-end",FIXED:"forge-tab-bar--fixed",STACKED:"forge-tab-bar--stacked"},ct={ROOT:".forge-tab-bar",TAB_SCROLLER:".mdc-tab-scroller",TAB_SCROLLER_AREA:".mdc-tab-scroller__scroll-area",TAB_SCROLLER_CONTENT:".mdc-tab-scroller__scroll-content",PREV_BUTTON_CONTAINER:".forge-tab-bar__scroll-prev-container",PREV_BUTTON:"#scroll-prev-btn",NEXT_BUTTON_CONTAINER:".forge-tab-bar__scroll-next-container",NEXT_BUTTON:"#scroll-next-btn"},dt={ACTIVATE:`${J}-activate`},d={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space"},v={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,ENTER_KEYCODE:13,EXTRA_SCROLL_AMOUNT:20,HOME_KEYCODE:36,SPACE_KEYCODE:32},i={attributes:lt,elementName:J,classes:st,selectors:ct,events:dt,strings:d,numbers:v},Q=[d.ARROW_LEFT_KEY,d.ARROW_RIGHT_KEY,d.END_KEY,d.HOME_KEY,d.ENTER_KEY,d.SPACE_KEY],Z={[v.ARROW_LEFT_KEYCODE]:d.ARROW_LEFT_KEY,[v.ARROW_RIGHT_KEYCODE]:d.ARROW_RIGHT_KEY,[v.END_KEYCODE]:d.END_KEY,[v.HOME_KEYCODE]:d.HOME_KEY,[v.ENTER_KEYCODE]:d.ENTER_KEY,[v.SPACE_KEYCODE]:d.SPACE_KEY};var y=class{constructor(e){this._adapter=e;this._isInitialized=!1;this._activeTab=-1;this._layoutMode="fixed";this._layoutAlign="start";this._underline=!1;this._autoActivate=!1;this._stacked=!1;this._scrollButtons=!0;this._forceScrollButtons=!1;this._tabsChangedListener=t=>this._onTabsChanged(t),this._tabInteractedListener=t=>this._onTabInteracted(t),this._keydownListener=t=>this._onKeydown(t),this._scrollPrevClickListener=t=>this._onScrollPrevious(t),this._scrollPrevMousedownListener=t=>t.preventDefault(),this._scrollNextClickListener=t=>this._onScrollNext(t),this._scrollNextMousedownListener=t=>t.preventDefault(),this._scrollListener=t=>this._onScroll(t)}initialize(){this._adapter.initializeTabs(this._activeTab,this._isFixed),this._adapter.initializeTabScroller(),this._adapter.initializeAccessibility(),this._adapter.addTabChangeListener(this._tabsChangedListener),this._adapter.addScrollPreviousListener("click",this._scrollPrevClickListener),this._adapter.addScrollPreviousListener("mousedown",this._scrollPrevMousedownListener),this._adapter.addScrollNextListener("click",this._scrollNextClickListener),this._adapter.addScrollNextListener("mousedown",this._scrollNextMousedownListener),this._adapter.addHostListener(g.events.INTERACTED,this._tabInteractedListener),this._adapter.addHostListener("keydown",this._keydownListener),this._adapter.addScrollListener(this._scrollListener),this._adapter.setUnderline(this._underline),this._adapter.setLayoutMode(this._layoutMode),this._adapter.setLayoutAlign(this._layoutAlign),window.requestAnimationFrame(()=>{this._syncScrollButtons(),this._adapter.ensureFocusableTab()}),this._isInitialized=!0}disconnect(){this._adapter.destroyTabScroller(),this._adapter.removeTabChangeListener(this._tabsChangedListener),this._adapter.removeHostListener(g.events.INTERACTED,this._tabInteractedListener),this._adapter.removeHostListener("keydown",this._keydownListener),this._isInitialized=!1}_onTabsChanged(e){this._adapter.initializeTabs(this._activeTab,this._isFixed),this._adapter.ensureFocusableTab(),window.setTimeout(()=>{window.requestAnimationFrame(()=>{this.scrollIntoView(this._activeTab),this._syncScrollButtons()})})}_onTabInteracted(e){let t=e.target,r=this._adapter.getTabIndex(t),o=t.tagName.toLowerCase()===g.elementName,n=r!==this._activeTab&&this._indexIsInRange(r);if(!o||!n)return;let s={index:r};!this._adapter.emitHostEvent(i.events.ACTIVATE,s,!0,!0)||(this.activateTab(r),this._adapter.focusTabAtIndex(r))}_onKeydown(e){let t=this._getKeyFromEvent(e);if(!!t)if(this._isActivationKey(t)||e.preventDefault(),this._autoActivate){if(this._isActivationKey(t))return;let r=this._determineTargetFromKey(this._activeTab,t);if(this._activeTab===r)return;let o={index:r};this._adapter.emitHostEvent(i.events.ACTIVATE,o,!0,!0)&&(this.activateTab(r),this._adapter.focusTabAtIndex(r))}else{let r=this._adapter.getFocusedTabIndex();if(r===-1)return;if(this._isActivationKey(t)){let o={index:r};this._adapter.emitHostEvent(i.events.ACTIVATE,o,!0,!0)&&this.activateTab(r)}else{let o=this._determineTargetFromKey(r,t);if(r===o)return;this._adapter.focusTabAtIndex(o),this.scrollIntoView(o)}}}_onScrollPrevious(e){let t=-this._adapter.getOffsetWidth();this._adapter.incrementScroll(t),this._syncScrollButtons()}_onScrollNext(e){let t=this._adapter.getOffsetWidth();this._adapter.incrementScroll(t),this._syncScrollButtons()}_onScroll(e){this._syncScrollButtons()}_syncScrollButtons(){let e=this._isScrollable();this._adapter.setPreviousButtonVisibility(e),this._adapter.setNextButtonVisibility(e),e&&(this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled()),this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd()))}_findAdjacentTabIndexClosestToEdge(e,t,r,o){let n=t.rootLeft-r,s=t.rootRight-r-o,h=n+s,l=n<0||h<0,S=s>0||h>0;return l?e-1:S?e+1:-1}_calculateScrollIncrement(e,t,r,o){let n=this._adapter.getTabDimensionsAtIndex(t),s=n.contentLeft-r-o,l=n.contentRight-r-i.numbers.EXTRA_SCROLL_AMOUNT,S=s+i.numbers.EXTRA_SCROLL_AMOUNT;return t<e?Math.min(l,0):Math.max(S,0)}_determineTargetFromKey(e,t,r){if(e===r)return e;let o=this._adapter.getTabCount()-1,n=t===i.strings.END_KEY,s=t===i.strings.ARROW_LEFT_KEY,h=t===i.strings.ARROW_RIGHT_KEY,l=r!==void 0?r:e;return n?l=o:s?l-=1:h?l+=1:l=0,l<0?l=o:l>o&&(l=0),this._adapter.isTabDisabled(l)?this._determineTargetFromKey(e,t,l):l}_isScrollable(){return this._forceScrollButtons||this._scrollButtons&&!k.isMobile&&!this._isFixed&&this._adapter.getScrollContentWidth()>this._adapter.getOffsetWidth()}_getKeyFromEvent(e){return Q.includes(e.key)?e.key:Z[e.keyCode]}_isActivationKey(e){return e===i.strings.SPACE_KEY||e===i.strings.ENTER_KEY}_indexIsInRange(e){return e>=0&&e<this._adapter.getTabCount()}activateTab(e){R(e)||(e=-1),this._activeTab!==-1&&this._adapter.deactivateTab(this._activeTab);let t=this._adapter.getTabBounds(this._activeTab);this._adapter.activateTab(e,t),this._adapter.syncTabIndex(e),this._adapter.ensureFocusableTab(),this.scrollIntoView(e),this._activeTab=e,this._syncScrollButtons(),this._adapter.setHostAttribute(i.attributes.ACTIVE_TAB,this._activeTab.toString())}scrollIntoView(e){if(!this._indexIsInRange(e))return;if(e===0)return this._adapter.scrollTo(0);if(e===this._adapter.getTabCount()-1)return this._adapter.scrollTo(this._adapter.getScrollContentWidth());let t=this._adapter.getScrollPosition(),r=this._adapter.getOffsetWidth(),o=this._adapter.getTabDimensionsAtIndex(e),n=this._findAdjacentTabIndexClosestToEdge(e,o,t,r);if(!this._indexIsInRange(n))return;let s=this._calculateScrollIncrement(e,n,t,r);this._adapter.incrementScroll(s)}get activeTab(){return this._activeTab}set activeTab(e){this._activeTab!==e&&(this._isInitialized?this.activateTab(e):(this._activeTab=e,this._adapter.setHostAttribute(i.attributes.ACTIVE_TAB,this._activeTab.toString())))}get _isFixed(){return this._layoutMode==="fixed"}get layoutMode(){return this._layoutMode}set layoutMode(e){this._layoutMode!==e&&(this._layoutMode=e,this._adapter.setLayoutMode(this._layoutMode),this._syncScrollButtons())}get layoutAlign(){return this._layoutAlign}set layoutAlign(e){this._layoutAlign!==e&&(this._layoutAlign=e,this._adapter.setLayoutAlign(this._layoutAlign))}get underline(){return this._underline}set underline(e){this._underline!==e&&(this._underline=e,this._adapter.setUnderline(this._underline),this._adapter.toggleHostAttribute(i.attributes.UNDERLINE,this._underline))}get stacked(){return this._stacked}set stacked(e){this._stacked!==e&&(this._stacked=e,this._adapter.setStacked(this._stacked),this._stacked?this._adapter.setHostAttribute(i.attributes.STACKED):this._adapter.removeHostAttribute(i.attributes.STACKED))}get scrollButtons(){return this._scrollButtons}set scrollButtons(e){this._scrollButtons!==e&&(this._scrollButtons=e,this._adapter.setHostAttribute(i.attributes.SCROLL_BUTTONS,this._scrollButtons.toString()),this._isInitialized&&this._syncScrollButtons())}get forceScrollButtons(){return this._forceScrollButtons}set forceScrollButtons(e){this._forceScrollButtons!==e&&(this._forceScrollButtons=e,this._isInitialized&&this._syncScrollButtons())}get autoActivate(){return this._autoActivate}set autoActivate(e){this._autoActivate!==e&&(this._autoActivate=e,this._adapter.setHostAttribute(i.attributes.AUTO_ACTIVATE,this._autoActivate.toString()))}};var A={ANIMATING:"mdc-tab-scroller--animating",SCROLL_AREA_SCROLL:"mdc-tab-scroller__scroll-area--scroll",SCROLL_TEST:"mdc-tab-scroller__test"},tt={AREA_SELECTOR:".mdc-tab-scroller__scroll-area",CONTENT_SELECTOR:".mdc-tab-scroller__scroll-content"};var I;function et(a,e){if(e===void 0&&(e=!0),e&&typeof I!="undefined")return I;var t=a.createElement("div");t.classList.add(A.SCROLL_TEST),a.body.appendChild(t);var r=t.offsetHeight-t.clientHeight;return a.body.removeChild(t),e&&(I=r),r}var T=function(){function a(e){this.adapter=e}return a}();var rt=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(){var t=this.adapter.getScrollAreaScrollLeft(),r=this.calculateScrollEdges().right;return Math.round(r-t)},e.prototype.scrollToRTL=function(t){var r=this.calculateScrollEdges(),o=this.adapter.getScrollAreaScrollLeft(),n=this.clampScrollValue(r.right-t);return{finalScrollPosition:n,scrollDelta:n-o}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.getAnimatingScrollPosition=function(t){return t},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:0,right:t-r}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.left,t),r.right)},e}(T);var ot=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft();return Math.round(t-r)},e.prototype.scrollToRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r-t);return{finalScrollPosition:o,scrollDelta:o-r}},e.prototype.getAnimatingScrollPosition=function(t,r){return t-r},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:r-t,right:0}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.max(Math.min(r.right,t),r.left)},e}(T);var it=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.prototype.getScrollPositionRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft();return Math.round(r-t)},e.prototype.scrollToRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(t);return{finalScrollPosition:o,scrollDelta:r-o}},e.prototype.incrementScrollRTL=function(t){var r=this.adapter.getScrollAreaScrollLeft(),o=this.clampScrollValue(r+t);return{finalScrollPosition:o,scrollDelta:r-o}},e.prototype.getAnimatingScrollPosition=function(t,r){return t+r},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:t-r,right:0}},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.right,t),r.left)},e}(T);var L=function(a){f(e,a);function e(t){var r=a.call(this,x(x({},e.defaultAdapter),t))||this;return r.isAnimating=!1,r}return Object.defineProperty(e,"cssClasses",{get:function(){return A},enumerable:!1,configurable:!0}),Object.defineProperty(e,"strings",{get:function(){return tt},enumerable:!1,configurable:!0}),Object.defineProperty(e,"defaultAdapter",{get:function(){return{eventTargetMatchesSelector:function(){return!1},addClass:function(){},removeClass:function(){},addScrollAreaClass:function(){},setScrollAreaStyleProperty:function(){},setScrollContentStyleProperty:function(){},getScrollContentStyleValue:function(){return""},setScrollAreaScrollLeft:function(){},getScrollAreaScrollLeft:function(){return 0},getScrollContentOffsetWidth:function(){return 0},getScrollAreaOffsetWidth:function(){return 0},computeScrollAreaClientRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},computeScrollContentClientRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},computeHorizontalScrollbarHeight:function(){return 0}}},enumerable:!1,configurable:!0}),e.prototype.init=function(){var t=this.adapter.computeHorizontalScrollbarHeight();this.adapter.setScrollAreaStyleProperty("margin-bottom",-t+"px"),this.adapter.addScrollAreaClass(e.cssClasses.SCROLL_AREA_SCROLL)},e.prototype.getScrollPosition=function(){if(this.isRTL())return this.computeCurrentScrollPositionRTL();var t=this.calculateCurrentTranslateX(),r=this.adapter.getScrollAreaScrollLeft();return r-t},e.prototype.handleInteraction=function(){!this.isAnimating||this.stopScrollAnimation()},e.prototype.handleTransitionEnd=function(t){var r=t.target;!this.isAnimating||!this.adapter.eventTargetMatchesSelector(r,e.strings.CONTENT_SELECTOR)||(this.isAnimating=!1,this.adapter.removeClass(e.cssClasses.ANIMATING))},e.prototype.incrementScroll=function(t){t!==0&&this.animate(this.getIncrementScrollOperation(t))},e.prototype.incrementScrollImmediate=function(t){if(t!==0){var r=this.getIncrementScrollOperation(t);r.scrollDelta!==0&&(this.stopScrollAnimation(),this.adapter.setScrollAreaScrollLeft(r.finalScrollPosition))}},e.prototype.scrollTo=function(t){if(this.isRTL()){this.scrollToImplRTL(t);return}this.scrollToImpl(t)},e.prototype.getRTLScroller=function(){return this.rtlScrollerInstance||(this.rtlScrollerInstance=this.rtlScrollerFactory()),this.rtlScrollerInstance},e.prototype.calculateCurrentTranslateX=function(){var t=this.adapter.getScrollContentStyleValue("transform");if(t==="none")return 0;var r=/\((.+?)\)/.exec(t);if(!r)return 0;var o=r[1],n=U(o.split(","),6),s=n[0],h=n[1],l=n[2],S=n[3],at=n[4],ft=n[5];return parseFloat(at)},e.prototype.clampScrollValue=function(t){var r=this.calculateScrollEdges();return Math.min(Math.max(r.left,t),r.right)},e.prototype.computeCurrentScrollPositionRTL=function(){var t=this.calculateCurrentTranslateX();return this.getRTLScroller().getScrollPositionRTL(t)},e.prototype.calculateScrollEdges=function(){var t=this.adapter.getScrollContentOffsetWidth(),r=this.adapter.getScrollAreaOffsetWidth();return{left:0,right:t-r}},e.prototype.scrollToImpl=function(t){var r=this.getScrollPosition(),o=this.clampScrollValue(t),n=o-r;this.animate({finalScrollPosition:o,scrollDelta:n})},e.prototype.scrollToImplRTL=function(t){var r=this.getRTLScroller().scrollToRTL(t);this.animate(r)},e.prototype.getIncrementScrollOperation=function(t){if(this.isRTL())return this.getRTLScroller().incrementScrollRTL(t);var r=this.getScrollPosition(),o=t+r,n=this.clampScrollValue(o),s=n-r;return{finalScrollPosition:n,scrollDelta:s}},e.prototype.animate=function(t){var r=this;t.scrollDelta!==0&&(this.stopScrollAnimation(),this.adapter.setScrollAreaScrollLeft(t.finalScrollPosition),this.adapter.setScrollContentStyleProperty("transform","translateX("+t.scrollDelta+"px)"),this.adapter.computeScrollAreaClientRect(),requestAnimationFrame(function(){r.adapter.addClass(e.cssClasses.ANIMATING),r.adapter.setScrollContentStyleProperty("transform","none")}),this.isAnimating=!0)},e.prototype.stopScrollAnimation=function(){this.isAnimating=!1;var t=this.getAnimatingScrollPosition();this.adapter.removeClass(e.cssClasses.ANIMATING),this.adapter.setScrollContentStyleProperty("transform","translateX(0px)"),this.adapter.setScrollAreaScrollLeft(t)},e.prototype.getAnimatingScrollPosition=function(){var t=this.calculateCurrentTranslateX(),r=this.adapter.getScrollAreaScrollLeft();return this.isRTL()?this.getRTLScroller().getAnimatingScrollPosition(r,t):r-t},e.prototype.rtlScrollerFactory=function(){var t=this.adapter.getScrollAreaScrollLeft();this.adapter.setScrollAreaScrollLeft(t-1);var r=this.adapter.getScrollAreaScrollLeft();if(r<0)return this.adapter.setScrollAreaScrollLeft(t),new ot(this.adapter);var o=this.adapter.computeScrollAreaClientRect(),n=this.adapter.computeScrollContentClientRect(),s=Math.round(n.right-o.right);return this.adapter.setScrollAreaScrollLeft(t),s===r?new it(this.adapter):new rt(this.adapter)},e.prototype.isRTL=function(){return this.adapter.getScrollContentStyleValue("direction")==="rtl"},e}(X);var nt=function(a){f(e,a);function e(){return a!==null&&a.apply(this,arguments)||this}return e.attachTo=function(t){return new e(t)},e.prototype.initialize=function(){this.area=this.root.querySelector(L.strings.AREA_SELECTOR),this.content=this.root.querySelector(L.strings.CONTENT_SELECTOR)},e.prototype.initialSyncWithDOM=function(){var t=this;this.handleInteraction=function(){t.foundation.handleInteraction()},this.handleTransitionEnd=function(r){t.foundation.handleTransitionEnd(r)},this.area.addEventListener("wheel",this.handleInteraction,u()),this.area.addEventListener("touchstart",this.handleInteraction,u()),this.area.addEventListener("pointerdown",this.handleInteraction,u()),this.area.addEventListener("mousedown",this.handleInteraction,u()),this.area.addEventListener("keydown",this.handleInteraction,u()),this.content.addEventListener("transitionend",this.handleTransitionEnd)},e.prototype.destroy=function(){a.prototype.destroy.call(this),this.area.removeEventListener("wheel",this.handleInteraction,u()),this.area.removeEventListener("touchstart",this.handleInteraction,u()),this.area.removeEventListener("pointerdown",this.handleInteraction,u()),this.area.removeEventListener("mousedown",this.handleInteraction,u()),this.area.removeEventListener("keydown",this.handleInteraction,u()),this.content.removeEventListener("transitionend",this.handleTransitionEnd)},e.prototype.getDefaultFoundation=function(){var t=this,r={eventTargetMatchesSelector:function(o,n){return j(o,n)},addClass:function(o){t.root.classList.add(o)},removeClass:function(o){t.root.classList.remove(o)},addScrollAreaClass:function(o){t.area.classList.add(o)},setScrollAreaStyleProperty:function(o,n){t.area.style.setProperty(o,n)},setScrollContentStyleProperty:function(o,n){t.content.style.setProperty(o,n)},getScrollContentStyleValue:function(o){return window.getComputedStyle(t.content).getPropertyValue(o)},setScrollAreaScrollLeft:function(o){return t.area.scrollLeft=o},getScrollAreaScrollLeft:function(){return t.area.scrollLeft},getScrollContentOffsetWidth:function(){return t.content.offsetWidth},getScrollAreaOffsetWidth:function(){return t.area.offsetWidth},computeScrollAreaClientRect:function(){return t.area.getBoundingClientRect()},computeScrollContentClientRect:function(){return t.content.getBoundingClientRect()},computeHorizontalScrollbarHeight:function(){return et(document)}};return new L(r)},e.prototype.getScrollPosition=function(){return this.foundation.getScrollPosition()},e.prototype.getScrollContentWidth=function(){return this.content.offsetWidth},e.prototype.incrementScroll=function(t){this.foundation.incrementScroll(t)},e.prototype.scrollTo=function(t){this.foundation.scrollTo(t)},e}(G);var C=class extends z{constructor(t){super(t);this._tabs=[];this._rootElement=b(this._component,i.selectors.ROOT),this._tabScrollElement=b(this._component,i.selectors.TAB_SCROLLER),this._tabScrollAreaElement=b(this._component,i.selectors.TAB_SCROLLER_AREA),this._tabScrollContentElement=b(this._component,i.selectors.TAB_SCROLLER_CONTENT),this._defaultSlotElement=b(this._component,g.selectors.DEFAULT_SLOT),this._prevButtonContainerElement=b(this._component,i.selectors.PREV_BUTTON_CONTAINER),this._prevButtonElement=b(this._component,i.selectors.PREV_BUTTON),this._nextButtonContainerElement=b(this._component,i.selectors.NEXT_BUTTON_CONTAINER),this._nextButtonElement=b(this._component,i.selectors.NEXT_BUTTON)}initializeTabs(t,r){this._tabs=this._getTabs(),this._tabs.length&&(this._tabs.forEach(o=>{o.active=!1,o.stretch=r}),t>=0&&t<this._tabs.length?this._tabs[t].active=!0:this.ensureFocusableTab())}initializeTabScroller(){this._tabScroller=new nt(this._tabScrollElement)}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}destroyTabScroller(){this._tabScroller&&this._tabScroller.destroy()}addTabChangeListener(t){this._defaultSlotElement.addEventListener("slotchange",t)}removeTabChangeListener(t){this._defaultSlotElement.removeEventListener("slotchange",t)}addScrollListener(t){this._tabScrollAreaElement.addEventListener("scroll",t)}getTabIndex(t){return this._tabs.indexOf(t)}getTabCount(){return this._tabs.length}activateTab(t,r){let o=this._getTabByIndex(t);o&&o.activate(r)}deactivateTab(t){let r=this._getTabByIndex(t);r&&r.deactivate()}syncTabIndex(t){let r=this._getTabs(),o=r[t];r.filter(n=>n!==o).forEach(n=>n.setTabIndex(-1))}getTabBounds(t){let r=this._getTabByIndex(t);if(r)return r.computeIndicatorBounds()}setUnderline(t){E(this._rootElement,t,i.classes.UNDERLINED)}setStacked(t){E(this._rootElement,t,i.classes.STACKED)}scrollTo(t){this._tabScroller&&this._tabScroller.scrollTo(t)}getScrollContentWidth(){return this._tabScroller?this._tabScroller.getScrollContentWidth():0}getScrollPosition(){return this._tabScroller?this._tabScroller.getScrollPosition():0}getOffsetWidth(){return this._tabScrollElement.offsetWidth}getTabDimensionsAtIndex(t){let r=this._getTabByIndex(t);return r?r.computeDimensions():{rootLeft:0,rootRight:0,contentLeft:0,contentRight:0}}incrementScroll(t){this._tabScroller&&this._tabScroller.incrementScroll(t)}isScrolled(){return this._tabScrollAreaElement.scrollLeft>0}isScrolledEnd(){let t=Math.round(this._tabScrollAreaElement.scrollLeft),r=Math.round(this._tabScrollContentElement.scrollWidth-this._tabScrollElement.offsetWidth);return t>=r}getFocusedTabIndex(){let t=N(this._component.ownerDocument);return this._tabs.findIndex(r=>r===t?!0:!!r.shadowRoot.contains(t))}focusTabAtIndex(t){let r=this._getTabByIndex(t);if(r)return r.focus()}setLayoutMode(t){let r=t==="fixed";E(this._rootElement,r,i.classes.FIXED),this._tabs.forEach(o=>o.stretch=r)}setLayoutAlign(t){switch(O([i.classes.ALIGN_CENTER,i.classes.ALIGN_END],this._rootElement),t){case"center":this._rootElement.classList.add(i.classes.ALIGN_CENTER);break;case"end":this._rootElement.classList.add(i.classes.ALIGN_END);break}}setPreviousButtonVisibility(t){t?this._prevButtonContainerElement.style.removeProperty("display"):this._prevButtonContainerElement.style.display="none"}setPreviousButtonEnabled(t){this._prevButtonElement.disabled=!t}setNextButtonVisibility(t){t?this._nextButtonContainerElement.style.removeProperty("display"):this._nextButtonContainerElement.style.display="none"}setNextButtonEnabled(t){this._nextButtonElement.disabled=!t}addScrollPreviousListener(t,r){this._prevButtonElement.addEventListener(t,r)}addScrollNextListener(t,r){this._nextButtonElement.addEventListener(t,r)}isTabDisabled(t){let r=this._getTabByIndex(t);return r?r.disabled:!0}ensureFocusableTab(){let t=this._getTabs();if(!t.some(o=>o.active)&&t.length){let o=t[0];B(o.setTabIndex)&&t[0].setTabIndex(0)}}_getTabs(){return Array.from(this._component.querySelectorAll(g.elementName))}_getTabByIndex(t){return this._tabs[t]}};var pt='<template><div class="forge-tab-bar" part="root"><div class="forge-tab-bar__scroll-prev-container" part="previous-container"><forge-icon-button part="previous-button"><button type="button" tabindex="-1" aria-label="Scroll left" id="scroll-prev-btn" part="previous-button-element"><forge-icon name="keyboard_arrow_left" part="previous-button-icon"></forge-icon></button></forge-icon-button></div><div class="mdc-tab-scroller" part="tab-scroller"><div class="mdc-tab-scroller__scroll-area" part="scroll-area"><div class="mdc-tab-scroller__scroll-content" part="scroll-content"><slot></slot></div></div></div><div class="forge-tab-bar__scroll-next-container" part="next-container"><forge-icon-button part="next-button"><button type="button" tabindex="-1" aria-label="Scroll right" id="scroll-next-btn" part="next-button-element"><forge-icon name="keyboard_arrow_right" part="next-button-icon"></forge-icon></button></forge-icon-button></div></div></template>',bt='.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--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}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::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-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.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-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.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-icon-button.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-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:"";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}',c=class extends K{constructor(){super();Y.define([W,F]),D(this,pt,bt),this._foundation=new y(new C(this))}static get observedAttributes(){return[i.attributes.ACTIVE_TAB,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.UNDERLINE,i.attributes.AUTO_ACTIVATE,i.attributes.STACKED,i.attributes.SCROLL_BUTTONS,i.attributes.FORCE_SCROLL_BUTTONS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,o){switch(t){case i.attributes.ACTIVE_TAB:this.activeTab=w(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.UNDERLINE:this.underline=_(o);break;case i.attributes.AUTO_ACTIVATE:this.autoActivate=_(o);break;case i.attributes.STACKED:this.stacked=_(o);break;case i.attributes.SCROLL_BUTTONS:this.scrollButtons=_(o);break;case i.attributes.FORCE_SCROLL_BUTTONS:this.forceScrollButtons=_(o);break}}activateTab(t){this._foundation.activateTab(t)}scrollTabIntoView(t){this._foundation.scrollIntoView(t)}};p([m()],c.prototype,"activeTab",2),p([m()],c.prototype,"layoutMode",2),p([m()],c.prototype,"layoutAlign",2),p([m()],c.prototype,"underline",2),p([m()],c.prototype,"autoActivate",2),p([m()],c.prototype,"stacked",2),p([m()],c.prototype,"scrollButtons",2),p([m()],c.prototype,"forceScrollButtons",2),c=p([P({name:i.elementName,dependencies:[$,q,V]})],c);function ye(){M(c)}export{i as a,Q as b,Z as c,y as d,C as e,c as f,ye as g};
7
7
  /**
8
8
  * @license
9
9
  * Copyright 2018 Google Inc.
@@ -26,4 +26,4 @@ import{a as g,d as $}from"./chunk.HPDBSBQJ.js";import{b as q}from"./chunk.7A6MX6
26
26
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27
27
  * THE SOFTWARE.
28
28
  */
29
- //# sourceMappingURL=chunk.4FSAAN6W.js.map
29
+ //# sourceMappingURL=chunk.2DAPNN6B.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/tab-bar/tab-bar-constants.ts", "../../src/tabs/tab-bar/tab-bar-foundation.ts", "../../../../../../node_modules/@material/tab-scroller/constants.ts", "../../../../../../node_modules/@material/tab-scroller/util.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-default-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-negative-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-reverse-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/foundation.ts", "../../../../../../node_modules/@material/tab-scroller/component.ts", "../../src/tabs/tab-bar/tab-bar-adapter.ts", "../../src/tabs/tab-bar/tab-bar.ts", "../../src/tabs/tab-bar/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tab-bar`;\n\nconst attributes = {\n ACTIVE_TAB: 'active-tab',\n LAYOUT_MODE: 'layout-mode',\n LAYOUT_ALIGN: 'layout-align',\n UNDERLINE: 'underline',\n AUTO_ACTIVATE: 'auto-activate',\n STACKED: 'stacked',\n SCROLL_BUTTONS: 'scroll-buttons',\n FORCE_SCROLL_BUTTONS: 'force-scroll-buttons'\n};\n\nconst classes = {\n UNDERLINED: 'forge-tab-bar--underlined',\n ALIGN_CENTER: 'forge-tab-bar--align-center',\n ALIGN_END: 'forge-tab-bar--align-end',\n FIXED: 'forge-tab-bar--fixed',\n STACKED: 'forge-tab-bar--stacked'\n};\n\nconst selectors = {\n ROOT: '.forge-tab-bar',\n TAB_SCROLLER: '.mdc-tab-scroller',\n TAB_SCROLLER_AREA: '.mdc-tab-scroller__scroll-area',\n TAB_SCROLLER_CONTENT: '.mdc-tab-scroller__scroll-content',\n PREV_BUTTON_CONTAINER: '.forge-tab-bar__scroll-prev-container',\n PREV_BUTTON: '#scroll-prev-btn',\n NEXT_BUTTON_CONTAINER: '.forge-tab-bar__scroll-next-container',\n NEXT_BUTTON: '#scroll-next-btn'\n};\n\nconst events = {\n ACTIVATE: `${elementName}-activate`\n};\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space'\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\n\nexport const TAB_BAR_CONSTANTS = {\n attributes,\n elementName,\n classes,\n selectors,\n events,\n strings,\n numbers\n};\n\nexport interface ITabBarActivateEventData {\n index: number;\n}\n\nexport declare type TabBarLayoutMode = 'fixed' | 'clustered';\nexport declare type TabBarLayoutAlign = 'start' | 'center' | 'end';\n\nexport const ACCEPTABLE_KEYS = [\n strings.ARROW_LEFT_KEY,\n strings.ARROW_RIGHT_KEY,\n strings.END_KEY,\n strings.HOME_KEY,\n strings.ENTER_KEY,\n strings.SPACE_KEY\n];\n\nexport const KEYCODE_MAP = {\n [numbers.ARROW_LEFT_KEYCODE]: strings.ARROW_LEFT_KEY,\n [numbers.ARROW_RIGHT_KEYCODE]: strings.ARROW_RIGHT_KEY,\n [numbers.END_KEYCODE]: strings.END_KEY,\n [numbers.HOME_KEYCODE]: strings.HOME_KEY,\n [numbers.ENTER_KEYCODE]: strings.ENTER_KEY,\n [numbers.SPACE_KEYCODE]: strings.SPACE_KEY\n};\n", "import { ICustomElementFoundation, Platform, isNumber } from '@tylertech/forge-core';\n\nimport { ITabBarAdapter } from './tab-bar-adapter';\nimport { TabBarLayoutMode, TabBarLayoutAlign, TAB_BAR_CONSTANTS, ITabBarActivateEventData, ACCEPTABLE_KEYS, KEYCODE_MAP } from './tab-bar-constants';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\nimport { ITabComponent } from '../tab/tab';\n\nexport interface ITabBarFoundation extends ICustomElementFoundation {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollIntoView(index: number): void;\n}\n\nexport class TabBarFoundation implements ITabBarFoundation {\n private _isInitialized = false;\n private _activeTab = -1;\n private _layoutMode: TabBarLayoutMode = 'fixed';\n private _layoutAlign: TabBarLayoutAlign = 'start';\n private _underline = false;\n private _autoActivate = false;\n private _stacked = false;\n private _scrollButtons = true;\n private _forceScrollButtons = false;\n private _tabsChangedListener: (evt: Event) => void;\n private _tabInteractedListener: (evt: CustomEvent<void>) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _scrollPrevClickListener: (evt: MouseEvent) => void;\n private _scrollPrevMousedownListener: (evt: MouseEvent) => void;\n private _scrollNextClickListener: (evt: MouseEvent) => void;\n private _scrollNextMousedownListener: (evt: MouseEvent) => void;\n private _scrollListener: (evt: Event) => void;\n\n constructor(private _adapter: ITabBarAdapter) {\n this._tabsChangedListener = evt => this._onTabsChanged(evt);\n this._tabInteractedListener = evt => this._onTabInteracted(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._scrollPrevClickListener = evt => this._onScrollPrevious(evt);\n this._scrollPrevMousedownListener = evt => evt.preventDefault();\n this._scrollNextClickListener = evt => this._onScrollNext(evt);\n this._scrollNextMousedownListener = evt => evt.preventDefault();\n this._scrollListener = evt => this._onScroll(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.initializeTabScroller();\n this._adapter.initializeAccessibility();\n this._adapter.addTabChangeListener(this._tabsChangedListener);\n this._adapter.addScrollPreviousListener('click', this._scrollPrevClickListener);\n this._adapter.addScrollPreviousListener('mousedown', this._scrollPrevMousedownListener);\n this._adapter.addScrollNextListener('click', this._scrollNextClickListener);\n this._adapter.addScrollNextListener('mousedown', this._scrollNextMousedownListener);\n this._adapter.addHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addScrollListener(this._scrollListener);\n this._adapter.setUnderline(this._underline);\n this._adapter.setLayoutMode(this._layoutMode);\n this._adapter.setLayoutAlign(this._layoutAlign);\n window.requestAnimationFrame(() => {\n this._syncScrollButtons();\n this._adapter.ensureFocusableTab();\n });\n this._isInitialized = true;\n }\n \n public disconnect(): void {\n this._adapter.destroyTabScroller();\n this._adapter.removeTabChangeListener(this._tabsChangedListener);\n this._adapter.removeHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n this._isInitialized = false;\n }\n\n private _onTabsChanged(evt: Event): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.ensureFocusableTab();\n\n // We need to wait a full cycle to scroll the active tab into view\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n this.scrollIntoView(this._activeTab);\n this._syncScrollButtons();\n });\n });\n }\n\n private _onTabInteracted(evt: CustomEvent<void>): void {\n const activatedTab = evt.target as ITabComponent;\n const activatedTabIndex = this._adapter.getTabIndex(activatedTab);\n \n // Check if the event and requested tab index is valid\n const isTabEvent = activatedTab.tagName.toLowerCase() === TAB_CONSTANTS.elementName;\n const isValidTabIndex = activatedTabIndex !== this._activeTab && this._indexIsInRange(activatedTabIndex);\n if (!isTabEvent || !isValidTabIndex) {\n return;\n }\n\n // Emit the activate event\n const activateEventData: ITabBarActivateEventData = { index: activatedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n \n // Check if listener prevented default on the activate event, and stop now if so\n if (!canActivate) {\n return;\n }\n\n this.activateTab(activatedTabIndex);\n this._adapter.focusTabAtIndex(activatedTabIndex);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const key = this._getKeyFromEvent(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (!key) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this._isActivationKey(key)) {\n evt.preventDefault();\n }\n\n if (this._autoActivate) {\n if (this._isActivationKey(key)) {\n return;\n }\n\n const index = this._determineTargetFromKey(this._activeTab, key);\n if (this._activeTab === index) {\n return;\n }\n\n const activateEventData: ITabBarActivateEventData = { index };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n\n if (canActivate) {\n this.activateTab(index);\n this._adapter.focusTabAtIndex(index);\n }\n } else {\n const focusedTabIndex = this._adapter.getFocusedTabIndex();\n if (focusedTabIndex === -1) {\n return;\n }\n\n if (this._isActivationKey(key)) {\n const activateEventData: ITabBarActivateEventData = { index: focusedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n if (canActivate) {\n this.activateTab(focusedTabIndex);\n }\n } else {\n const index = this._determineTargetFromKey(focusedTabIndex, key);\n if (focusedTabIndex === index) {\n return;\n }\n this._adapter.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n private _onScrollPrevious(evt: MouseEvent): void {\n const scrollAmount = -this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n \n private _onScrollNext(evt: MouseEvent): void {\n const scrollAmount = this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n\n private _onScroll(evt: Event): void {\n this._syncScrollButtons();\n }\n\n private _syncScrollButtons(): void {\n const isScrollable = this._isScrollable();\n this._adapter.setPreviousButtonVisibility(isScrollable);\n this._adapter.setNextButtonVisibility(isScrollable);\n if (isScrollable) {\n this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled());\n this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd());\n }\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private _findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: ITabDimensions, scrollPosition: number, barWidth: number): number {\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab-bar\n */\n private _calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTabDimensions = this._adapter.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private _determineTargetFromKey(origin: number, key: string, nextIndex?: number): number {\n if (origin === nextIndex) {\n return origin;\n }\n\n const maxIndex = this._adapter.getTabCount() - 1;\n const shouldGoToEnd = key === TAB_BAR_CONSTANTS.strings.END_KEY;\n const shouldDecrement = key === TAB_BAR_CONSTANTS.strings.ARROW_LEFT_KEY;\n const shouldIncrement = key === TAB_BAR_CONSTANTS.strings.ARROW_RIGHT_KEY;\n let index = nextIndex !== undefined ? nextIndex : origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n // If this tab is disabled, then we'll try again...\n if (this._adapter.isTabDisabled(index)) {\n return this._determineTargetFromKey(origin, key, index);\n }\n\n return index;\n }\n\n private _isScrollable(): boolean {\n return this._forceScrollButtons ||\n (this._scrollButtons &&\n !Platform.isMobile &&\n !this._isFixed &&\n this._adapter.getScrollContentWidth() > this._adapter.getOffsetWidth());\n }\n\n private _getKeyFromEvent(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.includes(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP[evt.keyCode];\n }\n\n private _isActivationKey(key: string): boolean {\n return key === TAB_BAR_CONSTANTS.strings.SPACE_KEY || key === TAB_BAR_CONSTANTS.strings.ENTER_KEY;\n }\n\n private _indexIsInRange(index: number): boolean {\n return index >= 0 && index < this._adapter.getTabCount();\n }\n\n public activateTab(index: number): void {\n if (!isNumber(index)) {\n index = -1;\n }\n\n // If we have a currently selected tab we need to deactivate that now\n if (this._activeTab !== -1) {\n this._adapter.deactivateTab(this._activeTab);\n }\n\n // Activate the requested tab\n const previousTabBounds = this._adapter.getTabBounds(this._activeTab);\n this._adapter.activateTab(index, previousTabBounds);\n this._adapter.syncTabIndex(index);\n this._adapter.ensureFocusableTab();\n this.scrollIntoView(index);\n this._activeTab = index;\n this._syncScrollButtons();\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n }\n\n public scrollIntoView(index: number): void {\n if (!this._indexIsInRange(index)) {\n return;\n }\n\n if (index === 0) {\n return this._adapter.scrollTo(0);\n }\n\n if (index === this._adapter.getTabCount() - 1) {\n return this._adapter.scrollTo(this._adapter.getScrollContentWidth());\n }\n\n const scrollPosition = this._adapter.getScrollPosition();\n const barWidth = this._adapter.getOffsetWidth();\n const tabDimensions = this._adapter.getTabDimensionsAtIndex(index);\n const nextIndex = this._findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this._indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this._calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this._adapter.incrementScroll(scrollIncrement);\n }\n\n /** Gets and sets the active tab index. */\n public get activeTab(): number {\n return this._activeTab;\n }\n public set activeTab(value: number) {\n if (this._activeTab !== value) {\n if (!this._isInitialized) {\n this._activeTab = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n } else {\n this.activateTab(value);\n }\n }\n }\n\n private get _isFixed(): boolean {\n return this._layoutMode === 'fixed';\n }\n\n public get layoutMode(): TabBarLayoutMode {\n return this._layoutMode;\n }\n public set layoutMode(value: TabBarLayoutMode) {\n if (this._layoutMode !== value) {\n this._layoutMode = value;\n this._adapter.setLayoutMode(this._layoutMode);\n this._syncScrollButtons();\n }\n }\n\n public get layoutAlign(): TabBarLayoutAlign {\n return this._layoutAlign;\n }\n public set layoutAlign(value: TabBarLayoutAlign) {\n if (this._layoutAlign !== value) {\n this._layoutAlign = value;\n this._adapter.setLayoutAlign(this._layoutAlign);\n }\n }\n\n public get underline(): boolean {\n return this._underline;\n }\n public set underline(value: boolean) {\n if (this._underline !== value) {\n this._underline = value;\n this._adapter.setUnderline(this._underline);\n this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.UNDERLINE, this._underline);\n }\n }\n\n public get stacked(): boolean {\n return this._stacked;\n }\n public set stacked(value: boolean) {\n if (this._stacked !== value) {\n this._stacked = value;\n this._adapter.setStacked(this._stacked);\n if (this._stacked) {\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n } else {\n this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n }\n }\n }\n\n public get scrollButtons(): boolean {\n return this._scrollButtons;\n }\n public set scrollButtons(value: boolean) {\n if (this._scrollButtons !== value) {\n this._scrollButtons = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS, this._scrollButtons.toString());\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get forceScrollButtons(): boolean {\n return this._forceScrollButtons;\n }\n public set forceScrollButtons(value: boolean) {\n if (this._forceScrollButtons !== value) {\n this._forceScrollButtons = value;\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get autoActivate(): boolean {\n return this._autoActivate;\n }\n public set autoActivate(value: boolean) {\n if (this._autoActivate !== value) {\n this._autoActivate = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE, this._autoActivate.toString());\n }\n }\n}\n", null, null, null, null, null, null, null, null, "import { MDCTabScroller } from '@material/tab-scroller';\nimport { getShadowElement, removeClass, isFunction, getActiveElement, toggleClass } from '@tylertech/forge-core';\n\nimport { IBaseAdapter, BaseAdapter } from '../../core/base/base-adapter';\nimport { ITabBarComponent } from './tab-bar';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign } from './tab-bar-constants';\nimport { ITabComponent } from '../tab/tab';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\n\nexport interface ITabBarAdapter extends IBaseAdapter {\n initializeTabs(activeTabIndex: number, stretch: boolean): void;\n initializeTabScroller(): void;\n initializeAccessibility(): void;\n destroyTabScroller(): void;\n addTabChangeListener(listener: (evt: Event) => void): void;\n removeTabChangeListener(listener: (evt: Event) => void): void;\n addScrollListener(listener: (evt: Event) => void): void;\n getTabIndex(tab: ITabComponent): number;\n getTabCount(): number;\n activateTab(index: number, previousTabBounds?: DOMRect): void;\n deactivateTab(index: number): void;\n syncTabIndex(index: number): void;\n getTabBounds(index: number): DOMRect | undefined;\n setUnderline(value: boolean): void;\n setStacked(value: boolean): void;\n scrollTo(scrollX: number): void;\n getScrollContentWidth(): number;\n getScrollPosition(): number;\n getOffsetWidth(): number;\n getTabDimensionsAtIndex(index: number): ITabDimensions;\n incrementScroll(scrollXIncrement: number): void;\n isScrolled(): boolean;\n isScrolledEnd(): boolean;\n getFocusedTabIndex(): number;\n focusTabAtIndex(index: number): void;\n setLayoutMode(value: TabBarLayoutMode): void;\n setLayoutAlign(value: TabBarLayoutAlign): void;\n setPreviousButtonVisibility(value: boolean): void;\n setPreviousButtonEnabled(value: boolean): void;\n setNextButtonVisibility(value: boolean): void;\n setNextButtonEnabled(value: boolean): void;\n addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void;\n addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void;\n isTabDisabled(index: number): boolean;\n ensureFocusableTab(): void;\n}\n\nexport class TabBarAdapter extends BaseAdapter<ITabBarComponent> implements ITabBarAdapter {\n private _rootElement: HTMLElement;\n private _defaultSlotElement: HTMLSlotElement;\n private _tabScrollElement: HTMLElement;\n private _tabScrollAreaElement: HTMLElement;\n private _tabScrollContentElement: HTMLElement;\n private _tabScroller: MDCTabScroller | undefined;\n private _tabs: ITabComponent[] = [];\n private _prevButtonContainerElement: HTMLElement;\n private _nextButtonContainerElement: HTMLElement;\n private _prevButtonElement: HTMLButtonElement;\n private _nextButtonElement: HTMLButtonElement;\n\n constructor(component: ITabBarComponent) {\n super(component);\n this._rootElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.ROOT);\n this._tabScrollElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER);\n this._tabScrollAreaElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_AREA);\n this._tabScrollContentElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_CONTENT);\n this._defaultSlotElement = getShadowElement(this._component, TAB_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n this._prevButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON_CONTAINER);\n this._prevButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON) as HTMLButtonElement;\n this._nextButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON_CONTAINER);\n this._nextButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON) as HTMLButtonElement;\n }\n\n public initializeTabs(activeTabIndex: number, stretch: boolean): void {\n this._tabs = this._getTabs();\n\n if (!this._tabs.length) {\n return;\n }\n\n this._tabs.forEach(tab => {\n tab.active = false;\n tab.stretch = stretch;\n });\n\n // Set the initial active tab\n if (activeTabIndex >= 0 && activeTabIndex < this._tabs.length) {\n this._tabs[activeTabIndex].active = true;\n } else {\n this.ensureFocusableTab();\n }\n }\n\n public initializeTabScroller(): void {\n this._tabScroller = new MDCTabScroller(this._tabScrollElement);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'tablist');\n }\n }\n\n public destroyTabScroller(): void {\n if (this._tabScroller) {\n this._tabScroller.destroy();\n }\n }\n\n public addTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.addEventListener('slotchange', listener);\n }\n\n public removeTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.removeEventListener('slotchange', listener);\n }\n\n public addScrollListener(listener: (evt: Event) => void): void {\n this._tabScrollAreaElement.addEventListener('scroll', listener);\n }\n\n public getTabIndex(tab: ITabComponent): number {\n return this._tabs.indexOf(tab);\n }\n\n public getTabCount(): number {\n return this._tabs.length;\n }\n\n public activateTab(index: number, previousTabBounds?: DOMRect): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.activate(previousTabBounds);\n }\n }\n\n public deactivateTab(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.deactivate();\n }\n }\n\n public syncTabIndex(index: number): void {\n const tabs = this._getTabs();\n const activeTab = tabs[index];\n tabs.filter(t => t !== activeTab)\n .forEach(t => t.setTabIndex(-1));\n }\n\n public getTabBounds(index: number): DOMRect | undefined {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeIndicatorBounds();\n }\n return undefined;\n }\n\n public setUnderline(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.UNDERLINED);\n }\n \n public setStacked(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.STACKED);\n }\n\n public scrollTo(scrollX: number): void {\n if (this._tabScroller) {\n this._tabScroller.scrollTo(scrollX);\n }\n }\n\n public getScrollContentWidth(): number {\n return this._tabScroller ? this._tabScroller.getScrollContentWidth() : 0;\n }\n\n public getScrollPosition(): number {\n return this._tabScroller ? this._tabScroller.getScrollPosition() : 0;\n }\n\n public getOffsetWidth(): number {\n return this._tabScrollElement.offsetWidth;\n }\n\n public getTabDimensionsAtIndex(index: number): ITabDimensions {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeDimensions();\n }\n return {\n rootLeft: 0,\n rootRight: 0,\n contentLeft: 0,\n contentRight: 0\n };\n }\n\n public incrementScroll(scrollXIncrement: number): void {\n if (this._tabScroller) {\n this._tabScroller.incrementScroll(scrollXIncrement);\n }\n }\n\n public isScrolled(): boolean {\n const position = this._tabScrollAreaElement.scrollLeft;\n return position > 0;\n }\n\n public isScrolledEnd(): boolean {\n const position = Math.round(this._tabScrollAreaElement.scrollLeft);\n const scrollWidth = Math.round(this._tabScrollContentElement.scrollWidth - this._tabScrollElement.offsetWidth);\n return position >= scrollWidth;\n }\n\n public getFocusedTabIndex(): number {\n const activeElement = getActiveElement() as ITabComponent;\n return this._tabs.findIndex(tab => {\n if (tab === activeElement) {\n return true;\n }\n return !!(tab.shadowRoot as ShadowRoot).contains(activeElement);\n });\n }\n\n public focusTabAtIndex(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.focus();\n }\n }\n\n public setLayoutMode(value: TabBarLayoutMode): void {\n const isFixed = value === 'fixed';\n toggleClass(this._rootElement, isFixed, TAB_BAR_CONSTANTS.classes.FIXED);\n this._tabs.forEach(tab => tab.stretch = isFixed);\n }\n\n public setLayoutAlign(value: TabBarLayoutAlign): void {\n removeClass([\n TAB_BAR_CONSTANTS.classes.ALIGN_CENTER,\n TAB_BAR_CONSTANTS.classes.ALIGN_END\n ], this._rootElement);\n switch (value) {\n case 'center':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_CENTER);\n break;\n case 'end':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_END);\n break;\n }\n }\n\n public setPreviousButtonVisibility(value: boolean): void {\n if (value) {\n this._prevButtonContainerElement.style.removeProperty('display');\n } else {\n this._prevButtonContainerElement.style.display = 'none';\n }\n }\n\n public setPreviousButtonEnabled(value: boolean): void {\n this._prevButtonElement.disabled = !value;\n }\n\n public setNextButtonVisibility(value: boolean): void {\n if (value) {\n this._nextButtonContainerElement.style.removeProperty('display');\n } else {\n this._nextButtonContainerElement.style.display = 'none';\n }\n }\n\n public setNextButtonEnabled(value: boolean): void {\n this._nextButtonElement.disabled = !value;\n }\n\n public addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._prevButtonElement.addEventListener(type, listener);\n }\n \n public addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._nextButtonElement.addEventListener(type, listener);\n }\n\n public isTabDisabled(index: number): boolean {\n const tab = this._getTabByIndex(index);\n return tab ? tab.disabled : true;\n }\n\n public ensureFocusableTab(): void {\n const tabs = this._getTabs();\n const hasActiveTab = tabs.some(tab => tab.active);\n if (!hasActiveTab && tabs.length) {\n const firstTab = tabs[0];\n if (isFunction(firstTab.setTabIndex)) {\n tabs[0].setTabIndex(0);\n }\n }\n }\n\n private _getTabs(): ITabComponent[] {\n return Array.from(this._component.querySelectorAll(TAB_CONSTANTS.elementName));\n }\n\n private _getTabByIndex(index: number): ITabComponent {\n return this._tabs[index];\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight } from '@tylertech/tyler-icons/standard';\nimport { TabComponent } from '../tab/tab';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';\nimport { TabBarFoundation } from './tab-bar-foundation';\nimport { TabBarAdapter } from './tab-bar-adapter';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-tab-bar\\\" part=\\\"root\\\"><div class=\\\"forge-tab-bar__scroll-prev-container\\\" part=\\\"previous-container\\\"><forge-icon-button part=\\\"previous-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll left\\\" id=\\\"scroll-prev-btn\\\" part=\\\"previous-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-button-icon\\\"></forge-icon></button></forge-icon-button></div><div class=\\\"mdc-tab-scroller\\\" part=\\\"tab-scroller\\\"><div class=\\\"mdc-tab-scroller__scroll-area\\\" part=\\\"scroll-area\\\"><div class=\\\"mdc-tab-scroller__scroll-content\\\" part=\\\"scroll-content\\\"><slot></slot></div></div></div><div class=\\\"forge-tab-bar__scroll-next-container\\\" part=\\\"next-container\\\"><forge-icon-button part=\\\"next-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll right\\\" id=\\\"scroll-next-btn\\\" part=\\\"next-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-button-icon\\\"></forge-icon></button></forge-icon-button></div></div></template>';\nconst styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--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}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-icon-button::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-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.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-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.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-icon-button.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-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\\\"\\\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';\n\nexport interface ITabBarComponent extends IBaseComponent {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollTabIntoView(index: number): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-tab-bar': ITabBarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-tab-bar>` element.\n * \n * @tag forge-tab-bar\n */\n@CustomElement({\n name: TAB_BAR_CONSTANTS.elementName,\n dependencies: [\n TabComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class TabBarComponent extends BaseComponent implements ITabBarComponent {\n public static get observedAttributes(): string[] {\n return [\n TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN,\n TAB_BAR_CONSTANTS.attributes.UNDERLINE,\n TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,\n TAB_BAR_CONSTANTS.attributes.STACKED,\n TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS,\n TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS\n ];\n }\n\n private _foundation: TabBarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TabBarFoundation(new TabBarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:\n this.activeTab = coerceNumber(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE:\n this.layoutMode = newValue as TabBarLayoutMode;\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN:\n this.layoutAlign = newValue as TabBarLayoutAlign;\n break;\n case TAB_BAR_CONSTANTS.attributes.UNDERLINE:\n this.underline = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:\n this.autoActivate = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.STACKED:\n this.stacked = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:\n this.scrollButtons = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:\n this.forceScrollButtons = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the active tab index. */\n @FoundationProperty()\n public declare activeTab: number;\n\n /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */\n @FoundationProperty()\n public declare layoutMode: TabBarLayoutMode;\n\n /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */\n @FoundationProperty()\n public declare layoutAlign: TabBarLayoutAlign;\n\n /** Gets/sets whether the component displays an underline or not. Default is `false`. */\n @FoundationProperty()\n public declare underline: boolean;\n\n /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */\n @FoundationProperty()\n public declare autoActivate: boolean;\n\n /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */\n @FoundationProperty()\n public declare stacked: boolean;\n\n /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */\n @FoundationProperty()\n public declare scrollButtons: boolean;\n\n /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */\n @FoundationProperty()\n public declare forceScrollButtons: boolean;\n\n /**\n * Activates the tab at the given index.\n * @param index The index of the tab.\n */\n public activateTab(index: number): void {\n this._foundation.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view.\n * @param index The index of the tab.\n */\n public scrollTabIntoView(index: number): void {\n this._foundation.scrollIntoView(index);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TabBarComponent } from './tab-bar';\n\nexport * from './tab-bar-adapter';\nexport * from './tab-bar-constants';\nexport * from './tab-bar-foundation';\nexport * from './tab-bar';\n\nexport function defineTabBarComponent(): void {\n defineCustomElement(TabBarComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tab-bar`;\n\nconst attributes = {\n ACTIVE_TAB: 'active-tab',\n LAYOUT_MODE: 'layout-mode',\n LAYOUT_ALIGN: 'layout-align',\n UNDERLINE: 'underline',\n AUTO_ACTIVATE: 'auto-activate',\n STACKED: 'stacked',\n SCROLL_BUTTONS: 'scroll-buttons',\n FORCE_SCROLL_BUTTONS: 'force-scroll-buttons'\n};\n\nconst classes = {\n UNDERLINED: 'forge-tab-bar--underlined',\n ALIGN_CENTER: 'forge-tab-bar--align-center',\n ALIGN_END: 'forge-tab-bar--align-end',\n FIXED: 'forge-tab-bar--fixed',\n STACKED: 'forge-tab-bar--stacked'\n};\n\nconst selectors = {\n ROOT: '.forge-tab-bar',\n TAB_SCROLLER: '.mdc-tab-scroller',\n TAB_SCROLLER_AREA: '.mdc-tab-scroller__scroll-area',\n TAB_SCROLLER_CONTENT: '.mdc-tab-scroller__scroll-content',\n PREV_BUTTON_CONTAINER: '.forge-tab-bar__scroll-prev-container',\n PREV_BUTTON: '#scroll-prev-btn',\n NEXT_BUTTON_CONTAINER: '.forge-tab-bar__scroll-next-container',\n NEXT_BUTTON: '#scroll-next-btn'\n};\n\nconst events = {\n ACTIVATE: `${elementName}-activate`\n};\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space'\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\n\nexport const TAB_BAR_CONSTANTS = {\n attributes,\n elementName,\n classes,\n selectors,\n events,\n strings,\n numbers\n};\n\nexport interface ITabBarActivateEventData {\n index: number;\n}\n\nexport declare type TabBarLayoutMode = 'fixed' | 'clustered';\nexport declare type TabBarLayoutAlign = 'start' | 'center' | 'end';\n\nexport const ACCEPTABLE_KEYS = [\n strings.ARROW_LEFT_KEY,\n strings.ARROW_RIGHT_KEY,\n strings.END_KEY,\n strings.HOME_KEY,\n strings.ENTER_KEY,\n strings.SPACE_KEY\n];\n\nexport const KEYCODE_MAP = {\n [numbers.ARROW_LEFT_KEYCODE]: strings.ARROW_LEFT_KEY,\n [numbers.ARROW_RIGHT_KEYCODE]: strings.ARROW_RIGHT_KEY,\n [numbers.END_KEYCODE]: strings.END_KEY,\n [numbers.HOME_KEYCODE]: strings.HOME_KEY,\n [numbers.ENTER_KEYCODE]: strings.ENTER_KEY,\n [numbers.SPACE_KEYCODE]: strings.SPACE_KEY\n};\n", "import { ICustomElementFoundation, Platform, isNumber } from '@tylertech/forge-core';\n\nimport { ITabBarAdapter } from './tab-bar-adapter';\nimport { TabBarLayoutMode, TabBarLayoutAlign, TAB_BAR_CONSTANTS, ITabBarActivateEventData, ACCEPTABLE_KEYS, KEYCODE_MAP } from './tab-bar-constants';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\nimport { ITabComponent } from '../tab/tab';\n\nexport interface ITabBarFoundation extends ICustomElementFoundation {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollIntoView(index: number): void;\n}\n\nexport class TabBarFoundation implements ITabBarFoundation {\n private _isInitialized = false;\n private _activeTab = -1;\n private _layoutMode: TabBarLayoutMode = 'fixed';\n private _layoutAlign: TabBarLayoutAlign = 'start';\n private _underline = false;\n private _autoActivate = false;\n private _stacked = false;\n private _scrollButtons = true;\n private _forceScrollButtons = false;\n private _tabsChangedListener: (evt: Event) => void;\n private _tabInteractedListener: (evt: CustomEvent<void>) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _scrollPrevClickListener: (evt: MouseEvent) => void;\n private _scrollPrevMousedownListener: (evt: MouseEvent) => void;\n private _scrollNextClickListener: (evt: MouseEvent) => void;\n private _scrollNextMousedownListener: (evt: MouseEvent) => void;\n private _scrollListener: (evt: Event) => void;\n\n constructor(private _adapter: ITabBarAdapter) {\n this._tabsChangedListener = evt => this._onTabsChanged(evt);\n this._tabInteractedListener = evt => this._onTabInteracted(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._scrollPrevClickListener = evt => this._onScrollPrevious(evt);\n this._scrollPrevMousedownListener = evt => evt.preventDefault();\n this._scrollNextClickListener = evt => this._onScrollNext(evt);\n this._scrollNextMousedownListener = evt => evt.preventDefault();\n this._scrollListener = evt => this._onScroll(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.initializeTabScroller();\n this._adapter.initializeAccessibility();\n this._adapter.addTabChangeListener(this._tabsChangedListener);\n this._adapter.addScrollPreviousListener('click', this._scrollPrevClickListener);\n this._adapter.addScrollPreviousListener('mousedown', this._scrollPrevMousedownListener);\n this._adapter.addScrollNextListener('click', this._scrollNextClickListener);\n this._adapter.addScrollNextListener('mousedown', this._scrollNextMousedownListener);\n this._adapter.addHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addScrollListener(this._scrollListener);\n this._adapter.setUnderline(this._underline);\n this._adapter.setLayoutMode(this._layoutMode);\n this._adapter.setLayoutAlign(this._layoutAlign);\n window.requestAnimationFrame(() => {\n this._syncScrollButtons();\n this._adapter.ensureFocusableTab();\n });\n this._isInitialized = true;\n }\n \n public disconnect(): void {\n this._adapter.destroyTabScroller();\n this._adapter.removeTabChangeListener(this._tabsChangedListener);\n this._adapter.removeHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n this._isInitialized = false;\n }\n\n private _onTabsChanged(evt: Event): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.ensureFocusableTab();\n\n // We need to wait a full cycle to scroll the active tab into view\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n this.scrollIntoView(this._activeTab);\n this._syncScrollButtons();\n });\n });\n }\n\n private _onTabInteracted(evt: CustomEvent<void>): void {\n const activatedTab = evt.target as ITabComponent;\n const activatedTabIndex = this._adapter.getTabIndex(activatedTab);\n \n // Check if the event and requested tab index is valid\n const isTabEvent = activatedTab.tagName.toLowerCase() === TAB_CONSTANTS.elementName;\n const isValidTabIndex = activatedTabIndex !== this._activeTab && this._indexIsInRange(activatedTabIndex);\n if (!isTabEvent || !isValidTabIndex) {\n return;\n }\n\n // Emit the activate event\n const activateEventData: ITabBarActivateEventData = { index: activatedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n \n // Check if listener prevented default on the activate event, and stop now if so\n if (!canActivate) {\n return;\n }\n\n this.activateTab(activatedTabIndex);\n this._adapter.focusTabAtIndex(activatedTabIndex);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const key = this._getKeyFromEvent(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (!key) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this._isActivationKey(key)) {\n evt.preventDefault();\n }\n\n if (this._autoActivate) {\n if (this._isActivationKey(key)) {\n return;\n }\n\n const index = this._determineTargetFromKey(this._activeTab, key);\n if (this._activeTab === index) {\n return;\n }\n\n const activateEventData: ITabBarActivateEventData = { index };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n\n if (canActivate) {\n this.activateTab(index);\n this._adapter.focusTabAtIndex(index);\n }\n } else {\n const focusedTabIndex = this._adapter.getFocusedTabIndex();\n if (focusedTabIndex === -1) {\n return;\n }\n\n if (this._isActivationKey(key)) {\n const activateEventData: ITabBarActivateEventData = { index: focusedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n if (canActivate) {\n this.activateTab(focusedTabIndex);\n }\n } else {\n const index = this._determineTargetFromKey(focusedTabIndex, key);\n if (focusedTabIndex === index) {\n return;\n }\n this._adapter.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n private _onScrollPrevious(evt: MouseEvent): void {\n const scrollAmount = -this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n \n private _onScrollNext(evt: MouseEvent): void {\n const scrollAmount = this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n\n private _onScroll(evt: Event): void {\n this._syncScrollButtons();\n }\n\n private _syncScrollButtons(): void {\n const isScrollable = this._isScrollable();\n this._adapter.setPreviousButtonVisibility(isScrollable);\n this._adapter.setNextButtonVisibility(isScrollable);\n if (isScrollable) {\n this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled());\n this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd());\n }\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private _findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: ITabDimensions, scrollPosition: number, barWidth: number): number {\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab-bar\n */\n private _calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTabDimensions = this._adapter.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private _determineTargetFromKey(origin: number, key: string, nextIndex?: number): number {\n if (origin === nextIndex) {\n return origin;\n }\n\n const maxIndex = this._adapter.getTabCount() - 1;\n const shouldGoToEnd = key === TAB_BAR_CONSTANTS.strings.END_KEY;\n const shouldDecrement = key === TAB_BAR_CONSTANTS.strings.ARROW_LEFT_KEY;\n const shouldIncrement = key === TAB_BAR_CONSTANTS.strings.ARROW_RIGHT_KEY;\n let index = nextIndex !== undefined ? nextIndex : origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n // If this tab is disabled, then we'll try again...\n if (this._adapter.isTabDisabled(index)) {\n return this._determineTargetFromKey(origin, key, index);\n }\n\n return index;\n }\n\n private _isScrollable(): boolean {\n return this._forceScrollButtons ||\n (this._scrollButtons &&\n !Platform.isMobile &&\n !this._isFixed &&\n this._adapter.getScrollContentWidth() > this._adapter.getOffsetWidth());\n }\n\n private _getKeyFromEvent(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.includes(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP[evt.keyCode];\n }\n\n private _isActivationKey(key: string): boolean {\n return key === TAB_BAR_CONSTANTS.strings.SPACE_KEY || key === TAB_BAR_CONSTANTS.strings.ENTER_KEY;\n }\n\n private _indexIsInRange(index: number): boolean {\n return index >= 0 && index < this._adapter.getTabCount();\n }\n\n public activateTab(index: number): void {\n if (!isNumber(index)) {\n index = -1;\n }\n\n // If we have a currently selected tab we need to deactivate that now\n if (this._activeTab !== -1) {\n this._adapter.deactivateTab(this._activeTab);\n }\n\n // Activate the requested tab\n const previousTabBounds = this._adapter.getTabBounds(this._activeTab);\n this._adapter.activateTab(index, previousTabBounds);\n this._adapter.syncTabIndex(index);\n this._adapter.ensureFocusableTab();\n this.scrollIntoView(index);\n this._activeTab = index;\n this._syncScrollButtons();\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n }\n\n public scrollIntoView(index: number): void {\n if (!this._indexIsInRange(index)) {\n return;\n }\n\n if (index === 0) {\n return this._adapter.scrollTo(0);\n }\n\n if (index === this._adapter.getTabCount() - 1) {\n return this._adapter.scrollTo(this._adapter.getScrollContentWidth());\n }\n\n const scrollPosition = this._adapter.getScrollPosition();\n const barWidth = this._adapter.getOffsetWidth();\n const tabDimensions = this._adapter.getTabDimensionsAtIndex(index);\n const nextIndex = this._findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this._indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this._calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this._adapter.incrementScroll(scrollIncrement);\n }\n\n /** Gets and sets the active tab index. */\n public get activeTab(): number {\n return this._activeTab;\n }\n public set activeTab(value: number) {\n if (this._activeTab !== value) {\n if (!this._isInitialized) {\n this._activeTab = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n } else {\n this.activateTab(value);\n }\n }\n }\n\n private get _isFixed(): boolean {\n return this._layoutMode === 'fixed';\n }\n\n public get layoutMode(): TabBarLayoutMode {\n return this._layoutMode;\n }\n public set layoutMode(value: TabBarLayoutMode) {\n if (this._layoutMode !== value) {\n this._layoutMode = value;\n this._adapter.setLayoutMode(this._layoutMode);\n this._syncScrollButtons();\n }\n }\n\n public get layoutAlign(): TabBarLayoutAlign {\n return this._layoutAlign;\n }\n public set layoutAlign(value: TabBarLayoutAlign) {\n if (this._layoutAlign !== value) {\n this._layoutAlign = value;\n this._adapter.setLayoutAlign(this._layoutAlign);\n }\n }\n\n public get underline(): boolean {\n return this._underline;\n }\n public set underline(value: boolean) {\n if (this._underline !== value) {\n this._underline = value;\n this._adapter.setUnderline(this._underline);\n this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.UNDERLINE, this._underline);\n }\n }\n\n public get stacked(): boolean {\n return this._stacked;\n }\n public set stacked(value: boolean) {\n if (this._stacked !== value) {\n this._stacked = value;\n this._adapter.setStacked(this._stacked);\n if (this._stacked) {\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n } else {\n this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n }\n }\n }\n\n public get scrollButtons(): boolean {\n return this._scrollButtons;\n }\n public set scrollButtons(value: boolean) {\n if (this._scrollButtons !== value) {\n this._scrollButtons = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS, this._scrollButtons.toString());\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get forceScrollButtons(): boolean {\n return this._forceScrollButtons;\n }\n public set forceScrollButtons(value: boolean) {\n if (this._forceScrollButtons !== value) {\n this._forceScrollButtons = value;\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get autoActivate(): boolean {\n return this._autoActivate;\n }\n public set autoActivate(value: boolean) {\n if (this._autoActivate !== value) {\n this._autoActivate = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE, this._autoActivate.toString());\n }\n }\n}\n", null, null, null, null, null, null, null, null, "import { MDCTabScroller } from '@material/tab-scroller';\nimport { getShadowElement, removeClass, isFunction, getActiveElement, toggleClass } from '@tylertech/forge-core';\n\nimport { IBaseAdapter, BaseAdapter } from '../../core/base/base-adapter';\nimport { ITabBarComponent } from './tab-bar';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign } from './tab-bar-constants';\nimport { ITabComponent } from '../tab/tab';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\n\nexport interface ITabBarAdapter extends IBaseAdapter {\n initializeTabs(activeTabIndex: number, stretch: boolean): void;\n initializeTabScroller(): void;\n initializeAccessibility(): void;\n destroyTabScroller(): void;\n addTabChangeListener(listener: (evt: Event) => void): void;\n removeTabChangeListener(listener: (evt: Event) => void): void;\n addScrollListener(listener: (evt: Event) => void): void;\n getTabIndex(tab: ITabComponent): number;\n getTabCount(): number;\n activateTab(index: number, previousTabBounds?: DOMRect): void;\n deactivateTab(index: number): void;\n syncTabIndex(index: number): void;\n getTabBounds(index: number): DOMRect | undefined;\n setUnderline(value: boolean): void;\n setStacked(value: boolean): void;\n scrollTo(scrollX: number): void;\n getScrollContentWidth(): number;\n getScrollPosition(): number;\n getOffsetWidth(): number;\n getTabDimensionsAtIndex(index: number): ITabDimensions;\n incrementScroll(scrollXIncrement: number): void;\n isScrolled(): boolean;\n isScrolledEnd(): boolean;\n getFocusedTabIndex(): number;\n focusTabAtIndex(index: number): void;\n setLayoutMode(value: TabBarLayoutMode): void;\n setLayoutAlign(value: TabBarLayoutAlign): void;\n setPreviousButtonVisibility(value: boolean): void;\n setPreviousButtonEnabled(value: boolean): void;\n setNextButtonVisibility(value: boolean): void;\n setNextButtonEnabled(value: boolean): void;\n addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void;\n addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void;\n isTabDisabled(index: number): boolean;\n ensureFocusableTab(): void;\n}\n\nexport class TabBarAdapter extends BaseAdapter<ITabBarComponent> implements ITabBarAdapter {\n private _rootElement: HTMLElement;\n private _defaultSlotElement: HTMLSlotElement;\n private _tabScrollElement: HTMLElement;\n private _tabScrollAreaElement: HTMLElement;\n private _tabScrollContentElement: HTMLElement;\n private _tabScroller: MDCTabScroller | undefined;\n private _tabs: ITabComponent[] = [];\n private _prevButtonContainerElement: HTMLElement;\n private _nextButtonContainerElement: HTMLElement;\n private _prevButtonElement: HTMLButtonElement;\n private _nextButtonElement: HTMLButtonElement;\n\n constructor(component: ITabBarComponent) {\n super(component);\n this._rootElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.ROOT);\n this._tabScrollElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER);\n this._tabScrollAreaElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_AREA);\n this._tabScrollContentElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_CONTENT);\n this._defaultSlotElement = getShadowElement(this._component, TAB_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n this._prevButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON_CONTAINER);\n this._prevButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON) as HTMLButtonElement;\n this._nextButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON_CONTAINER);\n this._nextButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON) as HTMLButtonElement;\n }\n\n public initializeTabs(activeTabIndex: number, stretch: boolean): void {\n this._tabs = this._getTabs();\n\n if (!this._tabs.length) {\n return;\n }\n\n this._tabs.forEach(tab => {\n tab.active = false;\n tab.stretch = stretch;\n });\n\n // Set the initial active tab\n if (activeTabIndex >= 0 && activeTabIndex < this._tabs.length) {\n this._tabs[activeTabIndex].active = true;\n } else {\n this.ensureFocusableTab();\n }\n }\n\n public initializeTabScroller(): void {\n this._tabScroller = new MDCTabScroller(this._tabScrollElement);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'tablist');\n }\n }\n\n public destroyTabScroller(): void {\n if (this._tabScroller) {\n this._tabScroller.destroy();\n }\n }\n\n public addTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.addEventListener('slotchange', listener);\n }\n\n public removeTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.removeEventListener('slotchange', listener);\n }\n\n public addScrollListener(listener: (evt: Event) => void): void {\n this._tabScrollAreaElement.addEventListener('scroll', listener);\n }\n\n public getTabIndex(tab: ITabComponent): number {\n return this._tabs.indexOf(tab);\n }\n\n public getTabCount(): number {\n return this._tabs.length;\n }\n\n public activateTab(index: number, previousTabBounds?: DOMRect): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.activate(previousTabBounds);\n }\n }\n\n public deactivateTab(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.deactivate();\n }\n }\n\n public syncTabIndex(index: number): void {\n const tabs = this._getTabs();\n const activeTab = tabs[index];\n tabs.filter(t => t !== activeTab)\n .forEach(t => t.setTabIndex(-1));\n }\n\n public getTabBounds(index: number): DOMRect | undefined {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeIndicatorBounds();\n }\n return undefined;\n }\n\n public setUnderline(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.UNDERLINED);\n }\n \n public setStacked(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.STACKED);\n }\n\n public scrollTo(scrollX: number): void {\n if (this._tabScroller) {\n this._tabScroller.scrollTo(scrollX);\n }\n }\n\n public getScrollContentWidth(): number {\n return this._tabScroller ? this._tabScroller.getScrollContentWidth() : 0;\n }\n\n public getScrollPosition(): number {\n return this._tabScroller ? this._tabScroller.getScrollPosition() : 0;\n }\n\n public getOffsetWidth(): number {\n return this._tabScrollElement.offsetWidth;\n }\n\n public getTabDimensionsAtIndex(index: number): ITabDimensions {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeDimensions();\n }\n return {\n rootLeft: 0,\n rootRight: 0,\n contentLeft: 0,\n contentRight: 0\n };\n }\n\n public incrementScroll(scrollXIncrement: number): void {\n if (this._tabScroller) {\n this._tabScroller.incrementScroll(scrollXIncrement);\n }\n }\n\n public isScrolled(): boolean {\n const position = this._tabScrollAreaElement.scrollLeft;\n return position > 0;\n }\n\n public isScrolledEnd(): boolean {\n const position = Math.round(this._tabScrollAreaElement.scrollLeft);\n const scrollWidth = Math.round(this._tabScrollContentElement.scrollWidth - this._tabScrollElement.offsetWidth);\n return position >= scrollWidth;\n }\n\n public getFocusedTabIndex(): number {\n const activeElement = getActiveElement(this._component.ownerDocument) as ITabComponent;\n return this._tabs.findIndex(tab => {\n if (tab === activeElement) {\n return true;\n }\n return !!(tab.shadowRoot as ShadowRoot).contains(activeElement);\n });\n }\n\n public focusTabAtIndex(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.focus();\n }\n }\n\n public setLayoutMode(value: TabBarLayoutMode): void {\n const isFixed = value === 'fixed';\n toggleClass(this._rootElement, isFixed, TAB_BAR_CONSTANTS.classes.FIXED);\n this._tabs.forEach(tab => tab.stretch = isFixed);\n }\n\n public setLayoutAlign(value: TabBarLayoutAlign): void {\n removeClass([\n TAB_BAR_CONSTANTS.classes.ALIGN_CENTER,\n TAB_BAR_CONSTANTS.classes.ALIGN_END\n ], this._rootElement);\n switch (value) {\n case 'center':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_CENTER);\n break;\n case 'end':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_END);\n break;\n }\n }\n\n public setPreviousButtonVisibility(value: boolean): void {\n if (value) {\n this._prevButtonContainerElement.style.removeProperty('display');\n } else {\n this._prevButtonContainerElement.style.display = 'none';\n }\n }\n\n public setPreviousButtonEnabled(value: boolean): void {\n this._prevButtonElement.disabled = !value;\n }\n\n public setNextButtonVisibility(value: boolean): void {\n if (value) {\n this._nextButtonContainerElement.style.removeProperty('display');\n } else {\n this._nextButtonContainerElement.style.display = 'none';\n }\n }\n\n public setNextButtonEnabled(value: boolean): void {\n this._nextButtonElement.disabled = !value;\n }\n\n public addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._prevButtonElement.addEventListener(type, listener);\n }\n \n public addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._nextButtonElement.addEventListener(type, listener);\n }\n\n public isTabDisabled(index: number): boolean {\n const tab = this._getTabByIndex(index);\n return tab ? tab.disabled : true;\n }\n\n public ensureFocusableTab(): void {\n const tabs = this._getTabs();\n const hasActiveTab = tabs.some(tab => tab.active);\n if (!hasActiveTab && tabs.length) {\n const firstTab = tabs[0];\n if (isFunction(firstTab.setTabIndex)) {\n tabs[0].setTabIndex(0);\n }\n }\n }\n\n private _getTabs(): ITabComponent[] {\n return Array.from(this._component.querySelectorAll(TAB_CONSTANTS.elementName));\n }\n\n private _getTabByIndex(index: number): ITabComponent {\n return this._tabs[index];\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight } from '@tylertech/tyler-icons/standard';\nimport { TabComponent } from '../tab/tab';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';\nimport { TabBarFoundation } from './tab-bar-foundation';\nimport { TabBarAdapter } from './tab-bar-adapter';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-tab-bar\\\" part=\\\"root\\\"><div class=\\\"forge-tab-bar__scroll-prev-container\\\" part=\\\"previous-container\\\"><forge-icon-button part=\\\"previous-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll left\\\" id=\\\"scroll-prev-btn\\\" part=\\\"previous-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-button-icon\\\"></forge-icon></button></forge-icon-button></div><div class=\\\"mdc-tab-scroller\\\" part=\\\"tab-scroller\\\"><div class=\\\"mdc-tab-scroller__scroll-area\\\" part=\\\"scroll-area\\\"><div class=\\\"mdc-tab-scroller__scroll-content\\\" part=\\\"scroll-content\\\"><slot></slot></div></div></div><div class=\\\"forge-tab-bar__scroll-next-container\\\" part=\\\"next-container\\\"><forge-icon-button part=\\\"next-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll right\\\" id=\\\"scroll-next-btn\\\" part=\\\"next-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-button-icon\\\"></forge-icon></button></forge-icon-button></div></div></template>';\nconst styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-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))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--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}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-icon-button::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-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.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-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.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-icon-button.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-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\\\"\\\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';\n\nexport interface ITabBarComponent extends IBaseComponent {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollTabIntoView(index: number): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-tab-bar': ITabBarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-tab-bar>` element.\n * \n * @tag forge-tab-bar\n */\n@CustomElement({\n name: TAB_BAR_CONSTANTS.elementName,\n dependencies: [\n TabComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class TabBarComponent extends BaseComponent implements ITabBarComponent {\n public static get observedAttributes(): string[] {\n return [\n TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN,\n TAB_BAR_CONSTANTS.attributes.UNDERLINE,\n TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,\n TAB_BAR_CONSTANTS.attributes.STACKED,\n TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS,\n TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS\n ];\n }\n\n private _foundation: TabBarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TabBarFoundation(new TabBarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:\n this.activeTab = coerceNumber(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE:\n this.layoutMode = newValue as TabBarLayoutMode;\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN:\n this.layoutAlign = newValue as TabBarLayoutAlign;\n break;\n case TAB_BAR_CONSTANTS.attributes.UNDERLINE:\n this.underline = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:\n this.autoActivate = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.STACKED:\n this.stacked = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:\n this.scrollButtons = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:\n this.forceScrollButtons = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the active tab index. */\n @FoundationProperty()\n public declare activeTab: number;\n\n /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */\n @FoundationProperty()\n public declare layoutMode: TabBarLayoutMode;\n\n /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */\n @FoundationProperty()\n public declare layoutAlign: TabBarLayoutAlign;\n\n /** Gets/sets whether the component displays an underline or not. Default is `false`. */\n @FoundationProperty()\n public declare underline: boolean;\n\n /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */\n @FoundationProperty()\n public declare autoActivate: boolean;\n\n /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */\n @FoundationProperty()\n public declare stacked: boolean;\n\n /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */\n @FoundationProperty()\n public declare scrollButtons: boolean;\n\n /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */\n @FoundationProperty()\n public declare forceScrollButtons: boolean;\n\n /**\n * Activates the tab at the given index.\n * @param index The index of the tab.\n */\n public activateTab(index: number): void {\n this._foundation.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view.\n * @param index The index of the tab.\n */\n public scrollTabIntoView(index: number): void {\n this._foundation.scrollIntoView(index);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TabBarComponent } from './tab-bar';\n\nexport * from './tab-bar-adapter';\nexport * from './tab-bar-constants';\nexport * from './tab-bar-foundation';\nexport * from './tab-bar';\n\nexport function defineTabBarComponent(): void {\n defineCustomElement(TabBarComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "strings", "numbers", "TAB_BAR_CONSTANTS", "ACCEPTABLE_KEYS", "KEYCODE_MAP", "TabBarFoundation", "_adapter", "evt", "TAB_CONSTANTS", "activatedTab", "activatedTabIndex", "isTabEvent", "isValidTabIndex", "activateEventData", "TAB_BAR_CONSTANTS", "key", "index", "focusedTabIndex", "scrollAmount", "isScrollable", "tabDimensions", "scrollPosition", "barWidth", "relativeRootLeft", "relativeRootRight", "relativeRootDelta", "leftEdgeIsCloser", "rightEdgeIsCloser", "nextIndex", "nextTabDimensions", "relativeContentLeft", "leftIncrement", "rightIncrement", "origin", "maxIndex", "shouldGoToEnd", "shouldDecrement", "shouldIncrement", "Platform", "ACCEPTABLE_KEYS", "KEYCODE_MAP", "isNumber", "previousTabBounds", "scrollIncrement", "value", "cssClasses", "strings", "horizontalScrollbarHeight_", "computeHorizontalScrollbarHeight", "documentObj", "shouldCacheResult", "el", "cssClasses", "horizontalScrollbarHeight", "MDCTabScrollerRTL", "adapter", "MDCTabScrollerRTLDefault", "_super", "__extends", "currentScrollLeft", "right", "scrollX", "edges", "clampedScrollLeft", "contentWidth", "rootWidth", "MDCTabScrollerRTL", "MDCTabScrollerRTLNegative", "_super", "__extends", "translateX", "currentScrollLeft", "scrollX", "clampedScrollLeft", "contentWidth", "rootWidth", "edges", "MDCTabScrollerRTL", "MDCTabScrollerRTLReverse", "_super", "__extends", "translateX", "currentScrollLeft", "scrollX", "clampedScrollLeft", "contentWidth", "rootWidth", "edges", "MDCTabScrollerRTL", "MDCTabScrollerFoundation", "_super", "__extends", "adapter", "_this", "__assign", "cssClasses", "strings", "horizontalScrollbarHeight", "currentTranslateX", "scrollLeft", "evt", "evtTarget", "scrollXIncrement", "operation", "scrollX", "transformValue", "match", "matrixParams", "_a", "__read", "a", "b", "c", "d", "tx", "ty", "edges", "translateX", "contentWidth", "rootWidth", "currentScrollX", "safeScrollX", "scrollDelta", "animation", "targetScrollX", "currentScrollPosition", "initialScrollLeft", "newScrollLeft", "MDCTabScrollerRTLNegative", "rootClientRect", "contentClientRect", "rightEdgeDelta", "MDCTabScrollerRTLReverse", "MDCTabScrollerRTLDefault", "MDCFoundation", "MDCTabScroller", "_super", "__extends", "root", "MDCTabScrollerFoundation", "_this", "evt", "applyPassive", "adapter", "evtTarget", "selector", "matches", "className", "prop", "value", "propName", "scrollX", "computeHorizontalScrollbarHeight", "scrollXIncrement", "MDCComponent", "TabBarAdapter", "BaseAdapter", "component", "getShadowElement", "TAB_BAR_CONSTANTS", "TAB_CONSTANTS", "activeTabIndex", "stretch", "tab", "MDCTabScroller", "listener", "index", "previousTabBounds", "tabs", "activeTab", "t", "value", "toggleClass", "scrollX", "scrollXIncrement", "position", "scrollWidth", "activeElement", "getActiveElement", "isFixed", "removeClass", "type", "firstTab", "isFunction", "template", "styles", "TabBarComponent", "BaseComponent", "IconRegistry", "tylIconKeyboardArrowLeft", "tylIconKeyboardArrowRight", "attachShadowTemplate", "TabBarFoundation", "TabBarAdapter", "TAB_BAR_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "coerceBoolean", "index", "__decorateClass", "FoundationProperty", "CustomElement", "TabComponent", "IconButtonComponent", "IconComponent", "defineTabBarComponent", "defineCustomElement", "TabBarComponent"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as e}from"./chunk.47A2CN5U.js";var o=class extends e{constructor(n){super(n)}};export{o as a};
7
- //# sourceMappingURL=chunk.ARJ3EVVO.js.map
6
+ import{a as e}from"./chunk.BESB4RGK.js";var o=class extends e{constructor(n){super(n)}};export{o as a};
7
+ //# sourceMappingURL=chunk.2KXSGD3S.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as E}from"./chunk.WY7DECJD.js";import{a as u}from"./chunk.47A2CN5U.js";import{a as p,b as d}from"./chunk.BE7PZANN.js";import{a as c,l as m}from"./chunk.Y4GKBJGI.js";import{l as a,t as r}from"./chunk.PN26D52V.js";import{k as s}from"./chunk.J2M2MXP2.js";import{f as l}from"./chunk.MCIQXNKY.js";var f=`${d}fab`,g={BUTTON:"button, a",ICON:"i,forge-icon,img,svg",LABEL:"span"},I={BUTTON:"forge-fab",BUTTON_EXTENDED:"forge-fab--extended",ICON:"forge-fab__icon",LABEL:"forge-fab__label",BUTTON_MINI:"forge-fab--mini",EXITED:"forge-fab--exited",RIPPLE:"forge-fab__ripple"},T={EXTENDED:"extended",MINI:"mini",EXITED:"exited"},e={elementName:f,selectors:g,classes:I,attributes:T};var o=class extends m{constructor(){super();this._isExtended=!1;this._isMini=!1;this._isExited=!1}static get observedAttributes(){return[e.attributes.EXITED,e.attributes.MINI,e.attributes.EXTENDED]}connectedCallback(){this.children.length?this._initialize():a(this).then(()=>this._initialize())}disconnectedCallback(){this._rippleInstance&&this._rippleInstance.destroy()}attributeChangedCallback(t,n,i){switch(t){case e.attributes.EXITED:this.exited=s(i);break;case e.attributes.MINI:this.mini=s(i);break;case e.attributes.EXTENDED:this.extended=s(i);break}}_initialize(){if(this._buttonElement=this.querySelector(e.selectors.BUTTON),!this._buttonElement)return;this._buttonElement.classList.add(e.classes.BUTTON);let t=this._buttonElement.querySelector(`.${e.classes.RIPPLE}`)||document.createElement("div");t.classList.add(e.classes.RIPPLE),this._buttonElement.insertAdjacentElement("afterbegin",t),this._sync(),this._rippleInstance&&this._rippleInstance.destroy(),this._rippleInstance=new E(this._buttonElement)}_sync(){if(!this._buttonElement)return;r(this._buttonElement,this._isExited,e.classes.EXITED),r(this._buttonElement,this._isMini,e.classes.BUTTON_MINI),r(this._buttonElement,this._isExtended,e.classes.BUTTON_EXTENDED);let t=this.querySelector(e.selectors.LABEL);t&&t.classList.add(e.classes.LABEL);let n=this.querySelector(e.selectors.ICON);n&&(n.classList.add(e.classes.ICON),n.setAttribute("aria-hidden","true"))}set exited(t){this._isExited!==t&&(this._isExited=t,this.setAttribute(e.attributes.EXITED,this._isExited.toString()),this._sync())}get exited(){return this._isExited}set mini(t){this._isMini!==t&&(this._isMini=t,this.setAttribute(e.attributes.MINI,this._isMini.toString()),this._sync())}get mini(){return this._isMini}set extended(t){this._isExtended!==t&&(this._isExtended=t,this.setAttribute(e.attributes.EXTENDED,this._isExtended.toString()),this._sync())}get extended(){return this._isExtended}};o=l([p({name:e.elementName})],o);var b=class extends u{constructor(t){super(t)}destroy(){this._buttonElement=void 0}_build(){var n,i;let t=document.createElement(e.elementName);return this._buttonElement=document.createElement("button"),this._buttonElement.type="button",this._buttonElement.textContent=(i=(n=this._config.options)==null?void 0:n.text)!=null?i:"",t.appendChild(this._buttonElement),t}onClick(t){var n;(n=this._buttonElement)==null||n.addEventListener("click",t)}onFocus(t){var n;(n=this._buttonElement)==null||n.addEventListener("focus",i=>t(i))}onBlur(t){var n;(n=this._buttonElement)==null||n.addEventListener("blur",i=>t(i))}};function P(){c(o)}export{e as a,o as b,b as c,P as d};
7
- //# sourceMappingURL=chunk.VC2BG2RS.js.map
6
+ import{b as E}from"./chunk.4CWMNWZU.js";import{a as u}from"./chunk.BESB4RGK.js";import{a as p,b as d}from"./chunk.QOA2O575.js";import{a as c,l as m}from"./chunk.HOXFK44F.js";import{l as a,t as r}from"./chunk.4LA6HEA7.js";import{k as s}from"./chunk.J2M2MXP2.js";import{f as l}from"./chunk.MCIQXNKY.js";var f=`${d}fab`,g={BUTTON:"button, a",ICON:"i,forge-icon,img,svg",LABEL:"span"},I={BUTTON:"forge-fab",BUTTON_EXTENDED:"forge-fab--extended",ICON:"forge-fab__icon",LABEL:"forge-fab__label",BUTTON_MINI:"forge-fab--mini",EXITED:"forge-fab--exited",RIPPLE:"forge-fab__ripple"},T={EXTENDED:"extended",MINI:"mini",EXITED:"exited"},e={elementName:f,selectors:g,classes:I,attributes:T};var o=class extends m{constructor(){super();this._isExtended=!1;this._isMini=!1;this._isExited=!1}static get observedAttributes(){return[e.attributes.EXITED,e.attributes.MINI,e.attributes.EXTENDED]}connectedCallback(){this.children.length?this._initialize():a(this).then(()=>this._initialize())}disconnectedCallback(){this._rippleInstance&&this._rippleInstance.destroy()}attributeChangedCallback(t,n,i){switch(t){case e.attributes.EXITED:this.exited=s(i);break;case e.attributes.MINI:this.mini=s(i);break;case e.attributes.EXTENDED:this.extended=s(i);break}}_initialize(){if(this._buttonElement=this.querySelector(e.selectors.BUTTON),!this._buttonElement)return;this._buttonElement.classList.add(e.classes.BUTTON);let t=this._buttonElement.querySelector(`.${e.classes.RIPPLE}`)||document.createElement("div");t.classList.add(e.classes.RIPPLE),this._buttonElement.insertAdjacentElement("afterbegin",t),this._sync(),this._rippleInstance&&this._rippleInstance.destroy(),this._rippleInstance=new E(this._buttonElement)}_sync(){if(!this._buttonElement)return;r(this._buttonElement,this._isExited,e.classes.EXITED),r(this._buttonElement,this._isMini,e.classes.BUTTON_MINI),r(this._buttonElement,this._isExtended,e.classes.BUTTON_EXTENDED);let t=this.querySelector(e.selectors.LABEL);t&&t.classList.add(e.classes.LABEL);let n=this.querySelector(e.selectors.ICON);n&&(n.classList.add(e.classes.ICON),n.setAttribute("aria-hidden","true"))}set exited(t){this._isExited!==t&&(this._isExited=t,this.setAttribute(e.attributes.EXITED,this._isExited.toString()),this._sync())}get exited(){return this._isExited}set mini(t){this._isMini!==t&&(this._isMini=t,this.setAttribute(e.attributes.MINI,this._isMini.toString()),this._sync())}get mini(){return this._isMini}set extended(t){this._isExtended!==t&&(this._isExtended=t,this.setAttribute(e.attributes.EXTENDED,this._isExtended.toString()),this._sync())}get extended(){return this._isExtended}};o=l([p({name:e.elementName})],o);var b=class extends u{constructor(t){super(t)}destroy(){this._buttonElement=void 0}_build(){var n,i;let t=document.createElement(e.elementName);return this._buttonElement=document.createElement("button"),this._buttonElement.type="button",this._buttonElement.textContent=(i=(n=this._config.options)==null?void 0:n.text)!=null?i:"",t.appendChild(this._buttonElement),t}onClick(t){var n;(n=this._buttonElement)==null||n.addEventListener("click",t)}onFocus(t){var n;(n=this._buttonElement)==null||n.addEventListener("focus",i=>t(i))}onBlur(t){var n;(n=this._buttonElement)==null||n.addEventListener("blur",i=>t(i))}};function P(){c(o)}export{e as a,o as b,b as c,P as d};
7
+ //# sourceMappingURL=chunk.3FAYFYXF.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as t}from"./chunk.BE7PZANN.js";var T=`${t}tooltip`,o={TEXT:"text",TARGET:"target",DELAY:"delay",POSITION:"position",HOST:"forge-tooltip-host"},e={TOOLTIP:"forge-tooltip",TOOLTIP_OPEN:"forge-tooltip--open",TOOLTIP_TOP:"forge-tooltip--top",TOOLTIP_RIGHT:"forge-tooltip--right",TOOLTIP_BOTTOM:"forge-tooltip--bottom",TOOLTIP_LEFT:"forge-tooltip--left"},O={HOST:`[${o.HOST}]`},r={DEFAULT_DELAY:500,LONGPRESS_THRESHOLD:750,LONGPRESS_VISIBILITY_DURATION:3e3},p={DEFAULT_POSITION:"right"},l={elementName:T,attributes:o,classes:e,selectors:O,numbers:r,strings:p};export{l as a};
7
- //# sourceMappingURL=chunk.G45OZEIS.js.map
6
+ import{b as t}from"./chunk.QOA2O575.js";var T=`${t}tooltip`,o={TEXT:"text",TARGET:"target",DELAY:"delay",POSITION:"position",HOST:"forge-tooltip-host"},e={TOOLTIP:"forge-tooltip",TOOLTIP_OPEN:"forge-tooltip--open",TOOLTIP_TOP:"forge-tooltip--top",TOOLTIP_RIGHT:"forge-tooltip--right",TOOLTIP_BOTTOM:"forge-tooltip--bottom",TOOLTIP_LEFT:"forge-tooltip--left"},O={HOST:`[${o.HOST}]`},r={DEFAULT_DELAY:500,LONGPRESS_THRESHOLD:750,LONGPRESS_VISIBILITY_DURATION:3e3},p={DEFAULT_POSITION:"right"},l={elementName:T,attributes:o,classes:e,selectors:O,numbers:r,strings:p};export{l as a};
7
+ //# sourceMappingURL=chunk.3IXTRC6Z.js.map