@tylertech/forge 2.0.0 → 2.1.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 (444) hide show
  1. package/README.md +30 -13
  2. package/dist/esm/accordion/index.js +39 -0
  3. package/dist/esm/accordion/index.js.map +7 -0
  4. package/dist/esm/app-bar/help-button/index.js +58 -0
  5. package/dist/esm/app-bar/help-button/index.js.map +7 -0
  6. package/dist/esm/app-bar/index.js +136 -0
  7. package/dist/esm/app-bar/index.js.map +7 -0
  8. package/dist/esm/app-bar/menu-button/index.js +41 -0
  9. package/dist/esm/app-bar/menu-button/index.js.map +7 -0
  10. package/dist/esm/app-bar/notification-button/index.js +46 -0
  11. package/dist/esm/app-bar/notification-button/index.js.map +7 -0
  12. package/dist/esm/app-bar/profile-button/index.js +51 -0
  13. package/dist/esm/app-bar/profile-button/index.js.map +7 -0
  14. package/dist/esm/app-bar/search/index.js +43 -0
  15. package/dist/esm/app-bar/search/index.js.map +7 -0
  16. package/dist/esm/autocomplete/index.js +77 -0
  17. package/dist/esm/autocomplete/index.js.map +7 -0
  18. package/dist/esm/avatar/index.js +33 -0
  19. package/dist/esm/avatar/index.js.map +7 -0
  20. package/dist/esm/backdrop/index.js +28 -0
  21. package/dist/esm/backdrop/index.js.map +7 -0
  22. package/dist/esm/badge/index.js +31 -0
  23. package/dist/esm/badge/index.js.map +7 -0
  24. package/dist/esm/banner/index.js +45 -0
  25. package/dist/esm/banner/index.js.map +7 -0
  26. package/dist/esm/bottom-sheet/index.js +45 -0
  27. package/dist/esm/bottom-sheet/index.js.map +7 -0
  28. package/dist/esm/busy-indicator/index.js +37 -0
  29. package/dist/esm/busy-indicator/index.js.map +7 -0
  30. package/dist/esm/button/index.js +29 -0
  31. package/dist/esm/button/index.js.map +7 -0
  32. package/dist/esm/button-toggle/button-toggle/index.js +33 -0
  33. package/dist/esm/button-toggle/button-toggle/index.js.map +7 -0
  34. package/dist/esm/button-toggle/button-toggle-group/index.js +32 -0
  35. package/dist/esm/button-toggle/button-toggle-group/index.js.map +7 -0
  36. package/dist/esm/button-toggle/index.js +46 -0
  37. package/dist/esm/button-toggle/index.js.map +7 -0
  38. package/dist/esm/calendar/calendar-dropdown/index.js +35 -0
  39. package/dist/esm/calendar/calendar-dropdown/index.js.map +7 -0
  40. package/dist/esm/calendar/calendar-menu/index.js +48 -0
  41. package/dist/esm/calendar/calendar-menu/index.js.map +7 -0
  42. package/dist/esm/calendar/core/index.js +13 -0
  43. package/dist/esm/calendar/core/index.js.map +7 -0
  44. package/dist/esm/calendar/index.js +199 -0
  45. package/dist/esm/calendar/index.js.map +7 -0
  46. package/dist/esm/card/index.js +22 -0
  47. package/dist/esm/card/index.js.map +7 -0
  48. package/dist/esm/checkbox/index.js +44 -0
  49. package/dist/esm/checkbox/index.js.map +7 -0
  50. package/dist/esm/chip-field/index.js +51 -0
  51. package/dist/esm/chip-field/index.js.map +7 -0
  52. package/dist/esm/chips/chip/index.js +42 -0
  53. package/dist/esm/chips/chip/index.js.map +7 -0
  54. package/dist/esm/chips/chip-set/index.js +42 -0
  55. package/dist/esm/chips/chip-set/index.js.map +7 -0
  56. package/dist/esm/chips/index.js +55 -0
  57. package/dist/esm/chips/index.js.map +7 -0
  58. package/dist/esm/chunks/chunk.2F6PST3N.js +476 -0
  59. package/dist/esm/chunks/chunk.2F6PST3N.js.map +7 -0
  60. package/dist/esm/chunks/chunk.2FXYTBYG.js +1450 -0
  61. package/dist/esm/chunks/chunk.2FXYTBYG.js.map +7 -0
  62. package/dist/esm/chunks/chunk.2LQMHAC7.js +187 -0
  63. package/dist/esm/chunks/chunk.2LQMHAC7.js.map +7 -0
  64. package/dist/esm/chunks/chunk.2LSEVYAC.js +342 -0
  65. package/dist/esm/chunks/chunk.2LSEVYAC.js.map +7 -0
  66. package/dist/esm/chunks/chunk.2NUAEZY7.js +221 -0
  67. package/dist/esm/chunks/chunk.2NUAEZY7.js.map +7 -0
  68. package/dist/esm/chunks/chunk.35U3UPDV.js +70 -0
  69. package/dist/esm/chunks/chunk.35U3UPDV.js.map +7 -0
  70. package/dist/esm/chunks/chunk.3KCCCXWS.js +344 -0
  71. package/dist/esm/chunks/chunk.3KCCCXWS.js.map +7 -0
  72. package/dist/esm/chunks/chunk.3NOZRZ7R.js +145 -0
  73. package/dist/esm/chunks/chunk.3NOZRZ7R.js.map +7 -0
  74. package/dist/esm/chunks/chunk.3ZKORL4I.js +212 -0
  75. package/dist/esm/chunks/chunk.3ZKORL4I.js.map +7 -0
  76. package/dist/esm/chunks/chunk.4BG22DGY.js +317 -0
  77. package/dist/esm/chunks/chunk.4BG22DGY.js.map +7 -0
  78. package/dist/esm/chunks/chunk.4HQ5VELO.js +793 -0
  79. package/dist/esm/chunks/chunk.4HQ5VELO.js.map +7 -0
  80. package/dist/esm/chunks/chunk.4JURZYE4.js +410 -0
  81. package/dist/esm/chunks/chunk.4JURZYE4.js.map +7 -0
  82. package/dist/esm/chunks/chunk.4UKSUUTX.js +296 -0
  83. package/dist/esm/chunks/chunk.4UKSUUTX.js.map +7 -0
  84. package/dist/esm/chunks/chunk.4V5O2CPU.js +417 -0
  85. package/dist/esm/chunks/chunk.4V5O2CPU.js.map +7 -0
  86. package/dist/esm/chunks/chunk.52F6VUCF.js +273 -0
  87. package/dist/esm/chunks/chunk.52F6VUCF.js.map +7 -0
  88. package/dist/esm/chunks/chunk.5EEEKOOK.js +552 -0
  89. package/dist/esm/chunks/chunk.5EEEKOOK.js.map +7 -0
  90. package/dist/esm/chunks/chunk.5NXVVSTU.js +243 -0
  91. package/dist/esm/chunks/chunk.5NXVVSTU.js.map +7 -0
  92. package/dist/esm/chunks/chunk.5VKAVHLM.js +610 -0
  93. package/dist/esm/chunks/chunk.5VKAVHLM.js.map +7 -0
  94. package/dist/esm/chunks/chunk.6KTLOA7V.js +6 -0
  95. package/dist/esm/chunks/chunk.6KTLOA7V.js.map +7 -0
  96. package/dist/esm/chunks/chunk.6V463G4I.js +105 -0
  97. package/dist/esm/chunks/chunk.6V463G4I.js.map +7 -0
  98. package/dist/esm/chunks/chunk.7FC5CPLE.js +603 -0
  99. package/dist/esm/chunks/chunk.7FC5CPLE.js.map +7 -0
  100. package/dist/esm/chunks/chunk.7G2S3DCM.js +458 -0
  101. package/dist/esm/chunks/chunk.7G2S3DCM.js.map +7 -0
  102. package/dist/esm/chunks/chunk.7I2XNJBL.js +593 -0
  103. package/dist/esm/chunks/chunk.7I2XNJBL.js.map +7 -0
  104. package/dist/esm/chunks/chunk.7KILTPJ6.js +72 -0
  105. package/dist/esm/chunks/chunk.7KILTPJ6.js.map +7 -0
  106. package/dist/esm/chunks/chunk.7XGNGXLR.js +648 -0
  107. package/dist/esm/chunks/chunk.7XGNGXLR.js.map +7 -0
  108. package/dist/esm/chunks/chunk.7Y4NHCJH.js +338 -0
  109. package/dist/esm/chunks/chunk.7Y4NHCJH.js.map +7 -0
  110. package/dist/esm/chunks/chunk.AHQ6QX3J.js +716 -0
  111. package/dist/esm/chunks/chunk.AHQ6QX3J.js.map +7 -0
  112. package/dist/esm/chunks/chunk.AYOZGYGO.js +21 -0
  113. package/dist/esm/chunks/chunk.AYOZGYGO.js.map +7 -0
  114. package/dist/esm/chunks/chunk.BKMWXPAS.js +439 -0
  115. package/dist/esm/chunks/chunk.BKMWXPAS.js.map +7 -0
  116. package/dist/esm/chunks/chunk.BOWCSPCH.js +2428 -0
  117. package/dist/esm/chunks/chunk.BOWCSPCH.js.map +7 -0
  118. package/dist/esm/chunks/chunk.BYN27JXZ.js +51 -0
  119. package/dist/esm/chunks/chunk.BYN27JXZ.js.map +7 -0
  120. package/dist/esm/chunks/chunk.BZPQIDQP.js +602 -0
  121. package/dist/esm/chunks/chunk.BZPQIDQP.js.map +7 -0
  122. package/dist/esm/chunks/chunk.C2MR3RDF.js +202 -0
  123. package/dist/esm/chunks/chunk.C2MR3RDF.js.map +7 -0
  124. package/dist/esm/chunks/chunk.C64YUJHS.js +55 -0
  125. package/dist/esm/chunks/chunk.C64YUJHS.js.map +7 -0
  126. package/dist/esm/chunks/chunk.CGHKW6S6.js +683 -0
  127. package/dist/esm/chunks/chunk.CGHKW6S6.js.map +7 -0
  128. package/dist/esm/chunks/chunk.CKS5A4YN.js +6 -0
  129. package/dist/esm/chunks/chunk.CKS5A4YN.js.map +7 -0
  130. package/dist/esm/chunks/chunk.COF6DD6T.js +293 -0
  131. package/dist/esm/chunks/chunk.COF6DD6T.js.map +7 -0
  132. package/dist/esm/chunks/chunk.D4XU5MZN.js +1203 -0
  133. package/dist/esm/chunks/chunk.D4XU5MZN.js.map +7 -0
  134. package/dist/esm/chunks/chunk.D5DMZ7ZG.js +350 -0
  135. package/dist/esm/chunks/chunk.D5DMZ7ZG.js.map +7 -0
  136. package/dist/esm/chunks/chunk.DB7ZQBES.js +244 -0
  137. package/dist/esm/chunks/chunk.DB7ZQBES.js.map +7 -0
  138. package/dist/esm/chunks/chunk.E4NCI7MS.js +6 -0
  139. package/dist/esm/chunks/chunk.E4NCI7MS.js.map +7 -0
  140. package/dist/esm/chunks/chunk.EA7XMXI5.js +200 -0
  141. package/dist/esm/chunks/chunk.EA7XMXI5.js.map +7 -0
  142. package/dist/esm/chunks/chunk.EARNUKJ2.js +401 -0
  143. package/dist/esm/chunks/chunk.EARNUKJ2.js.map +7 -0
  144. package/dist/esm/chunks/chunk.EKIW7VYG.js +419 -0
  145. package/dist/esm/chunks/chunk.EKIW7VYG.js.map +7 -0
  146. package/dist/esm/chunks/chunk.EL6B2ODN.js +52 -0
  147. package/dist/esm/chunks/chunk.EL6B2ODN.js.map +7 -0
  148. package/dist/esm/chunks/chunk.ETP6HSXO.js +513 -0
  149. package/dist/esm/chunks/chunk.ETP6HSXO.js.map +7 -0
  150. package/dist/esm/chunks/chunk.ETQIBLKP.js +978 -0
  151. package/dist/esm/chunks/chunk.ETQIBLKP.js.map +7 -0
  152. package/dist/esm/chunks/chunk.EWQENJ4W.js +505 -0
  153. package/dist/esm/chunks/chunk.EWQENJ4W.js.map +7 -0
  154. package/dist/esm/chunks/chunk.EY57VTRF.js +33 -0
  155. package/dist/esm/chunks/chunk.EY57VTRF.js.map +7 -0
  156. package/dist/esm/chunks/chunk.FBUQQD2T.js +732 -0
  157. package/dist/esm/chunks/chunk.FBUQQD2T.js.map +7 -0
  158. package/dist/esm/chunks/chunk.FMMPWQKC.js +439 -0
  159. package/dist/esm/chunks/chunk.FMMPWQKC.js.map +7 -0
  160. package/dist/esm/chunks/chunk.FWJ7SIFA.js +433 -0
  161. package/dist/esm/chunks/chunk.FWJ7SIFA.js.map +7 -0
  162. package/dist/esm/chunks/chunk.FZQCBRPK.js +6 -0
  163. package/dist/esm/chunks/chunk.FZQCBRPK.js.map +7 -0
  164. package/dist/esm/chunks/chunk.G6FY472A.js +658 -0
  165. package/dist/esm/chunks/chunk.G6FY472A.js.map +7 -0
  166. package/dist/esm/chunks/chunk.GS2AXUCN.js +150 -0
  167. package/dist/esm/chunks/chunk.GS2AXUCN.js.map +7 -0
  168. package/dist/esm/chunks/chunk.HHHMDDTU.js +297 -0
  169. package/dist/esm/chunks/chunk.HHHMDDTU.js.map +7 -0
  170. package/dist/esm/chunks/chunk.HZISALRH.js +20 -0
  171. package/dist/esm/chunks/chunk.HZISALRH.js.map +7 -0
  172. package/dist/esm/chunks/chunk.IBH5GL7A.js +258 -0
  173. package/dist/esm/chunks/chunk.IBH5GL7A.js.map +7 -0
  174. package/dist/esm/chunks/chunk.IWXT6VVJ.js +222 -0
  175. package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +7 -0
  176. package/dist/esm/chunks/chunk.J6LOWXOG.js +654 -0
  177. package/dist/esm/chunks/chunk.J6LOWXOG.js.map +7 -0
  178. package/dist/esm/chunks/chunk.JICZQ2BO.js +168 -0
  179. package/dist/esm/chunks/chunk.JICZQ2BO.js.map +7 -0
  180. package/dist/esm/chunks/chunk.JKC5PU23.js +42 -0
  181. package/dist/esm/chunks/chunk.JKC5PU23.js.map +7 -0
  182. package/dist/esm/chunks/chunk.JQQOZMKQ.js +2994 -0
  183. package/dist/esm/chunks/chunk.JQQOZMKQ.js.map +7 -0
  184. package/dist/esm/chunks/chunk.JVQP6BJ3.js +1591 -0
  185. package/dist/esm/chunks/chunk.JVQP6BJ3.js.map +7 -0
  186. package/dist/esm/chunks/chunk.K2PCTUVN.js +139 -0
  187. package/dist/esm/chunks/chunk.K2PCTUVN.js.map +7 -0
  188. package/dist/esm/chunks/chunk.KCK3G74Y.js +634 -0
  189. package/dist/esm/chunks/chunk.KCK3G74Y.js.map +7 -0
  190. package/dist/esm/chunks/chunk.KI3IHPS2.js +801 -0
  191. package/dist/esm/chunks/chunk.KI3IHPS2.js.map +7 -0
  192. package/dist/esm/chunks/chunk.KRW2IAIU.js +445 -0
  193. package/dist/esm/chunks/chunk.KRW2IAIU.js.map +7 -0
  194. package/dist/esm/chunks/chunk.KZ2QNQK2.js +21 -0
  195. package/dist/esm/chunks/chunk.KZ2QNQK2.js.map +7 -0
  196. package/dist/esm/chunks/chunk.KZATVOA6.js +68 -0
  197. package/dist/esm/chunks/chunk.KZATVOA6.js.map +7 -0
  198. package/dist/esm/chunks/chunk.LCWRP2UI.js +59 -0
  199. package/dist/esm/chunks/chunk.LCWRP2UI.js.map +7 -0
  200. package/dist/esm/chunks/chunk.LM5TVNZY.js +71 -0
  201. package/dist/esm/chunks/chunk.LM5TVNZY.js.map +7 -0
  202. package/dist/esm/chunks/chunk.MAGJQ2PP.js +964 -0
  203. package/dist/esm/chunks/chunk.MAGJQ2PP.js.map +7 -0
  204. package/dist/esm/chunks/chunk.MEFT5FQC.js +158 -0
  205. package/dist/esm/chunks/chunk.MEFT5FQC.js.map +7 -0
  206. package/dist/esm/chunks/chunk.MHEJZJT3.js +6 -0
  207. package/dist/esm/chunks/chunk.MHEJZJT3.js.map +7 -0
  208. package/dist/esm/chunks/chunk.MMIZOYAS.js +147 -0
  209. package/dist/esm/chunks/chunk.MMIZOYAS.js.map +7 -0
  210. package/dist/esm/chunks/chunk.MNFGVNDI.js +6 -0
  211. package/dist/esm/chunks/chunk.MNFGVNDI.js.map +7 -0
  212. package/dist/esm/chunks/chunk.NQOD2XB3.js +840 -0
  213. package/dist/esm/chunks/chunk.NQOD2XB3.js.map +7 -0
  214. package/dist/esm/chunks/chunk.NRI7SWVX.js +1347 -0
  215. package/dist/esm/chunks/chunk.NRI7SWVX.js.map +7 -0
  216. package/dist/esm/chunks/chunk.NX5SKZLU.js +50 -0
  217. package/dist/esm/chunks/chunk.NX5SKZLU.js.map +7 -0
  218. package/dist/esm/chunks/chunk.O6UHX6FK.js +463 -0
  219. package/dist/esm/chunks/chunk.O6UHX6FK.js.map +7 -0
  220. package/dist/esm/chunks/chunk.OJI6ZRYW.js +561 -0
  221. package/dist/esm/chunks/chunk.OJI6ZRYW.js.map +7 -0
  222. package/dist/esm/chunks/chunk.OQRMHHPB.js +1335 -0
  223. package/dist/esm/chunks/chunk.OQRMHHPB.js.map +7 -0
  224. package/dist/esm/chunks/chunk.OYO6NUZY.js +52 -0
  225. package/dist/esm/chunks/chunk.OYO6NUZY.js.map +7 -0
  226. package/dist/esm/chunks/chunk.P43Z3YAS.js +507 -0
  227. package/dist/esm/chunks/chunk.P43Z3YAS.js.map +7 -0
  228. package/dist/esm/chunks/chunk.P7NOYP4O.js +73 -0
  229. package/dist/esm/chunks/chunk.P7NOYP4O.js.map +7 -0
  230. package/dist/esm/chunks/chunk.PBGL3BRX.js +27 -0
  231. package/dist/esm/chunks/chunk.PBGL3BRX.js.map +7 -0
  232. package/dist/esm/chunks/chunk.PCYIY5OY.js +461 -0
  233. package/dist/esm/chunks/chunk.PCYIY5OY.js.map +7 -0
  234. package/dist/esm/chunks/chunk.Q4YMHFRY.js +155 -0
  235. package/dist/esm/chunks/chunk.Q4YMHFRY.js.map +7 -0
  236. package/dist/esm/chunks/chunk.QD7EPCL6.js +144 -0
  237. package/dist/esm/chunks/chunk.QD7EPCL6.js.map +7 -0
  238. package/dist/esm/chunks/chunk.QQDDGRY6.js +6 -0
  239. package/dist/esm/chunks/chunk.QQDDGRY6.js.map +7 -0
  240. package/dist/esm/chunks/chunk.RNPIV3BY.js +540 -0
  241. package/dist/esm/chunks/chunk.RNPIV3BY.js.map +7 -0
  242. package/dist/esm/chunks/chunk.RR7HDQU6.js +236 -0
  243. package/dist/esm/chunks/chunk.RR7HDQU6.js.map +7 -0
  244. package/dist/esm/chunks/chunk.RV3E762Y.js +73 -0
  245. package/dist/esm/chunks/chunk.RV3E762Y.js.map +7 -0
  246. package/dist/esm/chunks/chunk.RWCC6E4O.js +52 -0
  247. package/dist/esm/chunks/chunk.RWCC6E4O.js.map +7 -0
  248. package/dist/esm/chunks/chunk.SJZ54RE3.js +56 -0
  249. package/dist/esm/chunks/chunk.SJZ54RE3.js.map +7 -0
  250. package/dist/esm/chunks/chunk.SKISCNSC.js +559 -0
  251. package/dist/esm/chunks/chunk.SKISCNSC.js.map +7 -0
  252. package/dist/esm/chunks/chunk.SKLCDWYQ.js +6 -0
  253. package/dist/esm/chunks/chunk.SKLCDWYQ.js.map +7 -0
  254. package/dist/esm/chunks/chunk.SNAZ6JSS.js +22 -0
  255. package/dist/esm/chunks/chunk.SNAZ6JSS.js.map +7 -0
  256. package/dist/esm/chunks/chunk.ST3R6JEE.js +73 -0
  257. package/dist/esm/chunks/chunk.ST3R6JEE.js.map +7 -0
  258. package/dist/esm/chunks/chunk.TLCGGWBO.js +6 -0
  259. package/dist/esm/chunks/chunk.TLCGGWBO.js.map +7 -0
  260. package/dist/esm/chunks/chunk.U35QQZVK.js +422 -0
  261. package/dist/esm/chunks/chunk.U35QQZVK.js.map +7 -0
  262. package/dist/esm/chunks/chunk.U6FJJGO3.js +6 -0
  263. package/dist/esm/chunks/chunk.U6FJJGO3.js.map +7 -0
  264. package/dist/esm/chunks/chunk.VAPJ75PS.js +21 -0
  265. package/dist/esm/chunks/chunk.VAPJ75PS.js.map +7 -0
  266. package/dist/esm/chunks/chunk.VHO7NUMI.js +37 -0
  267. package/dist/esm/chunks/chunk.VHO7NUMI.js.map +7 -0
  268. package/dist/esm/chunks/chunk.VK6LIH3B.js +13 -0
  269. package/dist/esm/chunks/chunk.VK6LIH3B.js.map +7 -0
  270. package/dist/esm/chunks/chunk.VTXXZ5KT.js +450 -0
  271. package/dist/esm/chunks/chunk.VTXXZ5KT.js.map +7 -0
  272. package/dist/esm/chunks/chunk.WAJDLUSQ.js +56 -0
  273. package/dist/esm/chunks/chunk.WAJDLUSQ.js.map +7 -0
  274. package/dist/esm/chunks/chunk.WF2MFLG4.js +6 -0
  275. package/dist/esm/chunks/chunk.WF2MFLG4.js.map +7 -0
  276. package/dist/esm/chunks/chunk.WINL2C7Q.js +6 -0
  277. package/dist/esm/chunks/chunk.WINL2C7Q.js.map +7 -0
  278. package/dist/esm/chunks/chunk.WIYLQTSX.js +3550 -0
  279. package/dist/esm/chunks/chunk.WIYLQTSX.js.map +7 -0
  280. package/dist/esm/chunks/chunk.WT4W2IFT.js +92 -0
  281. package/dist/esm/chunks/chunk.WT4W2IFT.js.map +7 -0
  282. package/dist/esm/chunks/chunk.WXFCZJJI.js +52 -0
  283. package/dist/esm/chunks/chunk.WXFCZJJI.js.map +7 -0
  284. package/dist/esm/chunks/chunk.XEF6G5NS.js +248 -0
  285. package/dist/esm/chunks/chunk.XEF6G5NS.js.map +7 -0
  286. package/dist/esm/chunks/chunk.XGMOOPIE.js +136 -0
  287. package/dist/esm/chunks/chunk.XGMOOPIE.js.map +7 -0
  288. package/dist/esm/chunks/chunk.XIDZXGD4.js +912 -0
  289. package/dist/esm/chunks/chunk.XIDZXGD4.js.map +7 -0
  290. package/dist/esm/chunks/chunk.XJVLHRVJ.js +59 -0
  291. package/dist/esm/chunks/chunk.XJVLHRVJ.js.map +7 -0
  292. package/dist/esm/chunks/chunk.XO3XVXWW.js +72 -0
  293. package/dist/esm/chunks/chunk.XO3XVXWW.js.map +7 -0
  294. package/dist/esm/chunks/chunk.XY3ZHN7Y.js +649 -0
  295. package/dist/esm/chunks/chunk.XY3ZHN7Y.js.map +7 -0
  296. package/dist/esm/chunks/chunk.Y2TDQIA4.js +307 -0
  297. package/dist/esm/chunks/chunk.Y2TDQIA4.js.map +7 -0
  298. package/dist/esm/chunks/chunk.YCW56AVX.js +176 -0
  299. package/dist/esm/chunks/chunk.YCW56AVX.js.map +7 -0
  300. package/dist/esm/chunks/chunk.YDPSV74L.js +742 -0
  301. package/dist/esm/chunks/chunk.YDPSV74L.js.map +7 -0
  302. package/dist/esm/chunks/chunk.YJ5X3WZ4.js +110 -0
  303. package/dist/esm/chunks/chunk.YJ5X3WZ4.js.map +7 -0
  304. package/dist/esm/chunks/chunk.ZABF5CI6.js +760 -0
  305. package/dist/esm/chunks/chunk.ZABF5CI6.js.map +7 -0
  306. package/dist/esm/chunks/chunk.ZG4NZM2P.js +173 -0
  307. package/dist/esm/chunks/chunk.ZG4NZM2P.js.map +7 -0
  308. package/dist/esm/chunks/chunk.ZUM5YLB2.js +291 -0
  309. package/dist/esm/chunks/chunk.ZUM5YLB2.js.map +7 -0
  310. package/dist/esm/circular-progress/index.js +28 -0
  311. package/dist/esm/circular-progress/index.js.map +7 -0
  312. package/dist/esm/color-picker/index.js +49 -0
  313. package/dist/esm/color-picker/index.js.map +7 -0
  314. package/dist/esm/core/base/index.js +21 -0
  315. package/dist/esm/core/base/index.js.map +7 -0
  316. package/dist/esm/core/delegates/index.js +20 -0
  317. package/dist/esm/core/delegates/index.js.map +7 -0
  318. package/dist/esm/core/index.js +83 -0
  319. package/dist/esm/core/index.js.map +7 -0
  320. package/dist/esm/core/mask/index.js +26 -0
  321. package/dist/esm/core/mask/index.js.map +7 -0
  322. package/dist/esm/core/utils/index.js +46 -0
  323. package/dist/esm/core/utils/index.js.map +7 -0
  324. package/dist/esm/date-picker/index.js +62 -0
  325. package/dist/esm/date-picker/index.js.map +7 -0
  326. package/dist/esm/date-range-picker/index.js +64 -0
  327. package/dist/esm/date-range-picker/index.js.map +7 -0
  328. package/dist/esm/dialog/index.js +44 -0
  329. package/dist/esm/dialog/index.js.map +7 -0
  330. package/dist/esm/divider/index.js +22 -0
  331. package/dist/esm/divider/index.js.map +7 -0
  332. package/dist/esm/drawer/base/index.js +25 -0
  333. package/dist/esm/drawer/base/index.js.map +7 -0
  334. package/dist/esm/drawer/drawer/index.js +25 -0
  335. package/dist/esm/drawer/drawer/index.js.map +7 -0
  336. package/dist/esm/drawer/index.js +56 -0
  337. package/dist/esm/drawer/index.js.map +7 -0
  338. package/dist/esm/drawer/mini-drawer/index.js +25 -0
  339. package/dist/esm/drawer/mini-drawer/index.js.map +7 -0
  340. package/dist/esm/drawer/modal-drawer/index.js +30 -0
  341. package/dist/esm/drawer/modal-drawer/index.js.map +7 -0
  342. package/dist/esm/expansion-panel/index.js +38 -0
  343. package/dist/esm/expansion-panel/index.js.map +7 -0
  344. package/dist/esm/file-picker/index.js +41 -0
  345. package/dist/esm/file-picker/index.js.map +7 -0
  346. package/dist/esm/floating-action-button/index.js +29 -0
  347. package/dist/esm/floating-action-button/index.js.map +7 -0
  348. package/dist/esm/floating-label/index.js +23 -0
  349. package/dist/esm/floating-label/index.js.map +7 -0
  350. package/dist/esm/icon/index.js +53 -0
  351. package/dist/esm/icon/index.js.map +7 -0
  352. package/dist/esm/icon-button/index.js +37 -0
  353. package/dist/esm/icon-button/index.js.map +7 -0
  354. package/dist/esm/index.js +1275 -0
  355. package/dist/esm/index.js.map +7 -0
  356. package/dist/esm/inline-message/index.js +22 -0
  357. package/dist/esm/inline-message/index.js.map +7 -0
  358. package/dist/esm/keyboard-shortcut/index.js +41 -0
  359. package/dist/esm/keyboard-shortcut/index.js.map +7 -0
  360. package/dist/esm/label-value/index.js +32 -0
  361. package/dist/esm/label-value/index.js.map +7 -0
  362. package/dist/esm/linear-progress/index.js +24 -0
  363. package/dist/esm/linear-progress/index.js.map +7 -0
  364. package/dist/esm/list/index.js +44 -0
  365. package/dist/esm/list/index.js.map +7 -0
  366. package/dist/esm/list/list/index.js +33 -0
  367. package/dist/esm/list/list/index.js.map +7 -0
  368. package/dist/esm/list/list-item/index.js +31 -0
  369. package/dist/esm/list/list-item/index.js.map +7 -0
  370. package/dist/esm/list-dropdown/index.js +55 -0
  371. package/dist/esm/list-dropdown/index.js.map +7 -0
  372. package/dist/esm/menu/index.js +53 -0
  373. package/dist/esm/menu/index.js.map +7 -0
  374. package/dist/esm/open-icon/index.js +37 -0
  375. package/dist/esm/open-icon/index.js.map +7 -0
  376. package/dist/esm/page-state/index.js +22 -0
  377. package/dist/esm/page-state/index.js.map +7 -0
  378. package/dist/esm/paginator/index.js +66 -0
  379. package/dist/esm/paginator/index.js.map +7 -0
  380. package/dist/esm/popup/index.js +31 -0
  381. package/dist/esm/popup/index.js.map +7 -0
  382. package/dist/esm/product-icon/index.js +29 -0
  383. package/dist/esm/product-icon/index.js.map +7 -0
  384. package/dist/esm/profile-card/index.js +37 -0
  385. package/dist/esm/profile-card/index.js.map +7 -0
  386. package/dist/esm/quantity-field/index.js +46 -0
  387. package/dist/esm/quantity-field/index.js.map +7 -0
  388. package/dist/esm/radio/index.js +26 -0
  389. package/dist/esm/radio/index.js.map +7 -0
  390. package/dist/esm/ripple/index.js +32 -0
  391. package/dist/esm/ripple/index.js.map +7 -0
  392. package/dist/esm/scaffold/index.js +22 -0
  393. package/dist/esm/scaffold/index.js.map +7 -0
  394. package/dist/esm/select/core/index.js +60 -0
  395. package/dist/esm/select/core/index.js.map +7 -0
  396. package/dist/esm/select/index.js +114 -0
  397. package/dist/esm/select/index.js.map +7 -0
  398. package/dist/esm/select/option/index.js +28 -0
  399. package/dist/esm/select/option/index.js.map +7 -0
  400. package/dist/esm/select/option-group/index.js +22 -0
  401. package/dist/esm/select/option-group/index.js.map +7 -0
  402. package/dist/esm/select/select/index.js +63 -0
  403. package/dist/esm/select/select/index.js.map +7 -0
  404. package/dist/esm/select/select-dropdown/index.js +59 -0
  405. package/dist/esm/select/select-dropdown/index.js.map +7 -0
  406. package/dist/esm/skeleton/index.js +22 -0
  407. package/dist/esm/skeleton/index.js.map +7 -0
  408. package/dist/esm/slider/index.js +35 -0
  409. package/dist/esm/slider/index.js.map +7 -0
  410. package/dist/esm/stepper/index.js +55 -0
  411. package/dist/esm/stepper/index.js.map +7 -0
  412. package/dist/esm/stepper/step/index.js +40 -0
  413. package/dist/esm/stepper/step/index.js.map +7 -0
  414. package/dist/esm/stepper/stepper/index.js +43 -0
  415. package/dist/esm/stepper/stepper/index.js.map +7 -0
  416. package/dist/esm/switch/index.js +34 -0
  417. package/dist/esm/switch/index.js.map +7 -0
  418. package/dist/esm/table/index.js +57 -0
  419. package/dist/esm/table/index.js.map +7 -0
  420. package/dist/esm/tabs/index.js +61 -0
  421. package/dist/esm/tabs/index.js.map +7 -0
  422. package/dist/esm/tabs/tab/index.js +33 -0
  423. package/dist/esm/tabs/tab/index.js.map +7 -0
  424. package/dist/esm/tabs/tab-bar/index.js +47 -0
  425. package/dist/esm/tabs/tab-bar/index.js.map +7 -0
  426. package/dist/esm/text-field/index.js +39 -0
  427. package/dist/esm/text-field/index.js.map +7 -0
  428. package/dist/esm/theme/index.js +17 -0
  429. package/dist/esm/theme/index.js.map +7 -0
  430. package/dist/esm/time-picker/index.js +92 -0
  431. package/dist/esm/time-picker/index.js.map +7 -0
  432. package/dist/esm/toast/index.js +42 -0
  433. package/dist/esm/toast/index.js.map +7 -0
  434. package/dist/esm/toolbar/index.js +22 -0
  435. package/dist/esm/toolbar/index.js.map +7 -0
  436. package/dist/esm/tooltip/index.js +34 -0
  437. package/dist/esm/tooltip/index.js.map +7 -0
  438. package/dist/esm/utils/index.js +17 -0
  439. package/dist/esm/utils/index.js.map +7 -0
  440. package/dist/esm/view-switcher/index.js +40 -0
  441. package/dist/esm/view-switcher/index.js.map +7 -0
  442. package/dist/esm/view-switcher/view/index.js +22 -0
  443. package/dist/esm/view-switcher/view/index.js.map +7 -0
  444. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/date-range-picker/date-range-picker-constants.ts", "../../src/date-range-picker/date-range-picker-adapter.ts", "../../src/date-range-picker/date-range-picker-foundation.ts", "../../src/date-range-picker/date-range-picker.ts", "../../src/date-range-picker/date-range-picker-component-delegate.ts", "../../src/date-range-picker/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-range-picker`;\n\nexport class DatePickerRange implements IDatePickerRange {\n public from?: Date | string | null;\n public to?: Date | string | null;\n constructor(range?: IDatePickerRange) {\n if (range) {\n this.from = range.from;\n this.to = range.to;\n }\n }\n\n public copy(): DatePickerRange {\n return new DatePickerRange(this);\n }\n}\n\nexport interface IDatePickerRange {\n from?: Date | string | null;\n to?: Date | string | null;\n}\n\nconst observedAttributes = {\n FROM: 'from',\n TO: 'to',\n END_VALUE: 'end-value'\n};\n\nconst selectors = {\n INPUT: 'input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_RANGE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n\n\nexport interface IDateRangePickerChangeEventData extends DatePickerRange {}\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { CalendarDropdown, ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from '../date-picker/base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from '../date-picker/base/base-date-picker-constants';\nimport { createToggleElement } from '../date-picker/base/base-date-picker-utils';\nimport { DateRangePickerComponent, IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS } from './date-range-picker-constants';\n\nexport interface IDateRangePickerAdapter extends IBaseDatePickerAdapter {\n initializeToMask(toOptions: IDateInputMaskOptions): void;\n addToInputListener(type: string, listener: (event: Event) => void): void;\n removeToInputListener(type: string, listener: (event: Event) => void): void;\n setToInputValueChangedListener(context: any, listener: (value: any) => void): void;\n getToInputValue(): string;\n setToInputValue(value: string, emitEvents: boolean): void;\n emitInputEvent(type: string, data?: any): void;\n emitToInputEvent(type: string, data?: any): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectToInputText(): void;\n}\n\nexport class DateRangePickerAdapter extends BaseDatePickerAdapter<IDateRangePickerComponent> implements IDateRangePickerAdapter {\n private _fromInputElement: HTMLInputElement;\n private _toInputElement: HTMLInputElement;\n private _toInputMask: DateInputMask | undefined;\n private _fromInputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n private _toValueChangeListener: (() => void) | undefined;\n\n constructor(component: DateRangePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-range-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._fromInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[0] as HTMLInputElement;\n this._toInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[1] as HTMLInputElement;\n\n if (!this._fromInputElement || !this._fromInputElement) {\n throw new Error(`The ${DATE_RANGE_PICKER_CONSTANTS.elementName} requires two inputs`);\n }\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public initializeMask(fromOptions: IDateInputMaskOptions): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n }\n this._fromInputMask = new DateInputMask(this._fromInputElement, fromOptions);\n }\n\n public initializeToMask(toOptions: IDateInputMaskOptions): void {\n if (this._toInputMask) {\n this._toInputMask.destroy();\n }\n this._toInputMask = new DateInputMask(this._toInputElement, toOptions);\n }\n\n public destroy(): void {\n super.destroy();\n this._destroyToValueChangeListener();\n }\n\n public destroyMask(): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n this._fromInputMask = undefined;\n }\n if (this._toInputMask) {\n this._toInputMask.destroy();\n this._toInputMask = undefined;\n }\n }\n\n private _destroyToValueChangeListener(): void {\n if (typeof this._toValueChangeListener === 'function') {\n this._toValueChangeListener();\n }\n }\n\n public initializeAccessibility(): void {\n this._applyToInputs(input => input.setAttribute('autocomplete', 'off'));\n this._applyToInputs(input => input.setAttribute('autocorrect', 'off'));\n this._applyToInputs(input => input.setAttribute('autocapitalize', 'off'));\n this._applyToInputs(input => input.setAttribute('spellcheck', 'false'));\n this._applyToInputs(input => input.setAttribute('role', 'combobox'));\n this._applyToInputs(input => input.setAttribute('aria-live', 'assertive'));\n this._applyToInputs(input => input.setAttribute('aria-atomic', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-haspopup', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-expanded', 'false'));\n this._applyToInputs(input => input.setAttribute('aria-owns', this._dropdownIdentifier));\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._fromInputElement?.addEventListener(type, listener, { capture });\n }\n\n public addToInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._toInputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void): void {\n this._fromInputElement?.removeEventListener(type, listener);\n }\n \n public removeToInputListener(type: string, listener: (event: Event) => void): void {\n this._toInputElement?.removeEventListener(type, listener);\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n if (this._valueChangeListeners.length) {\n this.destroyValueChangeListener();\n }\n const destroyListenerCb = listenOwnProperty(context, this._fromInputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public setToInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this._destroyToValueChangeListener();\n this._toValueChangeListener = listenOwnProperty(context, this._toInputElement, 'value', listener);\n }\n\n public hasInputElement(): boolean {\n return !!this._fromInputElement && !!this._toInputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._fromInputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._fromInputElement) {\n this._fromInputElement.setAttribute('aria-expanded', 'false');\n this._fromInputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._fromInputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._fromInputElement.value === value) {\n return;\n }\n\n this._fromInputElement.value = value;\n \n if (this._fromInputMask) {\n this._fromInputMask.updateMask();\n }\n\n if (emitEvents) {\n this._fromInputElement.dispatchEvent(new Event('change'));\n this._fromInputElement.dispatchEvent(new Event('input'));;\n }\n }\n\n public setToInputValue(value: string, emitEvents: boolean): void {\n if (this._toInputElement.value === value) {\n return;\n }\n\n this._toInputElement.value = value;\n \n if (this._toInputMask) {\n this._toInputMask.updateMask();\n }\n \n if (emitEvents) {\n this._toInputElement.dispatchEvent(new Event('change'));\n this._toInputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._fromInputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return this._toInputElement === getActiveElement() || this._fromInputElement === getActiveElement();\n }\n\n public getInputValue(): string {\n return this._fromInputElement.value;\n }\n\n public getToInputValue(): string {\n return this._toInputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._fromInputElement.disabled = isDisabled;\n this._toInputElement.disabled = isDisabled;\n\n this._toInputElement.setAttribute('aria-disabled', isDisabled.toString());\n this._fromInputElement.setAttribute('aria-disabled', isDisabled.toString());\n\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', isDisabled.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = isDisabled;\n }\n }\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._fromInputElement, type, data);\n }\n\n public emitToInputEvent(type: string, data?: any): void {\n emitEvent(this._toInputElement, type, data);\n }\n\n protected override _createToggleElement(): HTMLElement {\n return createToggleElement('date_range');\n }\n\n public tryFocusInput(): void {\n this._fromInputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._fromInputElement.blur();\n }\n\n public selectInputText(): void {\n this._fromInputElement.select();\n }\n\n public selectToInputText(): void {\n this._toInputElement.select();\n }\n\n private _applyToInputs(action: (input: HTMLInputElement) => void): void {\n [this._fromInputElement, this._toInputElement].forEach(action);\n }\n}\n", "import { isDate, isValidDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core/utils/date-utils';\nimport { IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';\nimport { IDateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DatePickerRange, DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {\n from: Date | string | null;\n to: Date | string | null;\n}\n\nexport class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {\n protected _mode: CalendarMode = 'range';\n private _from: Date | null = null;\n private _to: Date | null = null;\n private _toInputListener: (evt: Event) => void;\n private _toInputKeydownListener: (evt: KeyboardEvent) => void;\n private _toInputFocusListener: (evt: Event) => void;\n private _toInputBlurListener: (evt: Event) => void;\n private _toInputValueChangedListener: (value: string) => void;\n\n constructor(adapter: IDateRangePickerAdapter) {\n super(adapter);\n this._toInputListener = evt => this._onToInput(evt);\n this._toInputValueChangedListener = value => this._onToInputValueChanged(value);\n this._toInputKeydownListener = evt => this._onInputKeydown(evt);\n this._toInputFocusListener = evt => this._onToInputFocus();\n this._toInputBlurListener = evt => this._onToInputBlur(evt);\n }\n\n protected _initializeState(): void {\n if (!this._from) {\n this._from = this._coerceDateValue(this._adapter.getInputValue());\n }\n if (!this._to) {\n this._to = this._coerceDateValue(this._adapter.getToInputValue());\n }\n }\n\n protected override _initializeListeners(): void {\n super._initializeListeners();\n this._adapter.addToInputListener('keydown', this._toInputKeydownListener);\n this._adapter.addToInputListener('focus', this._toInputFocusListener);\n this._adapter.addToInputListener('blur', this._toInputBlurListener);\n }\n\n protected override _initializeValueChangedListeners(): void {\n super._initializeValueChangedListeners();\n this._adapter.setToInputValueChangedListener(this, this._toInputValueChangedListener);\n }\n\n protected override _setInputChangeListeners(): void {\n super._setInputChangeListeners();\n this._adapter.addToInputListener('input', this._toInputListener);\n }\n\n protected override _removeInputChangeListeners(): void {\n super._removeInputChangeListeners();\n this._adapter.removeToInputListener('input', this._toInputListener);\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n this._formatToInputValue();\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue?.to) {\n this._adapter.goToCalendarDate(new Date(currentValue.to));\n } else if (!!currentValue?.from) {\n this._adapter.goToCalendarDate(new Date(currentValue.from));\n }\n }\n\n protected _emitChangeEvent(value: DateRange | null, force?: boolean): boolean {\n const typedStartValue = this._getTypedValue((value && value.from) || null);\n const typedEndValue = this._getTypedValue((value && value.to) || null);\n const detail: IDateRangePickerChangeEventData = new DatePickerRange({ from: typedStartValue, to: typedEndValue });\n const wasCancelled = !this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, detail, true, !force);\n if (!wasCancelled) {\n this._setValue(this._coerceDateValue((value && value.from) || null));\n this._setToValue(this._coerceDateValue((value && value.to) || null));\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n\n protected _onToday(): void {\n const today = new Date();\n const range = new DateRange({ from: today });\n this.value = range;\n this._onDateSelected({ date: today, range, selected: true, type: 'date' });\n this._adapter.setCalendarActiveDate(today);\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, range: new DateRange(), selected: false, type: 'date' });\n this._closeCalendar(true);\n }\n\n protected _getCurrentValue(): IDatePickerRange | null {\n return this._value;\n }\n\n private _formatToInputValue(): void {\n const inputValue = this._adapter.getToInputValue();\n if (inputValue) {\n const parsedDate = this._parseDateString(inputValue);\n if (isValidDate(parsedDate) && this._isDateValueAcceptable(parsedDate)) {\n const formattedDate = this._formatDate(parsedDate);\n if (formattedDate) {\n this._adapter.setToInputValue(formattedDate, this._notifyInputValueChanges);\n }\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setToInputValue('', this._notifyInputValueChanges);\n }\n }\n }\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._from);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n private _setFormattedToInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._to);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setToInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n protected _setValue(value: Date | null): void {\n if (this._isDateValueAcceptable(value)) {\n this._from = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.from = this._from;\n }\n }\n }\n\n private _setToValue(value: Date | null): void {\n if (this._isDateValueAcceptable(value)) {\n this._to = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.to = this._to;\n }\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.range;\n\n if (event.rangeSelectionState === 'to') {\n this._closeCalendar(true);\n }\n\n if (!this._emitChangeEvent(value ?? null)) {\n return;\n }\n\n const formattedFromValue = this._formatDate((value && value.from) || null);\n const formattedToValue = this._formatDate((value && value.to) || null);\n this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);\n this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);\n this._formatInputValue();\n this._formatToInputValue();\n\n this._from = (value && value.from) || null;\n this._to = (value && value.to) || null;\n\n if (!Platform.isMobile) {\n if (formattedToValue) {\n this._adapter.selectToInputText();\n } else {\n this._adapter.selectInputText();\n }\n }\n }\n\n protected override _applyMin(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMax();\n }\n\n protected override _initializeMask(): void {\n super._initializeMask();\n\n // We also need to initialize our mask for the \"to\" input\n if (this._masked) {\n const options: IDateInputMaskOptions = {\n showMaskFormat: this._showMaskFormat,\n pattern: this._maskFormat,\n onChange: (value: string) => this._handleToInput(value)\n };\n\n if (this._prepareMaskCallback) {\n options.prepareCallback = (value, masked, flags, maskInstance) => {\n return this._prepareMaskCallback.call(null, value, masked, flags, maskInstance);\n };\n }\n\n this._adapter.initializeToMask(options);\n }\n }\n\n protected _applyDisabledDates(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(null, true);\n this._setFormattedToInputValue();\n }\n }\n\n private _onToInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._from) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _handleToInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitToInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._to) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n private _onToInputFocus(): void {\n this._adapter.selectToInputText();\n }\n\n private _onToInputBlur(evt: Event): void {\n this._formatToInputValue();\n if (this._open) {\n this._closeCalendar(true);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._from)) {\n this.from = date;\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _onToInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._to)) {\n this.to = date;\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n public get value(): IDatePickerRange {\n return { from: this.from, to: this.to };\n }\n public set value(value: IDatePickerRange) {\n if (!value) {\n return;\n }\n\n if (value.from === undefined) {\n value.from = null;\n }\n\n if (value.to === undefined) {\n value.to = null;\n }\n\n this.from = value.from;\n this.to = value.to;\n\n this._value = { from: this.from, to: this.to };\n }\n\n public get from(): Date | string | null {\n const date = this._getTypedValue(this._from);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set from(value: Date | string | null) {\n if (this._from !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ from: this._coerceDateValue(value) || undefined, to: this._coerceDateValue(this._to) || undefined }));\n }\n }\n }\n }\n\n public get to(): Date | string | null {\n const date = this._getTypedValue(this._to);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set to(value: Date | string | null) {\n if (this._to !== value) {\n this._setToValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedToInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ to: this._coerceDateValue(value) || undefined, from: this._coerceDateValue(this._from) || undefined }));\n }\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconDateRange } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from '../date-picker/base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\nimport { DateRangePickerFoundation } from './date-range-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDateRangePickerComponent extends IBaseDatePickerComponent<IDatePickerRange> {\n from: Date | string | null;\n to: Date | string | null;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-range-picker': IDateRangePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-range-picker-change': CustomEvent<IDateRangePickerChangeEventData>;\n 'forge-date-range-picker-open': CustomEvent<void>;\n 'forge-date-range-picker-close': CustomEvent<void>;\n 'forge-date-range-picker-input': CustomEvent<string>;\n }\n}\n\n/** The custom element class behind the `<forge-date-range-picker>` element. */\n@CustomElement({\n name: DATE_RANGE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DateRangePickerComponent extends BaseDatePickerComponent<IDatePickerRange, IDatePickerRange, DateRangePickerFoundation> implements IDateRangePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM,\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconDateRange);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DateRangePickerFoundation(new DateRangePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM:\n this.from = newValue;\n return;\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO:\n this.to = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the \"from\" date range value. */\n @FoundationProperty()\n public from: Date | string | null;\n\n /** Gets/sets the \"to\" date range value. */\n @FoundationProperty()\n public to: Date | string | null;\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions, IBaseComponentDelegateConfig } from '../core/delegates';\nimport { FieldDensityType } from '../field/field-constants';\nimport { ITextFieldComponent, TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport type DateRangePickerComponentDelegateProps = Partial<IDateRangePickerComponent>;\nexport interface IDateRangePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n fromPlaceholder?: string;\n toPlaceholder?: string;\n label?: string;\n required?: boolean;\n density?: FieldDensityType;\n}\nexport interface IDateRangePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {}\n\nexport class DateRangeComponentDelegate extends FormFieldComponentDelegate<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {\n private _textField: ITextFieldComponent;\n private _fromInput: HTMLInputElement;\n private _toInput: HTMLInputElement;\n\n constructor(config?: IDateRangePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDateRangePickerComponent {\n const dateRangePicker = document.createElement(DATE_RANGE_PICKER_CONSTANTS.elementName) as IDateRangePickerComponent;\n this._attachTextField(dateRangePicker);\n return dateRangePicker;\n }\n\n public get fromInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-0]`) as HTMLInputElement;\n }\n\n public get toInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-1]`) as HTMLInputElement;\n }\n\n public get textField(): ITextFieldComponent {\n return this._textField;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textField.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textField.invalid = value;\n }\n\n public onChange(listener: (value: IDateRangePickerChangeEventData) => void): void {\n this._element.addEventListener(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<IDateRangePickerChangeEventData>) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusin', (evt: FocusEvent) => {\n const isFocusWithin = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusWithin) {\n listener(evt);\n }\n });\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusout', (evt: FocusEvent) => {\n const isFocusOutside = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusOutside) {\n listener(evt);\n }\n });\n }\n\n private _attachTextField(dateRangePicker: IDateRangePickerComponent): void {\n this._textField = document.createElement(TEXT_FIELD_CONSTANTS.elementName);\n\n if (this._config.options?.required) {\n this._textField.required = true;\n }\n if (this._config.options?.density) {\n this._textField.density = this._config.options.density;\n }\n\n this._fromInput = document.createElement('input');\n this._fromInput.type = 'text';\n this._fromInput.placeholder = this._config.options?.fromPlaceholder || 'From';\n this._textField.appendChild(this._fromInput);\n\n this._toInput = document.createElement('input');\n this._toInput.type = 'text';\n this._toInput.placeholder = this._config.options?.toPlaceholder || 'To';\n this._textField.appendChild(this._toInput);\n\n const label = document.createElement('label');\n label.textContent = this._config.options?.label || 'Choose date range';\n this._textField.appendChild(label);\n\n dateRangePicker.appendChild(this._textField);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DateRangePickerComponent } from './date-range-picker';\n\nexport * from './date-range-picker';\nexport * from './date-range-picker-adapter';\nexport * from './date-range-picker-constants';\nexport * from './date-range-picker-foundation';\nexport * from './date-range-picker-component-delegate';\n\nexport function defineDateRangePickerComponent(): void {\n defineCustomElement(DateRangePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,173 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import {
7
+ EXPANSION_PANEL_CONSTANTS,
8
+ ExpansionPanelComponent
9
+ } from "./chunk.KRW2IAIU.js";
10
+ import {
11
+ BaseAdapter
12
+ } from "./chunk.KZATVOA6.js";
13
+ import {
14
+ FoundationProperty
15
+ } from "./chunk.MMIZOYAS.js";
16
+ import {
17
+ COMPONENT_NAME_PREFIX,
18
+ CustomElement
19
+ } from "./chunk.35U3UPDV.js";
20
+ import {
21
+ BaseComponent
22
+ } from "./chunk.VK6LIH3B.js";
23
+ import {
24
+ defineCustomElement
25
+ } from "./chunk.K2PCTUVN.js";
26
+ import {
27
+ elementParents
28
+ } from "./chunk.4JURZYE4.js";
29
+ import {
30
+ __decorateClass
31
+ } from "./chunk.LM5TVNZY.js";
32
+
33
+ // dist/build/lib/staging/src/accordion/accordion-adapter.ts
34
+ var AccordionAdapter = class extends BaseAdapter {
35
+ constructor(component) {
36
+ super(component);
37
+ }
38
+ getHostElement() {
39
+ return this._component;
40
+ }
41
+ isNestedPanel(element) {
42
+ if (!element || !this._component.contains(element)) {
43
+ return false;
44
+ }
45
+ const parents = elementParents(element, this._component);
46
+ return parents.some((el) => el.tagName.toLocaleLowerCase() === EXPANSION_PANEL_CONSTANTS.elementName);
47
+ }
48
+ getChildPanels(selector) {
49
+ if (selector) {
50
+ return Array.from(this._component.querySelectorAll(selector));
51
+ } else {
52
+ const children = Array.from(this._component.children);
53
+ return children.filter((child) => child.tagName.toLocaleLowerCase() === EXPANSION_PANEL_CONSTANTS.elementName);
54
+ }
55
+ }
56
+ addEventListener(event, callback, element, bubbles) {
57
+ element.addEventListener(event, callback, bubbles || false);
58
+ }
59
+ removeEventListener(event, callback, element) {
60
+ element.removeEventListener(event, callback);
61
+ }
62
+ };
63
+
64
+ // dist/build/lib/staging/src/accordion/accordion-constants.ts
65
+ var elementName = `${COMPONENT_NAME_PREFIX}accordion`;
66
+ var attributes = {
67
+ PANEL_SELECTOR: "panel-selector"
68
+ };
69
+ var ACCORDION_CONSTANTS = {
70
+ elementName,
71
+ attributes
72
+ };
73
+
74
+ // dist/build/lib/staging/src/accordion/accordion-foundation.ts
75
+ var AccordionFoundation = class {
76
+ constructor(_adapter) {
77
+ this._adapter = _adapter;
78
+ }
79
+ initialize() {
80
+ this._attachListeners();
81
+ }
82
+ disconnect() {
83
+ this._detachListeners();
84
+ }
85
+ _attachListeners() {
86
+ this._hostInteractionCallback = (evt) => this._hostInteraction(evt);
87
+ this._adapter.addEventListener(EXPANSION_PANEL_CONSTANTS.events.TOGGLE, this._hostInteractionCallback, this._adapter.getHostElement());
88
+ }
89
+ _detachListeners() {
90
+ if (this._hostInteractionCallback) {
91
+ this._adapter.removeEventListener(EXPANSION_PANEL_CONSTANTS.events.TOGGLE, this._hostInteractionCallback, this._adapter.getHostElement());
92
+ this._hostInteractionCallback = void 0;
93
+ }
94
+ }
95
+ _hostInteraction(evt) {
96
+ switch (evt.type) {
97
+ case EXPANSION_PANEL_CONSTANTS.events.TOGGLE:
98
+ if (evt.detail) {
99
+ evt.stopPropagation();
100
+ const evtTarget = evt.target;
101
+ if (this._adapter.isNestedPanel(evtTarget)) {
102
+ return;
103
+ }
104
+ this._adapter.getChildPanels(this._panelSelector).forEach((panel) => {
105
+ if (evtTarget !== panel && !this._adapter.isNestedPanel(panel)) {
106
+ panel.open = false;
107
+ }
108
+ });
109
+ }
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+ }
115
+ get panelSelector() {
116
+ return this._panelSelector;
117
+ }
118
+ set panelSelector(value) {
119
+ if (this._panelSelector !== value) {
120
+ this._panelSelector = value;
121
+ this._adapter.setHostAttribute(ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR, this._panelSelector);
122
+ }
123
+ }
124
+ };
125
+
126
+ // dist/build/lib/staging/src/accordion/accordion.ts
127
+ var AccordionComponent = class extends BaseComponent {
128
+ constructor() {
129
+ super();
130
+ this._foundation = new AccordionFoundation(new AccordionAdapter(this));
131
+ }
132
+ static get observedAttributes() {
133
+ return [
134
+ ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR
135
+ ];
136
+ }
137
+ initializedCallback() {
138
+ this._foundation.initialize();
139
+ }
140
+ disconnectedCallback() {
141
+ this._foundation.disconnect();
142
+ }
143
+ attributeChangedCallback(name, oldValue, newValue) {
144
+ switch (name) {
145
+ case ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR:
146
+ this.panelSelector = newValue;
147
+ break;
148
+ }
149
+ }
150
+ };
151
+ __decorateClass([
152
+ FoundationProperty()
153
+ ], AccordionComponent.prototype, "panelSelector", 2);
154
+ AccordionComponent = __decorateClass([
155
+ CustomElement({
156
+ name: ACCORDION_CONSTANTS.elementName,
157
+ dependencies: [ExpansionPanelComponent]
158
+ })
159
+ ], AccordionComponent);
160
+
161
+ // dist/build/lib/staging/src/accordion/index.ts
162
+ function defineAccordionComponent() {
163
+ defineCustomElement(AccordionComponent);
164
+ }
165
+
166
+ export {
167
+ AccordionAdapter,
168
+ ACCORDION_CONSTANTS,
169
+ AccordionFoundation,
170
+ AccordionComponent,
171
+ defineAccordionComponent
172
+ };
173
+ //# sourceMappingURL=chunk.ZG4NZM2P.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/accordion/accordion-adapter.ts", "../../src/accordion/accordion-constants.ts", "../../src/accordion/accordion-foundation.ts", "../../src/accordion/accordion.ts", "../../src/accordion/index.ts"],
4
+ "sourcesContent": ["import { BaseAdapter, IBaseAdapter } from '../core/base';\nimport { EXPANSION_PANEL_CONSTANTS, IExpansionPanelComponent } from '../expansion-panel';\nimport { IAccordionComponent } from './accordion';\nimport { elementParents } from '@tylertech/forge-core';\n\nexport interface IAccordionAdapter extends IBaseAdapter {\n getHostElement(): IAccordionComponent;\n isNestedPanel(element: HTMLElement): boolean;\n getChildPanels(selector?: string): IExpansionPanelComponent[];\n addEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void;\n removeEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void;\n}\n\nexport class AccordionAdapter extends BaseAdapter<IAccordionComponent> implements IAccordionAdapter {\n constructor(component: IAccordionComponent) {\n super(component);\n }\n\n /**\n * Gets the `<forge-accordion>` host element.\n * @returns An instance of the `AccordionComponent`.\n */\n public getHostElement(): IAccordionComponent {\n return this._component;\n }\n\n /**\n * Determines if the given expansion panel element is nested within another expansion panel.\n * @param element The expansion panel element to test.\n */\n public isNestedPanel(element: HTMLElement): boolean {\n if (!element || !this._component.contains(element)) {\n return false;\n }\n const parents = elementParents(element, this._component);\n return parents.some(el => el.tagName.toLocaleLowerCase() === EXPANSION_PANEL_CONSTANTS.elementName);\n }\n\n /**\n * Finds all child `<forge-expansion-panel>` components within the host element.\n * @returns An array of `ExpansionPanelComponent` child instances.\n */\n public getChildPanels(selector?: string): IExpansionPanelComponent[] {\n if (selector) {\n return Array.from(this._component.querySelectorAll(selector));\n } else {\n const children = Array.from(this._component.children);\n return children.filter(child => child.tagName.toLocaleLowerCase() === EXPANSION_PANEL_CONSTANTS.elementName) as IExpansionPanelComponent[];\n }\n }\n\n /**\n * Adds an event listener to the provided element.\n * @param event The event name.\n * @param callback The event callback.\n * @param element The element to emit the event from.\n * @param [bubbles] Whether the event bubbles or not.\n */\n public addEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void {\n element.addEventListener(event, callback, bubbles || false);\n }\n\n /**\n * Removes an event listener from the provided element.\n * @param event The event name.\n * @param callback The event callback.\n * @param element The event to remove the event from.\n */\n public removeEventListener(event: string, callback: (event: Event) => void, element: Element): void {\n element.removeEventListener(event, callback);\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}accordion`;\n\nconst attributes = {\n PANEL_SELECTOR: 'panel-selector'\n};\n\nexport const ACCORDION_CONSTANTS = {\n elementName,\n attributes\n};\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IAccordionAdapter } from './accordion-adapter';\nimport { EXPANSION_PANEL_CONSTANTS } from '../expansion-panel/expansion-panel-constants';\nimport { IExpansionPanelComponent } from '../expansion-panel';\nimport { ACCORDION_CONSTANTS } from './accordion-constants';\n\nexport interface IAccordionFoundation extends ICustomElementFoundation {\n panelSelector: string;\n}\n\n/**\n * The foundation class behind the `AccordionComponent`.\n */\nexport class AccordionFoundation implements IAccordionFoundation {\n private _panelSelector: string;\n private _hostInteractionCallback?: (evt: Event) => void;\n\n constructor(private _adapter: IAccordionAdapter) {}\n\n public initialize(): void {\n this._attachListeners();\n }\n\n public disconnect(): void {\n this._detachListeners();\n }\n\n private _attachListeners(): void {\n this._hostInteractionCallback = (evt: CustomEvent) => this._hostInteraction(evt);\n this._adapter.addEventListener(EXPANSION_PANEL_CONSTANTS.events.TOGGLE, this._hostInteractionCallback, this._adapter.getHostElement());\n }\n\n private _detachListeners(): void {\n if (this._hostInteractionCallback) {\n this._adapter.removeEventListener(EXPANSION_PANEL_CONSTANTS.events.TOGGLE, this._hostInteractionCallback, this._adapter.getHostElement());\n this._hostInteractionCallback = undefined;\n }\n }\n\n private _hostInteraction(evt: CustomEvent): void {\n switch (evt.type) {\n case EXPANSION_PANEL_CONSTANTS.events.TOGGLE:\n if (evt.detail) {\n evt.stopPropagation();\n const evtTarget = evt.target as IExpansionPanelComponent;\n \n if (this._adapter.isNestedPanel(evtTarget)) {\n return;\n }\n \n this._adapter.getChildPanels(this._panelSelector).forEach(panel => {\n if (evtTarget !== panel && !this._adapter.isNestedPanel(panel)) {\n panel.open = false;\n }\n });\n }\n break;\n default:\n break;\n }\n }\n\n /** Gets/sets the selector to use for finding the child expansion panels. Defaults to searching the direct children for `<forge-expansion-panel>` elements. */\n public get panelSelector(): string {\n return this._panelSelector;\n }\n public set panelSelector(value: string) {\n if (this._panelSelector !== value) {\n this._panelSelector = value;\n this._adapter.setHostAttribute(ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR, this._panelSelector);\n }\n }\n}\n", "import { CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { ExpansionPanelComponent } from '../expansion-panel';\nimport { AccordionAdapter } from './accordion-adapter';\nimport { ACCORDION_CONSTANTS } from './accordion-constants';\nimport { AccordionFoundation } from './accordion-foundation';\n\nexport interface IAccordionComponent extends IBaseComponent {\n panelSelector: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-accordion': IAccordionComponent;\n }\n}\n\n/**\n * The custom element class behind the `<forge-accordion>` web component.\n * \n * This component is intended to wrap and orchestrate child expansion panels\n * so that only one expansion panel is open at a time.\n */\n@CustomElement({\n name: ACCORDION_CONSTANTS.elementName,\n dependencies: [ExpansionPanelComponent]\n})\nexport class AccordionComponent extends BaseComponent implements IAccordionComponent {\n public static get observedAttributes(): string[] {\n return [\n ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR\n ];\n }\n\n private _foundation: AccordionFoundation;\n\n constructor() {\n super();\n this._foundation = new AccordionFoundation(new AccordionAdapter(this));\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case ACCORDION_CONSTANTS.attributes.PANEL_SELECTOR:\n this.panelSelector = newValue;\n break;\n }\n }\n\n /** Gets/sets the selector to use for finding the child expansion panels. Defaults to searching the direct children for `<forge-expansion-panel>` elements. */\n @FoundationProperty()\n public panelSelector: string;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AccordionComponent } from './accordion';\n\nexport * from './accordion-adapter';\nexport * from './accordion-constants';\nexport * from './accordion-foundation';\nexport * from './accordion';\n\nexport function defineAccordionComponent(): void {\n defineCustomElement(AccordionComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,291 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import {
7
+ getTextColor
8
+ } from "./chunk.VHO7NUMI.js";
9
+ import {
10
+ COLOR_CONSTANTS
11
+ } from "./chunk.FWJ7SIFA.js";
12
+ import {
13
+ BaseComponentDelegate
14
+ } from "./chunk.WT4W2IFT.js";
15
+ import {
16
+ BaseAdapter
17
+ } from "./chunk.KZATVOA6.js";
18
+ import {
19
+ FoundationProperty
20
+ } from "./chunk.MMIZOYAS.js";
21
+ import {
22
+ COMPONENT_NAME_PREFIX,
23
+ CustomElement
24
+ } from "./chunk.35U3UPDV.js";
25
+ import {
26
+ BaseComponent
27
+ } from "./chunk.VK6LIH3B.js";
28
+ import {
29
+ attachShadowTemplate,
30
+ defineCustomElement,
31
+ getShadowElement
32
+ } from "./chunk.K2PCTUVN.js";
33
+ import {
34
+ removeAllChildren
35
+ } from "./chunk.4JURZYE4.js";
36
+ import {
37
+ coerceBoolean,
38
+ coerceNumber,
39
+ isDefined,
40
+ isString
41
+ } from "./chunk.MEFT5FQC.js";
42
+ import {
43
+ __decorateClass
44
+ } from "./chunk.LM5TVNZY.js";
45
+
46
+ // dist/build/lib/staging/src/avatar/avatar-constants.ts
47
+ var elementName = `${COMPONENT_NAME_PREFIX}avatar`;
48
+ var attributes = {
49
+ IMAGE_URL: "image-url",
50
+ TEXT: "text",
51
+ LETTER_COUNT: "letter-count",
52
+ AUTO_COLOR: "auto-color"
53
+ };
54
+ var numbers = {
55
+ DEFAULT_LETTER_COUNT: 2
56
+ };
57
+ var selectors = {
58
+ ROOT: ".forge-avatar",
59
+ DEFAULT_SLOT: ".forge-avatar > slot:not([name])"
60
+ };
61
+ var strings = {
62
+ DEFAULT_COLOR: COLOR_CONSTANTS.themeColors.tertiary,
63
+ BACKGROUND_VARNAME: "--forge-avatar-theme-background"
64
+ };
65
+ var AVATAR_CONSTANTS = {
66
+ elementName,
67
+ attributes,
68
+ numbers,
69
+ selectors,
70
+ strings
71
+ };
72
+
73
+ // dist/build/lib/staging/src/avatar/avatar-adapter.ts
74
+ var AvatarAdapter = class extends BaseAdapter {
75
+ constructor(component) {
76
+ super(component);
77
+ this._root = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.ROOT);
78
+ this._defaultSlot = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.DEFAULT_SLOT);
79
+ }
80
+ setBackgroundColor(value) {
81
+ this._root.style.backgroundColor = `var(${AVATAR_CONSTANTS.strings.BACKGROUND_VARNAME}, ${value})`;
82
+ }
83
+ setBackgroundImageUrl(url) {
84
+ const backgroundColor = this._root.style.backgroundColor;
85
+ this._root.style.backgroundColor = "inherit";
86
+ const loadResult = new Promise((resolve) => {
87
+ const image = new Image();
88
+ image.onload = () => {
89
+ this._root.style.backgroundImage = `url(${image.src})`;
90
+ resolve(true);
91
+ };
92
+ image.onerror = () => {
93
+ this._root.style.backgroundColor = backgroundColor;
94
+ resolve(false);
95
+ };
96
+ image.src = url;
97
+ });
98
+ return loadResult;
99
+ }
100
+ removeBackgroundImage() {
101
+ this._root.style.removeProperty("background-image");
102
+ }
103
+ setText(value) {
104
+ this._defaultSlot.textContent = value;
105
+ }
106
+ clearText() {
107
+ removeAllChildren(this._defaultSlot);
108
+ }
109
+ };
110
+
111
+ // dist/build/lib/staging/src/avatar/avatar-foundation.ts
112
+ var AvatarFoundation = class {
113
+ constructor(_adapter) {
114
+ this._adapter = _adapter;
115
+ this._text = "";
116
+ this._letterCount = AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT;
117
+ this._autoColor = false;
118
+ this._initialized = false;
119
+ }
120
+ initialize() {
121
+ this._render();
122
+ this._initialized = true;
123
+ }
124
+ disconnect() {
125
+ this._initialized = false;
126
+ }
127
+ _render() {
128
+ this._setText();
129
+ this._setBackgroundImageUrl();
130
+ }
131
+ async _setBackgroundImageUrl() {
132
+ if (this._imageUrl) {
133
+ if (await this._adapter.setBackgroundImageUrl(this._imageUrl)) {
134
+ this._adapter.clearText();
135
+ }
136
+ } else {
137
+ this._adapter.removeBackgroundImage();
138
+ }
139
+ }
140
+ _setText() {
141
+ const data = this._getTextContent(this._text, this._letterCount);
142
+ if (data) {
143
+ this._adapter.setText(data);
144
+ } else {
145
+ this._adapter.clearText();
146
+ }
147
+ const color = this._autoColor ? getTextColor(data) : AVATAR_CONSTANTS.strings.DEFAULT_COLOR;
148
+ this._adapter.setBackgroundColor(color);
149
+ }
150
+ _getTextContent(value, count) {
151
+ if (!value || !isString(value) || count <= 0) {
152
+ return "";
153
+ }
154
+ let text;
155
+ if (count === 1) {
156
+ text = value[0].toUpperCase();
157
+ } else {
158
+ const words = value.match(/\S+/g) || [];
159
+ text = words.slice(0, count).reduce((prev, curr) => prev += curr[0].toUpperCase(), "");
160
+ }
161
+ return text;
162
+ }
163
+ get text() {
164
+ return this._text;
165
+ }
166
+ set text(value) {
167
+ if (this._text !== value) {
168
+ this._text = value || "";
169
+ this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.TEXT, this._text);
170
+ if (this._initialized) {
171
+ this._render();
172
+ }
173
+ }
174
+ }
175
+ get letterCount() {
176
+ return this._letterCount;
177
+ }
178
+ set letterCount(value) {
179
+ if (this._letterCount !== value) {
180
+ this._letterCount = value;
181
+ this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.LETTER_COUNT, isDefined(this._letterCount) ? this._letterCount.toString() : "");
182
+ if (this._initialized) {
183
+ this._render();
184
+ }
185
+ }
186
+ }
187
+ get imageUrl() {
188
+ return this._imageUrl;
189
+ }
190
+ set imageUrl(value) {
191
+ if (this._imageUrl !== value) {
192
+ this._imageUrl = value;
193
+ if (this._initialized) {
194
+ this._render();
195
+ }
196
+ }
197
+ }
198
+ get autoColor() {
199
+ return this._autoColor;
200
+ }
201
+ set autoColor(value) {
202
+ if (this._autoColor !== value) {
203
+ this._autoColor = value;
204
+ this._setText();
205
+ this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.AUTO_COLOR, isDefined(this._autoColor) ? this._autoColor.toString() : "");
206
+ }
207
+ }
208
+ };
209
+
210
+ // dist/build/lib/staging/src/avatar/avatar.ts
211
+ var template = '<template><div class="forge-avatar" aria-hidden="true" part="root"><slot></slot></div></template>';
212
+ var styles = ":host{display:inline-block;contain:content}:host([hidden]){display:none}.forge-avatar{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);font-size:1rem;font-size:var(--forge-avatar-font-size, 1rem);font-weight:400;font-weight:var(--forge-avatar-font-weight,400);background-color:none;background-color:var(--forge-avatar-theme-background,none);height:40px;height:var(--forge-avatar-size,40px);width:40px;width:var(--forge-avatar-size,40px);color:#fff;color:var(--forge-avatar-theme-on-background,#fff);border-radius:50%;border-radius:var(--forge-avatar-radius,50%);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;background-position:center;background-repeat:no-repeat;background-size:cover;overflow:hidden;-webkit-transition:height .2s cubic-bezier(.4, 0, .2, 1),width .2s cubic-bezier(.4, 0, .2, 1);transition:height .2s cubic-bezier(.4, 0, .2, 1),width .2s cubic-bezier(.4, 0, .2, 1)}";
213
+ var AvatarComponent = class extends BaseComponent {
214
+ constructor() {
215
+ super();
216
+ attachShadowTemplate(this, template, styles);
217
+ this._foundation = new AvatarFoundation(new AvatarAdapter(this));
218
+ }
219
+ static get observedAttributes() {
220
+ return [
221
+ AVATAR_CONSTANTS.attributes.TEXT,
222
+ AVATAR_CONSTANTS.attributes.LETTER_COUNT,
223
+ AVATAR_CONSTANTS.attributes.IMAGE_URL,
224
+ AVATAR_CONSTANTS.attributes.AUTO_COLOR
225
+ ];
226
+ }
227
+ connectedCallback() {
228
+ this._foundation.initialize();
229
+ }
230
+ disconnectedCallback() {
231
+ this._foundation.disconnect();
232
+ }
233
+ attributeChangedCallback(name, oldValue, newValue) {
234
+ switch (name) {
235
+ case AVATAR_CONSTANTS.attributes.TEXT:
236
+ this.text = newValue;
237
+ break;
238
+ case AVATAR_CONSTANTS.attributes.LETTER_COUNT:
239
+ this.letterCount = coerceNumber(newValue);
240
+ break;
241
+ case AVATAR_CONSTANTS.attributes.IMAGE_URL:
242
+ this.imageUrl = newValue;
243
+ break;
244
+ case AVATAR_CONSTANTS.attributes.AUTO_COLOR:
245
+ this.autoColor = coerceBoolean(newValue);
246
+ break;
247
+ }
248
+ }
249
+ };
250
+ __decorateClass([
251
+ FoundationProperty()
252
+ ], AvatarComponent.prototype, "text", 2);
253
+ __decorateClass([
254
+ FoundationProperty()
255
+ ], AvatarComponent.prototype, "letterCount", 2);
256
+ __decorateClass([
257
+ FoundationProperty()
258
+ ], AvatarComponent.prototype, "imageUrl", 2);
259
+ __decorateClass([
260
+ FoundationProperty()
261
+ ], AvatarComponent.prototype, "autoColor", 2);
262
+ AvatarComponent = __decorateClass([
263
+ CustomElement({
264
+ name: AVATAR_CONSTANTS.elementName
265
+ })
266
+ ], AvatarComponent);
267
+
268
+ // dist/build/lib/staging/src/avatar/avatar-component-delegate.ts
269
+ var AvatarComponentDelegate = class extends BaseComponentDelegate {
270
+ constructor(config) {
271
+ super(config);
272
+ }
273
+ _build() {
274
+ return document.createElement(AVATAR_CONSTANTS.elementName);
275
+ }
276
+ };
277
+
278
+ // dist/build/lib/staging/src/avatar/index.ts
279
+ function defineAvatarComponent() {
280
+ defineCustomElement(AvatarComponent);
281
+ }
282
+
283
+ export {
284
+ AVATAR_CONSTANTS,
285
+ AvatarAdapter,
286
+ AvatarFoundation,
287
+ AvatarComponent,
288
+ AvatarComponentDelegate,
289
+ defineAvatarComponent
290
+ };
291
+ //# sourceMappingURL=chunk.ZUM5YLB2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/avatar/avatar-constants.ts", "../../src/avatar/avatar-adapter.ts", "../../src/avatar/avatar-foundation.ts", "../../src/avatar/avatar.ts", "../../src/avatar/avatar-component-delegate.ts", "../../src/avatar/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { COLOR_CONSTANTS } from '../theme';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}avatar`;\n\nconst attributes = {\n IMAGE_URL: 'image-url',\n TEXT: 'text',\n LETTER_COUNT: 'letter-count',\n AUTO_COLOR: 'auto-color'\n};\n\nconst numbers = {\n DEFAULT_LETTER_COUNT: 2\n};\n\nconst selectors = {\n ROOT: '.forge-avatar',\n DEFAULT_SLOT: '.forge-avatar > slot:not([name])'\n};\n\nconst strings = {\n DEFAULT_COLOR: COLOR_CONSTANTS.themeColors.tertiary,\n BACKGROUND_VARNAME: '--forge-avatar-theme-background'\n};\n\nexport const AVATAR_CONSTANTS = {\n elementName,\n attributes,\n numbers,\n selectors,\n strings\n};\n", "import { getShadowElement, removeAllChildren } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAvatarComponent } from './avatar';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport interface IAvatarAdapter extends IBaseAdapter {\n setBackgroundColor(color: string): void;\n setBackgroundImageUrl(url: string): Promise<boolean>;\n removeBackgroundImage(): void;\n setText(value: string): void;\n clearText(): void;\n}\n\n/**\n * The DOM adapter behind the `<forge-avatar>` element.\n */\nexport class AvatarAdapter extends BaseAdapter<IAvatarComponent> implements IAvatarAdapter {\n private _root: HTMLElement;\n private _defaultSlot: HTMLSlotElement;\n\n constructor(component: IAvatarComponent) {\n super(component);\n this._root = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.ROOT);\n this._defaultSlot = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n }\n\n /**\n * Sets the `backgroundColor` style on the content element.\n * @param {string} value The background color.\n */\n public setBackgroundColor(value: string): void {\n this._root.style.backgroundColor = `var(${AVATAR_CONSTANTS.strings.BACKGROUND_VARNAME}, ${value})`;\n }\n\n /**\n * Sets the background image URL.\n * @param url The URL.\n */\n public setBackgroundImageUrl(url: string): Promise<boolean> {\n const backgroundColor = this._root.style.backgroundColor;\n // doing his before the promise so it doesn't flash a color before loading\n this._root.style.backgroundColor = 'inherit';\n\n const loadResult = new Promise<boolean>(resolve => {\n const image = new Image();\n image.onload = () => {\n this._root.style.backgroundImage = `url(${image.src})`;\n resolve(true);\n };\n\n image.onerror = () => {\n this._root.style.backgroundColor = backgroundColor;\n resolve(false);\n };\n\n image.src = url;\n });\n\n return loadResult;\n }\n\n /**\n * Removes the background image URL.\n */\n public removeBackgroundImage(): void {\n this._root.style.removeProperty('background-image');\n }\n\n /**\n * Sets the avatar text content.\n * @param value The text value.\n */\n public setText(value: string): void {\n this._defaultSlot.textContent = value;\n }\n\n public clearText(): void {\n removeAllChildren(this._defaultSlot);\n }\n}\n", "import { ICustomElementFoundation, isDefined, isString } from '@tylertech/forge-core';\nimport { getTextColor } from '../utils/color-utils';\nimport { IAvatarAdapter } from './avatar-adapter';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\n\n\nexport interface IAvatarFoundation extends ICustomElementFoundation {\n imageUrl: string;\n text: string;\n letterCount: number;\n autoColor: boolean;\n}\n\n/**\n * The custom element class behind the `<forge-avatar>` class.\n */\nexport class AvatarFoundation implements IAvatarFoundation {\n private _imageUrl: string;\n private _text = '';\n private _letterCount = AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT;\n private _autoColor = false;\n private _initialized = false;\n\n constructor(private _adapter: IAvatarAdapter) {}\n\n public initialize(): void {\n this._render();\n this._initialized = true;\n }\n\n public disconnect(): void {\n this._initialized = false;\n }\n\n private _render(): void {\n this._setText();\n this._setBackgroundImageUrl();\n }\n\n private async _setBackgroundImageUrl(): Promise<void> {\n if (this._imageUrl) {\n if (await this._adapter.setBackgroundImageUrl(this._imageUrl)) {\n this._adapter.clearText();\n }\n } else {\n this._adapter.removeBackgroundImage();\n }\n }\n\n private _setText(): void {\n const data = this._getTextContent(this._text, this._letterCount);\n\n if (data) {\n this._adapter.setText(data);\n } else {\n this._adapter.clearText();\n }\n\n const color = this._autoColor ? getTextColor(data) : AVATAR_CONSTANTS.strings.DEFAULT_COLOR;\n this._adapter.setBackgroundColor(color);\n }\n\n /**\n * Gets the text content to display in the avatar.\n * @param {string} value The text to parse.\n */\n private _getTextContent(value: string, count: number): string {\n if (!value || !isString(value) || count <= 0) {\n return '';\n }\n\n let text: string;\n\n if (count === 1) {\n text = value[0].toUpperCase();\n } else {\n const words = value.match(/\\S+/g) || [];\n text = words.slice(0, count).reduce((prev, curr) => prev += curr[0].toUpperCase(), '');\n }\n\n return text;\n }\n\n /** Gets/sets the text to display. */\n public get text(): string {\n return this._text;\n }\n public set text(value: string) {\n if (this._text !== value) {\n this._text = value || '';\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.TEXT, this._text);\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n public get letterCount(): number {\n return this._letterCount;\n }\n public set letterCount(value: number) {\n if (this._letterCount !== value) {\n this._letterCount = value;\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.LETTER_COUNT, isDefined(this._letterCount) ? this._letterCount.toString() : '');\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Sets the background image URL to use. */\n public get imageUrl(): string {\n return this._imageUrl;\n }\n public set imageUrl(value: string) {\n if (this._imageUrl !== value) {\n this._imageUrl = value;\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Controls whether the background color set automatically based on the text value. Does not have any effect when an image URL is specified. */\n public get autoColor(): boolean {\n return this._autoColor;\n }\n public set autoColor(value: boolean) {\n if (this._autoColor !== value) {\n this._autoColor = value;\n this._setText();\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.AUTO_COLOR, isDefined(this._autoColor) ? this._autoColor.toString() : '');\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\n\nimport { AvatarAdapter } from './avatar-adapter';\nimport { AvatarFoundation } from './avatar-foundation';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-avatar\\\" aria-hidden=\\\"true\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = ':host{display:inline-block;contain:content}:host([hidden]){display:none}.forge-avatar{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);font-size:1rem;font-size:var(--forge-avatar-font-size, 1rem);font-weight:400;font-weight:var(--forge-avatar-font-weight,400);background-color:none;background-color:var(--forge-avatar-theme-background,none);height:40px;height:var(--forge-avatar-size,40px);width:40px;width:var(--forge-avatar-size,40px);color:#fff;color:var(--forge-avatar-theme-on-background,#fff);border-radius:50%;border-radius:var(--forge-avatar-radius,50%);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;background-position:center;background-repeat:no-repeat;background-size:cover;overflow:hidden;-webkit-transition:height .2s cubic-bezier(.4, 0, .2, 1),width .2s cubic-bezier(.4, 0, .2, 1);transition:height .2s cubic-bezier(.4, 0, .2, 1),width .2s cubic-bezier(.4, 0, .2, 1)}';\n\nexport interface IAvatarComponent extends IBaseComponent {\n imageUrl: string;\n text: string;\n letterCount: number;\n autoColor: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-avatar': IAvatarComponent;\n }\n}\n\n/**\n * The custom element class behind the `<forge-avatar>` element.\n */\n@CustomElement({\n name: AVATAR_CONSTANTS.elementName\n})\nexport class AvatarComponent extends BaseComponent implements IAvatarComponent {\n public static get observedAttributes(): string[] {\n return [\n AVATAR_CONSTANTS.attributes.TEXT,\n AVATAR_CONSTANTS.attributes.LETTER_COUNT,\n AVATAR_CONSTANTS.attributes.IMAGE_URL,\n AVATAR_CONSTANTS.attributes.AUTO_COLOR\n ];\n }\n\n private _foundation: AvatarFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new AvatarFoundation(new AvatarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case AVATAR_CONSTANTS.attributes.TEXT:\n this.text = newValue;\n break;\n case AVATAR_CONSTANTS.attributes.LETTER_COUNT:\n this.letterCount = coerceNumber(newValue);\n break;\n case AVATAR_CONSTANTS.attributes.IMAGE_URL:\n this.imageUrl = newValue;\n break;\n case AVATAR_CONSTANTS.attributes.AUTO_COLOR:\n this.autoColor = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the text to display. */\n @FoundationProperty()\n public text: string;\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n @FoundationProperty()\n public letterCount: number;\n\n /** Sets the background image URL to use. */\n @FoundationProperty()\n public imageUrl: string;\n\n /** Controls whether the background color is set automatically based on the text value. Does not have any effect when an image URL is specified. */\n @FoundationProperty()\n public autoColor: boolean;\n}\n", "import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IAvatarComponent } from './avatar';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport type AvatarComponentDelegateProps = Partial<IAvatarComponent>;\nexport interface IAvatarComponentDelegateOptions extends IBaseComponentDelegateOptions {}\nexport interface IAvatarComponentDelegateConfig extends IBaseComponentDelegateConfig<IAvatarComponent, IAvatarComponentDelegateOptions> {}\n\nexport class AvatarComponentDelegate extends BaseComponentDelegate<IAvatarComponent, IAvatarComponentDelegateOptions> {\n constructor(config?: IAvatarComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IAvatarComponent {\n return document.createElement(AVATAR_CONSTANTS.elementName);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AvatarComponent } from './avatar';\n\nexport * from './avatar-adapter';\nexport * from './avatar-constants';\nexport * from './avatar-foundation';\nexport * from './avatar';\nexport * from './avatar-component-delegate';\n\nexport function defineAvatarComponent(): void {\n defineCustomElement(AvatarComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }