@tylertech/forge 2.3.0 → 2.6.0

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 (438) hide show
  1. package/README.md +5 -5
  2. package/custom-elements.json +114521 -0
  3. package/dist/esm/accordion/index.js +6 -5
  4. package/dist/esm/app-bar/help-button/index.js +16 -15
  5. package/dist/esm/app-bar/index.js +26 -25
  6. package/dist/esm/app-bar/menu-button/index.js +7 -6
  7. package/dist/esm/app-bar/notification-button/index.js +8 -7
  8. package/dist/esm/app-bar/profile-button/index.js +12 -11
  9. package/dist/esm/app-bar/search/index.js +5 -4
  10. package/dist/esm/autocomplete/index.js +18 -17
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +7 -6
  15. package/dist/esm/bottom-sheet/index.js +10 -9
  16. package/dist/esm/busy-indicator/index.js +8 -7
  17. package/dist/esm/button/index.js +4 -3
  18. package/dist/esm/button-toggle/button-toggle/index.js +3 -3
  19. package/dist/esm/button-toggle/button-toggle-group/index.js +3 -3
  20. package/dist/esm/button-toggle/index.js +4 -4
  21. package/dist/esm/calendar/calendar-dropdown/index.js +5 -4
  22. package/dist/esm/calendar/calendar-menu/index.js +3 -2
  23. package/dist/esm/calendar/index.js +11 -10
  24. package/dist/esm/card/index.js +1 -1
  25. package/dist/esm/checkbox/index.js +4 -3
  26. package/dist/esm/chip-field/index.js +8 -7
  27. package/dist/esm/chips/chip/index.js +6 -5
  28. package/dist/esm/chips/chip-set/index.js +6 -5
  29. package/dist/esm/chips/index.js +7 -6
  30. package/dist/esm/chunks/{chunk.PZ25GQD2.js → chunk.2MBI5DLT.js} +6 -6
  31. package/dist/esm/chunks/{chunk.PZ25GQD2.js.map → chunk.2MBI5DLT.js.map} +2 -2
  32. package/dist/esm/chunks/{chunk.B425FZOZ.js → chunk.2WBHHTUM.js} +2 -2
  33. package/dist/esm/chunks/{chunk.B425FZOZ.js.map → chunk.2WBHHTUM.js.map} +2 -2
  34. package/dist/esm/chunks/{chunk.WXFCZJJI.js → chunk.3EHQ3YHJ.js} +1 -1
  35. package/dist/esm/chunks/{chunk.WXFCZJJI.js.map → chunk.3EHQ3YHJ.js.map} +2 -2
  36. package/dist/esm/chunks/{chunk.LKUKESRQ.js → chunk.3QXCVTCP.js} +2 -2
  37. package/dist/esm/chunks/{chunk.LKUKESRQ.js.map → chunk.3QXCVTCP.js.map} +0 -0
  38. package/dist/esm/chunks/{chunk.ZIFMMVW6.js → chunk.46BED43J.js} +3 -3
  39. package/dist/esm/chunks/{chunk.ZIFMMVW6.js.map → chunk.46BED43J.js.map} +2 -2
  40. package/dist/esm/chunks/{chunk.VTXXZ5KT.js → chunk.4PF7WRP4.js} +2 -2
  41. package/dist/esm/chunks/{chunk.VTXXZ5KT.js.map → chunk.4PF7WRP4.js.map} +2 -2
  42. package/dist/esm/chunks/{chunk.KZ2QNQK2.js → chunk.4WLVFWKI.js} +2 -2
  43. package/dist/esm/chunks/{chunk.KZ2QNQK2.js.map → chunk.4WLVFWKI.js.map} +0 -0
  44. package/dist/esm/chunks/{chunk.C2MR3RDF.js → chunk.56BNM7F2.js} +1 -1
  45. package/dist/esm/chunks/{chunk.C2MR3RDF.js.map → chunk.56BNM7F2.js.map} +2 -2
  46. package/dist/esm/chunks/{chunk.HNKH3ZP5.js → chunk.5H65ASFE.js} +74 -74
  47. package/dist/esm/chunks/{chunk.HNKH3ZP5.js.map → chunk.5H65ASFE.js.map} +0 -0
  48. package/dist/esm/chunks/{chunk.3AK3VGRT.js → chunk.5OYAJ36F.js} +2 -2
  49. package/dist/esm/chunks/{chunk.3AK3VGRT.js.map → chunk.5OYAJ36F.js.map} +0 -0
  50. package/dist/esm/chunks/{chunk.4UKSUUTX.js → chunk.5U6ZT6MC.js} +2 -2
  51. package/dist/esm/chunks/{chunk.4UKSUUTX.js.map → chunk.5U6ZT6MC.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.3NOZRZ7R.js → chunk.65GHMPX2.js} +3 -3
  53. package/dist/esm/chunks/{chunk.3NOZRZ7R.js.map → chunk.65GHMPX2.js.map} +2 -2
  54. package/dist/esm/chunks/{chunk.C44LSSHS.js → chunk.67B6JDOJ.js} +3 -3
  55. package/dist/esm/chunks/{chunk.C44LSSHS.js.map → chunk.67B6JDOJ.js.map} +2 -2
  56. package/dist/esm/chunks/chunk.6EGTLHJS.js +16 -0
  57. package/dist/esm/chunks/chunk.6EGTLHJS.js.map +7 -0
  58. package/dist/esm/chunks/{chunk.EL6B2ODN.js → chunk.6ZBFCE2A.js} +1 -1
  59. package/dist/esm/chunks/{chunk.EL6B2ODN.js.map → chunk.6ZBFCE2A.js.map} +2 -2
  60. package/dist/esm/chunks/{chunk.VAPJ75PS.js → chunk.7FWTBD6Y.js} +2 -2
  61. package/dist/esm/chunks/{chunk.VAPJ75PS.js.map → chunk.7FWTBD6Y.js.map} +0 -0
  62. package/dist/esm/chunks/{chunk.KCK3G74Y.js → chunk.7UAH67PT.js} +2 -2
  63. package/dist/esm/chunks/{chunk.KCK3G74Y.js.map → chunk.7UAH67PT.js.map} +2 -2
  64. package/dist/esm/chunks/{chunk.BORNGK7Q.js → chunk.ANME7BKM.js} +2 -2
  65. package/dist/esm/chunks/{chunk.BORNGK7Q.js.map → chunk.ANME7BKM.js.map} +2 -2
  66. package/dist/esm/chunks/{chunk.5INCRYSV.js → chunk.BEAJZPWS.js} +2 -2
  67. package/dist/esm/chunks/{chunk.5INCRYSV.js.map → chunk.BEAJZPWS.js.map} +0 -0
  68. package/dist/esm/chunks/{chunk.Y2ORADJS.js → chunk.BVGJFMEG.js} +8 -8
  69. package/dist/esm/chunks/{chunk.Y2ORADJS.js.map → chunk.BVGJFMEG.js.map} +2 -2
  70. package/dist/esm/chunks/{chunk.L65L5VJ6.js → chunk.C73AZRT4.js} +4 -4
  71. package/dist/esm/chunks/{chunk.L65L5VJ6.js.map → chunk.C73AZRT4.js.map} +2 -2
  72. package/dist/esm/chunks/{chunk.4ZBBOR4H.js → chunk.CLEUHAZ6.js} +2 -2
  73. package/dist/esm/chunks/{chunk.4ZBBOR4H.js.map → chunk.CLEUHAZ6.js.map} +2 -2
  74. package/dist/esm/chunks/{chunk.V3FSZDTW.js → chunk.CMXAORYF.js} +5 -5
  75. package/dist/esm/chunks/{chunk.V3FSZDTW.js.map → chunk.CMXAORYF.js.map} +2 -2
  76. package/dist/esm/chunks/{chunk.U35QQZVK.js → chunk.D33KLIFD.js} +1 -1
  77. package/dist/esm/chunks/{chunk.U35QQZVK.js.map → chunk.D33KLIFD.js.map} +2 -2
  78. package/dist/esm/chunks/{chunk.5EEEKOOK.js → chunk.DLF5JAQO.js} +1 -1
  79. package/dist/esm/chunks/{chunk.5EEEKOOK.js.map → chunk.DLF5JAQO.js.map} +2 -2
  80. package/dist/esm/chunks/{chunk.ZUM5YLB2.js → chunk.E26BROOG.js} +1 -1
  81. package/dist/esm/chunks/{chunk.ZUM5YLB2.js.map → chunk.E26BROOG.js.map} +2 -2
  82. package/dist/esm/chunks/{chunk.UM3J4AZ7.js → chunk.EBC2HGO3.js} +4 -4
  83. package/dist/esm/chunks/chunk.EBC2HGO3.js.map +7 -0
  84. package/dist/esm/chunks/{chunk.YCW56AVX.js → chunk.FJJVIMZ2.js} +1 -1
  85. package/dist/esm/chunks/{chunk.YCW56AVX.js.map → chunk.FJJVIMZ2.js.map} +2 -2
  86. package/dist/esm/chunks/{chunk.HHHMDDTU.js → chunk.FZ6KICMD.js} +1 -1
  87. package/dist/esm/chunks/{chunk.HHHMDDTU.js.map → chunk.FZ6KICMD.js.map} +2 -2
  88. package/dist/esm/chunks/{chunk.D4VIYWFB.js → chunk.GHZ75UPO.js} +3 -3
  89. package/dist/esm/chunks/{chunk.D4VIYWFB.js.map → chunk.GHZ75UPO.js.map} +2 -2
  90. package/dist/esm/chunks/{chunk.SJZ54RE3.js → chunk.GL72QT42.js} +1 -1
  91. package/dist/esm/chunks/{chunk.SJZ54RE3.js.map → chunk.GL72QT42.js.map} +2 -2
  92. package/dist/esm/chunks/{chunk.PCYIY5OY.js → chunk.GNAIKBO6.js} +2 -2
  93. package/dist/esm/chunks/{chunk.PCYIY5OY.js.map → chunk.GNAIKBO6.js.map} +2 -2
  94. package/dist/esm/chunks/{chunk.IWXT6VVJ.js → chunk.GOWHXADJ.js} +15 -1
  95. package/dist/esm/chunks/chunk.GOWHXADJ.js.map +7 -0
  96. package/dist/esm/chunks/{chunk.G6FY472A.js → chunk.GWNR3UUX.js} +2 -2
  97. package/dist/esm/chunks/{chunk.G6FY472A.js.map → chunk.GWNR3UUX.js.map} +2 -2
  98. package/dist/esm/chunks/{chunk.2NUAEZY7.js → chunk.GXTNND2M.js} +1 -1
  99. package/dist/esm/chunks/{chunk.2NUAEZY7.js.map → chunk.GXTNND2M.js.map} +2 -2
  100. package/dist/esm/chunks/{chunk.YJ5X3WZ4.js → chunk.HASAPJMX.js} +1 -1
  101. package/dist/esm/chunks/{chunk.YJ5X3WZ4.js.map → chunk.HASAPJMX.js.map} +2 -2
  102. package/dist/esm/chunks/{chunk.EWQENJ4W.js → chunk.HMM7PGGZ.js} +2 -2
  103. package/dist/esm/chunks/{chunk.EWQENJ4W.js.map → chunk.HMM7PGGZ.js.map} +2 -2
  104. package/dist/esm/chunks/{chunk.IYOZSEZ3.js → chunk.I6PJGNJS.js} +2 -2
  105. package/dist/esm/chunks/{chunk.IYOZSEZ3.js.map → chunk.I6PJGNJS.js.map} +2 -2
  106. package/dist/esm/chunks/{chunk.3ZKORL4I.js → chunk.I7BQUB7Z.js} +2 -2
  107. package/dist/esm/chunks/chunk.I7BQUB7Z.js.map +7 -0
  108. package/dist/esm/chunks/{chunk.XY3ZHN7Y.js → chunk.IBED5TWL.js} +1 -1
  109. package/dist/esm/chunks/{chunk.XY3ZHN7Y.js.map → chunk.IBED5TWL.js.map} +2 -2
  110. package/dist/esm/chunks/{chunk.47D77ELY.js → chunk.IGBDDH3J.js} +6 -6
  111. package/dist/esm/chunks/{chunk.47D77ELY.js.map → chunk.IGBDDH3J.js.map} +0 -0
  112. package/dist/esm/chunks/{chunk.RF5UPII7.js → chunk.IJW2YKP3.js} +13 -13
  113. package/dist/esm/chunks/{chunk.RF5UPII7.js.map → chunk.IJW2YKP3.js.map} +2 -2
  114. package/dist/esm/chunks/{chunk.5CZWANU6.js → chunk.ITQ55IPH.js} +4 -4
  115. package/dist/esm/chunks/{chunk.5CZWANU6.js.map → chunk.ITQ55IPH.js.map} +2 -2
  116. package/dist/esm/chunks/{chunk.IBH5GL7A.js → chunk.IUNON3UL.js} +2 -2
  117. package/dist/esm/chunks/{chunk.IBH5GL7A.js.map → chunk.IUNON3UL.js.map} +2 -2
  118. package/dist/esm/chunks/{chunk.5VNEDRVC.js → chunk.J5NUYQ4D.js} +6 -6
  119. package/dist/esm/chunks/{chunk.5VNEDRVC.js.map → chunk.J5NUYQ4D.js.map} +0 -0
  120. package/dist/esm/chunks/{chunk.DWURTRGM.js → chunk.JC2PZ4TS.js} +8 -8
  121. package/dist/esm/chunks/{chunk.DWURTRGM.js.map → chunk.JC2PZ4TS.js.map} +2 -2
  122. package/dist/esm/chunks/{chunk.7M3P4QES.js → chunk.JUXKYUD4.js} +9 -9
  123. package/dist/esm/chunks/{chunk.7M3P4QES.js.map → chunk.JUXKYUD4.js.map} +2 -2
  124. package/dist/esm/chunks/{chunk.6V463G4I.js → chunk.KCVJDJ6K.js} +1 -1
  125. package/dist/esm/chunks/{chunk.6V463G4I.js.map → chunk.KCVJDJ6K.js.map} +2 -2
  126. package/dist/esm/chunks/{chunk.DKHOY6QU.js → chunk.KNR5DXE4.js} +2 -2
  127. package/dist/esm/chunks/{chunk.DKHOY6QU.js.map → chunk.KNR5DXE4.js.map} +2 -2
  128. package/dist/esm/chunks/{chunk.C64YUJHS.js → chunk.L344BPCW.js} +2 -2
  129. package/dist/esm/chunks/{chunk.C64YUJHS.js.map → chunk.L344BPCW.js.map} +2 -2
  130. package/dist/esm/chunks/{chunk.HWWCD755.js → chunk.L4OUV7W6.js} +5 -5
  131. package/dist/esm/chunks/{chunk.HWWCD755.js.map → chunk.L4OUV7W6.js.map} +2 -2
  132. package/dist/esm/chunks/{chunk.EQCPRLUV.js → chunk.LHWZ4KZU.js} +3 -3
  133. package/dist/esm/chunks/{chunk.EQCPRLUV.js.map → chunk.LHWZ4KZU.js.map} +2 -2
  134. package/dist/esm/chunks/{chunk.KQB2BYBK.js → chunk.LK2DN5KX.js} +4 -4
  135. package/dist/esm/chunks/{chunk.KQB2BYBK.js.map → chunk.LK2DN5KX.js.map} +2 -2
  136. package/dist/esm/chunks/{chunk.7G2S3DCM.js → chunk.LX2HDAIF.js} +2 -2
  137. package/dist/esm/chunks/{chunk.7G2S3DCM.js.map → chunk.LX2HDAIF.js.map} +2 -2
  138. package/dist/esm/chunks/{chunk.YDPSV74L.js → chunk.M3O5VPDD.js} +3 -3
  139. package/dist/esm/chunks/{chunk.YDPSV74L.js.map → chunk.M3O5VPDD.js.map} +0 -0
  140. package/dist/esm/chunks/{chunk.NJRPAX7P.js → chunk.MBZLA635.js} +30 -29
  141. package/dist/esm/chunks/chunk.MBZLA635.js.map +7 -0
  142. package/dist/esm/chunks/{chunk.XJVLHRVJ.js → chunk.MF3IZXQG.js} +2 -2
  143. package/dist/esm/chunks/{chunk.XJVLHRVJ.js.map → chunk.MF3IZXQG.js.map} +2 -2
  144. package/dist/esm/chunks/{chunk.HFELDK4X.js → chunk.MUP3NY6M.js} +9 -9
  145. package/dist/esm/chunks/{chunk.HFELDK4X.js.map → chunk.MUP3NY6M.js.map} +2 -2
  146. package/dist/esm/chunks/{chunk.2F6PST3N.js → chunk.OXS2O7RG.js} +1 -1
  147. package/dist/esm/chunks/{chunk.2F6PST3N.js.map → chunk.OXS2O7RG.js.map} +2 -2
  148. package/dist/esm/chunks/{chunk.RMVJBNCY.js → chunk.PKZ43JNW.js} +4 -4
  149. package/dist/esm/chunks/{chunk.RMVJBNCY.js.map → chunk.PKZ43JNW.js.map} +2 -2
  150. package/dist/esm/chunks/{chunk.3VR7VHL5.js → chunk.PM7D2SUE.js} +1 -1
  151. package/dist/esm/chunks/{chunk.3VR7VHL5.js.map → chunk.PM7D2SUE.js.map} +0 -0
  152. package/dist/esm/chunks/{chunk.WAJDLUSQ.js → chunk.QHHYCB7N.js} +1 -1
  153. package/dist/esm/chunks/{chunk.WAJDLUSQ.js.map → chunk.QHHYCB7N.js.map} +2 -2
  154. package/dist/esm/chunks/{chunk.I5JCM7RT.js → chunk.QWW6A7AF.js} +6 -6
  155. package/dist/esm/chunks/{chunk.I5JCM7RT.js.map → chunk.QWW6A7AF.js.map} +2 -2
  156. package/dist/esm/chunks/{chunk.OYO6NUZY.js → chunk.QXZZ2MTF.js} +1 -1
  157. package/dist/esm/chunks/{chunk.OYO6NUZY.js.map → chunk.QXZZ2MTF.js.map} +2 -2
  158. package/dist/esm/chunks/{chunk.P477KUJ4.js → chunk.QYWAZCBX.js} +3 -3
  159. package/dist/esm/chunks/chunk.QYWAZCBX.js.map +7 -0
  160. package/dist/esm/chunks/{chunk.Y2TDQIA4.js → chunk.RD4RIFOZ.js} +1 -1
  161. package/dist/esm/chunks/{chunk.Y2TDQIA4.js.map → chunk.RD4RIFOZ.js.map} +2 -2
  162. package/dist/esm/chunks/{chunk.YKNYR3NX.js → chunk.RL7ZFLMG.js} +6 -6
  163. package/dist/esm/chunks/{chunk.YKNYR3NX.js.map → chunk.RL7ZFLMG.js.map} +2 -2
  164. package/dist/esm/chunks/{chunk.VEC77KBM.js → chunk.S3UVF647.js} +2 -2
  165. package/dist/esm/chunks/{chunk.VEC77KBM.js.map → chunk.S3UVF647.js.map} +2 -2
  166. package/dist/esm/chunks/{chunk.RWCC6E4O.js → chunk.THKWQXBJ.js} +1 -1
  167. package/dist/esm/chunks/{chunk.RWCC6E4O.js.map → chunk.THKWQXBJ.js.map} +2 -2
  168. package/dist/esm/chunks/{chunk.DVYPTR7X.js → chunk.TIUNGGBF.js} +4 -4
  169. package/dist/esm/chunks/{chunk.DVYPTR7X.js.map → chunk.TIUNGGBF.js.map} +0 -0
  170. package/dist/esm/chunks/{chunk.ZPABBQEA.js → chunk.TM46MNYN.js} +4 -4
  171. package/dist/esm/chunks/{chunk.ZPABBQEA.js.map → chunk.TM46MNYN.js.map} +2 -2
  172. package/dist/esm/chunks/{chunk.7XGNGXLR.js → chunk.TYU4RLZG.js} +1 -1
  173. package/dist/esm/chunks/{chunk.7XGNGXLR.js.map → chunk.TYU4RLZG.js.map} +2 -2
  174. package/dist/esm/chunks/{chunk.MSCWHFJZ.js → chunk.U37G47LH.js} +8 -8
  175. package/dist/esm/chunks/{chunk.MSCWHFJZ.js.map → chunk.U37G47LH.js.map} +2 -2
  176. package/dist/esm/chunks/{chunk.OZAKUOZA.js → chunk.U5ECVIX5.js} +5 -5
  177. package/dist/esm/chunks/{chunk.OZAKUOZA.js.map → chunk.U5ECVIX5.js.map} +2 -2
  178. package/dist/esm/chunks/{chunk.O7DYWQD7.js → chunk.UPW5HUKB.js} +5 -5
  179. package/dist/esm/chunks/{chunk.O7DYWQD7.js.map → chunk.UPW5HUKB.js.map} +2 -2
  180. package/dist/esm/chunks/{chunk.NL6CT7BU.js → chunk.UQ3QTUUB.js} +2 -2
  181. package/dist/esm/chunks/{chunk.NL6CT7BU.js.map → chunk.UQ3QTUUB.js.map} +2 -2
  182. package/dist/esm/chunks/{chunk.JVQP6BJ3.js → chunk.V2ELLBDP.js} +1 -1
  183. package/dist/esm/chunks/{chunk.JVQP6BJ3.js.map → chunk.V2ELLBDP.js.map} +2 -2
  184. package/dist/esm/chunks/{chunk.2LQMHAC7.js → chunk.V6Q2SM6Y.js} +1 -1
  185. package/dist/esm/chunks/{chunk.2LQMHAC7.js.map → chunk.V6Q2SM6Y.js.map} +2 -2
  186. package/dist/esm/chunks/{chunk.U7HKGOBR.js → chunk.VXAPRFMK.js} +4 -4
  187. package/dist/esm/chunks/{chunk.U7HKGOBR.js.map → chunk.VXAPRFMK.js.map} +2 -2
  188. package/dist/esm/chunks/{chunk.H3WRHPWA.js → chunk.VXVE7KEM.js} +4 -4
  189. package/dist/esm/chunks/{chunk.H3WRHPWA.js.map → chunk.VXVE7KEM.js.map} +2 -2
  190. package/dist/esm/chunks/{chunk.P7NOYP4O.js → chunk.WDD2GTIH.js} +1 -1
  191. package/dist/esm/chunks/{chunk.P7NOYP4O.js.map → chunk.WDD2GTIH.js.map} +2 -2
  192. package/dist/esm/chunks/{chunk.RNPIV3BY.js → chunk.WNVZQDNS.js} +1 -1
  193. package/dist/esm/chunks/{chunk.RNPIV3BY.js.map → chunk.WNVZQDNS.js.map} +2 -2
  194. package/dist/esm/chunks/{chunk.V6TRG2CM.js → chunk.WSH4S3GM.js} +2 -2
  195. package/dist/esm/chunks/{chunk.V6TRG2CM.js.map → chunk.WSH4S3GM.js.map} +2 -2
  196. package/dist/esm/chunks/{chunk.HVD3BBQG.js → chunk.XHMNHBZD.js} +2 -2
  197. package/dist/esm/chunks/{chunk.HVD3BBQG.js.map → chunk.XHMNHBZD.js.map} +2 -2
  198. package/dist/esm/chunks/{chunk.DB7ZQBES.js → chunk.YL2NAVJW.js} +1 -1
  199. package/dist/esm/chunks/{chunk.DB7ZQBES.js.map → chunk.YL2NAVJW.js.map} +2 -2
  200. package/dist/esm/chunks/{chunk.FF2RETWV.js → chunk.ZLF2G3YT.js} +11 -11
  201. package/dist/esm/chunks/{chunk.FF2RETWV.js.map → chunk.ZLF2G3YT.js.map} +2 -2
  202. package/dist/esm/chunks/{chunk.EKIW7VYG.js → chunk.ZXIDTDRC.js} +1 -1
  203. package/dist/esm/chunks/{chunk.EKIW7VYG.js.map → chunk.ZXIDTDRC.js.map} +2 -2
  204. package/dist/esm/circular-progress/index.js +1 -1
  205. package/dist/esm/color-picker/index.js +7 -6
  206. package/dist/esm/core/index.js +5 -1
  207. package/dist/esm/core/utils/index.js +5 -1
  208. package/dist/esm/date-picker/index.js +14 -13
  209. package/dist/esm/date-range-picker/index.js +14 -13
  210. package/dist/esm/dialog/index.js +10 -9
  211. package/dist/esm/divider/index.js +1 -1
  212. package/dist/esm/drawer/base/index.js +2 -1
  213. package/dist/esm/drawer/drawer/index.js +3 -2
  214. package/dist/esm/drawer/index.js +6 -5
  215. package/dist/esm/drawer/mini-drawer/index.js +3 -2
  216. package/dist/esm/drawer/modal-drawer/index.js +4 -3
  217. package/dist/esm/expansion-panel/index.js +5 -4
  218. package/dist/esm/file-picker/index.js +5 -4
  219. package/dist/esm/floating-action-button/index.js +2 -2
  220. package/dist/esm/icon/index.js +3 -2
  221. package/dist/esm/icon-button/index.js +5 -4
  222. package/dist/esm/index.js +90 -86
  223. package/dist/esm/inline-message/index.js +1 -1
  224. package/dist/esm/keyboard-shortcut/index.js +1 -1
  225. package/dist/esm/label-value/index.js +1 -1
  226. package/dist/esm/linear-progress/index.js +1 -1
  227. package/dist/esm/list/index.js +3 -3
  228. package/dist/esm/list/list/index.js +3 -3
  229. package/dist/esm/list/list-item/index.js +2 -2
  230. package/dist/esm/list-dropdown/index.js +10 -9
  231. package/dist/esm/menu/index.js +13 -12
  232. package/dist/esm/open-icon/index.js +4 -3
  233. package/dist/esm/page-state/index.js +1 -1
  234. package/dist/esm/paginator/index.js +23 -22
  235. package/dist/esm/popup/index.js +1 -1
  236. package/dist/esm/product-icon/index.js +1 -1
  237. package/dist/esm/profile-card/index.js +7 -6
  238. package/dist/esm/quantity-field/index.js +6 -5
  239. package/dist/esm/radio/index.js +2 -2
  240. package/dist/esm/ripple/index.js +1 -1
  241. package/dist/esm/scaffold/index.js +1 -1
  242. package/dist/esm/select/core/index.js +14 -13
  243. package/dist/esm/select/index.js +21 -20
  244. package/dist/esm/select/option/index.js +1 -1
  245. package/dist/esm/select/option-group/index.js +1 -1
  246. package/dist/esm/select/select/index.js +19 -18
  247. package/dist/esm/select/select-dropdown/index.js +19 -18
  248. package/dist/esm/skeleton/index.js +1 -1
  249. package/dist/esm/slider/index.js +3 -2
  250. package/dist/esm/stepper/index.js +6 -5
  251. package/dist/esm/stepper/step/index.js +5 -4
  252. package/dist/esm/stepper/stepper/index.js +6 -5
  253. package/dist/esm/switch/index.js +3 -2
  254. package/dist/esm/table/index.js +9 -8
  255. package/dist/esm/tabs/index.js +8 -7
  256. package/dist/esm/tabs/tab/index.js +3 -3
  257. package/dist/esm/tabs/tab-bar/index.js +7 -6
  258. package/dist/esm/text-field/index.js +1 -1
  259. package/dist/esm/time-picker/index.js +18 -17
  260. package/dist/esm/toast/index.js +7 -6
  261. package/dist/esm/toolbar/index.js +1 -1
  262. package/dist/esm/tooltip/index.js +1 -1
  263. package/dist/esm/view-switcher/index.js +2 -2
  264. package/dist/esm/view-switcher/view/index.js +1 -1
  265. package/dist/forge-dark.css +1 -1
  266. package/esm/accordion/accordion.d.ts +2 -0
  267. package/esm/accordion/accordion.js +2 -0
  268. package/esm/app-bar/app-bar.d.ts +5 -1
  269. package/esm/app-bar/app-bar.js +5 -1
  270. package/esm/app-bar/help-button/app-bar-help-button.d.ts +5 -0
  271. package/esm/app-bar/help-button/app-bar-help-button.js +5 -0
  272. package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +5 -0
  273. package/esm/app-bar/menu-button/app-bar-menu-button.js +5 -0
  274. package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +5 -0
  275. package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -0
  276. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +5 -0
  277. package/esm/app-bar/profile-button/app-bar-profile-button.js +5 -0
  278. package/esm/app-bar/search/app-bar-search.d.ts +26 -0
  279. package/esm/app-bar/search/app-bar-search.js +26 -0
  280. package/esm/autocomplete/autocomplete.d.ts +2 -0
  281. package/esm/autocomplete/autocomplete.js +2 -0
  282. package/esm/avatar/avatar.d.ts +2 -0
  283. package/esm/avatar/avatar.js +2 -0
  284. package/esm/backdrop/backdrop.d.ts +2 -0
  285. package/esm/backdrop/backdrop.js +2 -0
  286. package/esm/badge/badge.d.ts +5 -0
  287. package/esm/badge/badge.js +5 -0
  288. package/esm/banner/banner.d.ts +2 -0
  289. package/esm/banner/banner.js +2 -0
  290. package/esm/bottom-sheet/bottom-sheet.d.ts +5 -0
  291. package/esm/bottom-sheet/bottom-sheet.js +5 -0
  292. package/esm/busy-indicator/busy-indicator.d.ts +5 -1
  293. package/esm/busy-indicator/busy-indicator.js +5 -1
  294. package/esm/button/button.d.ts +2 -0
  295. package/esm/button/button.js +2 -0
  296. package/esm/button-toggle/button-toggle/button-toggle.d.ts +5 -0
  297. package/esm/button-toggle/button-toggle/button-toggle.js +5 -0
  298. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +5 -0
  299. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -0
  300. package/esm/calendar/calendar-menu/calendar-menu.d.ts +6 -0
  301. package/esm/calendar/calendar-menu/calendar-menu.js +6 -0
  302. package/esm/calendar/calendar.d.ts +5 -0
  303. package/esm/calendar/calendar.js +5 -0
  304. package/esm/card/card.d.ts +5 -1
  305. package/esm/card/card.js +5 -1
  306. package/esm/checkbox/checkbox.d.ts +2 -0
  307. package/esm/checkbox/checkbox.js +2 -0
  308. package/esm/chip-field/chip-field.d.ts +5 -0
  309. package/esm/chip-field/chip-field.js +5 -0
  310. package/esm/chips/chip/chip.d.ts +2 -0
  311. package/esm/chips/chip/chip.js +2 -0
  312. package/esm/chips/chip-set/chip-set.d.ts +5 -0
  313. package/esm/chips/chip-set/chip-set.js +5 -0
  314. package/esm/circular-progress/circular-progress.d.ts +5 -0
  315. package/esm/circular-progress/circular-progress.js +5 -0
  316. package/esm/color-picker/color-picker.d.ts +5 -0
  317. package/esm/color-picker/color-picker.js +5 -0
  318. package/esm/core/utils/event-utils.d.ts +12 -0
  319. package/esm/core/utils/event-utils.js +16 -0
  320. package/esm/core/utils/index.d.ts +1 -0
  321. package/esm/core/utils/index.js +1 -0
  322. package/esm/date-picker/date-picker.d.ts +5 -1
  323. package/esm/date-picker/date-picker.js +5 -1
  324. package/esm/date-range-picker/date-range-picker.d.ts +5 -1
  325. package/esm/date-range-picker/date-range-picker.js +5 -1
  326. package/esm/dialog/dialog.d.ts +5 -0
  327. package/esm/dialog/dialog.js +5 -0
  328. package/esm/divider/divider.d.ts +2 -0
  329. package/esm/divider/divider.js +2 -0
  330. package/esm/drawer/base/base-drawer-adapter.d.ts +5 -0
  331. package/esm/drawer/base/base-drawer-adapter.js +13 -0
  332. package/esm/drawer/base/base-drawer-foundation.js +2 -0
  333. package/esm/drawer/drawer/drawer.d.ts +5 -0
  334. package/esm/drawer/drawer/drawer.js +5 -0
  335. package/esm/drawer/mini-drawer/mini-drawer.d.ts +5 -0
  336. package/esm/drawer/mini-drawer/mini-drawer.js +5 -0
  337. package/esm/drawer/modal-drawer/modal-drawer.d.ts +5 -0
  338. package/esm/drawer/modal-drawer/modal-drawer.js +5 -0
  339. package/esm/expansion-panel/expansion-panel.d.ts +2 -0
  340. package/esm/expansion-panel/expansion-panel.js +2 -0
  341. package/esm/file-picker/file-picker.d.ts +5 -0
  342. package/esm/file-picker/file-picker.js +5 -0
  343. package/esm/floating-action-button/floating-action-button.d.ts +5 -1
  344. package/esm/floating-action-button/floating-action-button.js +5 -1
  345. package/esm/icon/icon.d.ts +5 -0
  346. package/esm/icon/icon.js +5 -0
  347. package/esm/icon-button/icon-button.d.ts +2 -0
  348. package/esm/icon-button/icon-button.js +2 -0
  349. package/esm/inline-message/inline-message.d.ts +5 -0
  350. package/esm/inline-message/inline-message.js +5 -0
  351. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +5 -0
  352. package/esm/keyboard-shortcut/keyboard-shortcut.js +5 -0
  353. package/esm/label-value/label-value.d.ts +5 -0
  354. package/esm/label-value/label-value.js +6 -1
  355. package/esm/linear-progress/linear-progress.d.ts +5 -0
  356. package/esm/linear-progress/linear-progress.js +5 -0
  357. package/esm/list/list/list.d.ts +2 -0
  358. package/esm/list/list/list.js +2 -0
  359. package/esm/list/list-item/list-item.d.ts +5 -1
  360. package/esm/list/list-item/list-item.js +5 -1
  361. package/esm/menu/menu.d.ts +5 -0
  362. package/esm/menu/menu.js +5 -0
  363. package/esm/open-icon/open-icon.d.ts +5 -0
  364. package/esm/open-icon/open-icon.js +5 -0
  365. package/esm/page-state/page-state.d.ts +5 -0
  366. package/esm/page-state/page-state.js +5 -0
  367. package/esm/paginator/paginator.d.ts +2 -0
  368. package/esm/paginator/paginator.js +2 -0
  369. package/esm/popup/popup.d.ts +5 -0
  370. package/esm/popup/popup.js +5 -0
  371. package/esm/product-icon/product-icon.d.ts +5 -0
  372. package/esm/product-icon/product-icon.js +5 -0
  373. package/esm/profile-card/profile-card.d.ts +5 -0
  374. package/esm/profile-card/profile-card.js +5 -0
  375. package/esm/quantity-field/quantity-field.d.ts +5 -0
  376. package/esm/quantity-field/quantity-field.js +5 -0
  377. package/esm/radio/radio.d.ts +2 -0
  378. package/esm/radio/radio.js +2 -0
  379. package/esm/ripple/ripple.d.ts +5 -0
  380. package/esm/ripple/ripple.js +5 -0
  381. package/esm/scaffold/scaffold.d.ts +2 -0
  382. package/esm/scaffold/scaffold.js +2 -0
  383. package/esm/select/option/option.d.ts +2 -0
  384. package/esm/select/option/option.js +2 -0
  385. package/esm/select/option-group/option-group.d.ts +2 -0
  386. package/esm/select/option-group/option-group.js +2 -0
  387. package/esm/select/select/select-adapter.js +12 -10
  388. package/esm/select/select/select-foundation.d.ts +2 -0
  389. package/esm/select/select/select-foundation.js +6 -2
  390. package/esm/select/select/select.d.ts +2 -2
  391. package/esm/select/select/select.js +4 -6
  392. package/esm/select/select-dropdown/select-dropdown.d.ts +5 -0
  393. package/esm/select/select-dropdown/select-dropdown.js +5 -0
  394. package/esm/skeleton/skeleton.d.ts +5 -0
  395. package/esm/skeleton/skeleton.js +5 -0
  396. package/esm/slider/slider.d.ts +2 -0
  397. package/esm/slider/slider.js +2 -0
  398. package/esm/stepper/step/step.d.ts +5 -0
  399. package/esm/stepper/step/step.js +5 -0
  400. package/esm/stepper/stepper/stepper.d.ts +5 -0
  401. package/esm/stepper/stepper/stepper.js +5 -0
  402. package/esm/switch/switch.d.ts +2 -0
  403. package/esm/switch/switch.js +2 -0
  404. package/esm/table/table.d.ts +3 -1
  405. package/esm/table/table.js +3 -1
  406. package/esm/tabs/tab/tab.d.ts +5 -0
  407. package/esm/tabs/tab/tab.js +5 -0
  408. package/esm/tabs/tab-bar/tab-bar.d.ts +2 -0
  409. package/esm/tabs/tab-bar/tab-bar.js +2 -0
  410. package/esm/text-field/text-field.d.ts +5 -0
  411. package/esm/text-field/text-field.js +5 -0
  412. package/esm/time-picker/time-picker.d.ts +5 -0
  413. package/esm/time-picker/time-picker.js +5 -0
  414. package/esm/toast/toast.d.ts +2 -0
  415. package/esm/toast/toast.js +2 -0
  416. package/esm/toolbar/toolbar.d.ts +5 -0
  417. package/esm/toolbar/toolbar.js +5 -0
  418. package/esm/tooltip/tooltip.d.ts +5 -1
  419. package/esm/tooltip/tooltip.js +5 -1
  420. package/esm/view-switcher/view/view.d.ts +5 -0
  421. package/esm/view-switcher/view/view.js +5 -0
  422. package/esm/view-switcher/view-switcher.d.ts +5 -0
  423. package/esm/view-switcher/view-switcher.js +5 -0
  424. package/package.json +3 -2
  425. package/styles/label-value/_mixins.scss +10 -7
  426. package/styles/label-value/_variables.scss +1 -0
  427. package/styles/select/select/_selector.scss +4 -2
  428. package/styles/select/select/select.scss +4 -0
  429. package/styles/theme/_theme-values.scss +1 -1
  430. package/styles/theme/_theme.scss +2 -1
  431. package/dist/esm/chunks/chunk.3ZKORL4I.js.map +0 -7
  432. package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +0 -7
  433. package/dist/esm/chunks/chunk.NJRPAX7P.js.map +0 -7
  434. package/dist/esm/chunks/chunk.P477KUJ4.js.map +0 -7
  435. package/dist/esm/chunks/chunk.UM3J4AZ7.js.map +0 -7
  436. package/styles/label-value/_base.scss +0 -252
  437. package/styles/label-value/_core.scss +0 -15
  438. package/styles/label-value/_selector.scss +0 -167
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/file-picker/file-picker-constants.ts", "../../src/file-picker/file-picker-adapter.ts", "../../src/file-picker/file-picker-foundation.ts", "../../src/file-picker/file-picker.ts", "../../src/file-picker/file-picker-component-delegate.ts", "../../src/file-picker/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}file-picker`;\n\nconst attributes = {\n ACCEPT: 'accept',\n MAX_SIZE: 'max-size',\n CAPTURE: 'capture',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst classes = {\n HIGHLIGHT: 'highlight',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst ids = {\n CONTAINER: 'container',\n BUTTON: 'button',\n INPUT: 'input'\n};\n\nconst selectors = {\n CONTAINER: '#container',\n BUTTON: '#button',\n INPUT: '#input',\n BUTTON_SLOT: '#button-slot'\n};\n\nconst events = {\n FILES_CHANGED: `${elementName}-change`\n};\n\nexport const FILE_PICKER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n selectors,\n events\n};\n\nexport interface IFilePickerChangeEventData {\n legalFiles?: File[];\n illegalFiles?: File[];\n}\n", "import { getShadowElement, emitEvent } from '@tylertech/forge-core';\n\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS } from './file-picker-constants';\nimport { BaseAdapter, IBaseAdapter } from '../core';\n\nexport interface IFilePickerAdapter extends IBaseAdapter {\n registerButtonSlotListener(listener: (evt: Event) => void): void;\n registerInputChangeListener(listener: (evt: Event) => void): void;\n registerDragEnterListener(listener: (evt: DragEvent) => void): void;\n registerDragLeaveListener(listener: (evt: DragEvent) => void): void;\n registerDragOverListener(listener: (evt: DragEvent) => void): void;\n registerDropListener(listener: (evt: DragEvent) => void): void;\n removeDragEnterListener(listener: (evt: DragEvent) => void): void;\n removeDragLeaveListener(listener: (evt: DragEvent) => void): void;\n removeDragOverListener(listener: (evt: DragEvent) => void): void;\n removeDropListener(listener: (evt: DragEvent) => void): void;\n initializeButton(): void;\n setHighlightState(value: boolean): void;\n setAccept(value: string | null): void;\n setCapture(value: string | null): void;\n setMultiple(value: boolean): void;\n setDisabled(value: boolean): void;\n setCompact(value: boolean): void;\n setBorderless(value: boolean): void;\n}\n\nexport class FilePickerAdapter extends BaseAdapter<IFilePickerComponent> implements IFilePickerAdapter {\n private _container: HTMLElement;\n private _buttonSlot: HTMLSlotElement;\n private _button: HTMLButtonElement;\n private _input: HTMLInputElement;\n private _inputEventListener: () => void;\n\n constructor(component: IFilePickerComponent) {\n super(component);\n\n this._container = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.CONTAINER);\n this._buttonSlot = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.BUTTON_SLOT) as HTMLSlotElement;\n this._input = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n\n this._inputEventListener = () => {\n this._input.value = '';\n this._input.click();\n };\n\n this._container.addEventListener('click', this._inputEventListener);\n }\n\n public registerButtonSlotListener(listener: (evt: Event) => void): void {\n this._buttonSlot.addEventListener('slotchange', listener);\n }\n\n public registerInputChangeListener(listener: (evt: Event) => void): void {\n this._input.addEventListener('change', listener);\n }\n\n public registerDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragenter', listener);\n }\n\n public registerDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragleave', listener);\n }\n\n public registerDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragover', listener);\n }\n\n public registerDropListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('drop', listener);\n }\n\n public removeDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragenter', listener);\n }\n\n public removeDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragleave', listener);\n }\n\n public removeDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragover', listener);\n }\n\n public removeDropListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('drop', listener);\n }\n\n public initializeButton(): void {\n const button = this._component.querySelector('button') as HTMLButtonElement;\n this._button = button || undefined;\n }\n\n /**\n * Sets the highlight state of the file picker.\n * @param value True if the highlight should be applied and false if not.\n */\n public setHighlightState(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT);\n }\n }\n\n /**\n * Sets the accept attribute of the input.\n * @param value The accept string.\n */\n public setAccept(value: string | null): void {\n if (value) {\n this._input.setAttribute('accept', value);\n } else {\n this._input.removeAttribute('accept');\n }\n }\n\n /**\n * Sets the capture attribute of the input.\n * @param value The capture string.\n */\n public setCapture(value: string | null): void {\n if (value) {\n this._input.setAttribute('capture', value);\n } else {\n this._input.removeAttribute('capture');\n }\n }\n\n /**\n * Sets the multiple attribute of the input.\n * @param value The multiple state.\n */\n public setMultiple(value: boolean): void {\n if (value) {\n this._input.setAttribute('multiple', '');\n } else {\n this._input.removeAttribute('multiple');\n }\n }\n\n /**\n * Sets the disabled state of the file picker.\n * @param value The disabled state.\n */\n public setDisabled(value: boolean): void {\n if (value) {\n this._container.removeEventListener('click', this._inputEventListener);\n this._button.setAttribute('disabled', '');\n this._container.setAttribute('disabled', '');\n } else {\n this._container.addEventListener('click', this._inputEventListener);\n this._button.removeAttribute('disabled');\n this._container.removeAttribute('disabled');\n }\n }\n\n /**\n * Sets the compact state of the file picker.\n * @param value The compact state.\n */\n public setCompact(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.COMPACT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.COMPACT);\n }\n }\n\n /**\n * Sets the borderless state of the file picker.\n * @param value The borderless state.\n */\n public setBorderless(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.BORDERLESS) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.BORDERLESS);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IFilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport interface IFilePickerFoundation extends ICustomElementFoundation {\n accept: string | null;\n maxSize: number | null;\n capture: string | null;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\nexport class FilePickerFoundation implements IFilePickerFoundation {\n private _accept: string | null = null;\n private _maxSize: number | null = null;\n private _capture: string | null = null;\n private _multiple = false;\n private _disabled = false;\n private _compact = false;\n private _borderless = false;\n private _buttonSlotListener: (evt: Event) => void;\n private _inputChangeListener: (evt: Event) => void;\n private _dragEnterListener: (evt: DragEvent) => void;\n private _dragLeaveListener: (evt: DragEvent) => void;\n private _dragOverListener: (evt: DragEvent) => void;\n private _dropListener: (evt: DragEvent) => void;\n\n constructor(private _adapter: IFilePickerAdapter) {\n this._buttonSlotListener = evt => this._onButtonSlotChanged(evt);\n this._inputChangeListener = evt => this._onInputChange(evt);\n this._dragEnterListener = evt => this._onDragEnter(evt);\n this._dragLeaveListener = evt => this._onDragLeave(evt);\n this._dragOverListener = evt => this._onDragOver(evt);\n this._dropListener = evt => this._onDrop(evt);\n\n this._adapter.registerButtonSlotListener(this._buttonSlotListener);\n this._adapter.registerInputChangeListener(this._inputChangeListener);\n if (!this._compact) {\n this._registerDragListeners();\n }\n }\n\n public initialize(): void {\n this._adapter.initializeButton();\n }\n\n private _onButtonSlotChanged(evt: Event): void {\n this._adapter.initializeButton();\n }\n\n private _onInputChange(evt: Event): void {\n const files = (evt.target as HTMLInputElement).files;\n if (files) {\n this._handleFiles(files);\n }\n }\n\n private _onDragEnter(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDragLeave(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n }\n\n private _onDragOver(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDrop(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n\n if (!this._disabled) {\n const dataTransfer = evt.dataTransfer;\n if (dataTransfer) {\n const files = dataTransfer.files;\n this._handleFiles(files);\n }\n }\n }\n\n private _registerDragListeners(): void {\n this._adapter.registerDragEnterListener(this._dragEnterListener);\n this._adapter.registerDragLeaveListener(this._dragLeaveListener);\n this._adapter.registerDragOverListener(this._dragOverListener);\n this._adapter.registerDropListener(this._dropListener);\n }\n\n private _removeDragListeners(): void {\n this._adapter.removeDragEnterListener(this._dragEnterListener);\n this._adapter.removeDragLeaveListener(this._dragLeaveListener);\n this._adapter.removeDragOverListener(this._dragOverListener);\n this._adapter.removeDropListener(this._dropListener);\n }\n\n private _handleFiles(fileList: FileList): void {\n let data: IFilePickerChangeEventData = {};\n if (fileList) {\n const sortedFiles = this._sortFiles(fileList);\n let files = sortedFiles.legalFiles || null;\n\n // Ensure that we can only drop 1 file if not in multiple mode\n if (!this._multiple && files && files.length > 1) {\n files = files.splice(1);\n }\n\n data = sortedFiles;\n }\n this._adapter.emitHostEvent(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, data);\n }\n\n private _sortFiles(files: FileList): IFilePickerChangeEventData {\n let legalFiles: File[] = [];\n const illegalFiles: File[] = [];\n\n if (!this._accept && !this.maxSize) {\n legalFiles = Array.from(files);\n return { legalFiles, illegalFiles };\n }\n\n const formats = this._accept ? this._accept.split(',').map(f => f.trim().toLowerCase()) : [''];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < files.length; i++) {\n if (!formats.some(f => {\n return files[i].type.toLowerCase().match(f) || files[i].name.toLowerCase().match('\\\\' + f);\n }) || (this._maxSize && files[i].size > this._maxSize)) {\n illegalFiles.push(files[i]);\n } else {\n legalFiles.push(files[i]);\n }\n }\n\n return { legalFiles, illegalFiles };\n }\n\n private _handleDragEvent(evt: DragEvent, isOverTarget: boolean): void {\n if (!this._disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this._adapter.setHighlightState(isOverTarget);\n }\n }\n\n /** Get and set the allowed file types */\n public get accept(): string | null {\n return this._accept;\n }\n public set accept(value: string | null) {\n if (this._accept !== value) {\n this._accept = value;\n this._adapter.setAccept(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT, value);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT);\n }\n }\n }\n\n /** Get and set the maximum allowed file size */\n public get maxSize(): number | null {\n return this._maxSize;\n }\n public set maxSize(value: number | null) {\n if (this._maxSize !== value) {\n this._maxSize = value;\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE, value.toString());\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE);\n }\n }\n }\n\n /** Get and set the camera to use when capturing video or images */\n public get capture(): string | null {\n return this._capture;\n }\n public set capture(value: string | null) {\n if (this._capture !== value) {\n this._capture = value;\n this._adapter.setCapture(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE, value);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE);\n }\n }\n }\n\n /** Get and set whether multiple files are allowed */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setMultiple(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE);\n }\n }\n }\n\n /** Get and set whether the file picker is disabled */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED);\n }\n }\n }\n\n /** Get and set whether the file picker is compact */\n public get compact(): boolean {\n return this._compact;\n }\n public set compact(value: boolean) {\n if (this._compact !== value) {\n this._compact = value;\n this._adapter.setCompact(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT);\n this._removeDragListeners();\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT);\n this._registerDragListeners();\n }\n }\n }\n\n /** Get and set whether the file picker is borderless */\n public get borderless(): boolean {\n return this._borderless;\n }\n public set borderless(value: boolean) {\n if (this._borderless !== value) {\n this._borderless = value;\n this._adapter.setBorderless(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS);\n }\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { ButtonComponent } from '../button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\nimport { FilePickerFoundation } from './file-picker-foundation';\n\nconst template = '<template><form class=\\\"forge-file-picker\\\" id=\\\"container\\\" part=\\\"form\\\"><div class=\\\"forge-file-picker__primary\\\" id=\\\"primary\\\" part=\\\"primary\\\"><slot name=\\\"primary\\\"></slot></div><slot id=\\\"button-slot\\\"></slot><div class=\\\"forge-file-picker__secondary\\\" id=\\\"secondary\\\" part=\\\"secondary\\\"><slot name=\\\"secondary\\\"></slot></div><input type=\\\"file\\\" class=\\\"forge-file-picker__input\\\" id=\\\"input\\\" part=\\\"input\\\"></form><div class=\\\"forge-file-picker__helper-text\\\" part=\\\"helper-text-container\\\"><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker__helper-text::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';\n\nexport interface IFilePickerComponent extends IBaseComponent {\n accept: string | null;\n maxSize: number | null;\n capture: string | null;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-file-picker': IFilePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;\n }\n}\n\n@CustomElement({\n name: FILE_PICKER_CONSTANTS.elementName,\n dependencies: [ButtonComponent]\n})\nexport class FilePickerComponent extends BaseComponent implements IFilePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n FILE_PICKER_CONSTANTS.attributes.ACCEPT,\n FILE_PICKER_CONSTANTS.attributes.MAX_SIZE,\n FILE_PICKER_CONSTANTS.attributes.CAPTURE,\n FILE_PICKER_CONSTANTS.attributes.MULTIPLE,\n FILE_PICKER_CONSTANTS.attributes.DISABLED,\n FILE_PICKER_CONSTANTS.attributes.COMPACT,\n FILE_PICKER_CONSTANTS.attributes.BORDERLESS\n ];\n }\n\n private _foundation: FilePickerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new FilePickerFoundation(new FilePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FILE_PICKER_CONSTANTS.attributes.ACCEPT:\n this.accept = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MAX_SIZE:\n this.maxSize = coerceNumber(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.CAPTURE:\n this.capture = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.COMPACT:\n this.compact = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.BORDERLESS:\n this.borderless = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the allowed file types */\n @FoundationProperty()\n public accept: string | null;\n\n /** Gets and sets the maximum allowed file size */\n @FoundationProperty()\n public maxSize: number | null;\n\n /** Gets and sets the camera to use when capturing video or images */\n @FoundationProperty()\n public capture: string | null;\n\n /** Gets and sets whether multiple files are allowed */\n @FoundationProperty()\n public multiple: boolean;\n\n /** Gets and sets whether the file picker is disabled */\n @FoundationProperty()\n public disabled: boolean;\n\n /** Gets and sets whether the file picker is compact */\n @FoundationProperty()\n public compact: boolean;\n\n /** Gets and sets whether the file picker is borderless */\n @FoundationProperty()\n public borderless: boolean;\n}\n", "import { ButtonComponentDelegate } from '../button/button-component-delegate';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport type FilePickerComponentDelegateProps = Partial<IFilePickerComponent>;\nexport interface IFilePickerComponentDelegateOptions extends IBaseComponentDelegateOptions {\n primaryText?: string;\n secondaryText?: string;\n helperText?: string;\n buttonText?: string;\n}\nexport interface IFilePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IFilePickerComponent, IFilePickerComponentDelegateOptions> {}\n\nexport class FilePickerComponentDelegate extends BaseComponentDelegate<IFilePickerComponent, IFilePickerComponentDelegateOptions> {\n constructor(config?: IFilePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IFilePickerComponent {\n return document.createElement(FILE_PICKER_CONSTANTS.elementName);\n }\n\n protected _configure(): void {\n if (this._config.options?.primaryText) {\n const primarySpan = document.createElement('span');\n primarySpan.slot = 'primary';\n primarySpan.textContent = this._config.options.primaryText;\n this._element.appendChild(primarySpan);\n }\n\n if (this._config.options?.secondaryText) {\n const secondarySpan = document.createElement('span');\n secondarySpan.slot = 'secondary';\n secondarySpan.textContent = this._config.options.secondaryText;\n this._element.appendChild(secondarySpan);\n }\n\n if (this._config.options?.buttonText) {\n new ButtonComponentDelegate({\n options: {\n parent: this._element,\n text: this._config.options.buttonText\n },\n props: { type: 'outlined' }\n });\n }\n\n if (this._config.options?.helperText) {\n const helperTextSpan = document.createElement('span');\n helperTextSpan.slot = 'helper-text';\n helperTextSpan.textContent = this._config.options.helperText;\n this._element.appendChild(helperTextSpan);\n }\n }\n\n public onChange(cb: (evt: IFilePickerChangeEventData) => void): void {\n this._element.addEventListener(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, (evt: CustomEvent<IFilePickerChangeEventData>) => cb(evt.detail));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { FilePickerComponent } from './file-picker';\n\nexport * from './file-picker-adapter';\nexport * from './file-picker-constants';\nexport * from './file-picker-foundation';\nexport * from './file-picker';\nexport * from './file-picker-component-delegate';\n\nexport function defineFilePickerComponent(): void {\n defineCustomElement(FilePickerComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}file-picker`;\n\nconst attributes = {\n ACCEPT: 'accept',\n MAX_SIZE: 'max-size',\n CAPTURE: 'capture',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst classes = {\n HIGHLIGHT: 'highlight',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst ids = {\n CONTAINER: 'container',\n BUTTON: 'button',\n INPUT: 'input'\n};\n\nconst selectors = {\n CONTAINER: '#container',\n BUTTON: '#button',\n INPUT: '#input',\n BUTTON_SLOT: '#button-slot'\n};\n\nconst events = {\n FILES_CHANGED: `${elementName}-change`\n};\n\nexport const FILE_PICKER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n selectors,\n events\n};\n\nexport interface IFilePickerChangeEventData {\n legalFiles?: File[];\n illegalFiles?: File[];\n}\n", "import { getShadowElement, emitEvent } from '@tylertech/forge-core';\n\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS } from './file-picker-constants';\nimport { BaseAdapter, IBaseAdapter } from '../core';\n\nexport interface IFilePickerAdapter extends IBaseAdapter {\n registerButtonSlotListener(listener: (evt: Event) => void): void;\n registerInputChangeListener(listener: (evt: Event) => void): void;\n registerDragEnterListener(listener: (evt: DragEvent) => void): void;\n registerDragLeaveListener(listener: (evt: DragEvent) => void): void;\n registerDragOverListener(listener: (evt: DragEvent) => void): void;\n registerDropListener(listener: (evt: DragEvent) => void): void;\n removeDragEnterListener(listener: (evt: DragEvent) => void): void;\n removeDragLeaveListener(listener: (evt: DragEvent) => void): void;\n removeDragOverListener(listener: (evt: DragEvent) => void): void;\n removeDropListener(listener: (evt: DragEvent) => void): void;\n initializeButton(): void;\n setHighlightState(value: boolean): void;\n setAccept(value: string | null): void;\n setCapture(value: string | null): void;\n setMultiple(value: boolean): void;\n setDisabled(value: boolean): void;\n setCompact(value: boolean): void;\n setBorderless(value: boolean): void;\n}\n\nexport class FilePickerAdapter extends BaseAdapter<IFilePickerComponent> implements IFilePickerAdapter {\n private _container: HTMLElement;\n private _buttonSlot: HTMLSlotElement;\n private _button: HTMLButtonElement;\n private _input: HTMLInputElement;\n private _inputEventListener: () => void;\n\n constructor(component: IFilePickerComponent) {\n super(component);\n\n this._container = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.CONTAINER);\n this._buttonSlot = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.BUTTON_SLOT) as HTMLSlotElement;\n this._input = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n\n this._inputEventListener = () => {\n this._input.value = '';\n this._input.click();\n };\n\n this._container.addEventListener('click', this._inputEventListener);\n }\n\n public registerButtonSlotListener(listener: (evt: Event) => void): void {\n this._buttonSlot.addEventListener('slotchange', listener);\n }\n\n public registerInputChangeListener(listener: (evt: Event) => void): void {\n this._input.addEventListener('change', listener);\n }\n\n public registerDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragenter', listener);\n }\n\n public registerDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragleave', listener);\n }\n\n public registerDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragover', listener);\n }\n\n public registerDropListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('drop', listener);\n }\n\n public removeDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragenter', listener);\n }\n\n public removeDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragleave', listener);\n }\n\n public removeDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragover', listener);\n }\n\n public removeDropListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('drop', listener);\n }\n\n public initializeButton(): void {\n const button = this._component.querySelector('button') as HTMLButtonElement;\n this._button = button || undefined;\n }\n\n /**\n * Sets the highlight state of the file picker.\n * @param value True if the highlight should be applied and false if not.\n */\n public setHighlightState(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT);\n }\n }\n\n /**\n * Sets the accept attribute of the input.\n * @param value The accept string.\n */\n public setAccept(value: string | null): void {\n if (value) {\n this._input.setAttribute('accept', value);\n } else {\n this._input.removeAttribute('accept');\n }\n }\n\n /**\n * Sets the capture attribute of the input.\n * @param value The capture string.\n */\n public setCapture(value: string | null): void {\n if (value) {\n this._input.setAttribute('capture', value);\n } else {\n this._input.removeAttribute('capture');\n }\n }\n\n /**\n * Sets the multiple attribute of the input.\n * @param value The multiple state.\n */\n public setMultiple(value: boolean): void {\n if (value) {\n this._input.setAttribute('multiple', '');\n } else {\n this._input.removeAttribute('multiple');\n }\n }\n\n /**\n * Sets the disabled state of the file picker.\n * @param value The disabled state.\n */\n public setDisabled(value: boolean): void {\n if (value) {\n this._container.removeEventListener('click', this._inputEventListener);\n this._button.setAttribute('disabled', '');\n this._container.setAttribute('disabled', '');\n } else {\n this._container.addEventListener('click', this._inputEventListener);\n this._button.removeAttribute('disabled');\n this._container.removeAttribute('disabled');\n }\n }\n\n /**\n * Sets the compact state of the file picker.\n * @param value The compact state.\n */\n public setCompact(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.COMPACT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.COMPACT);\n }\n }\n\n /**\n * Sets the borderless state of the file picker.\n * @param value The borderless state.\n */\n public setBorderless(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.BORDERLESS) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.BORDERLESS);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IFilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport interface IFilePickerFoundation extends ICustomElementFoundation {\n accept: string | null;\n maxSize: number | null;\n capture: string | null;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\nexport class FilePickerFoundation implements IFilePickerFoundation {\n private _accept: string | null = null;\n private _maxSize: number | null = null;\n private _capture: string | null = null;\n private _multiple = false;\n private _disabled = false;\n private _compact = false;\n private _borderless = false;\n private _buttonSlotListener: (evt: Event) => void;\n private _inputChangeListener: (evt: Event) => void;\n private _dragEnterListener: (evt: DragEvent) => void;\n private _dragLeaveListener: (evt: DragEvent) => void;\n private _dragOverListener: (evt: DragEvent) => void;\n private _dropListener: (evt: DragEvent) => void;\n\n constructor(private _adapter: IFilePickerAdapter) {\n this._buttonSlotListener = evt => this._onButtonSlotChanged(evt);\n this._inputChangeListener = evt => this._onInputChange(evt);\n this._dragEnterListener = evt => this._onDragEnter(evt);\n this._dragLeaveListener = evt => this._onDragLeave(evt);\n this._dragOverListener = evt => this._onDragOver(evt);\n this._dropListener = evt => this._onDrop(evt);\n\n this._adapter.registerButtonSlotListener(this._buttonSlotListener);\n this._adapter.registerInputChangeListener(this._inputChangeListener);\n if (!this._compact) {\n this._registerDragListeners();\n }\n }\n\n public initialize(): void {\n this._adapter.initializeButton();\n }\n\n private _onButtonSlotChanged(evt: Event): void {\n this._adapter.initializeButton();\n }\n\n private _onInputChange(evt: Event): void {\n const files = (evt.target as HTMLInputElement).files;\n if (files) {\n this._handleFiles(files);\n }\n }\n\n private _onDragEnter(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDragLeave(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n }\n\n private _onDragOver(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDrop(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n\n if (!this._disabled) {\n const dataTransfer = evt.dataTransfer;\n if (dataTransfer) {\n const files = dataTransfer.files;\n this._handleFiles(files);\n }\n }\n }\n\n private _registerDragListeners(): void {\n this._adapter.registerDragEnterListener(this._dragEnterListener);\n this._adapter.registerDragLeaveListener(this._dragLeaveListener);\n this._adapter.registerDragOverListener(this._dragOverListener);\n this._adapter.registerDropListener(this._dropListener);\n }\n\n private _removeDragListeners(): void {\n this._adapter.removeDragEnterListener(this._dragEnterListener);\n this._adapter.removeDragLeaveListener(this._dragLeaveListener);\n this._adapter.removeDragOverListener(this._dragOverListener);\n this._adapter.removeDropListener(this._dropListener);\n }\n\n private _handleFiles(fileList: FileList): void {\n let data: IFilePickerChangeEventData = {};\n if (fileList) {\n const sortedFiles = this._sortFiles(fileList);\n let files = sortedFiles.legalFiles || null;\n\n // Ensure that we can only drop 1 file if not in multiple mode\n if (!this._multiple && files && files.length > 1) {\n files = files.splice(1);\n }\n\n data = sortedFiles;\n }\n this._adapter.emitHostEvent(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, data);\n }\n\n private _sortFiles(files: FileList): IFilePickerChangeEventData {\n let legalFiles: File[] = [];\n const illegalFiles: File[] = [];\n\n if (!this._accept && !this.maxSize) {\n legalFiles = Array.from(files);\n return { legalFiles, illegalFiles };\n }\n\n const formats = this._accept ? this._accept.split(',').map(f => f.trim().toLowerCase()) : [''];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < files.length; i++) {\n if (!formats.some(f => {\n return files[i].type.toLowerCase().match(f) || files[i].name.toLowerCase().match('\\\\' + f);\n }) || (this._maxSize && files[i].size > this._maxSize)) {\n illegalFiles.push(files[i]);\n } else {\n legalFiles.push(files[i]);\n }\n }\n\n return { legalFiles, illegalFiles };\n }\n\n private _handleDragEvent(evt: DragEvent, isOverTarget: boolean): void {\n if (!this._disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this._adapter.setHighlightState(isOverTarget);\n }\n }\n\n /** Get and set the allowed file types */\n public get accept(): string | null {\n return this._accept;\n }\n public set accept(value: string | null) {\n if (this._accept !== value) {\n this._accept = value;\n this._adapter.setAccept(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT, value);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT);\n }\n }\n }\n\n /** Get and set the maximum allowed file size */\n public get maxSize(): number | null {\n return this._maxSize;\n }\n public set maxSize(value: number | null) {\n if (this._maxSize !== value) {\n this._maxSize = value;\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE, value.toString());\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE);\n }\n }\n }\n\n /** Get and set the camera to use when capturing video or images */\n public get capture(): string | null {\n return this._capture;\n }\n public set capture(value: string | null) {\n if (this._capture !== value) {\n this._capture = value;\n this._adapter.setCapture(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE, value);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE);\n }\n }\n }\n\n /** Get and set whether multiple files are allowed */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setMultiple(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE);\n }\n }\n }\n\n /** Get and set whether the file picker is disabled */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED);\n }\n }\n }\n\n /** Get and set whether the file picker is compact */\n public get compact(): boolean {\n return this._compact;\n }\n public set compact(value: boolean) {\n if (this._compact !== value) {\n this._compact = value;\n this._adapter.setCompact(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT);\n this._removeDragListeners();\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT);\n this._registerDragListeners();\n }\n }\n }\n\n /** Get and set whether the file picker is borderless */\n public get borderless(): boolean {\n return this._borderless;\n }\n public set borderless(value: boolean) {\n if (this._borderless !== value) {\n this._borderless = value;\n this._adapter.setBorderless(value);\n if (value) {\n this._adapter.setHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS);\n } else {\n this._adapter.removeHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS);\n }\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { ButtonComponent } from '../button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\nimport { FilePickerFoundation } from './file-picker-foundation';\n\nconst template = '<template><form class=\\\"forge-file-picker\\\" id=\\\"container\\\" part=\\\"form\\\"><div class=\\\"forge-file-picker__primary\\\" id=\\\"primary\\\" part=\\\"primary\\\"><slot name=\\\"primary\\\"></slot></div><slot id=\\\"button-slot\\\"></slot><div class=\\\"forge-file-picker__secondary\\\" id=\\\"secondary\\\" part=\\\"secondary\\\"><slot name=\\\"secondary\\\"></slot></div><input type=\\\"file\\\" class=\\\"forge-file-picker__input\\\" id=\\\"input\\\" part=\\\"input\\\"></form><div class=\\\"forge-file-picker__helper-text\\\" part=\\\"helper-text-container\\\"><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker__helper-text::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';\n\nexport interface IFilePickerComponent extends IBaseComponent {\n accept: string | null;\n maxSize: number | null;\n capture: string | null;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-file-picker': IFilePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-file-picker>` custom element.\n * \n * @tag forge-file-picker\n */\n@CustomElement({\n name: FILE_PICKER_CONSTANTS.elementName,\n dependencies: [ButtonComponent]\n})\nexport class FilePickerComponent extends BaseComponent implements IFilePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n FILE_PICKER_CONSTANTS.attributes.ACCEPT,\n FILE_PICKER_CONSTANTS.attributes.MAX_SIZE,\n FILE_PICKER_CONSTANTS.attributes.CAPTURE,\n FILE_PICKER_CONSTANTS.attributes.MULTIPLE,\n FILE_PICKER_CONSTANTS.attributes.DISABLED,\n FILE_PICKER_CONSTANTS.attributes.COMPACT,\n FILE_PICKER_CONSTANTS.attributes.BORDERLESS\n ];\n }\n\n private _foundation: FilePickerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new FilePickerFoundation(new FilePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FILE_PICKER_CONSTANTS.attributes.ACCEPT:\n this.accept = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MAX_SIZE:\n this.maxSize = coerceNumber(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.CAPTURE:\n this.capture = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.COMPACT:\n this.compact = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.BORDERLESS:\n this.borderless = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the allowed file types */\n @FoundationProperty()\n public accept: string | null;\n\n /** Gets and sets the maximum allowed file size */\n @FoundationProperty()\n public maxSize: number | null;\n\n /** Gets and sets the camera to use when capturing video or images */\n @FoundationProperty()\n public capture: string | null;\n\n /** Gets and sets whether multiple files are allowed */\n @FoundationProperty()\n public multiple: boolean;\n\n /** Gets and sets whether the file picker is disabled */\n @FoundationProperty()\n public disabled: boolean;\n\n /** Gets and sets whether the file picker is compact */\n @FoundationProperty()\n public compact: boolean;\n\n /** Gets and sets whether the file picker is borderless */\n @FoundationProperty()\n public borderless: boolean;\n}\n", "import { ButtonComponentDelegate } from '../button/button-component-delegate';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport type FilePickerComponentDelegateProps = Partial<IFilePickerComponent>;\nexport interface IFilePickerComponentDelegateOptions extends IBaseComponentDelegateOptions {\n primaryText?: string;\n secondaryText?: string;\n helperText?: string;\n buttonText?: string;\n}\nexport interface IFilePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IFilePickerComponent, IFilePickerComponentDelegateOptions> {}\n\nexport class FilePickerComponentDelegate extends BaseComponentDelegate<IFilePickerComponent, IFilePickerComponentDelegateOptions> {\n constructor(config?: IFilePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IFilePickerComponent {\n return document.createElement(FILE_PICKER_CONSTANTS.elementName);\n }\n\n protected _configure(): void {\n if (this._config.options?.primaryText) {\n const primarySpan = document.createElement('span');\n primarySpan.slot = 'primary';\n primarySpan.textContent = this._config.options.primaryText;\n this._element.appendChild(primarySpan);\n }\n\n if (this._config.options?.secondaryText) {\n const secondarySpan = document.createElement('span');\n secondarySpan.slot = 'secondary';\n secondarySpan.textContent = this._config.options.secondaryText;\n this._element.appendChild(secondarySpan);\n }\n\n if (this._config.options?.buttonText) {\n new ButtonComponentDelegate({\n options: {\n parent: this._element,\n text: this._config.options.buttonText\n },\n props: { type: 'outlined' }\n });\n }\n\n if (this._config.options?.helperText) {\n const helperTextSpan = document.createElement('span');\n helperTextSpan.slot = 'helper-text';\n helperTextSpan.textContent = this._config.options.helperText;\n this._element.appendChild(helperTextSpan);\n }\n }\n\n public onChange(cb: (evt: IFilePickerChangeEventData) => void): void {\n this._element.addEventListener(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, (evt: CustomEvent<IFilePickerChangeEventData>) => cb(evt.detail));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { FilePickerComponent } from './file-picker';\n\nexport * from './file-picker-adapter';\nexport * from './file-picker-constants';\nexport * from './file-picker-foundation';\nexport * from './file-picker';\nexport * from './file-picker-component-delegate';\n\nexport function defineFilePickerComponent(): void {\n defineCustomElement(FilePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -241,4 +241,4 @@ export {
241
241
  AppBarComponent,
242
242
  defineAppBarComponent
243
243
  };
244
- //# sourceMappingURL=chunk.DB7ZQBES.js.map
244
+ //# sourceMappingURL=chunk.YL2NAVJW.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app-bar/app-bar-constants.ts", "../../src/app-bar/app-bar-adapter.ts", "../../src/app-bar/app-bar-foundation.ts", "../../src/app-bar/app-bar.ts", "../../src/app-bar/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nexport const elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}app-bar`;\n\nconst classes = {\n DENSE: 'forge-app-bar--dense',\n FIXED: 'forge-app-bar--fixed',\n RAISED: 'forge-app-bar--raised',\n ROW: 'forge-app-bar__row',\n TITLE_INTERACTABLE: 'forge-app-bar__title--interactable',\n NO_CENTER: 'forge-app-bar--no-center'\n};\n\nconst selectors = {\n ROOT: '.forge-app-bar',\n TITLE: '.forge-app-bar__title',\n BOTTOM: '.forge-app-bar__bottom',\n BOTTOM_SLOT: 'slot[name=bottom]',\n CENTER_SLOT: 'slot[name=center]',\n CENTER_SECTION: '#center-section',\n FIXED: `.${classes.FIXED}`,\n RAISED: `.${classes.RAISED}`\n};\n\nconst attributes = {\n TITLE_TEXT: 'title-text',\n FIXED: 'fixed',\n RAISED: 'raised',\n THEME: 'theme'\n};\n\nexport const APP_BAR_CONSTANTS = {\n elementName,\n selectors,\n attributes,\n classes\n};\n", "import { getShadowElement, toggleClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAppBarComponent } from './app-bar';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\n\nexport interface IAppBarAdapter extends IBaseAdapter {\n setTitleText(value: string): void;\n setDense(value: boolean): void;\n setRaised(value: boolean): void;\n setFixed(value: boolean): void;\n addBottomClass(name: string): void;\n removeBottomClass(name: string): void;\n addBottomSlotListener(listener: (evt: Event) => void): void;\n addCenterSlotListener(listener: (evt: Event) => void): void;\n setCenterSlotVisibility(): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `AppBarComponent`.\n */\nexport class AppBarAdapter extends BaseAdapter<IAppBarComponent> implements IAppBarAdapter {\n private _rootElement: HTMLElement;\n private _titleElement: HTMLElement;\n private _bottomElement: HTMLElement;\n private _bottomSlotElement: HTMLSlotElement;\n private _centerSlotElement: HTMLSlotElement;\n private _centerSectionElement: HTMLElement;\n\n constructor(component: IAppBarComponent) {\n super(component);\n this._rootElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.ROOT);\n this._titleElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.TITLE);\n this._bottomElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.BOTTOM);\n this._bottomSlotElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.BOTTOM_SLOT) as HTMLSlotElement;\n this._centerSlotElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.CENTER_SLOT) as HTMLSlotElement;\n this._centerSectionElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.CENTER_SECTION);\n }\n\n /**\n * Sets the title text value.\n * @param {string} value The title text.\n */\n public setTitleText(value: string): void {\n this._titleElement.textContent = value;\n }\n\n public setDense(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.DENSE);\n }\n\n public setRaised(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.RAISED);\n }\n\n public setFixed(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.FIXED);\n }\n\n public addBottomClass(name: string): void {\n this._bottomElement.classList.add(name);\n }\n\n public removeBottomClass(name: string): void {\n this._bottomElement.classList.remove(name);\n }\n\n public addBottomSlotListener(listener: (evt: Event) => void): void {\n this._bottomSlotElement.addEventListener('slotchange', listener);\n }\n\n public addCenterSlotListener(listener: (evt: Event) => void): void {\n this._centerSlotElement.addEventListener('slotchange', listener);\n }\n\n public setCenterSlotVisibility(): void {\n if (this._centerSlotElement.assignedNodes().length) {\n this._centerSectionElement.style.removeProperty('display');\n this._rootElement.classList.remove(APP_BAR_CONSTANTS.classes.NO_CENTER);\n } else {\n this._centerSectionElement.style.display = 'none';\n this._rootElement.classList.add(APP_BAR_CONSTANTS.classes.NO_CENTER);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IAppBarAdapter } from './app-bar-adapter';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\n\nexport interface IAppBarFoundation extends ICustomElementFoundation {\n titleText: string;\n fixed: boolean;\n raised: boolean;\n}\n\n/**\n * Provides facilities and helper methods for creating an app-bar component.\n */\nexport class AppBarFoundation implements IAppBarFoundation {\n private _titleText: string;\n private _fixed = false;\n private _raised = true;\n private _bottomSlotListener: (evt: Event) => void;\n private _centerSlotListener: (evt: Event) => void;\n\n constructor(private _adapter: IAppBarAdapter) {\n this._bottomSlotListener = evt => this._onBottomSlotChanged(evt);\n this._centerSlotListener = evt => this._onCenterSlotChanged(evt);\n }\n\n public initialize(): void {\n this._adapter.setTitleText(this._titleText);\n this._adapter.addBottomSlotListener(this._bottomSlotListener);\n this._adapter.addCenterSlotListener(this._centerSlotListener);\n this._adapter.setCenterSlotVisibility();\n this._adapter.setRaised(this._raised);\n this._adapter.setFixed(this._fixed);\n }\n\n private _onBottomSlotChanged(evt: Event): void {\n const slotElement = evt.target as HTMLSlotElement;\n if (slotElement.assignedNodes().length) {\n this._adapter.addBottomClass(APP_BAR_CONSTANTS.classes.ROW);\n } else {\n this._adapter.removeBottomClass(APP_BAR_CONSTANTS.classes.ROW);\n }\n }\n\n private _onCenterSlotChanged(evt: Event): void {\n this._adapter.setCenterSlotVisibility();\n }\n\n /** Gets/sets the title text. */\n public get titleText(): string {\n return this._titleText;\n }\n public set titleText(value: string) {\n if (this._titleText !== value) {\n this._titleText = value;\n this._adapter.setTitleText(this._titleText);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.TITLE_TEXT, value);\n }\n }\n \n /** Gets/sets the fixed state. */\n public get fixed(): boolean {\n return this._fixed;\n }\n public set fixed(value: boolean) {\n if (this._fixed !== value) {\n this._fixed = value;\n this._adapter.setFixed(this._fixed);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.FIXED, this._fixed.toString());\n }\n }\n\n public get raised(): boolean {\n return this._raised;\n }\n public set raised(value: boolean) {\n if (this._raised !== value) {\n this._raised = value;\n this._adapter.setRaised(value);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.RAISED, this._raised.toString());\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { AppBarAdapter } from './app-bar-adapter';\nimport { AppBarFoundation } from './app-bar-foundation';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><header class=\\\"forge-app-bar\\\" part=\\\"root\\\"><div class=\\\"forge-app-bar__row\\\" part=\\\"row\\\"><section class=\\\"forge-app-bar__section forge-app-bar__section--align-start\\\" part=\\\"section-start\\\"><slot name=\\\"start\\\"></slot><slot name=\\\"logo\\\"></slot><slot name=\\\"title\\\"><h1 class=\\\"forge-app-bar__title\\\" part=\\\"title\\\"></h1></slot></section><section id=\\\"center-section\\\" class=\\\"forge-app-bar__section forge-app-bar__section--align-center\\\" part=\\\"section-center\\\"><slot name=\\\"center\\\"></slot></section><section class=\\\"forge-app-bar__section forge-app-bar__section--align-end\\\" part=\\\"section-end\\\"><slot name=\\\"end\\\"></slot></section></div><div class=\\\"forge-app-bar__bottom\\\" part=\\\"bottom\\\"><slot name=\\\"bottom\\\"></slot></div></header></template>';\nconst styles = '.forge-app-bar{color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);background-color:#283593;background-color:var(--forge-app-bar-theme-background,#283593);z-index:4;z-index:var(--forge-z-index-header,4);background-size:cover;background-position:center;display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar__row{display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:56px}.forge-app-bar--no-center .forge-app-bar__row{grid-template-columns:1fr auto}.forge-app-bar__section{display:-webkit-inline-box;display:inline-flex;-webkit-box-flex:1;flex:1 1 auto;-webkit-box-align:center;align-items:center;min-width:0;padding:0 4px;height:56px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-app-bar__section--align-start{-webkit-box-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:0;order:-1;grid-column:1}.forge-app-bar__section--align-center{grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.forge-app-bar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;-webkit-box-ordinal-group:2;order:1;grid-column:3}.forge-app-bar--no-center .forge-app-bar__section--align-end{grid-column:2}.forge-app-bar ::slotted([slot=logo]){color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;margin:0 8px;font-size:3rem;overflow:visible}.forge-app-bar ::slotted([slot=profile]){margin-left:4px}.forge-app-bar ::slotted([slot=title]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar slot[name=user-action]{display:-webkit-inline-box;display:inline-flex;margin-right:24px}.forge-app-bar__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar__title--interactable:hover{background-color:rgba(255,255,255,.12);border-radius:4px;cursor:pointer}.forge-app-bar__title--interactable:active{background-color:rgba(255,255,255,.24)}.forge-app-bar__bottom{padding:0 4px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;height:auto!important;overflow:hidden;grid-row:2}.forge-app-bar--fixed{-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar--raised{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}:host{z-index:4;z-index:var(--forge-z-index-header,4);position:relative;display:block;contain:layout style;--mdc-theme-text-secondary-on-background:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-secondary-on-light:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-disabled-on-background:var(--forge-app-bar-theme-disabled-on-background, rgba(255, 255, 255, 0.38));--mdc-theme-text-disabled-on-light:var(--forge-app-bar-theme-disabled-on-light, rgba(255, 255, 255, 0.12))}:host ::slotted(:not(forge-button)){--mdc-theme-on-primary:var(--forge-app-bar-theme-on-background, #ffffff);--mdc-theme-on-surface:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-tab-bar){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-button:not([type])),:host ::slotted(forge-button[type=outlined]){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, rgba(255, 255, 255, 0.87))}:host([hidden]){display:none}:host([theme=white]){--forge-app-bar-theme-background:#ffffff;--forge-app-bar-theme-on-background:rgba(0, 0, 0, 0.87);--forge-app-bar-theme-secondary-on-background:rgba(0, 0, 0, 0.54);--forge-app-bar-theme-disabled-on-background:rgba(0, 0, 0, 0.38);--forge-app-bar-theme-disabled-on-light:rgba(0, 0, 0, 0.12)}';\n\nexport interface IAppBarComponent extends IBaseComponent {\n titleText: string;\n fixed: boolean;\n raised: boolean;\n theme: string | null;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-app-bar': IAppBarComponent;\n }\n}\n\n/** The web component class behind the <forge-app-bar> custom element. */\n@CustomElement({\n name: APP_BAR_CONSTANTS.elementName\n})\nexport class AppBarComponent extends BaseComponent implements IAppBarComponent {\n public static get observedAttributes(): string[] {\n return [\n APP_BAR_CONSTANTS.attributes.TITLE_TEXT,\n APP_BAR_CONSTANTS.attributes.FIXED,\n APP_BAR_CONSTANTS.attributes.RAISED\n ];\n }\n\n private _foundation: AppBarFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new AppBarFoundation(new AppBarAdapter(this));\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case APP_BAR_CONSTANTS.attributes.TITLE_TEXT:\n this.titleText = newValue;\n break;\n case APP_BAR_CONSTANTS.attributes.FIXED:\n this.fixed = coerceBoolean(newValue);\n break;\n case APP_BAR_CONSTANTS.attributes.RAISED:\n this.raised = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the title text. */\n @FoundationProperty()\n public titleText: string;\n\n /** Gets/sets the fixed variant. */\n @FoundationProperty()\n public fixed: boolean;\n\n /** Gets/sets the raised state. */\n @FoundationProperty()\n public raised: boolean;\n\n /** Convenience property to allow for easily getting/setting the theme color from JavaScript. */\n public get theme(): string | null {\n return this.getAttribute(APP_BAR_CONSTANTS.attributes.THEME) || null;\n }\n public set theme(value: string | null) {\n if (value) {\n this.setAttribute(APP_BAR_CONSTANTS.attributes.THEME, value);\n } else {\n this.removeAttribute(APP_BAR_CONSTANTS.attributes.THEME);\n }\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { AppBarComponent } from './app-bar';\n\nexport * from './app-bar-adapter';\nexport * from './app-bar-constants';\nexport * from './app-bar-foundation';\nexport * from './app-bar';\nexport * from './search';\nexport * from './menu-button';\nexport * from './notification-button';\nexport * from './help-button';\nexport * from '../profile-card';\nexport * from './profile-button';\n\nexport function defineAppBarComponent(): void {\n defineCustomElement(AppBarComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nexport const elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}app-bar`;\n\nconst classes = {\n DENSE: 'forge-app-bar--dense',\n FIXED: 'forge-app-bar--fixed',\n RAISED: 'forge-app-bar--raised',\n ROW: 'forge-app-bar__row',\n TITLE_INTERACTABLE: 'forge-app-bar__title--interactable',\n NO_CENTER: 'forge-app-bar--no-center'\n};\n\nconst selectors = {\n ROOT: '.forge-app-bar',\n TITLE: '.forge-app-bar__title',\n BOTTOM: '.forge-app-bar__bottom',\n BOTTOM_SLOT: 'slot[name=bottom]',\n CENTER_SLOT: 'slot[name=center]',\n CENTER_SECTION: '#center-section',\n FIXED: `.${classes.FIXED}`,\n RAISED: `.${classes.RAISED}`\n};\n\nconst attributes = {\n TITLE_TEXT: 'title-text',\n FIXED: 'fixed',\n RAISED: 'raised',\n THEME: 'theme'\n};\n\nexport const APP_BAR_CONSTANTS = {\n elementName,\n selectors,\n attributes,\n classes\n};\n", "import { getShadowElement, toggleClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAppBarComponent } from './app-bar';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\n\nexport interface IAppBarAdapter extends IBaseAdapter {\n setTitleText(value: string): void;\n setDense(value: boolean): void;\n setRaised(value: boolean): void;\n setFixed(value: boolean): void;\n addBottomClass(name: string): void;\n removeBottomClass(name: string): void;\n addBottomSlotListener(listener: (evt: Event) => void): void;\n addCenterSlotListener(listener: (evt: Event) => void): void;\n setCenterSlotVisibility(): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `AppBarComponent`.\n */\nexport class AppBarAdapter extends BaseAdapter<IAppBarComponent> implements IAppBarAdapter {\n private _rootElement: HTMLElement;\n private _titleElement: HTMLElement;\n private _bottomElement: HTMLElement;\n private _bottomSlotElement: HTMLSlotElement;\n private _centerSlotElement: HTMLSlotElement;\n private _centerSectionElement: HTMLElement;\n\n constructor(component: IAppBarComponent) {\n super(component);\n this._rootElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.ROOT);\n this._titleElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.TITLE);\n this._bottomElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.BOTTOM);\n this._bottomSlotElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.BOTTOM_SLOT) as HTMLSlotElement;\n this._centerSlotElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.CENTER_SLOT) as HTMLSlotElement;\n this._centerSectionElement = getShadowElement(component, APP_BAR_CONSTANTS.selectors.CENTER_SECTION);\n }\n\n /**\n * Sets the title text value.\n * @param {string} value The title text.\n */\n public setTitleText(value: string): void {\n this._titleElement.textContent = value;\n }\n\n public setDense(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.DENSE);\n }\n\n public setRaised(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.RAISED);\n }\n\n public setFixed(value: boolean): void {\n toggleClass(this._rootElement, value, APP_BAR_CONSTANTS.classes.FIXED);\n }\n\n public addBottomClass(name: string): void {\n this._bottomElement.classList.add(name);\n }\n\n public removeBottomClass(name: string): void {\n this._bottomElement.classList.remove(name);\n }\n\n public addBottomSlotListener(listener: (evt: Event) => void): void {\n this._bottomSlotElement.addEventListener('slotchange', listener);\n }\n\n public addCenterSlotListener(listener: (evt: Event) => void): void {\n this._centerSlotElement.addEventListener('slotchange', listener);\n }\n\n public setCenterSlotVisibility(): void {\n if (this._centerSlotElement.assignedNodes().length) {\n this._centerSectionElement.style.removeProperty('display');\n this._rootElement.classList.remove(APP_BAR_CONSTANTS.classes.NO_CENTER);\n } else {\n this._centerSectionElement.style.display = 'none';\n this._rootElement.classList.add(APP_BAR_CONSTANTS.classes.NO_CENTER);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IAppBarAdapter } from './app-bar-adapter';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\n\nexport interface IAppBarFoundation extends ICustomElementFoundation {\n titleText: string;\n fixed: boolean;\n raised: boolean;\n}\n\n/**\n * Provides facilities and helper methods for creating an app-bar component.\n */\nexport class AppBarFoundation implements IAppBarFoundation {\n private _titleText: string;\n private _fixed = false;\n private _raised = true;\n private _bottomSlotListener: (evt: Event) => void;\n private _centerSlotListener: (evt: Event) => void;\n\n constructor(private _adapter: IAppBarAdapter) {\n this._bottomSlotListener = evt => this._onBottomSlotChanged(evt);\n this._centerSlotListener = evt => this._onCenterSlotChanged(evt);\n }\n\n public initialize(): void {\n this._adapter.setTitleText(this._titleText);\n this._adapter.addBottomSlotListener(this._bottomSlotListener);\n this._adapter.addCenterSlotListener(this._centerSlotListener);\n this._adapter.setCenterSlotVisibility();\n this._adapter.setRaised(this._raised);\n this._adapter.setFixed(this._fixed);\n }\n\n private _onBottomSlotChanged(evt: Event): void {\n const slotElement = evt.target as HTMLSlotElement;\n if (slotElement.assignedNodes().length) {\n this._adapter.addBottomClass(APP_BAR_CONSTANTS.classes.ROW);\n } else {\n this._adapter.removeBottomClass(APP_BAR_CONSTANTS.classes.ROW);\n }\n }\n\n private _onCenterSlotChanged(evt: Event): void {\n this._adapter.setCenterSlotVisibility();\n }\n\n /** Gets/sets the title text. */\n public get titleText(): string {\n return this._titleText;\n }\n public set titleText(value: string) {\n if (this._titleText !== value) {\n this._titleText = value;\n this._adapter.setTitleText(this._titleText);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.TITLE_TEXT, value);\n }\n }\n \n /** Gets/sets the fixed state. */\n public get fixed(): boolean {\n return this._fixed;\n }\n public set fixed(value: boolean) {\n if (this._fixed !== value) {\n this._fixed = value;\n this._adapter.setFixed(this._fixed);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.FIXED, this._fixed.toString());\n }\n }\n\n public get raised(): boolean {\n return this._raised;\n }\n public set raised(value: boolean) {\n if (this._raised !== value) {\n this._raised = value;\n this._adapter.setRaised(value);\n this._adapter.setHostAttribute(APP_BAR_CONSTANTS.attributes.RAISED, this._raised.toString());\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { AppBarAdapter } from './app-bar-adapter';\nimport { AppBarFoundation } from './app-bar-foundation';\nimport { APP_BAR_CONSTANTS } from './app-bar-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><header class=\\\"forge-app-bar\\\" part=\\\"root\\\"><div class=\\\"forge-app-bar__row\\\" part=\\\"row\\\"><section class=\\\"forge-app-bar__section forge-app-bar__section--align-start\\\" part=\\\"section-start\\\"><slot name=\\\"start\\\"></slot><slot name=\\\"logo\\\"></slot><slot name=\\\"title\\\"><h1 class=\\\"forge-app-bar__title\\\" part=\\\"title\\\"></h1></slot></section><section id=\\\"center-section\\\" class=\\\"forge-app-bar__section forge-app-bar__section--align-center\\\" part=\\\"section-center\\\"><slot name=\\\"center\\\"></slot></section><section class=\\\"forge-app-bar__section forge-app-bar__section--align-end\\\" part=\\\"section-end\\\"><slot name=\\\"end\\\"></slot></section></div><div class=\\\"forge-app-bar__bottom\\\" part=\\\"bottom\\\"><slot name=\\\"bottom\\\"></slot></div></header></template>';\nconst styles = '.forge-app-bar{color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);background-color:#283593;background-color:var(--forge-app-bar-theme-background,#283593);z-index:4;z-index:var(--forge-z-index-header,4);background-size:cover;background-position:center;display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar__row{display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:56px}.forge-app-bar--no-center .forge-app-bar__row{grid-template-columns:1fr auto}.forge-app-bar__section{display:-webkit-inline-box;display:inline-flex;-webkit-box-flex:1;flex:1 1 auto;-webkit-box-align:center;align-items:center;min-width:0;padding:0 4px;height:56px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-app-bar__section--align-start{-webkit-box-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:0;order:-1;grid-column:1}.forge-app-bar__section--align-center{grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.forge-app-bar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;-webkit-box-ordinal-group:2;order:1;grid-column:3}.forge-app-bar--no-center .forge-app-bar__section--align-end{grid-column:2}.forge-app-bar ::slotted([slot=logo]){color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;margin:0 8px;font-size:3rem;overflow:visible}.forge-app-bar ::slotted([slot=profile]){margin-left:4px}.forge-app-bar ::slotted([slot=title]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar slot[name=user-action]{display:-webkit-inline-box;display:inline-flex;margin-right:24px}.forge-app-bar__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar__title--interactable:hover{background-color:rgba(255,255,255,.12);border-radius:4px;cursor:pointer}.forge-app-bar__title--interactable:active{background-color:rgba(255,255,255,.24)}.forge-app-bar__bottom{padding:0 4px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;height:auto!important;overflow:hidden;grid-row:2}.forge-app-bar--fixed{-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar--raised{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}:host{z-index:4;z-index:var(--forge-z-index-header,4);position:relative;display:block;contain:layout style;--mdc-theme-text-secondary-on-background:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-secondary-on-light:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-disabled-on-background:var(--forge-app-bar-theme-disabled-on-background, rgba(255, 255, 255, 0.38));--mdc-theme-text-disabled-on-light:var(--forge-app-bar-theme-disabled-on-light, rgba(255, 255, 255, 0.12))}:host ::slotted(:not(forge-button)){--mdc-theme-on-primary:var(--forge-app-bar-theme-on-background, #ffffff);--mdc-theme-on-surface:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-tab-bar){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-button:not([type])),:host ::slotted(forge-button[type=outlined]){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, rgba(255, 255, 255, 0.87))}:host([hidden]){display:none}:host([theme=white]){--forge-app-bar-theme-background:#ffffff;--forge-app-bar-theme-on-background:rgba(0, 0, 0, 0.87);--forge-app-bar-theme-secondary-on-background:rgba(0, 0, 0, 0.54);--forge-app-bar-theme-disabled-on-background:rgba(0, 0, 0, 0.38);--forge-app-bar-theme-disabled-on-light:rgba(0, 0, 0, 0.12)}';\n\nexport interface IAppBarComponent extends IBaseComponent {\n titleText: string;\n fixed: boolean;\n raised: boolean;\n theme: string | null;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-app-bar': IAppBarComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-app-bar>` custom element.\n * \n * @tag forge-app-bar\n */\n@CustomElement({\n name: APP_BAR_CONSTANTS.elementName\n})\nexport class AppBarComponent extends BaseComponent implements IAppBarComponent {\n public static get observedAttributes(): string[] {\n return [\n APP_BAR_CONSTANTS.attributes.TITLE_TEXT,\n APP_BAR_CONSTANTS.attributes.FIXED,\n APP_BAR_CONSTANTS.attributes.RAISED\n ];\n }\n\n private _foundation: AppBarFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new AppBarFoundation(new AppBarAdapter(this));\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case APP_BAR_CONSTANTS.attributes.TITLE_TEXT:\n this.titleText = newValue;\n break;\n case APP_BAR_CONSTANTS.attributes.FIXED:\n this.fixed = coerceBoolean(newValue);\n break;\n case APP_BAR_CONSTANTS.attributes.RAISED:\n this.raised = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the title text. */\n @FoundationProperty()\n public titleText: string;\n\n /** Gets/sets the fixed variant. */\n @FoundationProperty()\n public fixed: boolean;\n\n /** Gets/sets the raised state. */\n @FoundationProperty()\n public raised: boolean;\n\n /** Convenience property to allow for easily getting/setting the theme color from JavaScript. */\n public get theme(): string | null {\n return this.getAttribute(APP_BAR_CONSTANTS.attributes.THEME) || null;\n }\n public set theme(value: string | null) {\n if (value) {\n this.setAttribute(APP_BAR_CONSTANTS.attributes.THEME, value);\n } else {\n this.removeAttribute(APP_BAR_CONSTANTS.attributes.THEME);\n }\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { AppBarComponent } from './app-bar';\n\nexport * from './app-bar-adapter';\nexport * from './app-bar-constants';\nexport * from './app-bar-foundation';\nexport * from './app-bar';\nexport * from './search';\nexport * from './menu-button';\nexport * from './notification-button';\nexport * from './help-button';\nexport * from '../profile-card';\nexport * from './profile-button';\n\nexport function defineAppBarComponent(): void {\n defineCustomElement(AppBarComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -5,37 +5,37 @@
5
5
  */
6
6
  import {
7
7
  ScaffoldComponent
8
- } from "./chunk.WXFCZJJI.js";
8
+ } from "./chunk.3EHQ3YHJ.js";
9
9
  import {
10
10
  BASE_SELECT_CONSTANTS,
11
11
  BaseSelectAdapter,
12
12
  BaseSelectComponent,
13
13
  BaseSelectFoundation
14
- } from "./chunk.5VNEDRVC.js";
14
+ } from "./chunk.J5NUYQ4D.js";
15
15
  import {
16
16
  OptionGroupComponent
17
- } from "./chunk.P7NOYP4O.js";
17
+ } from "./chunk.WDD2GTIH.js";
18
18
  import {
19
19
  OptionComponent
20
- } from "./chunk.Y2TDQIA4.js";
20
+ } from "./chunk.RD4RIFOZ.js";
21
21
  import {
22
22
  ListComponent
23
- } from "./chunk.4UKSUUTX.js";
23
+ } from "./chunk.5U6ZT6MC.js";
24
24
  import {
25
25
  ListItemComponent
26
- } from "./chunk.G6FY472A.js";
26
+ } from "./chunk.GWNR3UUX.js";
27
27
  import {
28
28
  CircularProgressComponent
29
- } from "./chunk.EKIW7VYG.js";
29
+ } from "./chunk.ZXIDTDRC.js";
30
30
  import {
31
31
  ToolbarComponent
32
- } from "./chunk.YJ5X3WZ4.js";
32
+ } from "./chunk.HASAPJMX.js";
33
33
  import {
34
34
  PopupComponent
35
- } from "./chunk.5EEEKOOK.js";
35
+ } from "./chunk.DLF5JAQO.js";
36
36
  import {
37
37
  IconButtonComponent
38
- } from "./chunk.UM3J4AZ7.js";
38
+ } from "./chunk.EBC2HGO3.js";
39
39
  import {
40
40
  FoundationProperty
41
41
  } from "./chunk.MMIZOYAS.js";
@@ -347,4 +347,4 @@ export {
347
347
  SelectDropdownComponent,
348
348
  defineSelectDropdownComponent
349
349
  };
350
- //# sourceMappingURL=chunk.FF2RETWV.js.map
350
+ //# sourceMappingURL=chunk.ZLF2G3YT.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/select/select-dropdown/select-dropdown-constants.ts", "../../src/select/select-dropdown/select-dropdown-foundation.ts", "../../src/select/select-dropdown/select-dropdown-adapter.ts", "../../src/select/select-dropdown/select-dropdown.ts", "../../src/select/select-dropdown/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}select-dropdown`;\r\n\r\nconst observedAttributes = {\r\n TARGET: 'target',\r\n SELECTED_TEXT_TARGET: 'selected-text-target',\r\n SYNC_SELECTED_TEXT: 'sync-selected-text'\r\n};\r\n\r\nconst attributes = {\r\n ...observedAttributes\r\n};\r\n\r\nconst events = {\r\n SCROLLED_BOTTOM: `${elementName}-scrolled-bottom`\r\n};\r\n\r\nexport const SELECT_DROPDOWN_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n events\r\n};\r\n", "import { ISelectDropdownAdapter } from './select-dropdown-adapter';\r\nimport { BaseSelectFoundation, IBaseSelectFoundation } from '../core/base-select-foundation';\r\nimport { SELECT_DROPDOWN_CONSTANTS } from './select-dropdown-constants';\r\n\r\nexport interface ISelectDropdownFoundation extends IBaseSelectFoundation {\r\n target: string;\r\n selectedTextTarget: string;\r\n syncSelectedText: boolean;\r\n}\r\n\r\nexport class SelectDropdownFoundation extends BaseSelectFoundation<ISelectDropdownAdapter> implements ISelectDropdownFoundation {\r\n private _target: string;\r\n private _selectedTextTarget: string;\r\n private _syncSelectedText = false;\r\n private _originalTargetText = '';\r\n private _targetDisconnectedListener: () => void;\r\n private _targetDisconnectedDestructor: () => void;\r\n\r\n constructor(adapter: ISelectDropdownAdapter) {\r\n super(adapter);\r\n this._targetDisconnectedListener = () => this._onTargetDisconnected();\r\n }\r\n\r\n public initialize(): void {\r\n this._tryAttach();\r\n super.initialize();\r\n }\r\n\r\n public disconnect(): void {\r\n super.disconnect();\r\n if (this._adapter.isAttached()) {\r\n this._detach();\r\n }\r\n }\r\n\r\n protected _onDropdownScrollEnd(): void {\r\n this._adapter.emitHostEvent(SELECT_DROPDOWN_CONSTANTS.events.SCROLLED_BOTTOM);\r\n }\r\n\r\n protected _applyValue(value: string | string[]): void {\r\n super._applyValue(value);\r\n this._applySelection();\r\n }\r\n\r\n protected _applySelection(): void {\r\n super._applySelection();\r\n if (this._syncSelectedText || typeof this._selectedTextBuilder === 'function') {\r\n let text = this._getSelectedText();\r\n if (!text) {\r\n text = this._originalTargetText;\r\n }\r\n this._adapter.setTargetText(text || '', this._selectedTextTarget);\r\n }\r\n }\r\n\r\n private _tryAttach(): void {\r\n this._adapter.attach(this._target);\r\n if (this._adapter.isAttached()) {\r\n this._targetDisconnectedDestructor = this._adapter.setTargetDisconnectedListener(this._targetDisconnectedListener);\r\n this._originalTargetText = this._adapter.getTargetText(this._selectedTextTarget);\r\n this.initializeTarget();\r\n }\r\n }\r\n\r\n private _detach(): void {\r\n this._adapter.detach();\r\n if (this._targetDisconnectedDestructor) {\r\n this._targetDisconnectedDestructor();\r\n this._targetDisconnectedDestructor = undefined as any;\r\n }\r\n }\r\n\r\n private _onTargetDisconnected(): void {\r\n this._adapter.detach();\r\n }\r\n\r\n public get target(): string {\r\n return this._target;\r\n }\r\n public set target(value: string) {\r\n if (this._target !== value) {\r\n this._target = value;\r\n if (this._adapter.isAttached()) {\r\n this._detach();\r\n }\r\n this._tryAttach();\r\n }\r\n }\r\n\r\n public get selectedTextTarget(): string {\r\n return this._selectedTextTarget;\r\n }\r\n public set selectedTextTarget(value: string) {\r\n if (this._selectedTextTarget !== value) {\r\n this._selectedTextTarget = value;\r\n }\r\n }\r\n\r\n public get syncSelectedText(): boolean {\r\n return this._syncSelectedText;\r\n }\r\n public set syncSelectedText(value: boolean) {\r\n if (this._syncSelectedText !== value) {\r\n this._syncSelectedText = value;\r\n }\r\n }\r\n}\r\n", "import { ISelectDropdownComponent } from './select-dropdown';\r\nimport { BaseSelectAdapter, IBaseSelectAdapter } from '../core/base-select-adapter';\r\nimport { IListDropdownConfig } from '../../list-dropdown/list-dropdown-constants';\r\n\r\nexport interface ISelectDropdownAdapter extends IBaseSelectAdapter {\r\n attach(selector: string): void;\r\n detach(): void;\r\n setTargetDisconnectedListener(cb: () => void): () => void;\r\n isAttached(): boolean;\r\n setTargetText(text: string, selector: string): void;\r\n getTargetText(selector: string): string;\r\n}\r\n\r\nexport class SelectDropdownAdapter extends BaseSelectAdapter implements ISelectDropdownAdapter {\r\n constructor(component: ISelectDropdownComponent) {\r\n super(component);\r\n }\r\n\r\n public initializeAccessibility(): void {\r\n this._targetElement.setAttribute('role', 'listbox');\r\n this._targetElement.setAttribute('aria-live', 'polite');\r\n this._targetElement.setAttribute('aria-haspopup', 'true');\r\n this._targetElement.setAttribute('aria-expanded', 'false');\r\n }\r\n\r\n public addClickListener(listener: (evt: Event) => void): void {\r\n this._targetElement.addEventListener('click', listener);\r\n }\r\n\r\n public removeClickListener(listener: (evt: Event) => void): void {\r\n if (this._targetElement) {\r\n this._targetElement.removeEventListener('click', listener);\r\n }\r\n }\r\n\r\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\r\n let passive: boolean | undefined;\r\n let capture: boolean | undefined;\r\n \r\n if (type === 'keydown') {\r\n // We don't use a passive keydown listener because we are preventing default in this event and Angular doesn't like that\r\n // We need to use capturing to ensure that we get to this event before zone.js does\r\n passive = false;\r\n capture = true;\r\n }\r\n\r\n this._targetElement.addEventListener(type, listener, { passive, capture });\r\n }\r\n\r\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\r\n if (this._targetElement) {\r\n this._targetElement.removeEventListener(type, listener);\r\n }\r\n }\r\n\r\n public updateActiveDescendant(id: string): void {\r\n if (id) {\r\n this._targetElement.setAttribute('aria-activedescendant', id);\r\n } else {\r\n this._targetElement.removeAttribute('aria-activedescendant');\r\n }\r\n }\r\n\r\n public open(config: IListDropdownConfig): void {\r\n super.open(config);\r\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\r\n this._targetElement.setAttribute('aria-expanded', 'true');\r\n }\r\n\r\n public close(): void {\r\n this._targetElement.setAttribute('aria-expanded', 'false');\r\n this._targetElement.removeAttribute('aria-activedescendant');\r\n this._targetElement.removeAttribute('aria-controls');\r\n super.close();\r\n }\r\n\r\n public attach(selector: string): void {\r\n const rootNode = this._component.getRootNode() as ShadowRoot || HTMLDocument;\r\n const doc = rootNode || this._component.ownerDocument || document;\r\n const element = doc.querySelector(selector) as HTMLElement;\r\n if (element) {\r\n this._targetElement = element;\r\n }\r\n }\r\n\r\n public detach(): void {\r\n this._targetElement = undefined as any;\r\n }\r\n\r\n public setMultiple(multiple: boolean): void {\r\n if (!this._targetElement) {\r\n return;\r\n }\r\n if (multiple) {\r\n this._targetElement.setAttribute('aria-multiselectable', 'true');\r\n } else {\r\n this._targetElement.removeAttribute('aria-multiselectable');\r\n }\r\n }\r\n\r\n public setTargetDisconnectedListener(cb: () => void): () => void {\r\n if (!this._targetElement || !this._targetElement.parentElement) {\r\n return () => {};\r\n }\r\n const observer = new MutationObserver(mutations => {\r\n const isTargetRemoved = mutations.some(mutation => {\r\n return Array.from(mutation.removedNodes).some(node => node === this._targetElement);\r\n });\r\n if (isTargetRemoved) {\r\n observer.disconnect();\r\n cb();\r\n }\r\n });\r\n observer.observe(this._targetElement.parentElement, { childList: true });\r\n return () => observer.disconnect();\r\n }\r\n\r\n public isAttached(): boolean {\r\n return !!this._targetElement;\r\n }\r\n\r\n public setTargetText(text: string, selector: string): void {\r\n let target: Element = this._targetElement;\r\n if (selector) {\r\n const element = this._getElementBySelector(selector);\r\n if (element) {\r\n target = element;\r\n }\r\n }\r\n if (target) {\r\n target.textContent = text;\r\n }\r\n }\r\n\r\n public getTargetText(selector: string): string {\r\n const element = selector ? this._getElementBySelector(selector) : this._targetElement;\r\n return element ? element.innerText : '';\r\n }\r\n\r\n private _getElementBySelector(selector: string): HTMLElement | null {\r\n return this._targetElement.querySelector(selector) || this._getRootNode().querySelector(selector);\r\n }\r\n\r\n private _getRootNode(): ShadowRoot | HTMLDocument {\r\n return (this._component.getRootNode() as ShadowRoot | HTMLDocument) || this._component.ownerDocument || document;\r\n }\r\n}\r\n", "import { CustomElement, FoundationProperty, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';\r\n\r\nimport { SelectDropdownFoundation } from './select-dropdown-foundation';\r\nimport { SELECT_DROPDOWN_CONSTANTS } from './select-dropdown-constants';\r\nimport { IBaseSelectComponent, BaseSelectComponent } from '../core/base-select';\r\nimport { BASE_SELECT_CONSTANTS } from '../core/base-select-constants';\r\nimport { SelectDropdownAdapter } from './select-dropdown-adapter';\r\nimport { OptionComponent } from '../option';\r\nimport { OptionGroupComponent } from '../option-group';\r\nimport { PopupComponent } from '../../popup';\r\nimport { ListComponent, ListItemComponent } from '../../list';\r\nimport { CircularProgressComponent } from '../../circular-progress';\r\nimport { ScaffoldComponent } from '../../scaffold';\r\nimport { ToolbarComponent } from '../../toolbar';\r\nimport { IconButtonComponent } from '../../icon-button';\r\n\r\nconst template = '<template></template>';\r\nconst styles = ':host{display:none}';\r\n\r\nexport interface ISelectDropdownComponent extends IBaseSelectComponent {\r\n target: string;\r\n selectedTextTarget: string;\r\n syncSelectedText: boolean;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-select-dropdown': ISelectDropdownComponent;\r\n }\r\n\r\n interface HTMLElementEventMap {\r\n 'forge-select-dropdown-scrolled-bottom': CustomEvent<void>;\r\n }\r\n}\r\n\r\n@CustomElement({\r\n name: SELECT_DROPDOWN_CONSTANTS.elementName,\r\n dependencies: [\r\n OptionComponent,\r\n OptionGroupComponent,\r\n PopupComponent,\r\n ListComponent,\r\n ListItemComponent,\r\n CircularProgressComponent,\r\n ScaffoldComponent,\r\n ToolbarComponent,\r\n IconButtonComponent\r\n ]\r\n})\r\nexport class SelectDropdownComponent extends BaseSelectComponent<SelectDropdownFoundation> implements ISelectDropdownComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n SELECT_DROPDOWN_CONSTANTS.attributes.TARGET,\r\n SELECT_DROPDOWN_CONSTANTS.attributes.SELECTED_TEXT_TARGET,\r\n SELECT_DROPDOWN_CONSTANTS.attributes.SYNC_SELECTED_TEXT,\r\n BASE_SELECT_CONSTANTS.attributes.VALUE,\r\n BASE_SELECT_CONSTANTS.attributes.MULTIPLE,\r\n BASE_SELECT_CONSTANTS.attributes.OBSERVE_SCROLL,\r\n BASE_SELECT_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,\r\n BASE_SELECT_CONSTANTS.attributes.POPUP_CLASSES,\r\n BASE_SELECT_CONSTANTS.attributes.OPTION_LIMIT,\r\n BASE_SELECT_CONSTANTS.attributes.SYNC_POPUP_WIDTH\r\n ];\r\n }\r\n\r\n constructor() {\r\n super();\r\n attachShadowTemplate(this, template, styles);\r\n this._foundation = new SelectDropdownFoundation(new SelectDropdownAdapter(this));\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.TARGET:\r\n this.target = newValue;\r\n return;\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.SELECTED_TEXT_TARGET:\r\n this.selectedTextTarget = newValue;\r\n return;\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.SYNC_SELECTED_TEXT:\r\n this.syncSelectedText = coerceBoolean(newValue);\r\n return;\r\n }\r\n super.attributeChangedCallback(name, oldValue, newValue);\r\n }\r\n\r\n /** Sets the target element CSS selector */\r\n @FoundationProperty()\r\n public target: string;\r\n\r\n /** Sets the selected text element CSS selector */\r\n @FoundationProperty()\r\n public selectedTextTarget: string;\r\n\r\n /** Controls whether the selected text is synchronized to the target elements' text content. Default is false. */\r\n @FoundationProperty()\r\n public syncSelectedText: boolean;\r\n}\r\n", "import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { SelectDropdownComponent } from './select-dropdown';\r\n\r\nexport * from './select-dropdown-adapter';\r\nexport * from './select-dropdown-constants';\r\nexport * from './select-dropdown-foundation';\r\nexport * from './select-dropdown';\r\n\r\nexport function defineSelectDropdownComponent(): void {\r\n defineCustomElement(SelectDropdownComponent);\r\n}\r\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}select-dropdown`;\r\n\r\nconst observedAttributes = {\r\n TARGET: 'target',\r\n SELECTED_TEXT_TARGET: 'selected-text-target',\r\n SYNC_SELECTED_TEXT: 'sync-selected-text'\r\n};\r\n\r\nconst attributes = {\r\n ...observedAttributes\r\n};\r\n\r\nconst events = {\r\n SCROLLED_BOTTOM: `${elementName}-scrolled-bottom`\r\n};\r\n\r\nexport const SELECT_DROPDOWN_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n events\r\n};\r\n", "import { ISelectDropdownAdapter } from './select-dropdown-adapter';\r\nimport { BaseSelectFoundation, IBaseSelectFoundation } from '../core/base-select-foundation';\r\nimport { SELECT_DROPDOWN_CONSTANTS } from './select-dropdown-constants';\r\n\r\nexport interface ISelectDropdownFoundation extends IBaseSelectFoundation {\r\n target: string;\r\n selectedTextTarget: string;\r\n syncSelectedText: boolean;\r\n}\r\n\r\nexport class SelectDropdownFoundation extends BaseSelectFoundation<ISelectDropdownAdapter> implements ISelectDropdownFoundation {\r\n private _target: string;\r\n private _selectedTextTarget: string;\r\n private _syncSelectedText = false;\r\n private _originalTargetText = '';\r\n private _targetDisconnectedListener: () => void;\r\n private _targetDisconnectedDestructor: () => void;\r\n\r\n constructor(adapter: ISelectDropdownAdapter) {\r\n super(adapter);\r\n this._targetDisconnectedListener = () => this._onTargetDisconnected();\r\n }\r\n\r\n public initialize(): void {\r\n this._tryAttach();\r\n super.initialize();\r\n }\r\n\r\n public disconnect(): void {\r\n super.disconnect();\r\n if (this._adapter.isAttached()) {\r\n this._detach();\r\n }\r\n }\r\n\r\n protected _onDropdownScrollEnd(): void {\r\n this._adapter.emitHostEvent(SELECT_DROPDOWN_CONSTANTS.events.SCROLLED_BOTTOM);\r\n }\r\n\r\n protected _applyValue(value: string | string[]): void {\r\n super._applyValue(value);\r\n this._applySelection();\r\n }\r\n\r\n protected _applySelection(): void {\r\n super._applySelection();\r\n if (this._syncSelectedText || typeof this._selectedTextBuilder === 'function') {\r\n let text = this._getSelectedText();\r\n if (!text) {\r\n text = this._originalTargetText;\r\n }\r\n this._adapter.setTargetText(text || '', this._selectedTextTarget);\r\n }\r\n }\r\n\r\n private _tryAttach(): void {\r\n this._adapter.attach(this._target);\r\n if (this._adapter.isAttached()) {\r\n this._targetDisconnectedDestructor = this._adapter.setTargetDisconnectedListener(this._targetDisconnectedListener);\r\n this._originalTargetText = this._adapter.getTargetText(this._selectedTextTarget);\r\n this.initializeTarget();\r\n }\r\n }\r\n\r\n private _detach(): void {\r\n this._adapter.detach();\r\n if (this._targetDisconnectedDestructor) {\r\n this._targetDisconnectedDestructor();\r\n this._targetDisconnectedDestructor = undefined as any;\r\n }\r\n }\r\n\r\n private _onTargetDisconnected(): void {\r\n this._adapter.detach();\r\n }\r\n\r\n public get target(): string {\r\n return this._target;\r\n }\r\n public set target(value: string) {\r\n if (this._target !== value) {\r\n this._target = value;\r\n if (this._adapter.isAttached()) {\r\n this._detach();\r\n }\r\n this._tryAttach();\r\n }\r\n }\r\n\r\n public get selectedTextTarget(): string {\r\n return this._selectedTextTarget;\r\n }\r\n public set selectedTextTarget(value: string) {\r\n if (this._selectedTextTarget !== value) {\r\n this._selectedTextTarget = value;\r\n }\r\n }\r\n\r\n public get syncSelectedText(): boolean {\r\n return this._syncSelectedText;\r\n }\r\n public set syncSelectedText(value: boolean) {\r\n if (this._syncSelectedText !== value) {\r\n this._syncSelectedText = value;\r\n }\r\n }\r\n}\r\n", "import { ISelectDropdownComponent } from './select-dropdown';\r\nimport { BaseSelectAdapter, IBaseSelectAdapter } from '../core/base-select-adapter';\r\nimport { IListDropdownConfig } from '../../list-dropdown/list-dropdown-constants';\r\n\r\nexport interface ISelectDropdownAdapter extends IBaseSelectAdapter {\r\n attach(selector: string): void;\r\n detach(): void;\r\n setTargetDisconnectedListener(cb: () => void): () => void;\r\n isAttached(): boolean;\r\n setTargetText(text: string, selector: string): void;\r\n getTargetText(selector: string): string;\r\n}\r\n\r\nexport class SelectDropdownAdapter extends BaseSelectAdapter implements ISelectDropdownAdapter {\r\n constructor(component: ISelectDropdownComponent) {\r\n super(component);\r\n }\r\n\r\n public initializeAccessibility(): void {\r\n this._targetElement.setAttribute('role', 'listbox');\r\n this._targetElement.setAttribute('aria-live', 'polite');\r\n this._targetElement.setAttribute('aria-haspopup', 'true');\r\n this._targetElement.setAttribute('aria-expanded', 'false');\r\n }\r\n\r\n public addClickListener(listener: (evt: Event) => void): void {\r\n this._targetElement.addEventListener('click', listener);\r\n }\r\n\r\n public removeClickListener(listener: (evt: Event) => void): void {\r\n if (this._targetElement) {\r\n this._targetElement.removeEventListener('click', listener);\r\n }\r\n }\r\n\r\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\r\n let passive: boolean | undefined;\r\n let capture: boolean | undefined;\r\n \r\n if (type === 'keydown') {\r\n // We don't use a passive keydown listener because we are preventing default in this event and Angular doesn't like that\r\n // We need to use capturing to ensure that we get to this event before zone.js does\r\n passive = false;\r\n capture = true;\r\n }\r\n\r\n this._targetElement.addEventListener(type, listener, { passive, capture });\r\n }\r\n\r\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\r\n if (this._targetElement) {\r\n this._targetElement.removeEventListener(type, listener);\r\n }\r\n }\r\n\r\n public updateActiveDescendant(id: string): void {\r\n if (id) {\r\n this._targetElement.setAttribute('aria-activedescendant', id);\r\n } else {\r\n this._targetElement.removeAttribute('aria-activedescendant');\r\n }\r\n }\r\n\r\n public open(config: IListDropdownConfig): void {\r\n super.open(config);\r\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\r\n this._targetElement.setAttribute('aria-expanded', 'true');\r\n }\r\n\r\n public close(): void {\r\n this._targetElement.setAttribute('aria-expanded', 'false');\r\n this._targetElement.removeAttribute('aria-activedescendant');\r\n this._targetElement.removeAttribute('aria-controls');\r\n super.close();\r\n }\r\n\r\n public attach(selector: string): void {\r\n const rootNode = this._component.getRootNode() as ShadowRoot || HTMLDocument;\r\n const doc = rootNode || this._component.ownerDocument || document;\r\n const element = doc.querySelector(selector) as HTMLElement;\r\n if (element) {\r\n this._targetElement = element;\r\n }\r\n }\r\n\r\n public detach(): void {\r\n this._targetElement = undefined as any;\r\n }\r\n\r\n public setMultiple(multiple: boolean): void {\r\n if (!this._targetElement) {\r\n return;\r\n }\r\n if (multiple) {\r\n this._targetElement.setAttribute('aria-multiselectable', 'true');\r\n } else {\r\n this._targetElement.removeAttribute('aria-multiselectable');\r\n }\r\n }\r\n\r\n public setTargetDisconnectedListener(cb: () => void): () => void {\r\n if (!this._targetElement || !this._targetElement.parentElement) {\r\n return () => {};\r\n }\r\n const observer = new MutationObserver(mutations => {\r\n const isTargetRemoved = mutations.some(mutation => {\r\n return Array.from(mutation.removedNodes).some(node => node === this._targetElement);\r\n });\r\n if (isTargetRemoved) {\r\n observer.disconnect();\r\n cb();\r\n }\r\n });\r\n observer.observe(this._targetElement.parentElement, { childList: true });\r\n return () => observer.disconnect();\r\n }\r\n\r\n public isAttached(): boolean {\r\n return !!this._targetElement;\r\n }\r\n\r\n public setTargetText(text: string, selector: string): void {\r\n let target: Element = this._targetElement;\r\n if (selector) {\r\n const element = this._getElementBySelector(selector);\r\n if (element) {\r\n target = element;\r\n }\r\n }\r\n if (target) {\r\n target.textContent = text;\r\n }\r\n }\r\n\r\n public getTargetText(selector: string): string {\r\n const element = selector ? this._getElementBySelector(selector) : this._targetElement;\r\n return element ? element.innerText : '';\r\n }\r\n\r\n private _getElementBySelector(selector: string): HTMLElement | null {\r\n return this._targetElement.querySelector(selector) || this._getRootNode().querySelector(selector);\r\n }\r\n\r\n private _getRootNode(): ShadowRoot | HTMLDocument {\r\n return (this._component.getRootNode() as ShadowRoot | HTMLDocument) || this._component.ownerDocument || document;\r\n }\r\n}\r\n", "import { CustomElement, FoundationProperty, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';\r\n\r\nimport { SelectDropdownFoundation } from './select-dropdown-foundation';\r\nimport { SELECT_DROPDOWN_CONSTANTS } from './select-dropdown-constants';\r\nimport { IBaseSelectComponent, BaseSelectComponent } from '../core/base-select';\r\nimport { BASE_SELECT_CONSTANTS } from '../core/base-select-constants';\r\nimport { SelectDropdownAdapter } from './select-dropdown-adapter';\r\nimport { OptionComponent } from '../option';\r\nimport { OptionGroupComponent } from '../option-group';\r\nimport { PopupComponent } from '../../popup';\r\nimport { ListComponent, ListItemComponent } from '../../list';\r\nimport { CircularProgressComponent } from '../../circular-progress';\r\nimport { ScaffoldComponent } from '../../scaffold';\r\nimport { ToolbarComponent } from '../../toolbar';\r\nimport { IconButtonComponent } from '../../icon-button';\r\n\r\nconst template = '<template></template>';\r\nconst styles = ':host{display:none}';\r\n\r\nexport interface ISelectDropdownComponent extends IBaseSelectComponent {\r\n target: string;\r\n selectedTextTarget: string;\r\n syncSelectedText: boolean;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-select-dropdown': ISelectDropdownComponent;\r\n }\r\n\r\n interface HTMLElementEventMap {\r\n 'forge-select-dropdown-scrolled-bottom': CustomEvent<void>;\r\n }\r\n}\r\n\r\n/**\r\n * The web component class behind the `<forge-select-dropdown>` custom element.\r\n * \r\n * @tag forge-select-dropdown\r\n */\r\n@CustomElement({\r\n name: SELECT_DROPDOWN_CONSTANTS.elementName,\r\n dependencies: [\r\n OptionComponent,\r\n OptionGroupComponent,\r\n PopupComponent,\r\n ListComponent,\r\n ListItemComponent,\r\n CircularProgressComponent,\r\n ScaffoldComponent,\r\n ToolbarComponent,\r\n IconButtonComponent\r\n ]\r\n})\r\nexport class SelectDropdownComponent extends BaseSelectComponent<SelectDropdownFoundation> implements ISelectDropdownComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n SELECT_DROPDOWN_CONSTANTS.attributes.TARGET,\r\n SELECT_DROPDOWN_CONSTANTS.attributes.SELECTED_TEXT_TARGET,\r\n SELECT_DROPDOWN_CONSTANTS.attributes.SYNC_SELECTED_TEXT,\r\n BASE_SELECT_CONSTANTS.attributes.VALUE,\r\n BASE_SELECT_CONSTANTS.attributes.MULTIPLE,\r\n BASE_SELECT_CONSTANTS.attributes.OBSERVE_SCROLL,\r\n BASE_SELECT_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,\r\n BASE_SELECT_CONSTANTS.attributes.POPUP_CLASSES,\r\n BASE_SELECT_CONSTANTS.attributes.OPTION_LIMIT,\r\n BASE_SELECT_CONSTANTS.attributes.SYNC_POPUP_WIDTH\r\n ];\r\n }\r\n\r\n constructor() {\r\n super();\r\n attachShadowTemplate(this, template, styles);\r\n this._foundation = new SelectDropdownFoundation(new SelectDropdownAdapter(this));\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.TARGET:\r\n this.target = newValue;\r\n return;\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.SELECTED_TEXT_TARGET:\r\n this.selectedTextTarget = newValue;\r\n return;\r\n case SELECT_DROPDOWN_CONSTANTS.attributes.SYNC_SELECTED_TEXT:\r\n this.syncSelectedText = coerceBoolean(newValue);\r\n return;\r\n }\r\n super.attributeChangedCallback(name, oldValue, newValue);\r\n }\r\n\r\n /** Sets the target element CSS selector */\r\n @FoundationProperty()\r\n public target: string;\r\n\r\n /** Sets the selected text element CSS selector */\r\n @FoundationProperty()\r\n public selectedTextTarget: string;\r\n\r\n /** Controls whether the selected text is synchronized to the target elements' text content. Default is false. */\r\n @FoundationProperty()\r\n public syncSelectedText: boolean;\r\n}\r\n", "import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { SelectDropdownComponent } from './select-dropdown';\r\n\r\nexport * from './select-dropdown-adapter';\r\nexport * from './select-dropdown-constants';\r\nexport * from './select-dropdown-foundation';\r\nexport * from './select-dropdown';\r\n\r\nexport function defineSelectDropdownComponent(): void {\r\n defineCustomElement(SelectDropdownComponent);\r\n}\r\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -416,4 +416,4 @@ export {
416
416
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
417
417
  * THE SOFTWARE.
418
418
  */
419
- //# sourceMappingURL=chunk.EKIW7VYG.js.map
419
+ //# sourceMappingURL=chunk.ZXIDTDRC.js.map