@tylertech/forge 3.0.0-next.10 → 3.0.0-next.11

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 (425) hide show
  1. package/custom-elements.json +174 -11
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/app-bar/menu-button/index.js +1 -1
  6. package/dist/esm/app-bar/notification-button/index.js +1 -1
  7. package/dist/esm/app-bar/profile-button/index.js +1 -1
  8. package/dist/esm/app-bar/search/index.js +1 -1
  9. package/dist/esm/autocomplete/index.js +1 -1
  10. package/dist/esm/avatar/index.js +1 -1
  11. package/dist/esm/backdrop/index.js +1 -1
  12. package/dist/esm/badge/index.js +1 -1
  13. package/dist/esm/banner/index.js +1 -1
  14. package/dist/esm/bottom-sheet/index.js +1 -1
  15. package/dist/esm/busy-indicator/index.js +1 -1
  16. package/dist/esm/button/index.js +1 -1
  17. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  18. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  19. package/dist/esm/button-toggle/index.js +1 -1
  20. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  21. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  22. package/dist/esm/calendar/index.js +1 -1
  23. package/dist/esm/card/index.js +1 -1
  24. package/dist/esm/checkbox/index.js +1 -1
  25. package/dist/esm/chip-field/index.js +1 -1
  26. package/dist/esm/chips/chip/index.js +1 -1
  27. package/dist/esm/chips/chip-set/index.js +1 -1
  28. package/dist/esm/chips/index.js +1 -1
  29. package/dist/esm/chunks/{chunk.ECRL6O3V.js → chunk.2AJ7FFI6.js} +2 -2
  30. package/dist/esm/chunks/{chunk.4WB3FGEL.js → chunk.2EWV2XBP.js} +2 -2
  31. package/dist/esm/chunks/{chunk.WH6C36MO.js → chunk.2QHD3DCR.js} +2 -2
  32. package/dist/esm/chunks/chunk.3HB22HCX.js +7 -0
  33. package/dist/esm/chunks/chunk.4C6KHYUO.js +7 -0
  34. package/dist/esm/chunks/{chunk.WBYXVMYI.js → chunk.4YFVG4KP.js} +2 -2
  35. package/dist/esm/chunks/{chunk.XATLSSAW.js → chunk.4ZKX3SO5.js} +2 -2
  36. package/dist/esm/chunks/{chunk.SZIM4KFZ.js → chunk.54OOOQ4R.js} +2 -2
  37. package/dist/esm/chunks/chunk.5565ZSTH.js +7 -0
  38. package/dist/esm/chunks/chunk.5565ZSTH.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.ZDAXNM2P.js → chunk.5MZ5SGMO.js} +2 -2
  40. package/dist/esm/chunks/{chunk.YQXX5KSW.js → chunk.624UKZFU.js} +2 -2
  41. package/dist/esm/chunks/{chunk.BIFQ4VOJ.js → chunk.6GC5AJPE.js} +2 -2
  42. package/dist/esm/chunks/{chunk.OTD2SFQJ.js → chunk.6OUJSOJY.js} +2 -2
  43. package/dist/esm/chunks/{chunk.57IVD67K.js → chunk.6OW6Q3EW.js} +2 -2
  44. package/dist/esm/chunks/chunk.7CGKFRBK.js +7 -0
  45. package/dist/esm/chunks/chunk.7CGKFRBK.js.map +7 -0
  46. package/dist/esm/chunks/chunk.7DB3XVPI.js +7 -0
  47. package/dist/esm/chunks/chunk.7DB3XVPI.js.map +7 -0
  48. package/dist/esm/chunks/{chunk.46VQ2S2Z.js → chunk.7TMLILLW.js} +2 -2
  49. package/dist/esm/chunks/{chunk.46VQ2S2Z.js.map → chunk.7TMLILLW.js.map} +1 -1
  50. package/dist/esm/chunks/{chunk.IDD54B5P.js → chunk.A62DE5PD.js} +2 -2
  51. package/dist/esm/chunks/chunk.AEKOP3XT.js +7 -0
  52. package/dist/esm/chunks/chunk.AEKOP3XT.js.map +7 -0
  53. package/dist/esm/chunks/{chunk.4WVHON6T.js → chunk.ALIYGJXA.js} +2 -2
  54. package/dist/esm/chunks/{chunk.JTIPXKV6.js → chunk.B4T3R53C.js} +2 -2
  55. package/dist/esm/chunks/chunk.BH2TUG2V.js +7 -0
  56. package/dist/esm/chunks/chunk.BH2TUG2V.js.map +7 -0
  57. package/dist/esm/chunks/{chunk.5V5ABSHI.js → chunk.BKL2BAYW.js} +2 -2
  58. package/dist/esm/chunks/chunk.BY25RT52.js +7 -0
  59. package/dist/esm/chunks/{chunk.SN5LPTHH.js.map → chunk.BY25RT52.js.map} +3 -3
  60. package/dist/esm/chunks/{chunk.SEP3L4QL.js → chunk.CDGZYUQS.js} +2 -2
  61. package/dist/esm/chunks/{chunk.Z4J4D5FD.js → chunk.CKW7KKDW.js} +2 -2
  62. package/dist/esm/chunks/{chunk.QL45FKVJ.js → chunk.COVTBIQQ.js} +2 -2
  63. package/dist/esm/chunks/{chunk.WO7KEM5K.js → chunk.CWTV3TB3.js} +2 -2
  64. package/dist/esm/chunks/{chunk.7WVTJIVR.js → chunk.CXY6K7EI.js} +2 -2
  65. package/dist/esm/chunks/{chunk.VNOJO2PF.js → chunk.D5TAI6Q7.js} +2 -2
  66. package/dist/esm/chunks/chunk.DBNJHUYY.js +7 -0
  67. package/dist/esm/chunks/chunk.DBNJHUYY.js.map +7 -0
  68. package/dist/esm/chunks/{chunk.QZK3WEH6.js → chunk.DG4ZM3AW.js} +2 -2
  69. package/dist/esm/chunks/{chunk.DTZFWZPB.js → chunk.DXN7ZOH3.js} +2 -2
  70. package/dist/esm/chunks/{chunk.7ZQMJLHE.js → chunk.EK24Y56W.js} +2 -2
  71. package/dist/esm/chunks/chunk.F4VXEE76.js +7 -0
  72. package/dist/esm/chunks/chunk.F4VXEE76.js.map +7 -0
  73. package/dist/esm/chunks/{chunk.44UCSD46.js → chunk.F5SY2D4B.js} +2 -2
  74. package/dist/esm/chunks/{chunk.44UCSD46.js.map → chunk.F5SY2D4B.js.map} +2 -2
  75. package/dist/esm/chunks/{chunk.2O6IZ7XZ.js → chunk.F74YURLV.js} +2 -2
  76. package/dist/esm/chunks/chunk.FCATJM34.js +7 -0
  77. package/dist/esm/chunks/chunk.FCATJM34.js.map +7 -0
  78. package/dist/esm/chunks/chunk.FG2GNAM2.js +7 -0
  79. package/dist/esm/chunks/chunk.FG2GNAM2.js.map +7 -0
  80. package/dist/esm/chunks/{chunk.U4GYQOPY.js → chunk.FWFOOQMA.js} +2 -2
  81. package/dist/esm/chunks/{chunk.D2Y2CRRY.js → chunk.GNG64TXK.js} +2 -2
  82. package/dist/esm/chunks/{chunk.SAXRW6GB.js → chunk.HHCO64F3.js} +2 -2
  83. package/dist/esm/chunks/{chunk.SAXRW6GB.js.map → chunk.HHCO64F3.js.map} +2 -2
  84. package/dist/esm/chunks/{chunk.OAHA3QOH.js → chunk.IX25DYIM.js} +2 -2
  85. package/dist/esm/chunks/chunk.JIKSKUDW.js +7 -0
  86. package/dist/esm/chunks/chunk.JIKSKUDW.js.map +7 -0
  87. package/dist/esm/chunks/{chunk.RGPNNISQ.js → chunk.JLLHDJSO.js} +2 -2
  88. package/dist/esm/chunks/{chunk.ZAJB7G4V.js → chunk.JUJGROHA.js} +2 -2
  89. package/dist/esm/chunks/{chunk.PHBOQRF6.js → chunk.K3KAM2PL.js} +2 -2
  90. package/dist/esm/chunks/{chunk.CFDK4RCW.js → chunk.K7FPXAFS.js} +2 -2
  91. package/dist/esm/chunks/{chunk.CFDK4RCW.js.map → chunk.K7FPXAFS.js.map} +3 -3
  92. package/dist/esm/chunks/chunk.KJP2VA6Q.js +7 -0
  93. package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +7 -0
  94. package/dist/esm/chunks/{chunk.G4IN6Y46.js → chunk.KVCDAZ6B.js} +2 -2
  95. package/dist/esm/chunks/{chunk.2QSDH3PC.js → chunk.LFODKHUO.js} +2 -2
  96. package/dist/esm/chunks/{chunk.N7PQ2MUQ.js → chunk.LK4AAUOP.js} +2 -2
  97. package/dist/esm/chunks/{chunk.5CMQ7DNL.js → chunk.LTT67HTW.js} +2 -2
  98. package/dist/esm/chunks/{chunk.NF4J3Q5X.js → chunk.LXPFG7MW.js} +2 -2
  99. package/dist/esm/chunks/{chunk.5M6Y2RU6.js → chunk.M56LSSPW.js} +2 -2
  100. package/dist/esm/chunks/chunk.MACPUZC2.js +7 -0
  101. package/dist/esm/chunks/chunk.MACPUZC2.js.map +7 -0
  102. package/dist/esm/chunks/{chunk.XOM2FYQ2.js → chunk.MGLL67VO.js} +2 -2
  103. package/dist/esm/chunks/{chunk.6MPXRRMB.js → chunk.MHBBMC6O.js} +2 -2
  104. package/dist/esm/chunks/{chunk.TL6WVBGT.js → chunk.MTKSU2BV.js} +2 -2
  105. package/dist/esm/chunks/{chunk.NK7H3MMM.js → chunk.MVTBJPO2.js} +2 -2
  106. package/dist/esm/chunks/{chunk.KSCUIS5C.js → chunk.MXEKIEJA.js} +2 -2
  107. package/dist/esm/chunks/{chunk.BBKRPL6R.js → chunk.N43BCJHN.js} +2 -2
  108. package/dist/esm/chunks/{chunk.2ZTERGYF.js → chunk.NR3MLTXF.js} +2 -2
  109. package/dist/esm/chunks/{chunk.PHTOULRR.js → chunk.OWCYRSI3.js} +2 -2
  110. package/dist/esm/chunks/chunk.P2CW5MQO.js +12 -0
  111. package/dist/esm/chunks/{chunk.7TGGJGTG.js → chunk.P2ZCNO63.js} +2 -2
  112. package/dist/esm/chunks/{chunk.RFLASSCI.js → chunk.PADPL4L3.js} +2 -2
  113. package/dist/esm/chunks/chunk.PEBT47AU.js +7 -0
  114. package/dist/esm/chunks/{chunk.BNFJRFLW.js.map → chunk.PEBT47AU.js.map} +2 -2
  115. package/dist/esm/chunks/{chunk.H5D54EHO.js → chunk.PH3HUFJJ.js} +2 -2
  116. package/dist/esm/chunks/chunk.Q7JUJNYD.js +7 -0
  117. package/dist/esm/chunks/{chunk.E6KWYFZG.js → chunk.Q7Z3SJ5F.js} +2 -2
  118. package/dist/esm/chunks/{chunk.SQVBT7HU.js → chunk.QCRRHGBA.js} +2 -2
  119. package/dist/esm/chunks/{chunk.7DHFTAWI.js → chunk.QOJESHEV.js} +2 -2
  120. package/dist/esm/chunks/{chunk.X3YNJSDT.js → chunk.S3JMOOWC.js} +2 -2
  121. package/dist/esm/chunks/{chunk.MJSLXZBM.js → chunk.SBYX7VZ4.js} +2 -2
  122. package/dist/esm/chunks/{chunk.XRESQBNE.js → chunk.SFCGOCQK.js} +2 -2
  123. package/dist/esm/chunks/chunk.SJJS4LYN.js +7 -0
  124. package/dist/esm/chunks/chunk.SJJS4LYN.js.map +7 -0
  125. package/dist/esm/chunks/{chunk.UCM6CGFM.js → chunk.SMGXXR6K.js} +2 -2
  126. package/dist/esm/chunks/{chunk.6VDF54LZ.js → chunk.SU4FU7GK.js} +2 -2
  127. package/dist/esm/chunks/{chunk.5IQGVS6U.js → chunk.TK5I4RHF.js} +2 -2
  128. package/dist/esm/chunks/{chunk.MGWY7YIL.js → chunk.TYLOAD7R.js} +2 -2
  129. package/dist/esm/chunks/{chunk.UKFJHDO7.js → chunk.UJ2WQOLO.js} +2 -2
  130. package/dist/esm/chunks/{chunk.2TQONIPK.js → chunk.ULY4H76N.js} +2 -2
  131. package/dist/esm/chunks/{chunk.J3UFSHDY.js → chunk.VSQOTSAO.js} +2 -2
  132. package/dist/esm/chunks/chunk.VVXSELXX.js +7 -0
  133. package/dist/esm/chunks/{chunk.CRWP7H46.js.map → chunk.VVXSELXX.js.map} +2 -2
  134. package/dist/esm/chunks/{chunk.QI3GKORL.js → chunk.VZWNNK7A.js} +2 -2
  135. package/dist/esm/chunks/{chunk.T5X6UNH7.js → chunk.W4247Q2P.js} +2 -2
  136. package/dist/esm/chunks/chunk.WPG7NNQX.js +7 -0
  137. package/dist/esm/chunks/chunk.WPG7NNQX.js.map +7 -0
  138. package/dist/esm/chunks/{chunk.IWA3CYIB.js → chunk.X3C3J5MH.js} +2 -2
  139. package/dist/esm/chunks/{chunk.WYP2M5FR.js → chunk.XGOAYMK2.js} +2 -2
  140. package/dist/esm/chunks/chunk.XI3MJSIS.js +7 -0
  141. package/dist/esm/chunks/chunk.XI3MJSIS.js.map +7 -0
  142. package/dist/esm/chunks/{chunk.MF36FG2X.js → chunk.XKI46BH2.js} +2 -2
  143. package/dist/esm/chunks/{chunk.Y5UJ23LB.js → chunk.YLG6ZC5K.js} +2 -2
  144. package/dist/esm/chunks/chunk.YRMR7IOS.js +7 -0
  145. package/dist/esm/chunks/{chunk.LYYWQGS6.js.map → chunk.YRMR7IOS.js.map} +2 -2
  146. package/dist/esm/chunks/{chunk.TT2VTZJ6.js → chunk.YWNCJ7XP.js} +2 -2
  147. package/dist/esm/chunks/{chunk.TT2VTZJ6.js.map → chunk.YWNCJ7XP.js.map} +2 -2
  148. package/dist/esm/chunks/{chunk.EDEYCLDU.js → chunk.YX7WLO5Y.js} +2 -2
  149. package/dist/esm/chunks/{chunk.AHHNJSZK.js → chunk.Z6FCL3G3.js} +2 -2
  150. package/dist/esm/chunks/chunk.ZDD2NLGP.js +7 -0
  151. package/dist/esm/chunks/{chunk.P5QIB6OY.js → chunk.ZJC2DSNM.js} +2 -2
  152. package/dist/esm/chunks/{chunk.L3M6DPQB.js → chunk.ZKGSQQGU.js} +3 -3
  153. package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +7 -0
  154. package/dist/esm/chunks/{chunk.E7Z3IRWV.js → chunk.ZVBZ3LGP.js} +2 -2
  155. package/dist/esm/circular-progress/index.js +1 -1
  156. package/dist/esm/color-picker/index.js +1 -1
  157. package/dist/esm/core/base/index.js +1 -1
  158. package/dist/esm/core/delegates/index.js +1 -1
  159. package/dist/esm/core/index.js +1 -1
  160. package/dist/esm/date-picker/index.js +1 -1
  161. package/dist/esm/date-range-picker/index.js +1 -1
  162. package/dist/esm/dialog/index.js +1 -1
  163. package/dist/esm/divider/index.js +1 -1
  164. package/dist/esm/drawer/base/index.js +1 -1
  165. package/dist/esm/drawer/drawer/index.js +1 -1
  166. package/dist/esm/drawer/index.js +1 -1
  167. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  168. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  169. package/dist/esm/expansion-panel/index.js +1 -1
  170. package/dist/esm/file-picker/index.js +1 -1
  171. package/dist/esm/floating-action-button/index.js +1 -1
  172. package/dist/esm/floating-label/index.js +1 -1
  173. package/dist/esm/focus-indicator/index.js +1 -1
  174. package/dist/esm/icon/index.js +1 -1
  175. package/dist/esm/icon-button/index.js +1 -1
  176. package/dist/esm/index.js +1 -1
  177. package/dist/esm/inline-message/index.js +1 -1
  178. package/dist/esm/keyboard-shortcut/index.js +1 -1
  179. package/dist/esm/label-value/index.js +1 -1
  180. package/dist/esm/linear-progress/index.js +1 -1
  181. package/dist/esm/list/index.js +1 -1
  182. package/dist/esm/list/list/index.js +1 -1
  183. package/dist/esm/list/list-item/index.js +1 -1
  184. package/dist/esm/list-dropdown/index.js +1 -1
  185. package/dist/esm/menu/index.js +1 -1
  186. package/dist/esm/open-icon/index.js +1 -1
  187. package/dist/esm/page-state/index.js +1 -1
  188. package/dist/esm/paginator/index.js +1 -1
  189. package/dist/esm/popup/index.js +1 -1
  190. package/dist/esm/product-icon/index.js +1 -1
  191. package/dist/esm/profile-card/index.js +1 -1
  192. package/dist/esm/quantity-field/index.js +1 -1
  193. package/dist/esm/radio/index.js +1 -1
  194. package/dist/esm/ripple/index.js +1 -1
  195. package/dist/esm/scaffold/index.js +1 -1
  196. package/dist/esm/select/core/index.js +1 -1
  197. package/dist/esm/select/index.js +1 -1
  198. package/dist/esm/select/option/index.js +1 -1
  199. package/dist/esm/select/option-group/index.js +1 -1
  200. package/dist/esm/select/select/index.js +1 -1
  201. package/dist/esm/select/select-dropdown/index.js +1 -1
  202. package/dist/esm/skeleton/index.js +1 -1
  203. package/dist/esm/slider/index.js +1 -1
  204. package/dist/esm/split-view/index.js +1 -1
  205. package/dist/esm/split-view/split-view/index.js +1 -1
  206. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  207. package/dist/esm/stack/index.js +1 -1
  208. package/dist/esm/state-layer/index.js +1 -1
  209. package/dist/esm/stepper/index.js +1 -1
  210. package/dist/esm/stepper/step/index.js +1 -1
  211. package/dist/esm/stepper/stepper/index.js +1 -1
  212. package/dist/esm/switch/index.js +1 -1
  213. package/dist/esm/table/index.js +1 -1
  214. package/dist/esm/tabs/index.js +1 -1
  215. package/dist/esm/tabs/tab/index.js +1 -1
  216. package/dist/esm/tabs/tab-bar/index.js +1 -1
  217. package/dist/esm/text-field/index.js +1 -1
  218. package/dist/esm/time-picker/index.js +1 -1
  219. package/dist/esm/toast/index.js +1 -1
  220. package/dist/esm/toolbar/index.js +1 -1
  221. package/dist/esm/tooltip/index.js +1 -1
  222. package/dist/esm/view-switcher/index.js +1 -1
  223. package/dist/esm/view-switcher/view/index.js +1 -1
  224. package/dist/forge.css +1 -1
  225. package/dist/table/forge-table.css +1 -1
  226. package/dist/typography/forge-typography-legacy.css +6 -0
  227. package/dist/typography/forge-typography.css +1 -1
  228. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
  229. package/esm/autocomplete/autocomplete-adapter.js +1 -1
  230. package/esm/busy-indicator/busy-indicator-adapter.js +1 -1
  231. package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +3 -0
  232. package/esm/calendar/calendar-dropdown/calendar-dropdown.js +9 -0
  233. package/esm/chip-field/chip-field-foundation.js +1 -1
  234. package/esm/chips/chip/chip-adapter.js +2 -2
  235. package/esm/chips/chip/chip.js +1 -1
  236. package/esm/color-picker/color-picker-foundation.d.ts +0 -1
  237. package/esm/color-picker/color-picker-foundation.js +2 -5
  238. package/esm/date-picker/base/base-date-picker-adapter.d.ts +2 -0
  239. package/esm/date-picker/base/base-date-picker-adapter.js +6 -0
  240. package/esm/date-picker/base/base-date-picker-constants.d.ts +1 -0
  241. package/esm/date-picker/base/base-date-picker-constants.js +2 -1
  242. package/esm/date-picker/base/base-date-picker-foundation.d.ts +4 -0
  243. package/esm/date-picker/base/base-date-picker-foundation.js +13 -1
  244. package/esm/date-picker/base/base-date-picker.d.ts +3 -0
  245. package/esm/date-picker/base/base-date-picker.js +6 -0
  246. package/esm/date-picker/date-picker-adapter.js +1 -1
  247. package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
  248. package/esm/dialog/dialog-adapter.js +1 -1
  249. package/esm/field/field-adapter.js +1 -1
  250. package/esm/field/field-foundation.js +5 -0
  251. package/esm/focus-indicator/focus-indicator.js +1 -1
  252. package/esm/linear-progress/linear-progress.js +1 -1
  253. package/esm/list/list/list-adapter.js +2 -2
  254. package/esm/list/list-item/list-item.js +1 -1
  255. package/esm/popup/popup-adapter.js +2 -2
  256. package/esm/radio/radio-adapter.js +2 -1
  257. package/esm/slider/slider.d.ts +2 -1
  258. package/esm/slider/slider.js +3 -2
  259. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  260. package/esm/stepper/core/stepper-utils.js +2 -1
  261. package/esm/stepper/stepper/stepper-adapter.js +1 -1
  262. package/esm/stepper/stepper/stepper-foundation.js +1 -0
  263. package/esm/tabs/tab/tab.js +1 -1
  264. package/esm/text-field/text-field-adapter.js +2 -1
  265. package/esm/time-picker/time-picker-adapter.js +2 -1
  266. package/package.json +2 -2
  267. package/styles/chips/chip/_mixins.scss +1 -0
  268. package/styles/circular-progress/{_animations.scss → _animation.scss} +6 -0
  269. package/styles/circular-progress/_configuration.scss +0 -7
  270. package/styles/circular-progress/_core.scss +8 -8
  271. package/styles/circular-progress/circular-progress.scss +2 -2
  272. package/styles/circular-progress/index.scss +1 -1
  273. package/styles/core/styles/{tokens/_utils.scss → _utils.scss} +21 -1
  274. package/styles/core/styles/animation/index.scss +16 -0
  275. package/styles/core/styles/border/index.scss +38 -0
  276. package/styles/core/styles/elevation/index.scss +10 -10
  277. package/styles/core/styles/shape/index.scss +31 -0
  278. package/styles/core/styles/spacing/index.scss +30 -0
  279. package/styles/core/styles/theme/index.scss +15 -11
  280. package/styles/core/styles/tokens/animation/_tokens.scss +38 -0
  281. package/styles/core/styles/tokens/border/_tokens.scss +17 -0
  282. package/styles/core/styles/tokens/circular-progress/_tokens.scss +1 -1
  283. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +11 -7
  284. package/styles/core/styles/tokens/linear-progress/_tokens.scss +5 -3
  285. package/styles/core/styles/tokens/shape/_tokens.scss +42 -0
  286. package/styles/core/styles/tokens/slider/_tokens.scss +7 -5
  287. package/styles/core/styles/tokens/spacing/_tokens.scss +23 -0
  288. package/styles/core/styles/tokens/state-layer/_tokens.scss +1 -1
  289. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +1 -1
  290. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +1 -1
  291. package/styles/core/styles/tokens/typography/_tokens.scss +198 -35
  292. package/styles/core/styles/typography/index.scss +119 -0
  293. package/styles/focus-indicator/_core.scss +1 -1
  294. package/styles/linear-progress/_core.scss +1 -1
  295. package/styles/list/list-item/_mixins.scss +11 -1
  296. package/styles/list/list-item/_variables.scss +9 -0
  297. package/styles/slider/_configuration.scss +2 -1
  298. package/styles/slider/_core.scss +7 -6
  299. package/styles/state-layer/_core.scss +1 -1
  300. package/styles/table/_mixins.scss +2 -2
  301. package/styles/tabs/tab/_core.scss +6 -5
  302. package/styles/tabs/tab/tab.scss +14 -0
  303. package/styles/tabs/tab-bar/_core.scss +1 -1
  304. package/styles/{core/styles/tokens/theme/_shape.scss → typography/forge-typography-legacy.scss} +2 -7
  305. package/styles/typography/forge-typography.scss +11 -3
  306. package/styles/utils/_mixins-core.scss +1 -1
  307. package/dist/esm/chunks/chunk.2VP57RZO.js +0 -7
  308. package/dist/esm/chunks/chunk.2VP57RZO.js.map +0 -7
  309. package/dist/esm/chunks/chunk.33EJTOVA.js +0 -7
  310. package/dist/esm/chunks/chunk.33EJTOVA.js.map +0 -7
  311. package/dist/esm/chunks/chunk.3JDFBEF7.js +0 -7
  312. package/dist/esm/chunks/chunk.74DEHKGT.js +0 -12
  313. package/dist/esm/chunks/chunk.7G72CBOJ.js +0 -7
  314. package/dist/esm/chunks/chunk.7G72CBOJ.js.map +0 -7
  315. package/dist/esm/chunks/chunk.BNFJRFLW.js +0 -7
  316. package/dist/esm/chunks/chunk.CRWP7H46.js +0 -7
  317. package/dist/esm/chunks/chunk.DXZ5LVFJ.js +0 -7
  318. package/dist/esm/chunks/chunk.DXZ5LVFJ.js.map +0 -7
  319. package/dist/esm/chunks/chunk.EYZ25QUP.js +0 -7
  320. package/dist/esm/chunks/chunk.EYZ25QUP.js.map +0 -7
  321. package/dist/esm/chunks/chunk.F776DWXU.js +0 -7
  322. package/dist/esm/chunks/chunk.F776DWXU.js.map +0 -7
  323. package/dist/esm/chunks/chunk.FIBGOPNP.js +0 -7
  324. package/dist/esm/chunks/chunk.FIBGOPNP.js.map +0 -7
  325. package/dist/esm/chunks/chunk.FUPNTFG7.js +0 -7
  326. package/dist/esm/chunks/chunk.FUPNTFG7.js.map +0 -7
  327. package/dist/esm/chunks/chunk.GT3XBPZY.js +0 -7
  328. package/dist/esm/chunks/chunk.GT3XBPZY.js.map +0 -7
  329. package/dist/esm/chunks/chunk.HXJCTE47.js +0 -7
  330. package/dist/esm/chunks/chunk.JL4XB4RI.js +0 -7
  331. package/dist/esm/chunks/chunk.JL4XB4RI.js.map +0 -7
  332. package/dist/esm/chunks/chunk.L3M6DPQB.js.map +0 -7
  333. package/dist/esm/chunks/chunk.LHBF47UY.js +0 -7
  334. package/dist/esm/chunks/chunk.LHBF47UY.js.map +0 -7
  335. package/dist/esm/chunks/chunk.LM57DOG3.js +0 -7
  336. package/dist/esm/chunks/chunk.LYYWQGS6.js +0 -7
  337. package/dist/esm/chunks/chunk.M2M47T4L.js +0 -7
  338. package/dist/esm/chunks/chunk.M2M47T4L.js.map +0 -7
  339. package/dist/esm/chunks/chunk.QLJBPFP5.js +0 -7
  340. package/dist/esm/chunks/chunk.QLJBPFP5.js.map +0 -7
  341. package/dist/esm/chunks/chunk.SN5LPTHH.js +0 -7
  342. package/dist/esm/chunks/chunk.YDY2IGBF.js +0 -7
  343. package/dist/esm/chunks/chunk.YDY2IGBF.js.map +0 -7
  344. package/dist/esm/chunks/chunk.YWCLKUK7.js +0 -7
  345. package/dist/esm/chunks/chunk.YWCLKUK7.js.map +0 -7
  346. package/dist/esm/chunks/chunk.ZMRDW25U.js +0 -7
  347. package/dist/typography/forge-form.css +0 -6
  348. package/styles/typography/forge-form.scss +0 -67
  349. /package/dist/esm/chunks/{chunk.ECRL6O3V.js.map → chunk.2AJ7FFI6.js.map} +0 -0
  350. /package/dist/esm/chunks/{chunk.4WB3FGEL.js.map → chunk.2EWV2XBP.js.map} +0 -0
  351. /package/dist/esm/chunks/{chunk.WH6C36MO.js.map → chunk.2QHD3DCR.js.map} +0 -0
  352. /package/dist/esm/chunks/{chunk.ZMRDW25U.js.map → chunk.3HB22HCX.js.map} +0 -0
  353. /package/dist/esm/chunks/{chunk.3JDFBEF7.js.map → chunk.4C6KHYUO.js.map} +0 -0
  354. /package/dist/esm/chunks/{chunk.WBYXVMYI.js.map → chunk.4YFVG4KP.js.map} +0 -0
  355. /package/dist/esm/chunks/{chunk.XATLSSAW.js.map → chunk.4ZKX3SO5.js.map} +0 -0
  356. /package/dist/esm/chunks/{chunk.SZIM4KFZ.js.map → chunk.54OOOQ4R.js.map} +0 -0
  357. /package/dist/esm/chunks/{chunk.ZDAXNM2P.js.map → chunk.5MZ5SGMO.js.map} +0 -0
  358. /package/dist/esm/chunks/{chunk.YQXX5KSW.js.map → chunk.624UKZFU.js.map} +0 -0
  359. /package/dist/esm/chunks/{chunk.BIFQ4VOJ.js.map → chunk.6GC5AJPE.js.map} +0 -0
  360. /package/dist/esm/chunks/{chunk.OTD2SFQJ.js.map → chunk.6OUJSOJY.js.map} +0 -0
  361. /package/dist/esm/chunks/{chunk.57IVD67K.js.map → chunk.6OW6Q3EW.js.map} +0 -0
  362. /package/dist/esm/chunks/{chunk.IDD54B5P.js.map → chunk.A62DE5PD.js.map} +0 -0
  363. /package/dist/esm/chunks/{chunk.4WVHON6T.js.map → chunk.ALIYGJXA.js.map} +0 -0
  364. /package/dist/esm/chunks/{chunk.JTIPXKV6.js.map → chunk.B4T3R53C.js.map} +0 -0
  365. /package/dist/esm/chunks/{chunk.5V5ABSHI.js.map → chunk.BKL2BAYW.js.map} +0 -0
  366. /package/dist/esm/chunks/{chunk.SEP3L4QL.js.map → chunk.CDGZYUQS.js.map} +0 -0
  367. /package/dist/esm/chunks/{chunk.Z4J4D5FD.js.map → chunk.CKW7KKDW.js.map} +0 -0
  368. /package/dist/esm/chunks/{chunk.QL45FKVJ.js.map → chunk.COVTBIQQ.js.map} +0 -0
  369. /package/dist/esm/chunks/{chunk.WO7KEM5K.js.map → chunk.CWTV3TB3.js.map} +0 -0
  370. /package/dist/esm/chunks/{chunk.7WVTJIVR.js.map → chunk.CXY6K7EI.js.map} +0 -0
  371. /package/dist/esm/chunks/{chunk.VNOJO2PF.js.map → chunk.D5TAI6Q7.js.map} +0 -0
  372. /package/dist/esm/chunks/{chunk.QZK3WEH6.js.map → chunk.DG4ZM3AW.js.map} +0 -0
  373. /package/dist/esm/chunks/{chunk.DTZFWZPB.js.map → chunk.DXN7ZOH3.js.map} +0 -0
  374. /package/dist/esm/chunks/{chunk.7ZQMJLHE.js.map → chunk.EK24Y56W.js.map} +0 -0
  375. /package/dist/esm/chunks/{chunk.2O6IZ7XZ.js.map → chunk.F74YURLV.js.map} +0 -0
  376. /package/dist/esm/chunks/{chunk.U4GYQOPY.js.map → chunk.FWFOOQMA.js.map} +0 -0
  377. /package/dist/esm/chunks/{chunk.D2Y2CRRY.js.map → chunk.GNG64TXK.js.map} +0 -0
  378. /package/dist/esm/chunks/{chunk.OAHA3QOH.js.map → chunk.IX25DYIM.js.map} +0 -0
  379. /package/dist/esm/chunks/{chunk.RGPNNISQ.js.map → chunk.JLLHDJSO.js.map} +0 -0
  380. /package/dist/esm/chunks/{chunk.ZAJB7G4V.js.map → chunk.JUJGROHA.js.map} +0 -0
  381. /package/dist/esm/chunks/{chunk.PHBOQRF6.js.map → chunk.K3KAM2PL.js.map} +0 -0
  382. /package/dist/esm/chunks/{chunk.G4IN6Y46.js.map → chunk.KVCDAZ6B.js.map} +0 -0
  383. /package/dist/esm/chunks/{chunk.2QSDH3PC.js.map → chunk.LFODKHUO.js.map} +0 -0
  384. /package/dist/esm/chunks/{chunk.N7PQ2MUQ.js.map → chunk.LK4AAUOP.js.map} +0 -0
  385. /package/dist/esm/chunks/{chunk.5CMQ7DNL.js.map → chunk.LTT67HTW.js.map} +0 -0
  386. /package/dist/esm/chunks/{chunk.NF4J3Q5X.js.map → chunk.LXPFG7MW.js.map} +0 -0
  387. /package/dist/esm/chunks/{chunk.5M6Y2RU6.js.map → chunk.M56LSSPW.js.map} +0 -0
  388. /package/dist/esm/chunks/{chunk.XOM2FYQ2.js.map → chunk.MGLL67VO.js.map} +0 -0
  389. /package/dist/esm/chunks/{chunk.6MPXRRMB.js.map → chunk.MHBBMC6O.js.map} +0 -0
  390. /package/dist/esm/chunks/{chunk.TL6WVBGT.js.map → chunk.MTKSU2BV.js.map} +0 -0
  391. /package/dist/esm/chunks/{chunk.NK7H3MMM.js.map → chunk.MVTBJPO2.js.map} +0 -0
  392. /package/dist/esm/chunks/{chunk.KSCUIS5C.js.map → chunk.MXEKIEJA.js.map} +0 -0
  393. /package/dist/esm/chunks/{chunk.BBKRPL6R.js.map → chunk.N43BCJHN.js.map} +0 -0
  394. /package/dist/esm/chunks/{chunk.2ZTERGYF.js.map → chunk.NR3MLTXF.js.map} +0 -0
  395. /package/dist/esm/chunks/{chunk.PHTOULRR.js.map → chunk.OWCYRSI3.js.map} +0 -0
  396. /package/dist/esm/chunks/{chunk.74DEHKGT.js.map → chunk.P2CW5MQO.js.map} +0 -0
  397. /package/dist/esm/chunks/{chunk.7TGGJGTG.js.map → chunk.P2ZCNO63.js.map} +0 -0
  398. /package/dist/esm/chunks/{chunk.RFLASSCI.js.map → chunk.PADPL4L3.js.map} +0 -0
  399. /package/dist/esm/chunks/{chunk.H5D54EHO.js.map → chunk.PH3HUFJJ.js.map} +0 -0
  400. /package/dist/esm/chunks/{chunk.LM57DOG3.js.map → chunk.Q7JUJNYD.js.map} +0 -0
  401. /package/dist/esm/chunks/{chunk.E6KWYFZG.js.map → chunk.Q7Z3SJ5F.js.map} +0 -0
  402. /package/dist/esm/chunks/{chunk.SQVBT7HU.js.map → chunk.QCRRHGBA.js.map} +0 -0
  403. /package/dist/esm/chunks/{chunk.7DHFTAWI.js.map → chunk.QOJESHEV.js.map} +0 -0
  404. /package/dist/esm/chunks/{chunk.X3YNJSDT.js.map → chunk.S3JMOOWC.js.map} +0 -0
  405. /package/dist/esm/chunks/{chunk.MJSLXZBM.js.map → chunk.SBYX7VZ4.js.map} +0 -0
  406. /package/dist/esm/chunks/{chunk.XRESQBNE.js.map → chunk.SFCGOCQK.js.map} +0 -0
  407. /package/dist/esm/chunks/{chunk.UCM6CGFM.js.map → chunk.SMGXXR6K.js.map} +0 -0
  408. /package/dist/esm/chunks/{chunk.6VDF54LZ.js.map → chunk.SU4FU7GK.js.map} +0 -0
  409. /package/dist/esm/chunks/{chunk.5IQGVS6U.js.map → chunk.TK5I4RHF.js.map} +0 -0
  410. /package/dist/esm/chunks/{chunk.MGWY7YIL.js.map → chunk.TYLOAD7R.js.map} +0 -0
  411. /package/dist/esm/chunks/{chunk.UKFJHDO7.js.map → chunk.UJ2WQOLO.js.map} +0 -0
  412. /package/dist/esm/chunks/{chunk.2TQONIPK.js.map → chunk.ULY4H76N.js.map} +0 -0
  413. /package/dist/esm/chunks/{chunk.J3UFSHDY.js.map → chunk.VSQOTSAO.js.map} +0 -0
  414. /package/dist/esm/chunks/{chunk.QI3GKORL.js.map → chunk.VZWNNK7A.js.map} +0 -0
  415. /package/dist/esm/chunks/{chunk.T5X6UNH7.js.map → chunk.W4247Q2P.js.map} +0 -0
  416. /package/dist/esm/chunks/{chunk.IWA3CYIB.js.map → chunk.X3C3J5MH.js.map} +0 -0
  417. /package/dist/esm/chunks/{chunk.WYP2M5FR.js.map → chunk.XGOAYMK2.js.map} +0 -0
  418. /package/dist/esm/chunks/{chunk.MF36FG2X.js.map → chunk.XKI46BH2.js.map} +0 -0
  419. /package/dist/esm/chunks/{chunk.Y5UJ23LB.js.map → chunk.YLG6ZC5K.js.map} +0 -0
  420. /package/dist/esm/chunks/{chunk.EDEYCLDU.js.map → chunk.YX7WLO5Y.js.map} +0 -0
  421. /package/dist/esm/chunks/{chunk.AHHNJSZK.js.map → chunk.Z6FCL3G3.js.map} +0 -0
  422. /package/dist/esm/chunks/{chunk.HXJCTE47.js.map → chunk.ZDD2NLGP.js.map} +0 -0
  423. /package/dist/esm/chunks/{chunk.P5QIB6OY.js.map → chunk.ZJC2DSNM.js.map} +0 -0
  424. /package/dist/esm/chunks/{chunk.E7Z3IRWV.js.map → chunk.ZVBZ3LGP.js.map} +0 -0
  425. /package/styles/core/styles/tokens/{theme/_elevation.scss → elevation/_tokens.scss} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/calendar/calendar-constants.ts", "../../src/calendar/calendar-locale-utils.ts", "../../src/calendar/calendar-dom-utils.ts", "../../src/calendar/calendar-dropdown/calendar-dropdown-constants.ts", "../../src/calendar/calendar-dropdown/calendar-dropdown.ts"],
4
- "sourcesContent": ["import { TOOLTIP_CONSTANTS } from '../tooltip/tooltip-constants';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\nimport { CALENDAR_MENU_CONSTANTS } from './calendar-menu';\nimport { DateRange } from './core/date-range';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}calendar`;\n\nconst observedAttributes = {\n ALLOW_SINGLE_DATE_RANGE: 'allow-single-date-range',\n CLEAR_BUTTON: 'clear-button',\n CONSTRAIN_TO_ENABLED: 'constrain-to-enabled',\n FIRST_DAY_OF_WEEK: 'first-day-of-week',\n FIXED_HEIGHT: 'static-height',\n LIST_YEARS: 'list-years',\n LOCALE: 'locale',\n MAX: 'max',\n MENU_ANIMATION: 'menu-animation',\n MIN: 'min',\n MODE: 'mode',\n MONTH: 'month',\n PREVENT_FOCUS: 'prevent-focus',\n READONLY: 'readonly',\n SELECTION_FOLLOWS_MONTH: 'selection-follows-month',\n SHOW_HEADER: 'show-header',\n SHOW_OTHER_MONTHS: 'show-other-months',\n SHOW_TODAY: 'show-today',\n TODAY_BUTTON: 'today-button',\n VIEW: 'view',\n YEAR: 'year',\n YEAR_RANGE: 'year-range'\n};\n\nconst attributes = {\n ...observedAttributes,\n DATA_DATE: 'data-date',\n DATA_EVENT_THEME: 'data-event-theme',\n POPUP_CONTEXT: 'forge-popup-context'\n};\n\nconst classes = {\n ALLOW_SINGLE_DATE_RANGE: 'forge-calendar--allow-single-date-range',\n DATE: 'forge-calendar__date',\n DATE_GRID: 'forge-calendar__date-grid',\n DATE_INNER: 'forge-calendar__date__inner',\n DATE_OTHER_MONTH: 'forge-calendar__date--other-month',\n DATE_SPACER: 'forge-calendar__date-spacer',\n DATE_SELECTED: 'forge-calendar__date--selected',\n DATE_TODAY: 'forge-calendar__date--today',\n DATE_VIEW: 'forge-calendar__date-view',\n DATE_VIEW_ROW: 'forge-calendar__date-view__row',\n DATE_WRAPPER: 'forge-calendar__date-wrapper',\n DAY: 'forge-calendar__day',\n EVENT: 'forge-calendar__event',\n EVENT_OVERFLOW: 'forge-calendar__event--overflow',\n EVENT_WRAPPER: 'forge-calendar__event__wrapper',\n FIXED_HEIGHT: 'forge-calendar--fixed-height',\n FOOTER: 'forge-calendar__footer',\n HEADER: 'forge-calendar__header',\n MDC_RIPPLE_UPGRADED_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n MONTH_MENU_OPEN: 'forge-calendar--month-menu-open',\n PREVENT_FOCUS: 'forge-calendar--prevent-focus',\n RANGE: 'forge-calendar__range',\n RANGE_END: 'forge-calendar__range--end',\n RANGE_START: 'forge-calendar__range--start',\n RANGE_TARGET: 'forge-calendar__range__target',\n READONLY: 'forge-calendar--readonly',\n RTL: 'forge-calendar--rtl',\n SHOW_OTHER_MONTHS: 'forge-calendar--show-other-months',\n SHOW_TODAY: 'forge-calendar--show-today',\n VIEW: 'forge-calendar__view',\n YEAR_MENU_OPEN: 'forge-calendar--year-menu-open'\n};\n\nconst ids = {\n ACCESSIBLE_HEADER: 'accessible-header',\n ACCESSIBLE_MONTH: 'accessible-month',\n ACCESSIBLE_YEAR: 'accessible-year',\n CLEAR_BUTTON: 'clear-button',\n DATE_GRID: 'date-grid',\n DATE_VIEW: 'date-view',\n DAY_ROW: 'day-row',\n FOOTER: 'footer',\n HEADER: 'header',\n MENU: 'menu',\n MONTH_BUTTON: 'month-button',\n NEXT_BUTTON: 'next-button',\n NEXT_BUTTON_TOOLTIP: 'next-button-tooltip',\n PREVIOUS_BUTTON: 'previous-button',\n PREVIOUS_BUTTON_TOOLTIP: 'previous-button-tooltip',\n TODAY_BUTTON: 'today-button',\n YEAR_BUTTON: 'year-button'\n};\n\nconst weekdayParts = {\n SUNDAY: 'sunday',\n MONDAY: 'monday',\n TUESDAY: 'tuesday',\n WEDNESDAY: 'wednesday',\n THURSDAY: 'thursday',\n FRIDAY: 'friday',\n SATURDAY: 'saturday'\n};\n\nconst parts = {\n ...weekdayParts,\n CLEAR_BUTTON: 'clear-button',\n DATE: 'date',\n DATE_OTHER_MONTH: 'date-other-month',\n DATE_VIEW: 'date-view',\n DATE_WRAPPER: 'date-wrapper',\n DAY: 'day',\n EVENT: 'event',\n EVENT_WRAPPER: 'event-wrapper',\n FOOTER: 'footer',\n HEADER: 'header',\n MONTH_BUTTON: 'month-button',\n MONTH_BUTTON_ELEMENT: 'month-button-element',\n NEXT_BUTTON: 'next-button',\n PREVIOUS_BUTTON: 'previous-button',\n RANGE: 'range',\n RANGE_END: 'range-end',\n RANGE_START: 'range-start',\n TODAY: 'today',\n TODAY_BUTTON: 'today-button',\n WEEKEND: 'weekend',\n YEAR_BUTTON: 'year-button',\n YEAR_BUTTON_ELEMENT: 'year-button-element'\n};\n\nconst selectors = {\n ACCESSIBLE_HEADER: `#${ids.ACCESSIBLE_HEADER}`,\n ACCESSIBLE_MONTH: `#${ids.ACCESSIBLE_MONTH}`,\n ACCESSIBLE_YEAR: `#${ids.ACCESSIBLE_YEAR}`,\n CALENDAR: '.forge-calendar',\n CLEAR_BUTTON: `#${ids.CLEAR_BUTTON}`,\n DATE: `.${classes.DATE}`,\n DATE_GRID: `#${ids.DATE_GRID}`,\n DATE_INNER: `.${classes.DATE_INNER}`,\n DATE_OTHER_MONTH: `.${classes.DATE_OTHER_MONTH}`,\n DATE_SPACER: `.${classes.DATE_SPACER}`,\n DATE_SELECTED: `.${classes.DATE_SELECTED}`,\n DATE_TODAY: `.${classes.DATE_TODAY}`,\n DATE_VIEW: `#${ids.DATE_VIEW}`,\n DATE_WRAPPER: `.${classes.DATE_WRAPPER}`,\n DAY_ROW: `#${ids.DAY_ROW}`,\n EVENT_WRAPPER: `.${classes.EVENT_WRAPPER}`,\n FOOTER: `#${ids.FOOTER}`,\n HEADER: `#${ids.HEADER}`,\n MENU: CALENDAR_MENU_CONSTANTS.elementName,\n MONTH_BUTTON: `#${ids.MONTH_BUTTON}`,\n NEXT_BUTTON: `#${ids.NEXT_BUTTON}`,\n NEXT_BUTTON_TOOLTIP: `#${ids.NEXT_BUTTON_TOOLTIP}`,\n PREVIOUS_BUTTON: `#${ids.PREVIOUS_BUTTON}`,\n PREVIOUS_BUTTON_TOOLTIP: `#${ids.PREVIOUS_BUTTON_TOOLTIP}`,\n RANGE: `.${classes.RANGE}`,\n RANGE_END: `.${classes.RANGE_END}`,\n RANGE_START: `.${classes.RANGE_START}`,\n TODAY_BUTTON: `#${ids.TODAY_BUTTON}`,\n TOOLTIP: TOOLTIP_CONSTANTS.elementName,\n VIEW: '#view',\n YEAR_BUTTON: `#${ids.YEAR_BUTTON}`\n};\n\nconst events = {\n DATE_SELECT: `${elementName}-date-select`,\n FOCUS_CHANGE: `${elementName}-focus-change`,\n MONTH_CHANGE: `${elementName}-month-change`,\n VIEW_CHANGE: `${elementName}-view-change`\n};\n\nconst numbers = {\n DEFAULT_MAX_YEAR_OFFSET: 50,\n DEFAULT_MIN_YEAR_OFFSET: 50,\n FINAL_WEEK_BEGIN_INDEX: 35,\n MONTH_LENGTH: 42,\n PENULTIMATE_WEEK_BEGIN_INDEX: 28,\n WEEK_LENGTH: 7,\n YEARS_IN_VIEW: 20\n};\n\nexport const CALENDAR_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n parts,\n selectors,\n events,\n numbers\n};\n\nexport type CalendarDateBuilder = (date: ICalendarDateConfig, element: HTMLElement) => HTMLElement;\nexport type CalendarDateSelectCallback = (date: ICalendarDate) => boolean | Promise<boolean>;\nexport type CalendarDayBuilder = (day: DayOfWeek, element: HTMLElement) => HTMLElement;\nexport type CalendarDisabledDateBuilder = (date: Date) => boolean;\nexport type CalendarEventBuilder = (date: Date) => ICalendarEvent[] | ICalendarEvent | null;\nexport type CalendarTooltipBuilder = (date: ICalendarDate, content: string) => string | null;\n\nexport type CalendarMode = 'single' | 'multiple' | 'range';\nexport type CalendarView = 'date' | 'month' | 'year';\nexport type RangeSelectionState = 'none' | 'from' | 'to';\nexport type CalendarEventColor = 'primary' | 'secondary' | 'blue' | 'light-green' | 'cyan' | 'teal' | 'orange' | 'blue-grey' | 'grey' | 'red' | 'pink' | 'purple' | 'light-blue' | 'deep-purple' | 'green' | 'lime' | 'yellow' | 'brown' | 'deep-orange';\n\nexport interface ICalendarDate {\n date: Date;\n selected: boolean;\n events: ICalendarEvent[];\n}\n\nexport interface ICalendarDateConfig {\n date: Date;\n selected: boolean;\n today: boolean;\n thisMonth: boolean;\n disabled: boolean;\n}\n\nexport interface ICalendarDateOptions {\n builder?: CalendarDateBuilder;\n locale?: string;\n showOtherMonths?: boolean;\n}\n\nexport interface ICalendarDayOptions {\n builder?: CalendarDayBuilder;\n locale?: string;\n}\n\nexport interface ICalendarEvent {\n date: Date;\n label: string;\n color: CalendarEventColor | string;\n}\n\nexport interface ICalendarDateSelectEventData {\n date: Date | null;\n selected: boolean;\n range?: DateRange;\n rangeSelectionState?: RangeSelectionState;\n type: CalendarView;\n}\n\nexport interface ICalendarMonthChangeEventData {\n month: number;\n userSelected: boolean; // Indicates whether event is from explicit selection or regular navigation\n year: number;\n}\n\nexport interface ICalendarFocusChangeEventData {\n selected: boolean;\n text: string;\n type: CalendarView;\n value: Date | number;\n}\n\nexport interface ICalendarNumberRange {\n max: number;\n min: number;\n}\n\nexport interface ICalendarDisabledDateParams {\n builder: CalendarDisabledDateBuilder | undefined;\n disabledDates: Date[];\n disabledDaysOfWeek: DayOfWeek[];\n maxDate: Date | null;\n minDate: Date | null;\n otherMonth?: boolean;\n}\n\nexport interface ICalendarMenuMonthConfig {\n locale?: string;\n max: Date | null;\n min: Date | null;\n selectedMonth: number;\n selectedYear: number;\n}\n\nexport interface ICalendarMenuYearConfig {\n locale?: string;\n max: number;\n min: number;\n selectedYear: number;\n yearInView: number;\n}\n\nexport enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6\n}\n\nexport enum CalendarMonthFocus {\n First = 1,\n Last = 2,\n Current = 3\n}\n", "// TODO: implement year before month support\n// TODO: use a more robust strategy to get language and region parts from a locale, like the Intl API (in TypeScript 4.1.2 and es2020.intl)\n\nimport { DayOfWeek } from './calendar-constants';\n\n/** Returns a localized day name. */\nexport function getLocalizedDayOfWeek(day: DayOfWeek, format: 'long' | 'short' | 'narrow' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n // January 2017 starts on a Sunday\n return new Date(2017, 0, day + 1).toLocaleString(locale, {weekday: format});\n}\n\n/** Returns a localized date of the month. */\nexport function getLocalizedDayOfMonth(date: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, 0, date).toLocaleDateString(locale, {day: format});\n}\n\n/** Returns a localized month name. */\nexport function getLocalizedMonth(month: number, format: 'long' | 'short' | 'narrow' | 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, month, 1).toLocaleString(locale, {month: format});\n}\n\n/** Returns a localized year name. */\nexport function getLocalizedYear(year: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(year, 0, 1).toLocaleDateString(locale, {year: format});\n}\n\n/** Returns the first day of week for a locale. */\nexport function getFirstDayOfWeekForLocale(locale?: string): DayOfWeek {\n if (!locale) {\n locale = navigator.language;\n }\n const localeParts = locale.match(/^([a-z]{2,3})(?:-([a-z]{3})(?=$|-))?(?:-([a-z]{4})(?=$|-))?(?:-([a-z]{2}|\\d{3})(?=$|-))?/i);\n if (!localeParts || !localeParts.length) {\n return DayOfWeek.Monday;\n }\n\n const language = localeParts[1];\n const region = localeParts[4];\n const saturdayRegions = 'AEAFBHDJDZEGIQIRJOKWLYOMQASDSY'.match(/../g);\n const sundayRegions = 'AGARASAUBDBRBSBTBWBZCACNCODMDOETGTGUHKHNIDILINJMJPKEKHKRLAMHMMMOMTMXMZNINPPAPEPHPKPRPTPYSASGSVTHTTTWUMUSVEVIWSYEZAZW'.match(/../g);\n const saturdayLanguages = ['ar', 'arq', 'arz', 'fa'];\n const sundayLanguages = 'amasbndzengnguhehiidjajvkmknkolomhmlmrmtmyneomorpapssdsmsnsutatethtnurzhzu'.match(/../g);\n\n if (region) {\n if (sundayRegions && sundayRegions.includes(region)) {\n return DayOfWeek.Sunday;\n } else if (saturdayRegions && saturdayRegions.includes(region)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n } else {\n if (sundayLanguages && sundayLanguages.includes(language)) {\n return DayOfWeek.Sunday;\n } else if (saturdayLanguages && saturdayLanguages.includes(language)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n }\n}\n\n/** Returns an array of weekend days for a locale. */\nexport function getWeekendDaysForLocale(locale?: string): DayOfWeek[] {\n if (!locale) {\n locale = navigator.language;\n }\n const region: string = locale.split('-')[1];\n switch (region) {\n case 'DZ':\n case 'BH':\n case 'BD':\n case 'EG':\n case 'IQ':\n case 'IL':\n case 'JO':\n case 'KW':\n case 'LY':\n case 'MV': // Not consistent across Malaysia\n case 'MR':\n case 'NP':\n case 'OM':\n case 'QA':\n case 'SA':\n case 'SD':\n case 'SY':\n case 'AE': // Not consistent across UAE\n case 'YE':\n case 'AF': // Thursday morning is a workday\n case 'IR': // Thursday morning is a workday\n return [DayOfWeek.Thursday, DayOfWeek.Friday];\n case 'BN':\n return [DayOfWeek.Sunday, DayOfWeek.Friday];\n default:\n return [DayOfWeek.Sunday, DayOfWeek.Saturday];\n }\n}\n\n/** Returns whether a language is written right-to-left. */\nexport function isRtlLocale(locale?: string): boolean {\n if (!locale) {\n locale = navigator.language;\n }\n const rtlLocales: string[] = [\n 'ar',\n 'arc',\n 'ckb',\n 'dv',\n 'fa',\n 'ha',\n 'he',\n 'khw',\n 'ks',\n 'ps',\n 'sd',\n 'ur',\n 'uz-AF',\n 'yi'\n ];\n return rtlLocales.some(l => locale ? locale.startsWith(l) : false);\n}\n", "import { getEventPath, appendToAttribute, toggleOnAttribute } from '@tylertech/forge-core';\n\nimport { IIconComponent } from '../icon';\nimport { ITooltipComponent } from '../tooltip';\nimport { CALENDAR_CONSTANTS, DayOfWeek, ICalendarDateConfig, ICalendarDateOptions, ICalendarEvent } from './calendar-constants';\nimport { getLocalizedDayOfMonth, getLocalizedDayOfWeek, getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\n\n/** Converts a day into an id string prefixed with \"d\". */\nexport function getDayId(day: DayOfWeek): string {\n return `d${day}`;\n}\n\n/** Converts a date object into a \"yyyymmdd\" id string prefixed with \"d\". */\nexport function getDateId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['d', year, month, day].join('');\n}\n\n/** Converts a date object into a \"yyyymmdd\" if string prefixed with \"e\". */\nexport function getEventWrapperId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['e', year, month, day].join('');\n}\n\n/** Returns a day element. */\nexport function getDayElement(day: DayOfWeek, locale?: string): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DAY);\n element.id = getDayId(day);\n element.setAttribute('role', 'columnheader');\n element.setAttribute('aria-label', getLocalizedDayOfWeek(day, 'long', locale));\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DAY);\n element.textContent = getLocalizedDayOfWeek(day, 'short', locale);\n return element;\n}\n\n/** Returns a date row element. */\nexport function getDateRow(dates: ICalendarDateConfig[], index: number, options?: ICalendarDateOptions): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_VIEW_ROW);\n element.setAttribute('role', 'row');\n\n // Populate the row\n if (index > 0 && !dates[0]?.thisMonth) {\n // A row after the first that begins on another month is all spacers and should be hidden from the accessibility tree\n dates.forEach(d => element.appendChild(getDateSpacerElement(d.date)));\n element.setAttribute('aria-hidden', 'true');\n } else {\n dates.forEach(d => {\n let dateElement = d.thisMonth || options?.showOtherMonths ? getDateElement(d, options?.locale) : getDateSpacerElement(d.date);\n if ((d.thisMonth || options?.showOtherMonths) && options?.builder) {\n dateElement = options.builder(d, dateElement);\n }\n element.appendChild(dateElement);\n });\n }\n\n return element;\n}\n\n/** Returns a date element. */\nexport function getDateElement(date: ICalendarDateConfig, locale?: string): HTMLElement {\n const element = document.createElement('div');\n const rangeElement = document.createElement('div');\n const innerElement = document.createElement('div');\n const rippleElement = document.createElement('div');\n const day = date.date.getDay();\n\n element.id = getDateId(date.date);\n element.tabIndex = -1;\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_TODAY, date.today);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_SELECTED, date.selected);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_OTHER_MONTH, !date.thisMonth);\n element.setAttribute('role', 'gridcell');\n element.setAttribute('aria-disabled', date.disabled.toString());\n element.setAttribute('aria-label', `${date.today ? 'Today, ' : ''}${date.date.toLocaleDateString(locale ?? navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric'})}`);\n element.setAttribute('aria-selected', date.selected.toString());\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE, date.date.toDateString());\n element.toggleAttribute('disabled', date.disabled);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DATE_WRAPPER);\n \n // Add day of week part\n let dayOfWeekPart = '';\n switch (day) {\n case DayOfWeek.Sunday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SUNDAY;\n break;\n case DayOfWeek.Monday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.MONDAY;\n break;\n case DayOfWeek.Tuesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.TUESDAY;\n break;\n case DayOfWeek.Wednesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.WEDNESDAY;\n break;\n case DayOfWeek.Thursday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.THURSDAY;\n break;\n case DayOfWeek.Friday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.FRIDAY;\n break;\n case DayOfWeek.Saturday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SATURDAY;\n break;\n }\n appendToAttribute(innerElement, 'part', dayOfWeekPart);\n appendToAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.TODAY, date.today);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE_OTHER_MONTH, !date.thisMonth);\n\n rangeElement.classList.add(CALENDAR_CONSTANTS.classes.RANGE_TARGET);\n element.appendChild(rangeElement);\n innerElement.textContent = getLocalizedDayOfMonth(date.date.getDate(), 'numeric', locale);\n innerElement.classList.add(CALENDAR_CONSTANTS.classes.DATE_INNER);\n element.appendChild(innerElement);\n rippleElement.classList.add('mdc-ripple-surface');\n element.appendChild(rippleElement);\n return element;\n}\n\n/** Returns a date spacer element. */\nexport function getDateSpacerElement(date: Date): HTMLElement {\n // This is a span to easiliy differentiate it from a date in CSS\n const element = document.createElement('span');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_SPACER);\n element.id = getDateId(date);\n return element;\n}\n\n/** Returns an event wrapper element. */\nexport function getEventWrapperElement(date: Date): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_WRAPPER);\n element.id = getEventWrapperId(date);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT_WRAPPER);\n return element;\n}\n\n/** Returns an event element. */\nexport function getEventElement(event: ICalendarEvent, overflow?: boolean): HTMLElement {\n const element: IIconComponent = document.createElement('forge-icon');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT);\n if (overflow) {\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_OVERFLOW);\n element.name = 'add';\n } else {\n const svg = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\" stroke=\"var(--forge-calendar-event-stroke-color)\" stroke-width=\"4px\" paint-order=\"stroke\"></path></svg>';\n element.src = svg;\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_EVENT_THEME, event.color);\n }\n return element;\n}\n\n/** Returns a tooltip element. */\nexport function getTooltip(content: string): HTMLElement {\n const tooltip: ITooltipComponent = document.createElement('forge-tooltip');\n tooltip.text = content;\n tooltip.setAttribute('aria-hidden', 'true');\n return tooltip;\n}\n\n/** Returns a calendar header. */\nexport function getHeader(): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.HEADER);\n element.id = CALENDAR_CONSTANTS.ids.HEADER;\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.HEADER);\n\n const previousButton = document.createElement('forge-icon-button');\n const previousButtonElement = document.createElement('button');\n const previousIcon = document.createElement('forge-icon');\n const previousTooltip = document.createElement('forge-tooltip');\n previousButton.setAttribute('part', CALENDAR_CONSTANTS.parts.PREVIOUS_BUTTON);\n previousButtonElement.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON;\n previousButtonElement.type = 'button';\n previousButtonElement.setAttribute('aria-label', 'Previous');\n previousIcon.setAttribute('name', 'keyboard_arrow_left');\n previousTooltip.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON_TOOLTIP;\n previousTooltip.setAttribute('aria-hidden', 'true');\n previousTooltip.innerText = 'Previous';\n previousButton.appendChild(previousButtonElement);\n previousButton.appendChild(previousTooltip);\n previousButtonElement.appendChild(previousIcon);\n\n const nextButton = document.createElement('forge-icon-button');\n const nextButtonElement = document.createElement('button');\n const nextIcon = document.createElement('forge-icon');\n const nextTooltip = document.createElement('forge-tooltip');\n nextButton.setAttribute('part', CALENDAR_CONSTANTS.parts.NEXT_BUTTON);\n nextButtonElement.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON;\n nextButtonElement.type = 'button';\n nextButtonElement.setAttribute('aria-label', 'Next');\n nextIcon.setAttribute('name', 'keyboard_arrow_right');\n nextTooltip.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON_TOOLTIP;\n nextTooltip.setAttribute('aria-hidden', 'true');\n nextTooltip.innerText = 'Next';\n nextButton.appendChild(nextButtonElement);\n nextButton.appendChild(nextTooltip);\n nextButtonElement.appendChild(nextIcon);\n\n const monthButton = document.createElement('forge-button');\n const monthButtonElement = document.createElement('button');\n monthButton.setAttribute('part', CALENDAR_CONSTANTS.parts.MONTH_BUTTON);\n monthButtonElement.id = CALENDAR_CONSTANTS.ids.MONTH_BUTTON;\n monthButtonElement.type = 'button';\n monthButtonElement.setAttribute('aria-pressed', 'false');\n monthButton.appendChild(monthButtonElement);\n\n const yearButton = document.createElement('forge-button');\n const yearButtonElement = document.createElement('button');\n yearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.YEAR_BUTTON);\n yearButtonElement.id = CALENDAR_CONSTANTS.ids.YEAR_BUTTON;\n yearButtonElement.type = 'button';\n yearButtonElement.setAttribute('aria-pressed', 'false');\n yearButton.appendChild(yearButtonElement);\n\n // TODO: change order of month and year based on locale\n const centerContainer = document.createElement('div');\n centerContainer.setAttribute('aria-live', 'polite');\n centerContainer.appendChild(monthButton);\n centerContainer.appendChild(yearButton);\n\n element.appendChild(previousButton);\n element.appendChild(centerContainer);\n element.appendChild(nextButton);\n return element;\n}\n\n/** Returns content for the month button. */\nexport function getMonthButtonContent(month: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedMonth(month, 'long', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns content for the year button. */\nexport function getYearButtonContent(year: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedYear(year, 'numeric', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns a hidden, accessible header. */\nexport function getAccessibleHeader(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_HEADER;\n element.setAttribute('aria-live', 'polite');\n\n const month = document.createElement('span');\n month.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_MONTH;\n\n const year = document.createElement('span');\n year.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_YEAR;\n\n // TODO: change order of month and year based on locale\n element.appendChild(month);\n element.appendChild(year);\n return element;\n}\n\n/** Returns a calendar footer. */\nexport function getFooter(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.FOOTER;\n element.classList.add(CALENDAR_CONSTANTS.classes.FOOTER);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.FOOTER);\n return element;\n}\n\n/** Returns a clear button. */\nexport function getClearButton(): HTMLElement {\n const clearButton = document.createElement('forge-button');\n const clearButtonElement = document.createElement('button');\n clearButton.id = CALENDAR_CONSTANTS.ids.CLEAR_BUTTON;\n clearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.CLEAR_BUTTON);\n clearButtonElement.type = 'button';\n clearButtonElement.innerText = 'Clear';\n clearButton.appendChild(clearButtonElement);\n return clearButton;\n}\n\n/** Returns a today button. */\nexport function getTodayButton(): HTMLElement {\n const todayButton = document.createElement('forge-button');\n const todayButtonElement = document.createElement('button');\n todayButton.id = CALENDAR_CONSTANTS.ids.TODAY_BUTTON;\n todayButton.setAttribute('part', CALENDAR_CONSTANTS.parts.TODAY_BUTTON);\n todayButtonElement.type = 'button';\n todayButtonElement.innerText = 'Today';\n todayButton.appendChild(todayButtonElement);\n return todayButton;\n}\n\n/** Checks whether an event originated from a date element, returning the element if it did. */\nexport function eventIncludesDate(evt: Event, includeDisabled?: boolean): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.classList && p.classList.contains(CALENDAR_CONSTANTS.classes.DATE));\n if (!element || (!includeDisabled && element.hasAttribute('disabled'))) {\n return null;\n }\n return element;\n}\n\n/** Checks whether an event originated from an element with the given id, returning the element if it did. */\nexport function eventIncludesElement(evt: Event, id: string): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.id === id);\n return element ?? null;\n}\n\n/** Sets the tabindex on a date element. */\nexport function setTabindexOnElement(element: HTMLElement, value: number, setFocus: boolean, preventFocus?: boolean): void {\n element.tabIndex = preventFocus ? -1 : value;\n element.classList.toggle(CALENDAR_CONSTANTS.classes.MDC_RIPPLE_UPGRADED_FOCUSED, preventFocus && value > -1);\n if (value > -1 && setFocus && !preventFocus) {\n element.focus();\n } else {\n element.blur();\n }\n}\n", "export interface ICalendarDropdownPopupConfig {\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n popupClasses?: string | string[] | null;\n}\n\nconst classes = {\n POPUP: `forge-calendar-dropdown__popup`\n};\n\nexport const CALENDAR_DROPDOWN_CONSTANTS = {\n classes\n};\n", "import { addClass, isArray, createVisuallyHiddenElement } from '@tylertech/forge-core';\n\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../../popup';\nimport { ICalendarComponent } from '../calendar';\nimport { CALENDAR_CONSTANTS, ICalendarFocusChangeEventData } from '../calendar-constants';\nimport { getDateId } from '../calendar-dom-utils';\nimport { CALENDAR_DROPDOWN_CONSTANTS } from './calendar-dropdown-constants';\n\nexport interface ICalendarDropdown {\n calendar: ICalendarComponent | undefined;\n dropdownElement: IPopupComponent | undefined;\n id: string;\n targetElement: HTMLElement;\n popupClasses: string | string[] | null;\n isOpen: boolean;\n activeChangeCallback: ((id: string) => void) | undefined;\n closeCallback: (() => void) | undefined;\n open(config: Partial<ICalendarComponent>): void;\n close(): void;\n destroy(): void;\n propagateKeyboardEvent(evt: KeyboardEvent): void;\n}\n\nexport class CalendarDropdown implements ICalendarDropdown {\n public calendar: ICalendarComponent | undefined;\n public dropdownElement: IPopupComponent | undefined;\n public id: string;\n public targetElement: HTMLElement;\n public activeChangeCallback: ((id: string) => void) | undefined;\n public closeCallback: (() => void) | undefined;\n\n private _announcerElement: HTMLElement | undefined;\n private _popupClasses: string[] = [];\n\n public get isOpen(): boolean {\n return this.dropdownElement?.open ?? false;\n }\n\n public get popupClasses(): string | string[] | null {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[] | null) {\n this._popupClasses = !!value ? isArray(value) ? [...value as string[]] : [value as string] : [];\n }\n \n constructor(targetElement: HTMLElement, id: string) {\n this.targetElement = targetElement;\n this.id = id;\n }\n\n public close(): void {\n if (!this.dropdownElement) {\n return;\n }\n this.dropdownElement.open = false;\n this.dropdownElement = undefined;\n this.calendar = undefined;\n }\n\n public destroy(): void {\n this.close();\n }\n\n public open(config: Partial<ICalendarComponent>): void {\n // Create calendar element\n this.calendar = this._createCalendar(config);\n this._announcerElement = createVisuallyHiddenElement();\n (this._announcerElement as HTMLElement).id = `${this.id}-activedescendant`;\n\n // Create dropdown element\n this.dropdownElement = this._createDropdown();\n this.dropdownElement.appendChild(this.calendar);\n this.dropdownElement.appendChild(this._announcerElement as HTMLElement);\n this.dropdownElement.static = true;\n\n // Add a listener for when the active descendent is updated\n this.calendar.addEventListener(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, (evt: CustomEvent<ICalendarFocusChangeEventData>) => {\n let id = `${this.id}-activedescendent-`;\n switch (evt.detail.type) {\n case 'date':\n id += getDateId(evt.detail.value as Date);\n break;\n case 'month':\n id += `month-${evt.detail.value.toString()}`;\n break;\n case 'year':\n id += `year-${evt.detail.value.toString()}`;\n break;\n }\n this.activeChangeCallback?.call(this, id);\n if (this._announcerElement) {\n this._announcerElement.id = id;\n this._announcerElement.setAttribute('aria-selected', evt.detail.selected.toString());\n this._announcerElement.textContent = evt.detail.text;\n }\n });\n\n // Open the popup\n this.dropdownElement.open = true;\n\n // Attempt to re-layout the calendar to account for updates in rendering during scale\n // transition within popup (fixes ripple alignment... etc.)\n window.requestAnimationFrame(() => {\n setTimeout(() => {\n if (this.dropdownElement && this.dropdownElement.open && this.calendar && this.calendar.isConnected) {\n this.calendar.layout();\n }\n }, POPUP_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n public propagateKeyboardEvent(evt: KeyboardEvent): void {\n this.calendar?.handleKey(evt);\n }\n\n private _createCalendar(config: Partial<ICalendarComponent>): ICalendarComponent {\n const calendarElement = document.createElement(CALENDAR_CONSTANTS.elementName);\n Object.assign(calendarElement, config);\n return calendarElement;\n }\n\n private _createDropdown(): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = this.targetElement;\n popupElement.placement = 'bottom-start';\n popupElement.animationType = PopupAnimationType.Menu;\n popupElement.classList.add(CALENDAR_DROPDOWN_CONSTANTS.classes.POPUP);\n popupElement.id = this.id;\n addClass(this._popupClasses, popupElement);\n\n popupElement.addEventListener(POPUP_CONSTANTS.events.CLOSE, () => {\n if (this.closeCallback) {\n this.closeCallback();\n }\n });\n\n return popupElement;\n }\n}\n"],
5
- "mappings": "6XAKA,IAAMA,EAA2C,GAAGC,YAE9CC,EAAqB,CACzB,wBAAyB,0BACzB,aAAc,eACd,qBAAsB,uBACtB,kBAAmB,oBACnB,aAAc,gBACd,WAAY,aACZ,OAAQ,SACR,IAAK,MACL,eAAgB,iBAChB,IAAK,MACL,KAAM,OACN,MAAO,QACP,cAAe,gBACf,SAAU,WACV,wBAAyB,0BACzB,YAAa,cACb,kBAAmB,oBACnB,WAAY,aACZ,aAAc,eACd,KAAM,OACN,KAAM,OACN,WAAY,YACd,EAEMC,EAAaC,EAAAC,EAAA,GACdH,GADc,CAEjB,UAAW,YACX,iBAAkB,mBAClB,cAAe,qBACjB,GAEMI,EAAU,CACd,wBAAyB,0CACzB,KAAM,uBACN,UAAW,4BACX,WAAY,8BACZ,iBAAkB,oCAClB,YAAa,8BACb,cAAe,iCACf,WAAY,8BACZ,UAAW,4BACX,cAAe,iCACf,aAAc,+BACd,IAAK,sBACL,MAAO,wBACP,eAAgB,kCAChB,cAAe,iCACf,aAAc,+BACd,OAAQ,yBACR,OAAQ,yBACR,4BAA6B,0CAC7B,gBAAiB,kCACjB,cAAe,gCACf,MAAO,wBACP,UAAW,6BACX,YAAa,+BACb,aAAc,gCACd,SAAU,2BACV,IAAK,sBACL,kBAAmB,oCACnB,WAAY,6BACZ,KAAM,uBACN,eAAgB,gCAClB,EAEMC,EAAM,CACV,kBAAmB,oBACnB,iBAAkB,mBAClB,gBAAiB,kBACjB,aAAc,eACd,UAAW,YACX,UAAW,YACX,QAAS,UACT,OAAQ,SACR,OAAQ,SACR,KAAM,OACN,aAAc,eACd,YAAa,cACb,oBAAqB,sBACrB,gBAAiB,kBACjB,wBAAyB,0BACzB,aAAc,eACd,YAAa,aACf,EAEMC,EAAe,CACnB,OAAQ,SACR,OAAQ,SACR,QAAS,UACT,UAAW,YACX,SAAU,WACV,OAAQ,SACR,SAAU,UACZ,EAEMC,EAAQL,EAAAC,EAAA,GACTG,GADS,CAEZ,aAAc,eACd,KAAM,OACN,iBAAkB,mBAClB,UAAW,YACX,aAAc,eACd,IAAK,MACL,MAAO,QACP,cAAe,gBACf,OAAQ,SACR,OAAQ,SACR,aAAc,eACd,qBAAsB,uBACtB,YAAa,cACb,gBAAiB,kBACjB,MAAO,QACP,UAAW,YACX,YAAa,cACb,MAAO,QACP,aAAc,eACd,QAAS,UACT,YAAa,cACb,oBAAqB,qBACvB,GAEME,EAAY,CAChB,kBAAmB,IAAIH,EAAI,oBAC3B,iBAAkB,IAAIA,EAAI,mBAC1B,gBAAiB,IAAIA,EAAI,kBACzB,SAAU,kBACV,aAAc,IAAIA,EAAI,eACtB,KAAM,IAAID,EAAQ,OAClB,UAAW,IAAIC,EAAI,YACnB,WAAY,IAAID,EAAQ,aACxB,iBAAkB,IAAIA,EAAQ,mBAC9B,YAAa,IAAIA,EAAQ,cACzB,cAAe,IAAIA,EAAQ,gBAC3B,WAAY,IAAIA,EAAQ,aACxB,UAAW,IAAIC,EAAI,YACnB,aAAc,IAAID,EAAQ,eAC1B,QAAS,IAAIC,EAAI,UACjB,cAAe,IAAID,EAAQ,gBAC3B,OAAQ,IAAIC,EAAI,SAChB,OAAQ,IAAIA,EAAI,SAChB,KAAMI,EAAwB,YAC9B,aAAc,IAAIJ,EAAI,eACtB,YAAa,IAAIA,EAAI,cACrB,oBAAqB,IAAIA,EAAI,sBAC7B,gBAAiB,IAAIA,EAAI,kBACzB,wBAAyB,IAAIA,EAAI,0BACjC,MAAO,IAAID,EAAQ,QACnB,UAAW,IAAIA,EAAQ,YACvB,YAAa,IAAIA,EAAQ,cACzB,aAAc,IAAIC,EAAI,eACtB,QAASK,EAAkB,YAC3B,KAAM,QACN,YAAa,IAAIL,EAAI,aACvB,EAEMM,EAAS,CACb,YAAa,GAAGb,gBAChB,aAAc,GAAGA,iBACjB,aAAc,GAAGA,iBACjB,YAAa,GAAGA,eAClB,EAEMc,EAAU,CACd,wBAAyB,GACzB,wBAAyB,GACzB,uBAAwB,GACxB,aAAc,GACd,6BAA8B,GAC9B,YAAa,EACb,cAAe,EACjB,EAEaC,EAAqB,CAChC,YAAAf,EACA,WAAAG,EACA,QAAAG,EACA,IAAAC,EACA,MAAAE,EACA,UAAAC,EACA,OAAAG,EACA,QAAAC,CACF,EAgGYE,OACVA,IAAA,OAAS,GAAT,SACAA,IAAA,OAAS,GAAT,SACAA,IAAA,QAAU,GAAV,UACAA,IAAA,UAAY,GAAZ,YACAA,IAAA,SAAW,GAAX,WACAA,IAAA,OAAS,GAAT,SACAA,IAAA,SAAW,GAAX,WAPUA,OAAA,IAUAC,OACVA,IAAA,MAAQ,GAAR,QACAA,IAAA,KAAO,GAAP,OACAA,IAAA,QAAU,GAAV,UAHUA,OAAA,ICjSL,SAASC,EAAsBC,EAAgBC,EAAiDC,EAAyB,CAC9H,OAAKA,IACHA,EAAS,UAAU,UAGd,IAAI,KAAK,KAAM,EAAGF,EAAM,CAAC,EAAE,eAAeE,EAAQ,CAAC,QAASD,CAAM,CAAC,CAC5E,CAGO,SAASE,EAAuBC,EAAcH,EAA2CC,EAAyB,CACvH,OAAKA,IACHA,EAAS,UAAU,UAEd,IAAI,KAAK,KAAM,EAAGE,CAAI,EAAE,mBAAmBF,EAAQ,CAAC,IAAKD,CAAM,CAAC,CACzE,CAGO,SAASI,EAAkBC,EAAeL,EAAyEC,EAAyB,CACjJ,OAAKA,IACHA,EAAS,UAAU,UAEd,IAAI,KAAK,KAAMI,EAAO,CAAC,EAAE,eAAeJ,EAAQ,CAAC,MAAOD,CAAM,CAAC,CACxE,CAGO,SAASM,EAAiBC,EAAcP,EAA2CC,EAAyB,CACjH,OAAKA,IACHA,EAAS,UAAU,UAEd,IAAI,KAAKM,EAAM,EAAG,CAAC,EAAE,mBAAmBN,EAAQ,CAAC,KAAMD,CAAM,CAAC,CACvE,CAGO,SAASQ,GAA2BP,EAA4B,CAChEA,IACHA,EAAS,UAAU,UAErB,IAAMQ,EAAcR,EAAO,MAAM,2FAA2F,EAC5H,GAAI,CAACQ,GAAe,CAACA,EAAY,OAC/B,SAGF,IAAMC,EAAWD,EAAY,CAAC,EACxBE,EAASF,EAAY,CAAC,EACtBG,EAAkB,iCAAiC,MAAM,KAAK,EAC9DC,EAAgB,uHAAuH,MAAM,KAAK,EAClJC,EAAoB,CAAC,KAAM,MAAO,MAAO,IAAI,EAC7CC,EAAkB,6EAA6E,MAAM,KAAK,EAEhH,OAAIJ,EACEE,GAAiBA,EAAc,SAASF,CAAM,IAEvCC,GAAmBA,EAAgB,SAASD,CAAM,MAMzDI,GAAmBA,EAAgB,SAASL,CAAQ,IAE7CI,GAAqBA,EAAkB,SAASJ,CAAQ,KAMvE,CAGO,SAASM,GAAwBf,EAA8B,CAKpE,OAJKA,IACHA,EAAS,UAAU,UAEEA,EAAO,MAAM,GAAG,EAAE,CAAC,EAC1B,CACd,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,IAAqC,EAC9C,IAAK,KACH,MAAO,IAAmC,EAC5C,QACE,MAAO,IAAqC,CAChD,CACF,CAGO,SAASgB,GAAYhB,EAA0B,CACpD,OAAKA,IACHA,EAAS,UAAU,UAEQ,CAC3B,KACA,MACA,MACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,QACA,IACF,EACkB,KAAKiB,GAAKjB,EAASA,EAAO,WAAWiB,CAAC,EAAI,EAAK,CACnE,CC5HO,SAASC,EAASC,EAAwB,CAC/C,MAAO,IAAIA,GACb,CAGO,SAASC,EAAUC,EAAoB,CAC5C,IAAMC,EAAQ,OAAOD,EAAK,SAAS,CAAC,EAAE,SAAS,EAAG,GAAG,EAC/CF,EAAM,OAAOE,EAAK,QAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,EAElD,MAAO,CAAC,IADKA,EAAK,YAAY,EACXC,EAAOH,CAAG,EAAE,KAAK,EAAE,CACxC,CAGO,SAASI,EAAkBF,EAAoB,CACpD,IAAMC,EAAQ,OAAOD,EAAK,SAAS,CAAC,EAAE,SAAS,EAAG,GAAG,EAC/CF,EAAM,OAAOE,EAAK,QAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,EAElD,MAAO,CAAC,IADKA,EAAK,YAAY,EACXC,EAAOH,CAAG,EAAE,KAAK,EAAE,CACxC,CAGO,SAASK,GAAcL,EAAgBM,EAA8B,CAC1E,IAAMC,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,GAAG,EACpDD,EAAQ,GAAKR,EAASC,CAAG,EACzBO,EAAQ,aAAa,OAAQ,cAAc,EAC3CA,EAAQ,aAAa,aAAcE,EAAsBT,EAAK,OAAQM,CAAM,CAAC,EAC7EC,EAAQ,aAAa,OAAQC,EAAmB,MAAM,GAAG,EACzDD,EAAQ,YAAcE,EAAsBT,EAAK,QAASM,CAAM,EACzDC,CACT,CAGO,SAASG,GAAWC,EAA8BC,EAAeC,EAA6C,CAzCrH,IAAAC,EA0CE,IAAMP,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,aAAa,EAC9DD,EAAQ,aAAa,OAAQ,KAAK,EAG9BK,EAAQ,GAAK,GAACE,EAAAH,EAAM,CAAC,IAAP,MAAAG,EAAU,YAE1BH,EAAM,QAAQI,GAAKR,EAAQ,YAAYS,EAAqBD,EAAE,IAAI,CAAC,CAAC,EACpER,EAAQ,aAAa,cAAe,MAAM,GAE1CI,EAAM,QAAQI,GAAK,CACjB,IAAIE,EAAcF,EAAE,WAAaF,GAAA,MAAAA,EAAS,gBAAkBK,EAAeH,EAAGF,GAAA,YAAAA,EAAS,MAAM,EAAIG,EAAqBD,EAAE,IAAI,GACvHA,EAAE,WAAaF,GAAA,MAAAA,EAAS,mBAAoBA,GAAA,MAAAA,EAAS,WACxDI,EAAcJ,EAAQ,QAAQE,EAAGE,CAAW,GAE9CV,EAAQ,YAAYU,CAAW,CACjC,CAAC,EAGIV,CACT,CAGO,SAASW,EAAehB,EAA2BI,EAA8B,CACtF,IAAMC,EAAU,SAAS,cAAc,KAAK,EACtCY,EAAe,SAAS,cAAc,KAAK,EAC3CC,EAAe,SAAS,cAAc,KAAK,EAC3CC,EAAgB,SAAS,cAAc,KAAK,EAC5CrB,EAAME,EAAK,KAAK,OAAO,EAE7BK,EAAQ,GAAKN,EAAUC,EAAK,IAAI,EAChCK,EAAQ,SAAW,GACnBA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,IAAI,EACrDD,EAAQ,UAAU,OAAOC,EAAmB,QAAQ,WAAYN,EAAK,KAAK,EAC1EK,EAAQ,UAAU,OAAOC,EAAmB,QAAQ,cAAeN,EAAK,QAAQ,EAChFK,EAAQ,UAAU,OAAOC,EAAmB,QAAQ,iBAAkB,CAACN,EAAK,SAAS,EACrFK,EAAQ,aAAa,OAAQ,UAAU,EACvCA,EAAQ,aAAa,gBAAiBL,EAAK,SAAS,SAAS,CAAC,EAC9DK,EAAQ,aAAa,aAAc,GAAGL,EAAK,MAAQ,UAAY,KAAKA,EAAK,KAAK,mBAAmBI,GAAA,KAAAA,EAAU,UAAU,SAAU,CAAC,QAAS,OAAQ,MAAO,OAAQ,IAAK,UAAW,KAAM,SAAS,CAAC,GAAG,EACnMC,EAAQ,aAAa,gBAAiBL,EAAK,SAAS,SAAS,CAAC,EAC9DK,EAAQ,aAAaC,EAAmB,WAAW,UAAWN,EAAK,KAAK,aAAa,CAAC,EACtFK,EAAQ,gBAAgB,WAAYL,EAAK,QAAQ,EACjDK,EAAQ,aAAa,OAAQC,EAAmB,MAAM,YAAY,EAGlE,IAAIc,EAAgB,GACpB,OAAQtB,EAAK,CACX,OACEsB,EAAgBd,EAAmB,MAAM,OACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,OACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,QACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,UACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,SACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,OACzC,MACF,OACEc,EAAgBd,EAAmB,MAAM,SACzC,KACJ,CACA,OAAAe,EAAkBH,EAAc,OAAQE,CAAa,EACrDC,EAAkBH,EAAc,OAAQZ,EAAmB,MAAM,IAAI,EACrEgB,EAAkBJ,EAAc,OAAQZ,EAAmB,MAAM,MAAON,EAAK,KAAK,EAClFsB,EAAkBJ,EAAc,OAAQZ,EAAmB,MAAM,iBAAkB,CAACN,EAAK,SAAS,EAElGiB,EAAa,UAAU,IAAIX,EAAmB,QAAQ,YAAY,EAClED,EAAQ,YAAYY,CAAY,EAChCC,EAAa,YAAcK,EAAuBvB,EAAK,KAAK,QAAQ,EAAG,UAAWI,CAAM,EACxFc,EAAa,UAAU,IAAIZ,EAAmB,QAAQ,UAAU,EAChED,EAAQ,YAAYa,CAAY,EAChCC,EAAc,UAAU,IAAI,oBAAoB,EAChDd,EAAQ,YAAYc,CAAa,EAC1Bd,CACT,CAGO,SAASS,EAAqBd,EAAyB,CAE5D,IAAMK,EAAU,SAAS,cAAc,MAAM,EAC7C,OAAAA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,WAAW,EAC5DD,EAAQ,GAAKN,EAAUC,CAAI,EACpBK,CACT,CAGO,SAASmB,GAAuBxB,EAAyB,CAC9D,IAAMK,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,aAAa,EAC9DD,EAAQ,GAAKH,EAAkBF,CAAI,EACnCK,EAAQ,aAAa,OAAQC,EAAmB,MAAM,aAAa,EAC5DD,CACT,CAGO,SAASoB,GAAgBC,EAAuBC,EAAiC,CACtF,IAAMtB,EAA0B,SAAS,cAAc,YAAY,EAGnE,GAFAA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,KAAK,EACtDD,EAAQ,aAAa,OAAQC,EAAmB,MAAM,KAAK,EACvDqB,EACFtB,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,cAAc,EAC/DD,EAAQ,KAAO,UACV,CACL,IAAMuB,EAAM,8RACZvB,EAAQ,IAAMuB,EACdvB,EAAQ,aAAaC,EAAmB,WAAW,iBAAkBoB,EAAM,KAAK,EAElF,OAAOrB,CACT,CAGO,SAASwB,GAAWC,EAA8B,CACvD,IAAMC,EAA6B,SAAS,cAAc,eAAe,EACzE,OAAAA,EAAQ,KAAOD,EACfC,EAAQ,aAAa,cAAe,MAAM,EACnCA,CACT,CAGO,SAASC,IAAyB,CACvC,IAAM3B,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,MAAM,EACvDD,EAAQ,GAAKC,EAAmB,IAAI,OACpCD,EAAQ,aAAa,OAAQC,EAAmB,MAAM,MAAM,EAE5D,IAAM2B,EAAiB,SAAS,cAAc,mBAAmB,EAC3DC,EAAwB,SAAS,cAAc,QAAQ,EACvDC,EAAe,SAAS,cAAc,YAAY,EAClDC,EAAkB,SAAS,cAAc,eAAe,EAC9DH,EAAe,aAAa,OAAQ3B,EAAmB,MAAM,eAAe,EAC5E4B,EAAsB,GAAK5B,EAAmB,IAAI,gBAClD4B,EAAsB,KAAO,SAC7BA,EAAsB,aAAa,aAAc,UAAU,EAC3DC,EAAa,aAAa,OAAQ,qBAAqB,EACvDC,EAAgB,GAAK9B,EAAmB,IAAI,wBAC5C8B,EAAgB,aAAa,cAAe,MAAM,EAClDA,EAAgB,UAAY,WAC5BH,EAAe,YAAYC,CAAqB,EAChDD,EAAe,YAAYG,CAAe,EAC1CF,EAAsB,YAAYC,CAAY,EAE9C,IAAME,EAAa,SAAS,cAAc,mBAAmB,EACvDC,EAAoB,SAAS,cAAc,QAAQ,EACnDC,EAAW,SAAS,cAAc,YAAY,EAC9CC,EAAc,SAAS,cAAc,eAAe,EAC1DH,EAAW,aAAa,OAAQ/B,EAAmB,MAAM,WAAW,EACpEgC,EAAkB,GAAKhC,EAAmB,IAAI,YAC9CgC,EAAkB,KAAO,SACzBA,EAAkB,aAAa,aAAc,MAAM,EACnDC,EAAS,aAAa,OAAQ,sBAAsB,EACpDC,EAAY,GAAKlC,EAAmB,IAAI,oBACxCkC,EAAY,aAAa,cAAe,MAAM,EAC9CA,EAAY,UAAY,OACxBH,EAAW,YAAYC,CAAiB,EACxCD,EAAW,YAAYG,CAAW,EAClCF,EAAkB,YAAYC,CAAQ,EAEtC,IAAME,EAAc,SAAS,cAAc,cAAc,EACnDC,EAAqB,SAAS,cAAc,QAAQ,EAC1DD,EAAY,aAAa,OAAQnC,EAAmB,MAAM,YAAY,EACtEoC,EAAmB,GAAKpC,EAAmB,IAAI,aAC/CoC,EAAmB,KAAO,SAC1BA,EAAmB,aAAa,eAAgB,OAAO,EACvDD,EAAY,YAAYC,CAAkB,EAE1C,IAAMC,EAAa,SAAS,cAAc,cAAc,EAClDC,EAAoB,SAAS,cAAc,QAAQ,EACzDD,EAAW,aAAa,OAAQrC,EAAmB,MAAM,WAAW,EACpEsC,EAAkB,GAAKtC,EAAmB,IAAI,YAC9CsC,EAAkB,KAAO,SACzBA,EAAkB,aAAa,eAAgB,OAAO,EACtDD,EAAW,YAAYC,CAAiB,EAGxC,IAAMC,EAAkB,SAAS,cAAc,KAAK,EACpD,OAAAA,EAAgB,aAAa,YAAa,QAAQ,EAClDA,EAAgB,YAAYJ,CAAW,EACvCI,EAAgB,YAAYF,CAAU,EAEtCtC,EAAQ,YAAY4B,CAAc,EAClC5B,EAAQ,YAAYwC,CAAe,EACnCxC,EAAQ,YAAYgC,CAAU,EACvBhC,CACT,CAGO,SAASyC,GAAsB7C,EAAeG,EAAgC,CACnF,IAAM2C,EAAO,SAAS,cAAc,MAAM,EACpCC,EAAO,SAAS,cAAc,YAAY,EAChD,OAAAD,EAAK,UAAYE,EAAkBhD,EAAO,OAAQG,CAAM,EACxD4C,EAAK,aAAa,OAAQ,iBAAiB,EACpC,CAACD,EAAMC,CAAI,CACpB,CAGO,SAASE,GAAqBC,EAAc/C,EAAgC,CACjF,IAAM2C,EAAO,SAAS,cAAc,MAAM,EACpCC,EAAO,SAAS,cAAc,YAAY,EAChD,OAAAD,EAAK,UAAYK,EAAiBD,EAAM,UAAW/C,CAAM,EACzD4C,EAAK,aAAa,OAAQ,iBAAiB,EACpC,CAACD,EAAMC,CAAI,CACpB,CAGO,SAASK,IAAmC,CACjD,IAAMhD,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,GAAKC,EAAmB,IAAI,kBACpCD,EAAQ,aAAa,YAAa,QAAQ,EAE1C,IAAMJ,EAAQ,SAAS,cAAc,MAAM,EAC3CA,EAAM,GAAKK,EAAmB,IAAI,iBAElC,IAAM6C,EAAO,SAAS,cAAc,MAAM,EAC1C,OAAAA,EAAK,GAAK7C,EAAmB,IAAI,gBAGjCD,EAAQ,YAAYJ,CAAK,EACzBI,EAAQ,YAAY8C,CAAI,EACjB9C,CACT,CAGO,SAASiD,IAAyB,CACvC,IAAMjD,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,GAAKC,EAAmB,IAAI,OACpCD,EAAQ,UAAU,IAAIC,EAAmB,QAAQ,MAAM,EACvDD,EAAQ,aAAa,OAAQC,EAAmB,MAAM,MAAM,EACrDD,CACT,CAGO,SAASkD,IAA8B,CAC5C,IAAMC,EAAc,SAAS,cAAc,cAAc,EACnDC,EAAqB,SAAS,cAAc,QAAQ,EAC1D,OAAAD,EAAY,GAAKlD,EAAmB,IAAI,aACxCkD,EAAY,aAAa,OAAQlD,EAAmB,MAAM,YAAY,EACtEmD,EAAmB,KAAO,SAC1BA,EAAmB,UAAY,QAC/BD,EAAY,YAAYC,CAAkB,EACnCD,CACT,CAGO,SAASE,IAA8B,CAC5C,IAAMC,EAAc,SAAS,cAAc,cAAc,EACnDC,EAAqB,SAAS,cAAc,QAAQ,EAC1D,OAAAD,EAAY,GAAKrD,EAAmB,IAAI,aACxCqD,EAAY,aAAa,OAAQrD,EAAmB,MAAM,YAAY,EACtEsD,EAAmB,KAAO,SAC1BA,EAAmB,UAAY,QAC/BD,EAAY,YAAYC,CAAkB,EACnCD,CACT,CAGO,SAASE,GAAkBC,EAAYC,EAA+C,CAC3F,IAAM1D,EAAU2D,EAAaF,CAAG,EAAE,KAAKG,GAAKA,EAAE,WAAaA,EAAE,UAAU,SAAS3D,EAAmB,QAAQ,IAAI,CAAC,EAChH,MAAI,CAACD,GAAY,CAAC0D,GAAmB1D,EAAQ,aAAa,UAAU,EAC3D,KAEFA,CACT,CAGO,SAAS6D,GAAqBJ,EAAYK,EAAgC,CAC/E,IAAM9D,EAAU2D,EAAaF,CAAG,EAAE,KAAKG,GAAKA,EAAE,KAAOE,CAAE,EACvD,OAAO9D,GAAA,KAAAA,EAAW,IACpB,CAGO,SAAS+D,GAAqB/D,EAAsBgE,EAAeC,EAAmBC,EAA8B,CACzHlE,EAAQ,SAAWkE,EAAe,GAAKF,EACvChE,EAAQ,UAAU,OAAOC,EAAmB,QAAQ,4BAA6BiE,GAAgBF,EAAQ,EAAE,EACvGA,EAAQ,IAAMC,GAAY,CAACC,EAC7BlE,EAAQ,MAAM,EAEdA,EAAQ,KAAK,CAEjB,CClUA,IAAMmE,EAAU,CACd,MAAO,gCACT,EAEaC,EAA8B,CACzC,QAAAD,CACF,ECWO,IAAME,EAAN,KAAoD,CAsBzD,YAAYC,EAA4BC,EAAY,CAbpD,KAAQ,cAA0B,CAAC,EAcjC,KAAK,cAAgBD,EACrB,KAAK,GAAKC,CACZ,CAdA,IAAW,QAAkB,CAlC/B,IAAAC,EAAAC,EAmCI,OAAOA,GAAAD,EAAA,KAAK,kBAAL,YAAAA,EAAsB,OAAtB,KAAAC,EAA8B,EACvC,CAEA,IAAW,cAAyC,CAClD,OAAO,KAAK,aACd,CACA,IAAW,aAAaC,EAAiC,CACvD,KAAK,cAAkBA,EAAQC,EAAQD,CAAK,EAAI,CAAC,GAAGA,CAAiB,EAAI,CAACA,CAAe,EAAI,CAAC,CAChG,CAOO,OAAc,CACd,KAAK,kBAGV,KAAK,gBAAgB,KAAO,GAC5B,KAAK,gBAAkB,OACvB,KAAK,SAAW,OAClB,CAEO,SAAgB,CACrB,KAAK,MAAM,CACb,CAEO,KAAKE,EAA2C,CAErD,KAAK,SAAW,KAAK,gBAAgBA,CAAM,EAC3C,KAAK,kBAAoBC,EAA4B,EACpD,KAAK,kBAAkC,GAAK,GAAG,KAAK,sBAGrD,KAAK,gBAAkB,KAAK,gBAAgB,EAC5C,KAAK,gBAAgB,YAAY,KAAK,QAAQ,EAC9C,KAAK,gBAAgB,YAAY,KAAK,iBAAgC,EACtE,KAAK,gBAAgB,OAAS,GAG9B,KAAK,SAAS,iBAAiBC,EAAmB,OAAO,aAAeC,GAAoD,CA5EhI,IAAAP,EA6EM,IAAID,EAAK,GAAG,KAAK,uBACjB,OAAQQ,EAAI,OAAO,KAAM,CACvB,IAAK,OACHR,GAAMS,EAAUD,EAAI,OAAO,KAAa,EACxC,MACF,IAAK,QACHR,GAAM,SAASQ,EAAI,OAAO,MAAM,SAAS,IACzC,MACF,IAAK,OACHR,GAAM,QAAQQ,EAAI,OAAO,MAAM,SAAS,IACxC,KACJ,EACAP,EAAA,KAAK,uBAAL,MAAAA,EAA2B,KAAK,KAAMD,GAClC,KAAK,oBACP,KAAK,kBAAkB,GAAKA,EAC5B,KAAK,kBAAkB,aAAa,gBAAiBQ,EAAI,OAAO,SAAS,SAAS,CAAC,EACnF,KAAK,kBAAkB,YAAcA,EAAI,OAAO,KAEpD,CAAC,EAGD,KAAK,gBAAgB,KAAO,GAI5B,OAAO,sBAAsB,IAAM,CACjC,WAAW,IAAM,CACX,KAAK,iBAAmB,KAAK,gBAAgB,MAAQ,KAAK,UAAY,KAAK,SAAS,aACtF,KAAK,SAAS,OAAO,CAEzB,EAAGE,EAAgB,QAAQ,kBAAkB,CAC/C,CAAC,CACH,CAEO,uBAAuBF,EAA0B,CA/G1D,IAAAP,GAgHIA,EAAA,KAAK,WAAL,MAAAA,EAAe,UAAUO,EAC3B,CAEQ,gBAAgBH,EAAyD,CAC/E,IAAMM,EAAkB,SAAS,cAAcJ,EAAmB,WAAW,EAC7E,cAAO,OAAOI,EAAiBN,CAAM,EAC9BM,CACT,CAEQ,iBAAmC,CACzC,IAAMC,EAAe,SAAS,cAAcF,EAAgB,WAAW,EACvE,OAAAE,EAAa,cAAgB,KAAK,cAClCA,EAAa,UAAY,eACzBA,EAAa,qBACbA,EAAa,UAAU,IAAIC,EAA4B,QAAQ,KAAK,EACpED,EAAa,GAAK,KAAK,GACvBE,EAAS,KAAK,cAAeF,CAAY,EAEzCA,EAAa,iBAAiBF,EAAgB,OAAO,MAAO,IAAM,CAC5D,KAAK,eACP,KAAK,cAAc,CAEvB,CAAC,EAEME,CACT,CACF",
4
+ "sourcesContent": ["import { TOOLTIP_CONSTANTS } from '../tooltip/tooltip-constants';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\nimport { CALENDAR_MENU_CONSTANTS } from './calendar-menu';\nimport { DateRange } from './core/date-range';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}calendar`;\n\nconst observedAttributes = {\n ALLOW_SINGLE_DATE_RANGE: 'allow-single-date-range',\n CLEAR_BUTTON: 'clear-button',\n CONSTRAIN_TO_ENABLED: 'constrain-to-enabled',\n FIRST_DAY_OF_WEEK: 'first-day-of-week',\n FIXED_HEIGHT: 'static-height',\n LIST_YEARS: 'list-years',\n LOCALE: 'locale',\n MAX: 'max',\n MENU_ANIMATION: 'menu-animation',\n MIN: 'min',\n MODE: 'mode',\n MONTH: 'month',\n PREVENT_FOCUS: 'prevent-focus',\n READONLY: 'readonly',\n SELECTION_FOLLOWS_MONTH: 'selection-follows-month',\n SHOW_HEADER: 'show-header',\n SHOW_OTHER_MONTHS: 'show-other-months',\n SHOW_TODAY: 'show-today',\n TODAY_BUTTON: 'today-button',\n VIEW: 'view',\n YEAR: 'year',\n YEAR_RANGE: 'year-range'\n};\n\nconst attributes = {\n ...observedAttributes,\n DATA_DATE: 'data-date',\n DATA_EVENT_THEME: 'data-event-theme',\n POPUP_CONTEXT: 'forge-popup-context'\n};\n\nconst classes = {\n ALLOW_SINGLE_DATE_RANGE: 'forge-calendar--allow-single-date-range',\n DATE: 'forge-calendar__date',\n DATE_GRID: 'forge-calendar__date-grid',\n DATE_INNER: 'forge-calendar__date__inner',\n DATE_OTHER_MONTH: 'forge-calendar__date--other-month',\n DATE_SPACER: 'forge-calendar__date-spacer',\n DATE_SELECTED: 'forge-calendar__date--selected',\n DATE_TODAY: 'forge-calendar__date--today',\n DATE_VIEW: 'forge-calendar__date-view',\n DATE_VIEW_ROW: 'forge-calendar__date-view__row',\n DATE_WRAPPER: 'forge-calendar__date-wrapper',\n DAY: 'forge-calendar__day',\n EVENT: 'forge-calendar__event',\n EVENT_OVERFLOW: 'forge-calendar__event--overflow',\n EVENT_WRAPPER: 'forge-calendar__event__wrapper',\n FIXED_HEIGHT: 'forge-calendar--fixed-height',\n FOOTER: 'forge-calendar__footer',\n HEADER: 'forge-calendar__header',\n MDC_RIPPLE_UPGRADED_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n MONTH_MENU_OPEN: 'forge-calendar--month-menu-open',\n PREVENT_FOCUS: 'forge-calendar--prevent-focus',\n RANGE: 'forge-calendar__range',\n RANGE_END: 'forge-calendar__range--end',\n RANGE_START: 'forge-calendar__range--start',\n RANGE_TARGET: 'forge-calendar__range__target',\n READONLY: 'forge-calendar--readonly',\n RTL: 'forge-calendar--rtl',\n SHOW_OTHER_MONTHS: 'forge-calendar--show-other-months',\n SHOW_TODAY: 'forge-calendar--show-today',\n VIEW: 'forge-calendar__view',\n YEAR_MENU_OPEN: 'forge-calendar--year-menu-open'\n};\n\nconst ids = {\n ACCESSIBLE_HEADER: 'accessible-header',\n ACCESSIBLE_MONTH: 'accessible-month',\n ACCESSIBLE_YEAR: 'accessible-year',\n CLEAR_BUTTON: 'clear-button',\n DATE_GRID: 'date-grid',\n DATE_VIEW: 'date-view',\n DAY_ROW: 'day-row',\n FOOTER: 'footer',\n HEADER: 'header',\n MENU: 'menu',\n MONTH_BUTTON: 'month-button',\n NEXT_BUTTON: 'next-button',\n NEXT_BUTTON_TOOLTIP: 'next-button-tooltip',\n PREVIOUS_BUTTON: 'previous-button',\n PREVIOUS_BUTTON_TOOLTIP: 'previous-button-tooltip',\n TODAY_BUTTON: 'today-button',\n YEAR_BUTTON: 'year-button'\n};\n\nconst weekdayParts = {\n SUNDAY: 'sunday',\n MONDAY: 'monday',\n TUESDAY: 'tuesday',\n WEDNESDAY: 'wednesday',\n THURSDAY: 'thursday',\n FRIDAY: 'friday',\n SATURDAY: 'saturday'\n};\n\nconst parts = {\n ...weekdayParts,\n CLEAR_BUTTON: 'clear-button',\n DATE: 'date',\n DATE_OTHER_MONTH: 'date-other-month',\n DATE_VIEW: 'date-view',\n DATE_WRAPPER: 'date-wrapper',\n DAY: 'day',\n EVENT: 'event',\n EVENT_WRAPPER: 'event-wrapper',\n FOOTER: 'footer',\n HEADER: 'header',\n MONTH_BUTTON: 'month-button',\n MONTH_BUTTON_ELEMENT: 'month-button-element',\n NEXT_BUTTON: 'next-button',\n PREVIOUS_BUTTON: 'previous-button',\n RANGE: 'range',\n RANGE_END: 'range-end',\n RANGE_START: 'range-start',\n TODAY: 'today',\n TODAY_BUTTON: 'today-button',\n WEEKEND: 'weekend',\n YEAR_BUTTON: 'year-button',\n YEAR_BUTTON_ELEMENT: 'year-button-element'\n};\n\nconst selectors = {\n ACCESSIBLE_HEADER: `#${ids.ACCESSIBLE_HEADER}`,\n ACCESSIBLE_MONTH: `#${ids.ACCESSIBLE_MONTH}`,\n ACCESSIBLE_YEAR: `#${ids.ACCESSIBLE_YEAR}`,\n CALENDAR: '.forge-calendar',\n CLEAR_BUTTON: `#${ids.CLEAR_BUTTON}`,\n DATE: `.${classes.DATE}`,\n DATE_GRID: `#${ids.DATE_GRID}`,\n DATE_INNER: `.${classes.DATE_INNER}`,\n DATE_OTHER_MONTH: `.${classes.DATE_OTHER_MONTH}`,\n DATE_SPACER: `.${classes.DATE_SPACER}`,\n DATE_SELECTED: `.${classes.DATE_SELECTED}`,\n DATE_TODAY: `.${classes.DATE_TODAY}`,\n DATE_VIEW: `#${ids.DATE_VIEW}`,\n DATE_WRAPPER: `.${classes.DATE_WRAPPER}`,\n DAY_ROW: `#${ids.DAY_ROW}`,\n EVENT_WRAPPER: `.${classes.EVENT_WRAPPER}`,\n FOOTER: `#${ids.FOOTER}`,\n HEADER: `#${ids.HEADER}`,\n MENU: CALENDAR_MENU_CONSTANTS.elementName,\n MONTH_BUTTON: `#${ids.MONTH_BUTTON}`,\n NEXT_BUTTON: `#${ids.NEXT_BUTTON}`,\n NEXT_BUTTON_TOOLTIP: `#${ids.NEXT_BUTTON_TOOLTIP}`,\n PREVIOUS_BUTTON: `#${ids.PREVIOUS_BUTTON}`,\n PREVIOUS_BUTTON_TOOLTIP: `#${ids.PREVIOUS_BUTTON_TOOLTIP}`,\n RANGE: `.${classes.RANGE}`,\n RANGE_END: `.${classes.RANGE_END}`,\n RANGE_START: `.${classes.RANGE_START}`,\n TODAY_BUTTON: `#${ids.TODAY_BUTTON}`,\n TOOLTIP: TOOLTIP_CONSTANTS.elementName,\n VIEW: '#view',\n YEAR_BUTTON: `#${ids.YEAR_BUTTON}`\n};\n\nconst events = {\n DATE_SELECT: `${elementName}-date-select`,\n FOCUS_CHANGE: `${elementName}-focus-change`,\n MONTH_CHANGE: `${elementName}-month-change`,\n VIEW_CHANGE: `${elementName}-view-change`\n};\n\nconst numbers = {\n DEFAULT_MAX_YEAR_OFFSET: 50,\n DEFAULT_MIN_YEAR_OFFSET: 50,\n FINAL_WEEK_BEGIN_INDEX: 35,\n MONTH_LENGTH: 42,\n PENULTIMATE_WEEK_BEGIN_INDEX: 28,\n WEEK_LENGTH: 7,\n YEARS_IN_VIEW: 20\n};\n\nexport const CALENDAR_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n parts,\n selectors,\n events,\n numbers\n};\n\nexport type CalendarDateBuilder = (date: ICalendarDateConfig, element: HTMLElement) => HTMLElement;\nexport type CalendarDateSelectCallback = (date: ICalendarDate) => boolean | Promise<boolean>;\nexport type CalendarDayBuilder = (day: DayOfWeek, element: HTMLElement) => HTMLElement;\nexport type CalendarDisabledDateBuilder = (date: Date) => boolean;\nexport type CalendarEventBuilder = (date: Date) => ICalendarEvent[] | ICalendarEvent | null;\nexport type CalendarTooltipBuilder = (date: ICalendarDate, content: string) => string | null;\n\nexport type CalendarMode = 'single' | 'multiple' | 'range';\nexport type CalendarView = 'date' | 'month' | 'year';\nexport type RangeSelectionState = 'none' | 'from' | 'to';\nexport type CalendarEventColor = 'primary' | 'secondary' | 'blue' | 'light-green' | 'cyan' | 'teal' | 'orange' | 'blue-grey' | 'grey' | 'red' | 'pink' | 'purple' | 'light-blue' | 'deep-purple' | 'green' | 'lime' | 'yellow' | 'brown' | 'deep-orange';\n\nexport interface ICalendarDate {\n date: Date;\n selected: boolean;\n events: ICalendarEvent[];\n}\n\nexport interface ICalendarDateConfig {\n date: Date;\n selected: boolean;\n today: boolean;\n thisMonth: boolean;\n disabled: boolean;\n}\n\nexport interface ICalendarDateOptions {\n builder?: CalendarDateBuilder;\n locale?: string;\n showOtherMonths?: boolean;\n}\n\nexport interface ICalendarDayOptions {\n builder?: CalendarDayBuilder;\n locale?: string;\n}\n\nexport interface ICalendarEvent {\n date: Date;\n label: string;\n color: CalendarEventColor | string;\n}\n\nexport interface ICalendarDateSelectEventData {\n date: Date | null;\n selected: boolean;\n range?: DateRange;\n rangeSelectionState?: RangeSelectionState;\n type: CalendarView;\n}\n\nexport interface ICalendarMonthChangeEventData {\n month: number;\n userSelected: boolean; // Indicates whether event is from explicit selection or regular navigation\n year: number;\n}\n\nexport interface ICalendarFocusChangeEventData {\n selected: boolean;\n text: string;\n type: CalendarView;\n value: Date | number;\n}\n\nexport interface ICalendarNumberRange {\n max: number;\n min: number;\n}\n\nexport interface ICalendarDisabledDateParams {\n builder: CalendarDisabledDateBuilder | undefined;\n disabledDates: Date[];\n disabledDaysOfWeek: DayOfWeek[];\n maxDate: Date | null;\n minDate: Date | null;\n otherMonth?: boolean;\n}\n\nexport interface ICalendarMenuMonthConfig {\n locale?: string;\n max: Date | null;\n min: Date | null;\n selectedMonth: number;\n selectedYear: number;\n}\n\nexport interface ICalendarMenuYearConfig {\n locale?: string;\n max: number;\n min: number;\n selectedYear: number;\n yearInView: number;\n}\n\nexport enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6\n}\n\nexport enum CalendarMonthFocus {\n First = 1,\n Last = 2,\n Current = 3\n}\n", "// TODO: implement year before month support\n// TODO: use a more robust strategy to get language and region parts from a locale, like the Intl API (in TypeScript 4.1.2 and es2020.intl)\n\nimport { DayOfWeek } from './calendar-constants';\n\n/** Returns a localized day name. */\nexport function getLocalizedDayOfWeek(day: DayOfWeek, format: 'long' | 'short' | 'narrow' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n // January 2017 starts on a Sunday\n return new Date(2017, 0, day + 1).toLocaleString(locale, {weekday: format});\n}\n\n/** Returns a localized date of the month. */\nexport function getLocalizedDayOfMonth(date: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, 0, date).toLocaleDateString(locale, {day: format});\n}\n\n/** Returns a localized month name. */\nexport function getLocalizedMonth(month: number, format: 'long' | 'short' | 'narrow' | 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, month, 1).toLocaleString(locale, {month: format});\n}\n\n/** Returns a localized year name. */\nexport function getLocalizedYear(year: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(year, 0, 1).toLocaleDateString(locale, {year: format});\n}\n\n/** Returns the first day of week for a locale. */\nexport function getFirstDayOfWeekForLocale(locale?: string): DayOfWeek {\n if (!locale) {\n locale = navigator.language;\n }\n const localeParts = locale.match(/^([a-z]{2,3})(?:-([a-z]{3})(?=$|-))?(?:-([a-z]{4})(?=$|-))?(?:-([a-z]{2}|\\d{3})(?=$|-))?/i);\n if (!localeParts || !localeParts.length) {\n return DayOfWeek.Monday;\n }\n\n const language = localeParts[1];\n const region = localeParts[4];\n const saturdayRegions = 'AEAFBHDJDZEGIQIRJOKWLYOMQASDSY'.match(/../g);\n const sundayRegions = 'AGARASAUBDBRBSBTBWBZCACNCODMDOETGTGUHKHNIDILINJMJPKEKHKRLAMHMMMOMTMXMZNINPPAPEPHPKPRPTPYSASGSVTHTTTWUMUSVEVIWSYEZAZW'.match(/../g);\n const saturdayLanguages = ['ar', 'arq', 'arz', 'fa'];\n const sundayLanguages = 'amasbndzengnguhehiidjajvkmknkolomhmlmrmtmyneomorpapssdsmsnsutatethtnurzhzu'.match(/../g);\n\n if (region) {\n if (sundayRegions && sundayRegions.includes(region)) {\n return DayOfWeek.Sunday;\n } else if (saturdayRegions && saturdayRegions.includes(region)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n } else {\n if (sundayLanguages && sundayLanguages.includes(language)) {\n return DayOfWeek.Sunday;\n } else if (saturdayLanguages && saturdayLanguages.includes(language)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n }\n}\n\n/** Returns an array of weekend days for a locale. */\nexport function getWeekendDaysForLocale(locale?: string): DayOfWeek[] {\n if (!locale) {\n locale = navigator.language;\n }\n const region: string = locale.split('-')[1];\n switch (region) {\n case 'DZ':\n case 'BH':\n case 'BD':\n case 'EG':\n case 'IQ':\n case 'IL':\n case 'JO':\n case 'KW':\n case 'LY':\n case 'MV': // Not consistent across Malaysia\n case 'MR':\n case 'NP':\n case 'OM':\n case 'QA':\n case 'SA':\n case 'SD':\n case 'SY':\n case 'AE': // Not consistent across UAE\n case 'YE':\n case 'AF': // Thursday morning is a workday\n case 'IR': // Thursday morning is a workday\n return [DayOfWeek.Thursday, DayOfWeek.Friday];\n case 'BN':\n return [DayOfWeek.Sunday, DayOfWeek.Friday];\n default:\n return [DayOfWeek.Sunday, DayOfWeek.Saturday];\n }\n}\n\n/** Returns whether a language is written right-to-left. */\nexport function isRtlLocale(locale?: string): boolean {\n if (!locale) {\n locale = navigator.language;\n }\n const rtlLocales: string[] = [\n 'ar',\n 'arc',\n 'ckb',\n 'dv',\n 'fa',\n 'ha',\n 'he',\n 'khw',\n 'ks',\n 'ps',\n 'sd',\n 'ur',\n 'uz-AF',\n 'yi'\n ];\n return rtlLocales.some(l => locale ? locale.startsWith(l) : false);\n}\n", "import { getEventPath, appendToAttribute, toggleOnAttribute } from '@tylertech/forge-core';\n\nimport { IIconComponent } from '../icon';\nimport { ITooltipComponent } from '../tooltip';\nimport { CALENDAR_CONSTANTS, DayOfWeek, ICalendarDateConfig, ICalendarDateOptions, ICalendarEvent } from './calendar-constants';\nimport { getLocalizedDayOfMonth, getLocalizedDayOfWeek, getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\n\n/** Converts a day into an id string prefixed with \"d\". */\nexport function getDayId(day: DayOfWeek): string {\n return `d${day}`;\n}\n\n/** Converts a date object into a \"yyyymmdd\" id string prefixed with \"d\". */\nexport function getDateId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['d', year, month, day].join('');\n}\n\n/** Converts a date object into a \"yyyymmdd\" if string prefixed with \"e\". */\nexport function getEventWrapperId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['e', year, month, day].join('');\n}\n\n/** Returns a day element. */\nexport function getDayElement(day: DayOfWeek, locale?: string): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DAY);\n element.id = getDayId(day);\n element.setAttribute('role', 'columnheader');\n element.setAttribute('aria-label', getLocalizedDayOfWeek(day, 'long', locale));\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DAY);\n element.textContent = getLocalizedDayOfWeek(day, 'short', locale);\n return element;\n}\n\n/** Returns a date row element. */\nexport function getDateRow(dates: ICalendarDateConfig[], index: number, options?: ICalendarDateOptions): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_VIEW_ROW);\n element.setAttribute('role', 'row');\n\n // Populate the row\n if (index > 0 && !dates[0]?.thisMonth) {\n // A row after the first that begins on another month is all spacers and should be hidden from the accessibility tree\n dates.forEach(d => element.appendChild(getDateSpacerElement(d.date)));\n element.setAttribute('aria-hidden', 'true');\n } else {\n dates.forEach(d => {\n let dateElement = d.thisMonth || options?.showOtherMonths ? getDateElement(d, options?.locale) : getDateSpacerElement(d.date);\n if ((d.thisMonth || options?.showOtherMonths) && options?.builder) {\n dateElement = options.builder(d, dateElement);\n }\n element.appendChild(dateElement);\n });\n }\n\n return element;\n}\n\n/** Returns a date element. */\nexport function getDateElement(date: ICalendarDateConfig, locale?: string): HTMLElement {\n const element = document.createElement('div');\n const rangeElement = document.createElement('div');\n const innerElement = document.createElement('div');\n const rippleElement = document.createElement('div');\n const day = date.date.getDay();\n\n element.id = getDateId(date.date);\n element.tabIndex = -1;\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_TODAY, date.today);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_SELECTED, date.selected);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_OTHER_MONTH, !date.thisMonth);\n element.setAttribute('role', 'gridcell');\n element.setAttribute('aria-disabled', date.disabled.toString());\n element.setAttribute('aria-label', `${date.today ? 'Today, ' : ''}${date.date.toLocaleDateString(locale ?? navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric'})}`);\n element.setAttribute('aria-selected', date.selected.toString());\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE, date.date.toDateString());\n element.toggleAttribute('disabled', date.disabled);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DATE_WRAPPER);\n \n // Add day of week part\n let dayOfWeekPart = '';\n switch (day) {\n case DayOfWeek.Sunday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SUNDAY;\n break;\n case DayOfWeek.Monday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.MONDAY;\n break;\n case DayOfWeek.Tuesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.TUESDAY;\n break;\n case DayOfWeek.Wednesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.WEDNESDAY;\n break;\n case DayOfWeek.Thursday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.THURSDAY;\n break;\n case DayOfWeek.Friday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.FRIDAY;\n break;\n case DayOfWeek.Saturday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SATURDAY;\n break;\n }\n appendToAttribute(innerElement, 'part', dayOfWeekPart);\n appendToAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.TODAY, date.today);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE_OTHER_MONTH, !date.thisMonth);\n\n rangeElement.classList.add(CALENDAR_CONSTANTS.classes.RANGE_TARGET);\n element.appendChild(rangeElement);\n innerElement.textContent = getLocalizedDayOfMonth(date.date.getDate(), 'numeric', locale);\n innerElement.classList.add(CALENDAR_CONSTANTS.classes.DATE_INNER);\n element.appendChild(innerElement);\n rippleElement.classList.add('mdc-ripple-surface');\n element.appendChild(rippleElement);\n return element;\n}\n\n/** Returns a date spacer element. */\nexport function getDateSpacerElement(date: Date): HTMLElement {\n // This is a span to easiliy differentiate it from a date in CSS\n const element = document.createElement('span');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_SPACER);\n element.id = getDateId(date);\n return element;\n}\n\n/** Returns an event wrapper element. */\nexport function getEventWrapperElement(date: Date): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_WRAPPER);\n element.id = getEventWrapperId(date);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT_WRAPPER);\n return element;\n}\n\n/** Returns an event element. */\nexport function getEventElement(event: ICalendarEvent, overflow?: boolean): HTMLElement {\n const element: IIconComponent = document.createElement('forge-icon');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT);\n if (overflow) {\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_OVERFLOW);\n element.name = 'add';\n } else {\n const svg = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\" stroke=\"var(--forge-calendar-event-stroke-color)\" stroke-width=\"4px\" paint-order=\"stroke\"></path></svg>';\n element.src = svg;\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_EVENT_THEME, event.color);\n }\n return element;\n}\n\n/** Returns a tooltip element. */\nexport function getTooltip(content: string): HTMLElement {\n const tooltip: ITooltipComponent = document.createElement('forge-tooltip');\n tooltip.text = content;\n tooltip.setAttribute('aria-hidden', 'true');\n return tooltip;\n}\n\n/** Returns a calendar header. */\nexport function getHeader(): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.HEADER);\n element.id = CALENDAR_CONSTANTS.ids.HEADER;\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.HEADER);\n\n const previousButton = document.createElement('forge-icon-button');\n const previousButtonElement = document.createElement('button');\n const previousIcon = document.createElement('forge-icon');\n const previousTooltip = document.createElement('forge-tooltip');\n previousButton.setAttribute('part', CALENDAR_CONSTANTS.parts.PREVIOUS_BUTTON);\n previousButtonElement.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON;\n previousButtonElement.type = 'button';\n previousButtonElement.setAttribute('aria-label', 'Previous');\n previousIcon.setAttribute('name', 'keyboard_arrow_left');\n previousTooltip.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON_TOOLTIP;\n previousTooltip.setAttribute('aria-hidden', 'true');\n previousTooltip.innerText = 'Previous';\n previousButton.appendChild(previousButtonElement);\n previousButton.appendChild(previousTooltip);\n previousButtonElement.appendChild(previousIcon);\n\n const nextButton = document.createElement('forge-icon-button');\n const nextButtonElement = document.createElement('button');\n const nextIcon = document.createElement('forge-icon');\n const nextTooltip = document.createElement('forge-tooltip');\n nextButton.setAttribute('part', CALENDAR_CONSTANTS.parts.NEXT_BUTTON);\n nextButtonElement.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON;\n nextButtonElement.type = 'button';\n nextButtonElement.setAttribute('aria-label', 'Next');\n nextIcon.setAttribute('name', 'keyboard_arrow_right');\n nextTooltip.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON_TOOLTIP;\n nextTooltip.setAttribute('aria-hidden', 'true');\n nextTooltip.innerText = 'Next';\n nextButton.appendChild(nextButtonElement);\n nextButton.appendChild(nextTooltip);\n nextButtonElement.appendChild(nextIcon);\n\n const monthButton = document.createElement('forge-button');\n const monthButtonElement = document.createElement('button');\n monthButton.setAttribute('part', CALENDAR_CONSTANTS.parts.MONTH_BUTTON);\n monthButtonElement.id = CALENDAR_CONSTANTS.ids.MONTH_BUTTON;\n monthButtonElement.type = 'button';\n monthButtonElement.setAttribute('aria-pressed', 'false');\n monthButton.appendChild(monthButtonElement);\n\n const yearButton = document.createElement('forge-button');\n const yearButtonElement = document.createElement('button');\n yearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.YEAR_BUTTON);\n yearButtonElement.id = CALENDAR_CONSTANTS.ids.YEAR_BUTTON;\n yearButtonElement.type = 'button';\n yearButtonElement.setAttribute('aria-pressed', 'false');\n yearButton.appendChild(yearButtonElement);\n\n // TODO: change order of month and year based on locale\n const centerContainer = document.createElement('div');\n centerContainer.setAttribute('aria-live', 'polite');\n centerContainer.appendChild(monthButton);\n centerContainer.appendChild(yearButton);\n\n element.appendChild(previousButton);\n element.appendChild(centerContainer);\n element.appendChild(nextButton);\n return element;\n}\n\n/** Returns content for the month button. */\nexport function getMonthButtonContent(month: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedMonth(month, 'long', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns content for the year button. */\nexport function getYearButtonContent(year: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedYear(year, 'numeric', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns a hidden, accessible header. */\nexport function getAccessibleHeader(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_HEADER;\n element.setAttribute('aria-live', 'polite');\n\n const month = document.createElement('span');\n month.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_MONTH;\n\n const year = document.createElement('span');\n year.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_YEAR;\n\n // TODO: change order of month and year based on locale\n element.appendChild(month);\n element.appendChild(year);\n return element;\n}\n\n/** Returns a calendar footer. */\nexport function getFooter(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.FOOTER;\n element.classList.add(CALENDAR_CONSTANTS.classes.FOOTER);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.FOOTER);\n return element;\n}\n\n/** Returns a clear button. */\nexport function getClearButton(): HTMLElement {\n const clearButton = document.createElement('forge-button');\n const clearButtonElement = document.createElement('button');\n clearButton.id = CALENDAR_CONSTANTS.ids.CLEAR_BUTTON;\n clearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.CLEAR_BUTTON);\n clearButtonElement.type = 'button';\n clearButtonElement.innerText = 'Clear';\n clearButton.appendChild(clearButtonElement);\n return clearButton;\n}\n\n/** Returns a today button. */\nexport function getTodayButton(): HTMLElement {\n const todayButton = document.createElement('forge-button');\n const todayButtonElement = document.createElement('button');\n todayButton.id = CALENDAR_CONSTANTS.ids.TODAY_BUTTON;\n todayButton.setAttribute('part', CALENDAR_CONSTANTS.parts.TODAY_BUTTON);\n todayButtonElement.type = 'button';\n todayButtonElement.innerText = 'Today';\n todayButton.appendChild(todayButtonElement);\n return todayButton;\n}\n\n/** Checks whether an event originated from a date element, returning the element if it did. */\nexport function eventIncludesDate(evt: Event, includeDisabled?: boolean): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.classList && p.classList.contains(CALENDAR_CONSTANTS.classes.DATE));\n if (!element || (!includeDisabled && element.hasAttribute('disabled'))) {\n return null;\n }\n return element;\n}\n\n/** Checks whether an event originated from an element with the given id, returning the element if it did. */\nexport function eventIncludesElement(evt: Event, id: string): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.id === id);\n return element ?? null;\n}\n\n/** Sets the tabindex on a date element. */\nexport function setTabindexOnElement(element: HTMLElement, value: number, setFocus: boolean, preventFocus?: boolean): void {\n element.tabIndex = preventFocus ? -1 : value;\n element.classList.toggle(CALENDAR_CONSTANTS.classes.MDC_RIPPLE_UPGRADED_FOCUSED, preventFocus && value > -1);\n if (value > -1 && setFocus && !preventFocus) {\n element.focus();\n } else {\n element.blur();\n }\n}\n", "export interface ICalendarDropdownPopupConfig {\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n popupClasses?: string | string[] | null;\n}\n\nconst classes = {\n POPUP: `forge-calendar-dropdown__popup`\n};\n\nexport const CALENDAR_DROPDOWN_CONSTANTS = {\n classes\n};\n", "import { addClass, isArray, createVisuallyHiddenElement } from '@tylertech/forge-core';\n\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../../popup';\nimport { ICalendarComponent } from '../calendar';\nimport { CALENDAR_CONSTANTS, ICalendarFocusChangeEventData } from '../calendar-constants';\nimport { getDateId } from '../calendar-dom-utils';\nimport { CALENDAR_DROPDOWN_CONSTANTS } from './calendar-dropdown-constants';\n\nexport interface ICalendarDropdown {\n calendar: ICalendarComponent | undefined;\n dropdownElement: IPopupComponent | undefined;\n id: string;\n targetElement: HTMLElement;\n popupClasses: string | string[] | null;\n locale: string | undefined;\n isOpen: boolean;\n activeChangeCallback: ((id: string) => void) | undefined;\n closeCallback: (() => void) | undefined;\n open(config: Partial<ICalendarComponent>): void;\n close(): void;\n destroy(): void;\n propagateKeyboardEvent(evt: KeyboardEvent): void;\n}\n\nexport class CalendarDropdown implements ICalendarDropdown {\n public calendar: ICalendarComponent | undefined;\n public dropdownElement: IPopupComponent | undefined;\n public id: string;\n public targetElement: HTMLElement;\n public activeChangeCallback: ((id: string) => void) | undefined;\n public closeCallback: (() => void) | undefined;\n\n private _announcerElement: HTMLElement | undefined;\n private _popupClasses: string[] = [];\n\n public get isOpen(): boolean {\n return this.dropdownElement?.open ?? false;\n }\n\n public get popupClasses(): string | string[] | null {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[] | null) {\n this._popupClasses = !!value ? isArray(value) ? [...value as string[]] : [value as string] : [];\n }\n\n public get locale(): string | undefined {\n return this.calendar?.locale;\n }\n public set locale(value: string | undefined) {\n if (this.calendar) {\n this.calendar.locale = value;\n }\n }\n \n constructor(targetElement: HTMLElement, id: string) {\n this.targetElement = targetElement;\n this.id = id;\n }\n\n public close(): void {\n if (!this.dropdownElement) {\n return;\n }\n this.dropdownElement.open = false;\n this.dropdownElement = undefined;\n this.calendar = undefined;\n }\n\n public destroy(): void {\n this.close();\n }\n\n public open(config: Partial<ICalendarComponent>): void {\n // Create calendar element\n this.calendar = this._createCalendar(config);\n this._announcerElement = createVisuallyHiddenElement();\n (this._announcerElement as HTMLElement).id = `${this.id}-activedescendant`;\n\n // Create dropdown element\n this.dropdownElement = this._createDropdown();\n this.dropdownElement.appendChild(this.calendar);\n this.dropdownElement.appendChild(this._announcerElement as HTMLElement);\n this.dropdownElement.static = true;\n\n // Add a listener for when the active descendent is updated\n this.calendar.addEventListener(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, (evt: CustomEvent<ICalendarFocusChangeEventData>) => {\n let id = `${this.id}-activedescendent-`;\n switch (evt.detail.type) {\n case 'date':\n id += getDateId(evt.detail.value as Date);\n break;\n case 'month':\n id += `month-${evt.detail.value.toString()}`;\n break;\n case 'year':\n id += `year-${evt.detail.value.toString()}`;\n break;\n }\n this.activeChangeCallback?.call(this, id);\n if (this._announcerElement) {\n this._announcerElement.id = id;\n this._announcerElement.setAttribute('aria-selected', evt.detail.selected.toString());\n this._announcerElement.textContent = evt.detail.text;\n }\n });\n\n // Open the popup\n this.dropdownElement.open = true;\n\n // Attempt to re-layout the calendar to account for updates in rendering during scale\n // transition within popup (fixes ripple alignment... etc.)\n window.requestAnimationFrame(() => {\n setTimeout(() => {\n if (this.dropdownElement && this.dropdownElement.open && this.calendar && this.calendar.isConnected) {\n this.calendar.layout();\n }\n }, POPUP_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n public propagateKeyboardEvent(evt: KeyboardEvent): void {\n this.calendar?.handleKey(evt);\n }\n\n private _createCalendar(config: Partial<ICalendarComponent>): ICalendarComponent {\n const calendarElement = document.createElement(CALENDAR_CONSTANTS.elementName);\n Object.assign(calendarElement, config);\n return calendarElement;\n }\n\n private _createDropdown(): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = this.targetElement;\n popupElement.placement = 'bottom-start';\n popupElement.animationType = PopupAnimationType.Menu;\n popupElement.classList.add(CALENDAR_DROPDOWN_CONSTANTS.classes.POPUP);\n popupElement.id = this.id;\n addClass(this._popupClasses, popupElement);\n\n popupElement.addEventListener(POPUP_CONSTANTS.events.CLOSE, () => {\n if (this.closeCallback) {\n this.closeCallback();\n }\n });\n\n return popupElement;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadProps", "__spreadValues", "classes", "ids", "weekdayParts", "parts", "selectors", "CALENDAR_MENU_CONSTANTS", "TOOLTIP_CONSTANTS", "events", "numbers", "CALENDAR_CONSTANTS", "DayOfWeek", "CalendarMonthFocus", "getLocalizedDayOfWeek", "day", "format", "locale", "getLocalizedDayOfMonth", "date", "getLocalizedMonth", "month", "getLocalizedYear", "year", "getFirstDayOfWeekForLocale", "localeParts", "language", "region", "saturdayRegions", "sundayRegions", "saturdayLanguages", "sundayLanguages", "getWeekendDaysForLocale", "isRtlLocale", "l", "getDayId", "day", "getDateId", "date", "month", "getEventWrapperId", "getDayElement", "locale", "element", "CALENDAR_CONSTANTS", "getLocalizedDayOfWeek", "getDateRow", "dates", "index", "options", "_a", "d", "getDateSpacerElement", "dateElement", "getDateElement", "rangeElement", "innerElement", "rippleElement", "dayOfWeekPart", "appendToAttribute", "toggleOnAttribute", "getLocalizedDayOfMonth", "getEventWrapperElement", "getEventElement", "event", "overflow", "svg", "getTooltip", "content", "tooltip", "getHeader", "previousButton", "previousButtonElement", "previousIcon", "previousTooltip", "nextButton", "nextButtonElement", "nextIcon", "nextTooltip", "monthButton", "monthButtonElement", "yearButton", "yearButtonElement", "centerContainer", "getMonthButtonContent", "span", "icon", "getLocalizedMonth", "getYearButtonContent", "year", "getLocalizedYear", "getAccessibleHeader", "getFooter", "getClearButton", "clearButton", "clearButtonElement", "getTodayButton", "todayButton", "todayButtonElement", "eventIncludesDate", "evt", "includeDisabled", "getEventPath", "p", "eventIncludesElement", "id", "setTabindexOnElement", "value", "setFocus", "preventFocus", "classes", "CALENDAR_DROPDOWN_CONSTANTS", "CalendarDropdown", "targetElement", "id", "_a", "_b", "value", "isArray", "config", "createVisuallyHiddenElement", "CALENDAR_CONSTANTS", "evt", "getDateId", "POPUP_CONSTANTS", "calendarElement", "popupElement", "CALENDAR_DROPDOWN_CONSTANTS", "addClass"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as x,j as P}from"./chunk.ISC7SZSP.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as I}from"./chunk.5V5ABSHI.js";import{a as y,b as C}from"./chunk.DTZFWZPB.js";import{a as b,e as T,f as S,k as A}from"./chunk.NK7H3MMM.js";import{k as g}from"./chunk.J2M2MXP2.js";import{a as L,d as h}from"./chunk.M3QDAYD2.js";var Y=`${C}state-layer`,$={TARGET:"target",DISABLED:"disabled"},V=L({},$),W={SURFACE:".forge-state-layer"},K={HOVERED:"forge-state-layer--hovered",PRESSED:"forge-state-layer--pressed"},s={elementName:Y,attributes:V,selectors:W,classes:K},l=class n{constructor(e,t){this.x=e;this.y=t}static fromPointerEvent(e){return new n(e.pageX,e.pageY)}},N=150,M=450,f=225,D=.2,R=10,H=75,O=.35,w="::after",k="forwards",B="cubic-bezier(0.2, 0, 0, 1)",G=(i=>(i[i.INACTIVE=0]="INACTIVE",i[i.TOUCH_DELAY=1]="TOUCH_DELAY",i[i.HOLDING=2]="HOLDING",i[i.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK",i))(G||{});function U(n){let{height:e,width:t}=n.getBoundingClientRect(),r=Math.max(e,t),i=Math.max(O*r,H),o=Math.floor(r*D),_=`${(Math.sqrt(t**2+e**2)+R+i)/o}`,c=`${o}px`;return{rippleScale:_,rippleSize:c,initialSize:o}}function z(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o={x:(i-e)/2,y:(r-e)/2},a;return Z(t)?a=X(n,t):a={x:i/2,y:r/2},a={x:a.x-e/2,y:a.y-e/2},{startPoint:a,endPoint:o}}function X(n,e){let{scrollX:t,scrollY:r}=window,{left:i,top:o}=n.getBoundingClientRect(),a=t+i,p=r+o,{x:_,y:c}=e;return{x:_-a,y:c-p}}function F(n,e,t){let{height:r,width:i}=n.getBoundingClientRect();return e>=0&&e<=i&&t>=0&&t<=r}function Z(n){return n&&(n instanceof l||["x","y"].every(e=>e in n))}var m=class extends I{constructor(t){super(t);this._targetElement=null;this._surfaceElement=S(t,s.selectors.SURFACE)}destroy(){typeof this._destroyDeferListener=="function"&&(this._destroyDeferListener(),this._destroyDeferListener=void 0)}async deferInitialization(t){if(!this._targetElement)return;let{userInteraction:r,destroy:i}=x(this._targetElement);this._destroyDeferListener=i;let o=await r;t(o.type==="pointerenter"?o:void 0)}addTargetListener(t,r){var i;(i=this._targetElement)==null||i.addEventListener(t,r)}removeTargetListener(t,r){var i;(i=this._targetElement)==null||i.removeEventListener(t,r)}setHovered(t){this._surfaceElement.classList.toggle(s.classes.HOVERED,t)}setPressed(t){this._surfaceElement.classList.toggle(s.classes.PRESSED,t)}getTargetElement(){return this._targetElement}setTargetElement(t){this._targetElement=t}trySetTarget(t){this._targetElement=P(this._component,t)}startAnimation(t){var E;if(!this._surfaceElement)return;this.setPressed(!0),(E=this._rippleAnimation)==null||E.cancel();let{rippleSize:r,rippleScale:i,initialSize:o}=U(this._component),{startPoint:a,endPoint:p}=z(this._component,o,t),_=`${a.x}px, ${a.y}px`,c=`${p.x}px, ${p.y}px`;this._rippleAnimation=this._surfaceElement.animate({top:[0,0],left:[0,0],height:[r,r],width:[r,r],transform:[`translate(${_}) scale(1)`,`translate(${c}) scale(${i})`]},{pseudoElement:w,duration:M,easing:B,fill:k})}async endAnimation(){var i;let t=this._rippleAnimation,r=(i=t==null?void 0:t.currentTime)!=null?i:1/0;if(r>=f){this.setPressed(!1);return}await new Promise(o=>{setTimeout(o,f-r)}),this._rippleAnimation===t&&this.setPressed(!1)}inBounds(t,r){return F(this._component,t,r)}};var v=class{constructor(e){this._adapter=e;this._target=null;this._disabled=!1;this._attached=!1;this._deferred=!0;this._pointerState=0;this._checkBoundsAfterContextMenu=!1;this._pointerEnterListener=t=>this._onPointerEnter(t),this._pointerLeaveListener=t=>this._onPointerLeave(t),this._pointerDownListener=t=>this._onPointerDown(t),this._pointerUpListener=t=>this._onPointerUp(t),this._pointerCancelListener=t=>this._onPointerCancel(t),this._clickListener=()=>this._onClick(),this._contextmenuListener=()=>this._onContextmenu()}initialize(){this._adapter.trySetTarget(this._target),this._deferInitialization()}disconnect(){this._pointerStartEvent=void 0,this._pointerState=0,this._adapter.setHovered(!1),this._adapter.setPressed(!1),this._adapter.destroy(),this._removeListeners()}playAnimation(e){this._adapter.startAnimation(e),this._endAnimation()}_deferInitialization(){this._adapter.deferInitialization(this._onDeferredInitialize.bind(this))}_applyListeners(){this._disabled||(this._adapter.addTargetListener("pointerenter",this._pointerEnterListener),this._adapter.addTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.addTargetListener("pointerdown",this._pointerDownListener),this._adapter.addTargetListener("pointerup",this._pointerUpListener),this._adapter.addTargetListener("pointercancel",this._pointerCancelListener),this._adapter.addTargetListener("click",this._clickListener),this._adapter.addTargetListener("contextmenu",this._contextmenuListener),this._attached=!0)}_removeListeners(){this._adapter.removeTargetListener("pointerenter",this._pointerEnterListener),this._adapter.removeTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.removeTargetListener("pointerdown",this._pointerDownListener),this._adapter.removeTargetListener("pointerup",this._pointerUpListener),this._adapter.removeTargetListener("pointercancel",this._pointerCancelListener),this._adapter.removeTargetListener("click",this._clickListener),this._adapter.removeTargetListener("contextmenu",this._contextmenuListener),this._attached=!1}_onDeferredInitialize(e){this._applyListeners(),(e==null?void 0:e.type)==="pointerenter"&&this._pointerEnterListener(e),this._deferred=!1}_onPointerEnter(e){this._canHandleEvent(e)&&this._adapter.setHovered(!0)}_onPointerLeave(e){this._canHandleEvent(e)&&(this._adapter.setHovered(!1),this._pointerState!==0&&this._adapter.endAnimation())}async _onPointerDown(e){if(this._pointerStartEvent=e,!!this._canHandleEvent(e)){if(!this._isTouch(e.pointerType)){this._pointerState=3,this._startAnimation(e);return}this._checkBoundsAfterContextMenu&&!this._adapter.inBounds(e.x,e.y)||(this._checkBoundsAfterContextMenu=!1,this._pointerState=1,await new Promise(t=>setTimeout(t,N)),this._pointerState===1&&(this._pointerState=2,this._startAnimation(e)))}}_onPointerUp(e){if(this._canHandleEvent(e)){if(this._pointerState===2){this._pointerState=3;return}if(this._pointerState===1){this._pointerState=3,this._startAnimation(this._pointerStartEvent);return}}}_onClick(){if(!this._disabled){if(this._pointerState===3){this._endAnimation();return}this._pointerState===0&&(this._startAnimation(this._pointerStartEvent),this._endAnimation())}}_onPointerCancel(e){this._canHandleEvent(e)&&this._endAnimation()}_onContextmenu(){this._disabled||(this._checkBoundsAfterContextMenu=!0,this._adapter.endAnimation())}_startAnimation(e){let t=e?l.fromPointerEvent(e):void 0;this._adapter.startAnimation(t)}_endAnimation(){this._pointerState=0,this._adapter.endAnimation(),this._pointerStartEvent=void 0}_canHandleEvent({type:e,isPrimary:t,buttons:r,pointerType:i,pointerId:o}){if(this._disabled||!t||this._pointerStartEvent&&this._pointerStartEvent.pointerId!==o)return!1;if(e==="pointerenter"||e==="pointerleave")return!this._isTouch(i);let a=r===1;return this._isTouch(i)||a}_isTouch(e){return e==="touch"}get isAttached(){return this._attached}get targetElement(){return this._adapter.getTargetElement()}set targetElement(e){this._attached&&this._removeListeners(),this._adapter.setTargetElement(e),this._deferred||this._deferInitialization()}get target(){return this._adapter.getHostAttribute(s.attributes.TARGET)}set target(e){this._target!==e&&(this._target=e,this._adapter.isConnected&&(this._attached&&this._removeListeners(),this._adapter.trySetTarget(e),this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.TARGET,!!this._target,this._target))}get disabled(){return this._disabled}set disabled(e){e=!!e,this._disabled!==e&&(this._disabled=e,this._adapter.isConnected&&(this._disabled?this._removeListeners():this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}};var q='<template><div class="forge-state-layer" part="surface"></div></template>',j=':host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}.forge-state-layer{--_color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_hover-color:var(--forge-state-layer-hover-color, var(--_color));--_hover-opacity:0.08;--_pressed-color:var(--forge-state-layer-pressed-color, var(--_color));--_pressed-opacity:0.12;--_hover-duration:15ms;--_pressed-duration:105ms;--_animation-duration:375ms}.forge-state-layer::after,.forge-state-layer::before{content:"";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_hover-color);inset:0;-webkit-transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear;transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_animation-duration) linear;transition:opacity var(--_animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_hover-color);opacity:var(--_hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_pressed-opacity);-webkit-transition-duration:var(--_pressed-duration);transition-duration:var(--_pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}',d=class extends A{constructor(){super();T(this,q,j),this._foundation=new v(new m(this))}static get observedAttributes(){return[s.attributes.TARGET,s.attributes.DISABLED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,i){switch(t){case s.attributes.TARGET:this.target=i;break;case s.attributes.DISABLED:this.disabled=g(i);break}}playAnimation(t){this._foundation.playAnimation(t)}};h([u()],d.prototype,"targetElement",2),h([u()],d.prototype,"target",2),h([u()],d.prototype,"disabled",2),d=h([y({name:s.elementName})],d);function ye(){b(d)}export{s as a,l as b,N as c,M as d,f as e,D as f,R as g,H as h,O as i,w as j,k,B as l,G as m,m as n,v as o,d as p,ye as q};
7
- //# sourceMappingURL=chunk.2O6IZ7XZ.js.map
6
+ import{b as x,j as P}from"./chunk.ISC7SZSP.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as I}from"./chunk.BKL2BAYW.js";import{a as y,b as C}from"./chunk.DXN7ZOH3.js";import{a as b,e as T,f as S,k as A}from"./chunk.MVTBJPO2.js";import{k as g}from"./chunk.J2M2MXP2.js";import{a as L,d as h}from"./chunk.M3QDAYD2.js";var Y=`${C}state-layer`,$={TARGET:"target",DISABLED:"disabled"},V=L({},$),W={SURFACE:".forge-state-layer"},K={HOVERED:"forge-state-layer--hovered",PRESSED:"forge-state-layer--pressed"},s={elementName:Y,attributes:V,selectors:W,classes:K},l=class n{constructor(e,t){this.x=e;this.y=t}static fromPointerEvent(e){return new n(e.pageX,e.pageY)}},N=150,M=450,f=225,D=.2,R=10,H=75,O=.35,w="::after",k="forwards",B="cubic-bezier(0.2, 0, 0, 1)",G=(i=>(i[i.INACTIVE=0]="INACTIVE",i[i.TOUCH_DELAY=1]="TOUCH_DELAY",i[i.HOLDING=2]="HOLDING",i[i.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK",i))(G||{});function U(n){let{height:e,width:t}=n.getBoundingClientRect(),r=Math.max(e,t),i=Math.max(O*r,H),o=Math.floor(r*D),_=`${(Math.sqrt(t**2+e**2)+R+i)/o}`,c=`${o}px`;return{rippleScale:_,rippleSize:c,initialSize:o}}function z(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o={x:(i-e)/2,y:(r-e)/2},a;return Z(t)?a=X(n,t):a={x:i/2,y:r/2},a={x:a.x-e/2,y:a.y-e/2},{startPoint:a,endPoint:o}}function X(n,e){let{scrollX:t,scrollY:r}=window,{left:i,top:o}=n.getBoundingClientRect(),a=t+i,p=r+o,{x:_,y:c}=e;return{x:_-a,y:c-p}}function F(n,e,t){let{height:r,width:i}=n.getBoundingClientRect();return e>=0&&e<=i&&t>=0&&t<=r}function Z(n){return n&&(n instanceof l||["x","y"].every(e=>e in n))}var m=class extends I{constructor(t){super(t);this._targetElement=null;this._surfaceElement=S(t,s.selectors.SURFACE)}destroy(){typeof this._destroyDeferListener=="function"&&(this._destroyDeferListener(),this._destroyDeferListener=void 0)}async deferInitialization(t){if(!this._targetElement)return;let{userInteraction:r,destroy:i}=x(this._targetElement);this._destroyDeferListener=i;let o=await r;t(o.type==="pointerenter"?o:void 0)}addTargetListener(t,r){var i;(i=this._targetElement)==null||i.addEventListener(t,r)}removeTargetListener(t,r){var i;(i=this._targetElement)==null||i.removeEventListener(t,r)}setHovered(t){this._surfaceElement.classList.toggle(s.classes.HOVERED,t)}setPressed(t){this._surfaceElement.classList.toggle(s.classes.PRESSED,t)}getTargetElement(){return this._targetElement}setTargetElement(t){this._targetElement=t}trySetTarget(t){this._targetElement=P(this._component,t)}startAnimation(t){var E;if(!this._surfaceElement)return;this.setPressed(!0),(E=this._rippleAnimation)==null||E.cancel();let{rippleSize:r,rippleScale:i,initialSize:o}=U(this._component),{startPoint:a,endPoint:p}=z(this._component,o,t),_=`${a.x}px, ${a.y}px`,c=`${p.x}px, ${p.y}px`;this._rippleAnimation=this._surfaceElement.animate({top:[0,0],left:[0,0],height:[r,r],width:[r,r],transform:[`translate(${_}) scale(1)`,`translate(${c}) scale(${i})`]},{pseudoElement:w,duration:M,easing:B,fill:k})}async endAnimation(){var i;let t=this._rippleAnimation,r=(i=t==null?void 0:t.currentTime)!=null?i:1/0;if(r>=f){this.setPressed(!1);return}await new Promise(o=>{setTimeout(o,f-r)}),this._rippleAnimation===t&&this.setPressed(!1)}inBounds(t,r){return F(this._component,t,r)}};var v=class{constructor(e){this._adapter=e;this._target=null;this._disabled=!1;this._attached=!1;this._deferred=!0;this._pointerState=0;this._checkBoundsAfterContextMenu=!1;this._pointerEnterListener=t=>this._onPointerEnter(t),this._pointerLeaveListener=t=>this._onPointerLeave(t),this._pointerDownListener=t=>this._onPointerDown(t),this._pointerUpListener=t=>this._onPointerUp(t),this._pointerCancelListener=t=>this._onPointerCancel(t),this._clickListener=()=>this._onClick(),this._contextmenuListener=()=>this._onContextmenu()}initialize(){this._adapter.trySetTarget(this._target),this._deferInitialization()}disconnect(){this._pointerStartEvent=void 0,this._pointerState=0,this._adapter.setHovered(!1),this._adapter.setPressed(!1),this._adapter.destroy(),this._removeListeners()}playAnimation(e){this._adapter.startAnimation(e),this._endAnimation()}_deferInitialization(){this._adapter.deferInitialization(this._onDeferredInitialize.bind(this))}_applyListeners(){this._disabled||(this._adapter.addTargetListener("pointerenter",this._pointerEnterListener),this._adapter.addTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.addTargetListener("pointerdown",this._pointerDownListener),this._adapter.addTargetListener("pointerup",this._pointerUpListener),this._adapter.addTargetListener("pointercancel",this._pointerCancelListener),this._adapter.addTargetListener("click",this._clickListener),this._adapter.addTargetListener("contextmenu",this._contextmenuListener),this._attached=!0)}_removeListeners(){this._adapter.removeTargetListener("pointerenter",this._pointerEnterListener),this._adapter.removeTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.removeTargetListener("pointerdown",this._pointerDownListener),this._adapter.removeTargetListener("pointerup",this._pointerUpListener),this._adapter.removeTargetListener("pointercancel",this._pointerCancelListener),this._adapter.removeTargetListener("click",this._clickListener),this._adapter.removeTargetListener("contextmenu",this._contextmenuListener),this._attached=!1}_onDeferredInitialize(e){this._applyListeners(),(e==null?void 0:e.type)==="pointerenter"&&this._pointerEnterListener(e),this._deferred=!1}_onPointerEnter(e){this._canHandleEvent(e)&&this._adapter.setHovered(!0)}_onPointerLeave(e){this._canHandleEvent(e)&&(this._adapter.setHovered(!1),this._pointerState!==0&&this._adapter.endAnimation())}async _onPointerDown(e){if(this._pointerStartEvent=e,!!this._canHandleEvent(e)){if(!this._isTouch(e.pointerType)){this._pointerState=3,this._startAnimation(e);return}this._checkBoundsAfterContextMenu&&!this._adapter.inBounds(e.x,e.y)||(this._checkBoundsAfterContextMenu=!1,this._pointerState=1,await new Promise(t=>setTimeout(t,N)),this._pointerState===1&&(this._pointerState=2,this._startAnimation(e)))}}_onPointerUp(e){if(this._canHandleEvent(e)){if(this._pointerState===2){this._pointerState=3;return}if(this._pointerState===1){this._pointerState=3,this._startAnimation(this._pointerStartEvent);return}}}_onClick(){if(!this._disabled){if(this._pointerState===3){this._endAnimation();return}this._pointerState===0&&(this._startAnimation(this._pointerStartEvent),this._endAnimation())}}_onPointerCancel(e){this._canHandleEvent(e)&&this._endAnimation()}_onContextmenu(){this._disabled||(this._checkBoundsAfterContextMenu=!0,this._adapter.endAnimation())}_startAnimation(e){let t=e?l.fromPointerEvent(e):void 0;this._adapter.startAnimation(t)}_endAnimation(){this._pointerState=0,this._adapter.endAnimation(),this._pointerStartEvent=void 0}_canHandleEvent({type:e,isPrimary:t,buttons:r,pointerType:i,pointerId:o}){if(this._disabled||!t||this._pointerStartEvent&&this._pointerStartEvent.pointerId!==o)return!1;if(e==="pointerenter"||e==="pointerleave")return!this._isTouch(i);let a=r===1;return this._isTouch(i)||a}_isTouch(e){return e==="touch"}get isAttached(){return this._attached}get targetElement(){return this._adapter.getTargetElement()}set targetElement(e){this._attached&&this._removeListeners(),this._adapter.setTargetElement(e),this._deferred||this._deferInitialization()}get target(){return this._adapter.getHostAttribute(s.attributes.TARGET)}set target(e){this._target!==e&&(this._target=e,this._adapter.isConnected&&(this._attached&&this._removeListeners(),this._adapter.trySetTarget(e),this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.TARGET,!!this._target,this._target))}get disabled(){return this._disabled}set disabled(e){e=!!e,this._disabled!==e&&(this._disabled=e,this._adapter.isConnected&&(this._disabled?this._removeListeners():this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}};var q='<template><div class="forge-state-layer" part="surface"></div></template>',j=':host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}.forge-state-layer{--_color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_hover-color:var(--forge-state-layer-hover-color, var(--_color));--_hover-opacity:0.08;--_pressed-color:var(--forge-state-layer-pressed-color, var(--_color));--_pressed-opacity:0.12;--_hover-duration:15ms;--_pressed-duration:105ms;--_animation-duration:375ms}.forge-state-layer::after,.forge-state-layer::before{content:"";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_hover-color);inset:0;-webkit-transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear;transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_animation-duration) linear;transition:opacity var(--_animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_hover-color);opacity:var(--_hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_pressed-opacity);-webkit-transition-duration:var(--_pressed-duration);transition-duration:var(--_pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}',d=class extends A{constructor(){super();T(this,q,j),this._foundation=new v(new m(this))}static get observedAttributes(){return[s.attributes.TARGET,s.attributes.DISABLED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,i){switch(t){case s.attributes.TARGET:this.target=i;break;case s.attributes.DISABLED:this.disabled=g(i);break}}playAnimation(t){this._foundation.playAnimation(t)}};h([u()],d.prototype,"targetElement",2),h([u()],d.prototype,"target",2),h([u()],d.prototype,"disabled",2),d=h([y({name:s.elementName})],d);function ye(){b(d)}export{s as a,l as b,N as c,M as d,f as e,D as f,R as g,H as h,O as i,w as j,k,B as l,G as m,m as n,v as o,d as p,ye as q};
7
+ //# sourceMappingURL=chunk.F74YURLV.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as S,b as L,d as O,e as B}from"./chunk.MACPUZC2.js";import{E as w}from"./chunk.B4T3R53C.js";import{F as N}from"./chunk.F5SY2D4B.js";import{e as V}from"./chunk.7CGKFRBK.js";import{b as y}from"./chunk.OWCYRSI3.js";import{e as g}from"./chunk.UV3WIHCM.js";import{a as D}from"./chunk.MGLWXAZO.js";import{b as M}from"./chunk.MXEKIEJA.js";import{p as P}from"./chunk.FYWPZFLJ.js";import{d as T,l as F}from"./chunk.PH3HUFJJ.js";import{b as A}from"./chunk.XIQFHO5R.js";import{e as m}from"./chunk.DMCBAYQX.js";import{a as x}from"./chunk.KVCDAZ6B.js";import{a as b,b as k}from"./chunk.DXN7ZOH3.js";import{a as E,e as C,h as I}from"./chunk.MVTBJPO2.js";import{s as f}from"./chunk.K7FPXAFS.js";import{f as v}from"./chunk.J2M2MXP2.js";import{a as d,d as _}from"./chunk.M3QDAYD2.js";var r=`${k}date-picker`,z={VALUE:"value"},U={INPUT:"input,input[forge-date-picker-input]"},R={CHANGE:`${r}-change`,OPEN:`${r}-open`,CLOSE:`${r}-close`,INPUT:`${r}-input`},n={elementName:r,selectors:U,events:R,observedAttributes:z};var l=class extends O{constructor(e){super(e);this._dropdownIdentifier=`forge-date-picker-${this._identifier}`}_initializeInput(){this._inputElement=this._component.querySelector(n.selectors.INPUT)}_initializeCalendarDropdown(){let e=this._getDefaultTargetElement();this._calendarDropdown=new N(e,this._dropdownIdentifier)}initializeMask(e){var t;(t=this._inputMask)==null||t.destroy(),this._inputMask=new A(this._inputElement,e)}destroyMask(){var e;(e=this._inputMask)==null||e.destroy(),this._inputMask=void 0}initializeAccessibility(){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false"),this._inputElement.setAttribute("aria-owns",this._dropdownIdentifier)}addInputListener(e,t,i){var a;(a=this._inputElement)==null||a.addEventListener(e,t,{capture:i})}removeInputListener(e,t,i){var a;(a=this._inputElement)==null||a.removeEventListener(e,t,{capture:i})}setInputValueChangedListener(e,t){this.destroyValueChangeListener();let i=g(e,this._inputElement,"value",t);this._valueChangeListeners.push(i)}hasInputElement(){return!!this._inputElement}attachCalendar(e,t){super.attachCalendar(e,t),this._inputElement.setAttribute("aria-expanded","true")}detachCalendar(){super.detachCalendar(),this._inputElement&&(this._inputElement.setAttribute("aria-expanded","false"),this._inputElement.removeAttribute("aria-activedescendant"))}setActiveDescendant(e){this._inputElement.setAttribute("aria-activedescendant",e)}setInputValue(e,t){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.updateMask(),t&&(this._inputElement.dispatchEvent(new Event("change")),this._inputElement.dispatchEvent(new Event("input"))))}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return f(this._component.ownerDocument)===this._inputElement}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this._toggleElement&&(this._toggleElement.setAttribute("aria-disabled",e.toString()),this._toggleElement.hasOwnProperty("disabled")&&(this._toggleElement.disabled=e))}tryFocusInput(){this._inputElement.focus()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}emitInputEvent(e,t){I(this._inputElement,e,t)}};var p=class extends B{constructor(e){super(e);this._mode="single"}_initializeState(){this._value||(this._value=this._coerceDateValue(this._adapter.getInputValue()))}_emitChangeEvent(e,t){let i=this._getTypedValue(e);return this._adapter.emitHostEvent(n.events.CHANGE,i,!0,!t)?(this._setValue(e),!0):!1}_emitOpenEvent(){this._adapter.emitHostEvent(n.events.OPEN,void 0,!1)}_emitCloseEvent(){this._adapter.emitHostEvent(n.events.CLOSE,void 0,!1)}_onToday(){let e=new Date;e.setHours(0,0,0,0),this._onDateSelected({date:e,selected:!0,type:"date"})}_onClear(){this._onDateSelected({date:null,selected:!1,type:"date"})}_getCurrentValue(){return this._value}_setFormattedInputValue(e){let t=this._formatDate(this._value);t?this._adapter.setInputValue(t,e?!1:this._notifyInputValueChanges):this._allowInvalidDate||this._adapter.setInputValue("",e?!1:this._notifyInputValueChanges)}_setValue(e){(!e||this._isDateValueAcceptable(e))&&(this._value=e)}_onDateSelected(e){let t=e.date;if(e.type==="date"&&this._closeCalendar(!0),!this._emitChangeEvent(t))return;let i=this._formatDate(t);this._adapter.setInputValue(i,this._notifyInputValueChanges),this._formatInputValue(),D.isMobile||this._adapter.selectInputText()}_openCalendar(e){super._openCalendar(e);let t=this._getCurrentValue();t&&this._adapter.goToCalendarDate(new Date(t))}_applyMin(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),super._applyMin()}_applyMax(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),super._applyMax()}_applyDisabledDates(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue())}_applyDisabledDaysOfWeek(){this._value&&!this._isDateValueAcceptable(this._value)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue())}_handleInput(e){let t=this._getSanitizedDateString(e),i=this._coerceDateValue(t);this._masked&&this._adapter.emitInputEvent(n.events.INPUT,t),!m(i,this._value)&&this._isDateValueAcceptable(i)&&this._emitChangeEvent(i)}_onInputValueChanged(e){let t=this._getSanitizedDateString(e);if(this._masked&&t)return;let i=this._coerceDateValue(t);!m(i,this._value)&&this._isDateValueAcceptable(i)&&(this.value=i,this._emitChangeEvent(this._value))}_applyValue(){this._setFormattedInputValue(),this._open&&this._adapter.setCalendarValue(this._value)}get value(){let e=this._getTypedValue(this._value);return e?v(e)?new Date(e.getTime()):e:null}set value(e){this._value!==e&&(this._setValue(this._coerceDateValue(e)),this._isInitialized&&this._applyValue())}};var K="<template><slot></slot></template>",$=":host{display:block}:host([hidden]){display:none}",o=class extends L{static get observedAttributes(){return[...Object.values(S.observedAttributes),n.observedAttributes.VALUE]}constructor(){super(),T.define(P),C(this,K,$),this._foundation=new p(new l(this))}attributeChangedCallback(s,e,t){switch(s){case n.observedAttributes.VALUE:this.value=t;return}super.attributeChangedCallback(s,e,t)}};o=_([b({name:n.elementName,dependencies:[V,w,M,F]})],o);var H=class extends x{constructor(e){super(e)}_build(){let e=document.createElement(n.elementName);return this._attachTextField(e),e}getInputElement(){return this._textFieldDelegate.inputElement}getTextFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.masked?this._element.addEventListener(n.events.INPUT,t=>e(t.target.value)):this.getInputElement().addEventListener("input",t=>e(t.target.value))}onInput(e){this._element.masked?this._element.addEventListener(n.events.INPUT,t=>e(t.detail)):this._textFieldDelegate.inputElement.addEventListener("input",t=>e(t.target.value))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",t=>e(t))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",t=>e(t))}_attachTextField(e){var i,a,c,h;let t={props:d({},(a=(i=this._config.options)==null?void 0:i.textFieldDelegateConfig)==null?void 0:a.props),options:d({},(h=(c=this._config.options)==null?void 0:c.textFieldDelegateConfig)==null?void 0:h.options)};this._textFieldDelegate=new y(t),e.appendChild(this._textFieldDelegate.element)}};function ye(){E(o)}export{n as a,l as b,p as c,o as d,H as e,ye as f};
7
+ //# sourceMappingURL=chunk.FCATJM34.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/date-picker/date-picker-constants.ts", "../../src/date-picker/date-picker-adapter.ts", "../../src/date-picker/date-picker-foundation.ts", "../../src/date-picker/date-picker.ts", "../../src/date-picker/date-picker-component-delegate.ts", "../../src/date-picker/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-picker`;\n\nconst observedAttributes = {\n VALUE: 'value'\n};\n\nconst selectors = {\n INPUT: 'input,input[forge-date-picker-input]'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { CalendarDropdown } from '../calendar/calendar-dropdown/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from './base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from './base/base-date-picker-constants';\nimport { IDatePickerComponent } from './date-picker';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport interface IDatePickerAdapter extends IBaseDatePickerAdapter {}\n\nexport class DatePickerAdapter extends BaseDatePickerAdapter<IDatePickerComponent> implements IDatePickerAdapter {\n private _inputElement: HTMLInputElement;\n private _inputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n\n constructor(component: IDatePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._inputElement = this._component.querySelector(DATE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public initializeMask(options: IDateInputMaskOptions): void {\n this._inputMask?.destroy();\n this._inputMask = new DateInputMask(this._inputElement, options);\n }\n\n public destroyMask(): void {\n this._inputMask?.destroy();\n this._inputMask = undefined;\n }\n\n public initializeAccessibility(): void {\n this._inputElement.setAttribute('autocomplete', 'off');\n this._inputElement.setAttribute('autocorrect', 'off');\n this._inputElement.setAttribute('autocapitalize', 'off');\n this._inputElement.setAttribute('spellcheck', 'false');\n this._inputElement.setAttribute('role', 'combobox');\n this._inputElement.setAttribute('aria-live', 'assertive');\n this._inputElement.setAttribute('aria-atomic', 'true');\n this._inputElement.setAttribute('aria-haspopup', 'true');\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._inputElement.setAttribute('aria-owns', this._dropdownIdentifier);\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._inputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._inputElement?.removeEventListener(type, listener, { capture });\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this.destroyValueChangeListener();\n const destroyListenerCb = listenOwnProperty(context, this._inputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public hasInputElement(): boolean {\n return !!this._inputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._inputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._inputElement) {\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._inputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._inputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._inputElement.value === value) {\n return;\n }\n\n this._inputElement.value = value;\n \n if (this._inputMask) {\n this._inputMask.updateMask();\n }\n\n if (emitEvents) {\n this._inputElement.dispatchEvent(new Event('change'));\n this._inputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._inputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return getActiveElement(this._component.ownerDocument) === this._inputElement;\n }\n\n public getInputValue(): string {\n return this._inputMask ? this._inputMask.maskedValue : this._inputElement.value;\n }\n\n public setDisabled(value: boolean): void {\n this._inputElement.disabled = value;\n this._inputElement.setAttribute('aria-disabled', value.toString());\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', value.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = value;\n }\n }\n }\n\n public tryFocusInput(): void {\n this._inputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._inputElement.blur();\n }\n\n public selectInputText(): void {\n this._inputElement.select();\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._inputElement, type, data);\n }\n}\n", "import { isDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from './base/base-date-picker-foundation';\nimport { IDatePickerAdapter } from './date-picker-adapter';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport interface IDatePickerFoundation extends IBaseDatePickerFoundation<Date | string> {}\n\nexport class DatePickerFoundation extends BaseDatePickerFoundation<IDatePickerAdapter, Date | string | null | undefined, Date> implements IDatePickerFoundation {\n protected _mode: CalendarMode = 'single';\n\n constructor(adapter: IDatePickerAdapter) {\n super(adapter);\n }\n\n protected _initializeState(): void {\n if (!this._value) {\n this._value = this._coerceDateValue(this._adapter.getInputValue());\n }\n }\n\n protected _emitChangeEvent(value: Date | null | undefined, force?: boolean): boolean {\n const typedValue = this._getTypedValue(value);\n const wasCancelled = !this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.CHANGE, typedValue, true, !force);\n if (!wasCancelled) {\n this._setValue(value);\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n\n protected _onToday(): void {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n this._onDateSelected({ date: today, selected: true, type: 'date' });\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, selected: false, type: 'date' });\n }\n\n protected _getCurrentValue(): Date | null | undefined {\n return this._value;\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n const formattedDate = this._formatDate(this._value);\n if (formattedDate) {\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setInputValue('', suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n }\n }\n\n protected _setValue(value?: Date | null): void {\n if (!value || this._isDateValueAcceptable(value)) {\n this._value = value;\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.date;\n\n if (event.type === 'date') {\n this._closeCalendar(true);\n }\n \n if (!this._emitChangeEvent(value)) {\n return;\n }\n\n const formattedValue = this._formatDate(value);\n\n this._adapter.setInputValue(formattedValue, this._notifyInputValueChanges);\n this._formatInputValue();\n\n if (!Platform.isMobile) {\n this._adapter.selectInputText();\n }\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue) {\n this._adapter.goToCalendarDate(new Date(currentValue));\n }\n }\n\n protected override _applyMin(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n super._applyMax();\n }\n\n protected _applyDisabledDates(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._value && !this._isDateValueAcceptable(this._value)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._value) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(date);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n if (this._masked && sanitizedValue) {\n // If masked, allow clearing value by setting input.value directly\n // To set a date value, dispatch `input` event and mask will handle it.\n return;\n }\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._value) && this._isDateValueAcceptable(date)) {\n this.value = date;\n this._emitChangeEvent(this._value);\n }\n }\n\n private _applyValue(): void {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(this._value);\n }\n }\n\n public get value(): Date | string | null | undefined {\n const date = this._getTypedValue(this._value);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n\n public set value(value: Date | string | null | undefined) {\n if (this._value !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._applyValue();\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement } from '@tylertech/forge-core';\nimport { tylIconInsertInvitation } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from './base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from './base/base-date-picker-constants';\nimport { DatePickerAdapter } from './date-picker-adapter';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\nimport { DatePickerFoundation } from './date-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDatePickerComponent extends IBaseDatePickerComponent<Date | string | null> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-picker': IDatePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-picker-change': CustomEvent<Date | string | null>;\n 'forge-date-picker-open': CustomEvent<void>;\n 'forge-date-picker-close': CustomEvent<void>;\n 'forge-date-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-picker>` element.\n * \n * @tag forge-date-picker\n */\n@CustomElement({\n name: DATE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DatePickerComponent extends BaseDatePickerComponent<Date | string | undefined, Date, DatePickerFoundation> implements IDatePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_PICKER_CONSTANTS.observedAttributes.VALUE\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconInsertInvitation);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DatePickerFoundation(new DatePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_PICKER_CONSTANTS.observedAttributes.VALUE:\n this.value = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { ITextFieldComponent, ITextFieldComponentDelegateConfig, TextFieldComponentDelegate } from '../text-field';\nimport { IDatePickerComponent } from './date-picker';\nimport { DATE_PICKER_CONSTANTS } from './date-picker-constants';\n\nexport type DatePickerComponentDelegateProps = Partial<IDatePickerComponent>;\nexport interface IDatePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\nexport interface IDatePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDatePickerComponent, IDatePickerComponentDelegateOptions> {}\n\nexport class DatePickerComponentDelegate extends FormFieldComponentDelegate<IDatePickerComponent, IDatePickerComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n\n constructor(config?: IDatePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDatePickerComponent {\n const datePicker = document.createElement(DATE_PICKER_CONSTANTS.elementName);\n this._attachTextField(datePicker);\n return datePicker;\n }\n\n public getInputElement(): HTMLInputElement {\n return this._textFieldDelegate.inputElement;\n }\n\n public getTextFieldElement(): ITextFieldComponent {\n return this._textFieldDelegate.element;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textFieldDelegate.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textFieldDelegate.invalid = value;\n }\n\n public onChange(listener: (value: string) => void): void {\n if (this._element.masked) {\n this._element.addEventListener(DATE_PICKER_CONSTANTS.events.INPUT, evt => listener((evt.target as HTMLInputElement).value));\n } else {\n this.getInputElement().addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n }\n\n public onInput(listener: (value: string) => void): void {\n if (this._element.masked) {\n this._element.addEventListener(DATE_PICKER_CONSTANTS.events.INPUT, (evt: CustomEvent) => listener(evt.detail));\n } else {\n this._textFieldDelegate.inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('focus', (evt: FocusEvent) => listener(evt));\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('blur', (evt: FocusEvent) => listener(evt));\n }\n\n private _attachTextField(datePicker: IDatePickerComponent): void {\n const textFieldConfig: ITextFieldComponentDelegateConfig = {\n props: { ...this._config.options?.textFieldDelegateConfig?.props },\n options: { ...this._config.options?.textFieldDelegateConfig?.options }\n };\n this._textFieldDelegate = new TextFieldComponentDelegate(textFieldConfig);\n datePicker.appendChild(this._textFieldDelegate.element);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DatePickerComponent } from './date-picker';\n\nexport * from './date-picker';\nexport * from './date-picker-adapter';\nexport * from './date-picker-component-delegate';\nexport * from './date-picker-constants';\nexport * from './date-picker-foundation';\n\nexport function defineDatePickerComponent(): void {\n defineCustomElement(DatePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "selectors", "events", "DATE_PICKER_CONSTANTS", "DatePickerAdapter", "BaseDatePickerAdapter", "component", "DATE_PICKER_CONSTANTS", "targetElement", "CalendarDropdown", "options", "_a", "DateInputMask", "type", "listener", "capture", "context", "destroyListenerCb", "listenOwnProperty", "calendarConfig", "dropdownConfig", "id", "value", "emitEvents", "getActiveElement", "data", "emitEvent", "DatePickerFoundation", "BaseDatePickerFoundation", "adapter", "value", "force", "typedValue", "DATE_PICKER_CONSTANTS", "today", "suppressValueChanges", "formattedDate", "event", "formattedValue", "Platform", "emitOpenEvent", "currentValue", "sanitizedValue", "date", "isSameDate", "isDate", "template", "styles", "DatePickerComponent", "BaseDatePickerComponent", "BASE_DATE_PICKER_CONSTANTS", "DATE_PICKER_CONSTANTS", "IconRegistry", "tylIconInsertInvitation", "attachShadowTemplate", "DatePickerFoundation", "DatePickerAdapter", "name", "oldValue", "newValue", "__decorateClass", "CustomElement", "PopupComponent", "CalendarComponent", "IconButtonComponent", "IconComponent", "DatePickerComponentDelegate", "FormFieldComponentDelegate", "config", "datePicker", "DATE_PICKER_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "textFieldConfig", "__spreadValues", "TextFieldComponentDelegate", "defineDatePickerComponent", "defineCustomElement", "DatePickerComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{e as L}from"./chunk.5565ZSTH.js";import{a as w,b as k,c as C}from"./chunk.7DB3XVPI.js";import{a as E}from"./chunk.KVCDAZ6B.js";import{a as _,b as y}from"./chunk.DXN7ZOH3.js";import{a as v,e as x,f as s}from"./chunk.MVTBJPO2.js";import{s as u}from"./chunk.K7FPXAFS.js";import{d as h}from"./chunk.M3QDAYD2.js";var g=`${y}chip-field`,M={ROOT:"forge-chip-field"},n={LABEL:"label",HELPER_TEXT:"helper-text",MEMBER:"member"},I={ROOT:`.${M.ROOT}`,INPUT_CONTAINER:".forge-field__input-container",INPUT:"input",LABEL:`[slot=${n.LABEL}]`,HELPER_TEXT:`[slot=${n.HELPER_TEXT}]`,MEMBER:`[slot=${n.MEMBER}]`,LABEL_SLOT:`slot[name=${n.LABEL}]`,MEMBER_SLOT:`slot[name=${n.MEMBER}]`},z={MEMBER_ADDED:`${g}-member-added`,MEMBER_REMOVED:`${g}-member-removed`},o={elementName:g,classes:M,slots:n,selectors:I,events:z};var d=class extends w{constructor(e){super(e)}initialize(){super.initialize(o.selectors.ROOT),this._memberSlot=s(this._component,o.selectors.MEMBER_SLOT),this._inputContainerElement=s(this._component,o.selectors.INPUT_CONTAINER)}addRootListener(e,t){this._rootElement.addEventListener(e,t)}removeRootListener(e,t){this._rootElement.removeEventListener(e,t)}addMemberSlotListener(e){this._memberSlot.addEventListener("slotchange",e)}removeMemberSlotListener(e){this._memberSlot&&this._memberSlot.removeEventListener("slotchange",e)}addInputContainerListener(e,t){this._inputContainerElement.addEventListener(e,t)}removeInputContainerListener(e,t){this._inputContainerElement.removeEventListener(e,t)}fieldHasValue(){return!!this._component.querySelector(o.selectors.MEMBER)||super.inputHasValue()}focusInput(){var e;(e=this._inputElement)==null||e.focus()}tryPropagateClick(e){var t;e instanceof HTMLElement&&e.matches(o.selectors.INPUT_CONTAINER)&&((t=this._inputElement)==null||t.dispatchEvent(new MouseEvent("click")))}getSlottedMemberElements(){return this._component.querySelectorAll(o.selectors.MEMBER)}};var a=class extends k{constructor(e){super(e);this._adapter=e;this._memberSlotListener=()=>this._onMemberSlotChanged(),this._inputContainerMouseDownListener=t=>this._onInputContainerMouseDown(t),this._handleRootKeyDown=t=>this._onRootKeyDown(t),this._handleKeyDown=t=>this._onKeyDown(t)}initialize(){super.initialize(),this._adapter.addMemberSlotListener(this._memberSlotListener),this._adapter.addInputContainerListener("mousedown",this._inputContainerMouseDownListener),this._adapter.addRootListener("keydown",this._handleRootKeyDown),this._adapter.addInputListener("keydown",this._handleKeyDown)}disconnect(){super.disconnect(),this._adapter.removeMemberSlotListener(this._memberSlotListener),this._adapter.removeInputContainerListener("mousedown",this._inputContainerMouseDownListener),this._adapter.removeRootListener("keydown",this._handleRootKeyDown),this._adapter.removeInputListener("keydown",this._handleKeyDown)}_onInputContainerMouseDown(e){e.preventDefault(),this._adapter.focusInput(),this._adapter.tryPropagateClick(e.target)}_onBlur(e){let t=e.target;t.value="",super._onBlur(e)}_onRootKeyDown(e){if(!this._adapter.inputHasValue())switch(e.key){case"Right":case"ArrowRight":this._focusNextMember();break;case"Left":case"ArrowLeft":this._focusPreviousMember();break;case"Backspace":case"Delete":case"Del":this._removeMember();break;default:break}}_onKeyDown(e){let t=e.target;switch(e.key){case"Enter":this._addMember(t);break;case"Esc":case"Escape":case"Tab":t.value="";break;default:break}}_focusNextMember(){let e=this._adapter.getSlottedMemberElements();if(!(e.length<1||this._adapter.inputHasFocus()))for(let t=0;t<e.length;t++){let i=e.item(t),r=e.item(t+1);if(this._memberIsActive(i))if(r){r.focus();break}else this._adapter.focusInput()}}_focusPreviousMember(){let e=this._adapter.getSlottedMemberElements();if(!(e.length<1)){if(this._adapter.inputHasFocus()){e[e.length-1].focus();return}for(let t=0;t<e.length;t++){let i=e.item(t-1),r=e.item(t);if(this._memberIsActive(r)&&i){i.focus();break}}}}_memberIsActive(e){return u(e.ownerDocument)===e||e.hasAttribute("focused")}_getActiveMember(){let e=this._adapter.getSlottedMemberElements();for(let t=0;t<e.length;t++){let i=e.item(t);if(this._memberIsActive(i))return i}return null}_addMember(e){let t=e.value.trim();t&&t.length>0&&this._adapter.emitHostEvent(o.events.MEMBER_ADDED,t),e.value=""}_removeMember(){let e=this._getActiveMember();if(!e){let t=this._adapter.getSlottedMemberElements();e=t.item(t.length-1)}e&&(this._focusNextMember(),this._adapter.emitHostEvent(o.events.MEMBER_REMOVED,e))}_onMemberSlotChanged(){this.floatLabel(this._adapter.fieldHasValue()||this._adapter.inputHasFocus()),this._adapter.getSlottedMemberElements().forEach(e=>e.tabIndex=-1)}};var F='<template><div class="forge-chip-field__wrapper" part="root"><div class="forge-chip-field forge-field" part="container"><slot name="leading"></slot><div class="forge-field__label-input-container" part="label-input-container"><slot name="label"></slot><div class="forge-field__input-container" part="input-container"><slot name="member"></slot><slot></slot></div></div><slot name="trailing"></slot><div class="forge-field__addon-end-container" part="addon-end-container"><slot name="addon-end"></slot></div></div><slot name="helper-text"></slot></div></template>',D='.forge-field::before{content:"";display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;z-index:-1;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;height:100%;pointer-events:none;border-style:solid;border-style:var(--forge-chip-field-border-style,solid);border-width:1px;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);background-color:transparent;background-color:var(--forge-chip-field-theme-background,transparent);text-align:left}.forge-field[dir=rtl]::before,[dir=rtl] .forge-field::before{text-align:right}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused)::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-icon-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused):hover::before{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled)::before{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee)}.forge-field--invalid:not(.forge-field--disabled)::before{border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-field--invalid:not(.forge-field--disabled):not(.forge-field--focused):hover::before{border-color:#db8a98;border-color:var(--forge-theme-error-hover,#db8a98)}.forge-field--disabled::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--shape-rounded){border-radius:4px}.forge-field:not(.forge-field--shape-rounded)::before{border-radius:4px}.forge-field--shape-rounded{border-radius:28px}.forge-field--shape-rounded::before{border-radius:28px}.forge-field--disabled::before{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5)}.forge-field--focused::before{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee);border-width:2px}.forge-field__label-input-container{position:relative;-webkit-box-flex:1;flex:1 1 0.0001px;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;min-width:0}.forge-field ::slotted(label){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65));pointer-events:none;right:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);font-size:var(--mdc-typography-subtitle1-font-size, 1rem);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.1rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;-webkit-transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field ::slotted(label[dir=rtl]),[dir=rtl] .forge-field ::slotted(label){right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) ::slotted(label){display:none}.forge-field--required ::slotted(label)::after{content:none}.forge-field--required ::slotted(label)::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:"*";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){font-size:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){font-size:1rem}.forge-field--disabled ::slotted(label){color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label){color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){top:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) ::slotted(label){left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) ::slotted(label){left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) ::slotted(label){padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded ::slotted(label){padding-right:32px}.forge-field ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65))}.forge-field--disabled ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.54rem) scale(.8125);transform:translateY(-.54rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.72rem) scale(.8125);transform:translateY(-.72rem) scale(.8125);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.62rem) scale(1);transform:translateY(-.62rem) scale(1);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.8rem) scale(1);transform:translateY(-.8rem) scale(1);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.62rem) scale(.8125);transform:translateY(-.62rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.8rem) scale(.8125);transform:translateY(-.8rem) scale(.8125);cursor:auto}.forge-field~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field:not(.forge-field--dense):not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field--roomy:not(.forge-field--dense)~::slotted([slot=helper-text]){font-size:.875rem}.forge-field--dense:not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field~::slotted([slot=helper-text]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled)~::slotted([slot=helper-text]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field:not(.forge-field--shape-rounded)~::slotted([slot=helper-text]){margin-left:12px}.forge-field--shape-rounded~::slotted([slot=helper-text]){margin-left:32px}.forge-field ::slotted([slot=leading]){display:-webkit-box;display:flex;align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=leading]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=leading]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=leading]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=leading]){margin:0 4px}.forge-field ::slotted([slot=leading]:not(forge-icon-button)){padding:6px}.forge-field ::slotted([slot=trailing]){align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=trailing]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=trailing]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=trailing]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=trailing]){margin:0 4px}.forge-field ::slotted([slot=trailing]:not(forge-icon-button)){padding:6px}.forge-field__addon-end-container{display:none}.forge-field--addon-end .forge-field__addon-end-container{height:100%;width:auto;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;padding:0 4px;border-left-width:1px;border-left-style:solid;-webkit-transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.54);border-left-color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container:hover{border-left-color:rgba(0,0,0,.87);border-left-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#6200ee;border-left-color:var(--mdc-theme-primary,#6200ee)}.forge-field.forge-field--invalid:not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#b00020;border-left-color:var(--mdc-theme-error,#b00020)}.forge-field.forge-field--invalid:not(.forge-field--focused):not(.forge-field--disabled) .forge-field__addon-end-container:hover{border-left-color:#db8a98;border-left-color:var(--forge-theme-error-hover,#db8a98)}.forge-field.forge-field--disabled .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.38);border-left-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=addon-end]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=addon-end]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=addon-end]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-chip-field{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;z-index:1;z-index:var(--forge-z-index-surface,1);margin-top:0;margin-top:var(--forge-chip-field-margin-top,0);display:grid;grid-template-columns:[leading] -webkit-min-content [input] 1fr [trailing] -webkit-min-content [addon-end] -webkit-min-content [end];grid-template-columns:[leading] min-content [input] 1fr [trailing] min-content [addon-end] min-content [end]}.forge-chip-field.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-chip-field:not(.forge-field--dense):not(.forge-field--roomy){height:auto;min-height:46px;min-height:var(--forge-chip-field-height,46px)}.forge-chip-field.forge-field--roomy:not(.forge-field--dense){height:auto;min-height:3.5rem;min-height:var(--forge-chip-field-height,3.5rem)}.forge-chip-field.forge-field--dense:not(.forge-field--roomy){height:auto;min-height:1.5rem;min-height:var(--forge-chip-field-height,1.5rem)}.forge-field__label-input-container{grid-column-start:input;grid-column-end:trailing}.forge-field__input-container{-webkit-box-flex:1;flex:1 1 0.0001px;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field__input-container{padding:2px 12px}.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-field__input-container{padding-left:32px}.forge-field--leading:not(.forge-field--shape-rounded) .forge-field__input-container{padding-left:0}.forge-field--shape-rounded.forge-field--leading .forge-field__input-container{padding-left:0}.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--shape-rounded:not(.forge-field--trailing):not(.forge-field--addon-end) .forge-field__input-container{padding-right:32px}.forge-field--addon-end:not(.forge-field--shape-rounded) .forge-field__input-container,.forge-field--trailing:not(.forge-field--shape-rounded) .forge-field__input-container{padding-right:0}.forge-field--shape-rounded.forge-field--addon-end .forge-field__input-container,.forge-field--shape-rounded.forge-field--trailing .forge-field__input-container{padding-right:0}.forge-field ::slotted([slot=member]){display:block}.forge-field--disabled ::slotted([slot=member]){--mdc-theme-primary:rgba(0, 0, 0, 0.38);--mdc-theme-primary:var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));cursor:not-allowed;pointer-events:none}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 8px 2px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=member]){margin:6px 12px 6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 6px 2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:20px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:16px}.forge-field ::slotted(input){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;-webkit-transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);border:none;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0}.forge-field ::slotted(input)::-webkit-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-moz-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):invalid{-webkit-box-shadow:none;box-shadow:none}.forge-field ::slotted(input):-webkit-autofill{z-index:auto!important}.forge-field:not(.forge-field--disabled) ::slotted(input){color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled ::slotted(input){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6));cursor:not-allowed}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){font-size:.875rem;font-size:var(--forge-chip-field-font-size, .875rem)}.forge-field ::slotted(input){-webkit-box-flex:1;flex:1 1 0.0001px;min-width:40px;display:block;align-self:flex-start;padding:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){margin:4px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){margin:6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){margin:2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){height:1.25rem;line-height:1.25rem}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field ::slotted([slot=leading]){grid-column-start:leading;grid-column-end:input;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=leading]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){padding-top:0;padding-bottom:0}.forge-field ::slotted([slot=trailing]){grid-column-start:trailing;grid-column-end:addon-end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=trailing]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){padding-top:0;padding-bottom:0}.forge-field--addon-end .forge-field__addon-end-container{grid-column-start:addon-end;grid-column-end:end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=addon-end]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:0;margin-bottom:0}.forge-field ::slotted(forge-icon-button){display:-webkit-inline-box!important;display:inline-flex!important}:host{display:block;contain:layout}:host([hidden]){display:none}',l=class extends C{constructor(){super(),x(this,F,D),this._foundation=new a(new d(this))}};l=h([_({name:o.elementName,dependencies:[L]})],l);var T=class extends E{constructor(e){super(e)}_build(){var t,i;let e=document.createElement(o.elementName);return this._inputElement=this._buildInputElement(e),(t=this._config.options)!=null&&t.leadingElement&&(this._config.options.leadingElement.slot="leading",e.appendChild(this._config.options.leadingElement)),(i=this._config.options)!=null&&i.trailingElement&&(this._config.options.trailingElement.slot="trailing",e.appendChild(this._config.options.trailingElement)),e.appendChild(this._inputElement),e}_configure(){var e,t;(e=this._config.options)!=null&&e.helperText&&this.setHelperText(this._config.options.helperText),typeof((t=this._config.options)==null?void 0:t.label)=="string"&&this._createLabel(this._config.options.label)}get value(){return this._inputElement.value}set value(e){this._inputElement.value=e}get disabled(){return this._inputElement.disabled}set disabled(e){this._inputElement.disabled=e}get invalid(){return this._element.invalid||!1}set invalid(e){this._element.invalid=e}get inputElement(){return this._inputElement}get labelElement(){return this._labelElement}onChange(e){this._inputElement.addEventListener("input",t=>e(t.target.value))}onFocus(e){this._inputElement.addEventListener("focus",t=>e(t))}onBlur(e){this._inputElement.addEventListener("blur",t=>e(t))}setLabel(e){e?this._labelElement?this._labelElement.textContent=e:this._createLabel(e):this._labelElement&&(this._element.removeChild(this._labelElement),this._labelElement=void 0)}setHelperText(e){e?(this._helperTextElement||(this._helperTextElement=document.createElement("span"),this._helperTextElement.slot="helper-text",this._element.appendChild(this._helperTextElement)),this._helperTextElement.textContent=e):this._helperTextElement&&(this._element.removeChild(this._helperTextElement),this._helperTextElement=void 0)}floatLabel(e){this._element.floatLabel(e)}_createLabel(e){var t;this._labelElement=document.createElement("label"),this._labelElement.textContent=e,(t=this._config.options)!=null&&t.id&&this._labelElement.setAttribute("for",this._config.options.id),this._element.appendChild(this._labelElement)}_buildInputElement(e){var i,r,p,c,b;let t=document.createElement("input");return t.type=((i=this._config.options)==null?void 0:i.type)||"text",((r=this._config.options)==null?void 0:r.value)!==void 0&&(t.value=this._config.options.value),(p=this._config.options)!=null&&p.id&&(t.id=this._config.options.id),typeof((c=this._config.options)==null?void 0:c.placeholder)=="string"&&(t.placeholder=(b=this._config.options)==null?void 0:b.placeholder),e.appendChild(t),t}};function le(){v(l)}export{o as a,d as b,a as c,l as d,T as e,le as f};
7
+ //# sourceMappingURL=chunk.FG2GNAM2.js.map