@tylertech/forge 3.0.0-next.5 → 3.0.0-next.7

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 (496) hide show
  1. package/custom-elements.json +3175 -1640
  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.UEN7B7Q4.js → chunk.246JM2YT.js} +2 -2
  30. package/dist/esm/chunks/{chunk.64F24XMH.js → chunk.24L5GDD2.js} +2 -2
  31. package/dist/esm/chunks/{chunk.IGOGRMRW.js → chunk.2CTK5R37.js} +2 -2
  32. package/dist/esm/chunks/chunk.2IQGDFQS.js +7 -0
  33. package/dist/esm/chunks/{chunk.U4CFRHOW.js.map → chunk.2IQGDFQS.js.map} +1 -1
  34. package/dist/esm/chunks/{chunk.ZXPAXZCF.js → chunk.2LRDPTHK.js} +2 -2
  35. package/dist/esm/chunks/{chunk.HSXUQFHK.js → chunk.2QFIMTVP.js} +2 -2
  36. package/dist/esm/chunks/{chunk.SCP23NBN.js → chunk.2QSDH3PC.js} +2 -2
  37. package/dist/esm/chunks/{chunk.KWD5EK54.js → chunk.2TQONIPK.js} +2 -2
  38. package/dist/esm/chunks/{chunk.SSJYPH4U.js → chunk.2XFVFZ3P.js} +2 -2
  39. package/dist/esm/chunks/{chunk.BPEGGZOR.js → chunk.2YAU7AXH.js} +2 -2
  40. package/dist/esm/chunks/{chunk.KI5FPZOX.js → chunk.2YX7ASSX.js} +2 -2
  41. package/dist/esm/chunks/{chunk.Y4OET6II.js → chunk.2ZTERGYF.js} +2 -2
  42. package/dist/esm/chunks/{chunk.3OT44DTM.js → chunk.3CBVRCKM.js} +2 -2
  43. package/dist/esm/chunks/{chunk.7BNQYL2F.js → chunk.4EB5NVCK.js} +2 -2
  44. package/dist/esm/chunks/{chunk.4NV7AHF2.js → chunk.4LVS2EYJ.js} +2 -2
  45. package/dist/esm/chunks/{chunk.LQQIN7JE.js → chunk.57IVD67K.js} +2 -2
  46. package/dist/esm/chunks/{chunk.RXBGYGVH.js → chunk.5CMQ7DNL.js} +2 -2
  47. package/dist/esm/chunks/chunk.5IVB5L5Z.js +7 -0
  48. package/dist/esm/chunks/{chunk.FZ43DC2H.js.map → chunk.5IVB5L5Z.js.map} +1 -1
  49. package/dist/esm/chunks/{chunk.MT3CYR5E.js → chunk.5M6Y2RU6.js} +2 -2
  50. package/dist/esm/chunks/{chunk.E5H7OQXZ.js → chunk.5PHLKON3.js} +2 -2
  51. package/dist/esm/chunks/chunk.5V5ABSHI.js +7 -0
  52. package/dist/esm/chunks/{chunk.TKDMM2ZZ.js.map → chunk.5V5ABSHI.js.map} +1 -1
  53. package/dist/esm/chunks/{chunk.A6RLV2QU.js → chunk.632OMHHN.js} +2 -2
  54. package/dist/esm/chunks/{chunk.PNDQ3LAB.js → chunk.6SBTLXLH.js} +2 -2
  55. package/dist/esm/chunks/chunk.7G72CBOJ.js +7 -0
  56. package/dist/esm/chunks/{chunk.FHW6LV4A.js.map → chunk.7G72CBOJ.js.map} +1 -1
  57. package/dist/esm/chunks/{chunk.KTPSDP4C.js → chunk.7JQHQKXN.js} +2 -2
  58. package/dist/esm/chunks/{chunk.BTTHTLD3.js → chunk.7WVTJIVR.js} +2 -2
  59. package/dist/esm/chunks/{chunk.PKZYVWEG.js → chunk.7ZQMJLHE.js} +2 -2
  60. package/dist/esm/chunks/{chunk.A5D7XSBD.js → chunk.A5MBSCSQ.js} +2 -2
  61. package/dist/esm/chunks/{chunk.7UN5EYUE.js → chunk.A5R7KUIP.js} +2 -2
  62. package/dist/esm/chunks/{chunk.XARGY3WT.js → chunk.AGMPIMJV.js} +2 -2
  63. package/dist/esm/chunks/{chunk.3W2ERIMT.js → chunk.BKCEVPKW.js} +2 -2
  64. package/dist/esm/chunks/{chunk.X63F5NVD.js → chunk.BSTIDYQJ.js} +2 -2
  65. package/dist/esm/chunks/{chunk.UUUF27IU.js → chunk.BWZKQ6WX.js} +2 -2
  66. package/dist/esm/chunks/{chunk.XBW6KSW3.js → chunk.CNQESSA3.js} +2 -2
  67. package/dist/esm/chunks/{chunk.55FCNVG5.js → chunk.DTZFWZPB.js} +2 -2
  68. package/dist/esm/chunks/{chunk.R4B7JSSA.js → chunk.E6KWYFZG.js} +2 -2
  69. package/dist/esm/chunks/{chunk.XGWGJFWC.js → chunk.E7Z3IRWV.js} +2 -2
  70. package/dist/esm/chunks/{chunk.NSTCCETU.js → chunk.ECRL6O3V.js} +2 -2
  71. package/dist/esm/chunks/{chunk.W6MDMZTN.js → chunk.EDEYCLDU.js} +2 -2
  72. package/dist/esm/chunks/{chunk.P6ZUHPI6.js → chunk.ER52NFXX.js} +2 -2
  73. package/dist/esm/chunks/{chunk.AY46N5Y7.js → chunk.EUE3OVC7.js} +2 -2
  74. package/dist/esm/chunks/{chunk.RMPS2I2P.js → chunk.EYZ25QUP.js} +2 -2
  75. package/dist/esm/chunks/{chunk.VJ2SSV5X.js → chunk.FAANPQES.js} +2 -2
  76. package/dist/esm/chunks/{chunk.MZLPUI6R.js → chunk.FYWPZFLJ.js} +2 -2
  77. package/dist/esm/chunks/{chunk.MZLPUI6R.js.map → chunk.FYWPZFLJ.js.map} +2 -2
  78. package/dist/esm/chunks/{chunk.DX32NTD3.js → chunk.GF2GUVYS.js} +2 -2
  79. package/dist/esm/chunks/chunk.GHSAKRYH.js +7 -0
  80. package/dist/esm/chunks/{chunk.2TVYAW7Q.js.map → chunk.GHSAKRYH.js.map} +1 -1
  81. package/dist/esm/chunks/chunk.GJW4WS4I.js +7 -0
  82. package/dist/esm/chunks/{chunk.P4TIMZKU.js → chunk.GUYPITGA.js} +2 -2
  83. package/dist/esm/chunks/chunk.GWIVOPRO.js +7 -0
  84. package/dist/esm/chunks/chunk.GWIVOPRO.js.map +7 -0
  85. package/dist/esm/chunks/{chunk.T64UW37U.js → chunk.H5D54EHO.js} +2 -2
  86. package/dist/esm/chunks/{chunk.FPMQAUL3.js → chunk.HKJEGD6C.js} +2 -2
  87. package/dist/esm/chunks/chunk.HRGTAVNA.js +7 -0
  88. package/dist/esm/chunks/{chunk.UZENE2NC.js.map → chunk.HRGTAVNA.js.map} +2 -2
  89. package/dist/esm/chunks/{chunk.7KEUUHXY.js → chunk.IDD54B5P.js} +2 -2
  90. package/dist/esm/chunks/chunk.IGK3VYZG.js +7 -0
  91. package/dist/esm/chunks/chunk.IGK3VYZG.js.map +7 -0
  92. package/dist/esm/chunks/{chunk.H4H75YUA.js → chunk.IWA3CYIB.js} +2 -2
  93. package/dist/esm/chunks/chunk.JHXNEHWR.js +12 -0
  94. package/dist/esm/chunks/{chunk.ZOV2BUZG.js → chunk.JVW6JGV3.js} +2 -2
  95. package/dist/esm/chunks/chunk.MF36FG2X.js +7 -0
  96. package/dist/esm/chunks/{chunk.LSFIZAUF.js.map → chunk.MF36FG2X.js.map} +1 -1
  97. package/dist/esm/chunks/{chunk.P64BBB3U.js → chunk.MXNLCQRB.js} +2 -2
  98. package/dist/esm/chunks/chunk.NK7H3MMM.js +7 -0
  99. package/dist/esm/chunks/{chunk.QH2GB3PD.js.map → chunk.NK7H3MMM.js.map} +2 -2
  100. package/dist/esm/chunks/chunk.NVMILGC2.js +7 -0
  101. package/dist/esm/chunks/{chunk.WDTA5G7R.js.map → chunk.NVMILGC2.js.map} +3 -3
  102. package/dist/esm/chunks/chunk.OHNPVHPF.js +7 -0
  103. package/dist/esm/chunks/chunk.OHNPVHPF.js.map +7 -0
  104. package/dist/esm/chunks/chunk.OT6H5NHX.js +7 -0
  105. package/dist/esm/chunks/chunk.OTVT3XM2.js +7 -0
  106. package/dist/esm/chunks/{chunk.4ZWV37ZJ.js → chunk.P5QIB6OY.js} +2 -2
  107. package/dist/esm/chunks/{chunk.ZB54OC26.js → chunk.PHBOQRF6.js} +2 -2
  108. package/dist/esm/chunks/{chunk.YTOYNJMD.js → chunk.PHTOULRR.js} +2 -2
  109. package/dist/esm/chunks/chunk.PPPTT3SM.js +7 -0
  110. package/dist/esm/chunks/{chunk.C4YKXXKM.js.map → chunk.PPPTT3SM.js.map} +1 -1
  111. package/dist/esm/chunks/{chunk.VMQZA47V.js → chunk.QA3NU7EN.js} +2 -2
  112. package/dist/esm/chunks/chunk.QYKO543K.js +7 -0
  113. package/dist/esm/chunks/{chunk.RHPJRCIC.js.map → chunk.QYKO543K.js.map} +1 -1
  114. package/dist/esm/chunks/{chunk.7VWG4IEN.js → chunk.QZK3WEH6.js} +2 -2
  115. package/dist/esm/chunks/{chunk.GFWFEBAH.js → chunk.RGPNNISQ.js} +2 -2
  116. package/dist/esm/chunks/chunk.RHYRMQS7.js +7 -0
  117. package/dist/esm/chunks/chunk.RHYRMQS7.js.map +7 -0
  118. package/dist/esm/chunks/{chunk.EUNKM7XR.js → chunk.RUSHOL23.js} +2 -2
  119. package/dist/esm/chunks/chunk.SIJGKRYS.js +7 -0
  120. package/dist/esm/chunks/{chunk.TFMOLR6W.js.map → chunk.SIJGKRYS.js.map} +1 -1
  121. package/dist/esm/chunks/{chunk.EWEX3PHR.js → chunk.STGRPD2L.js} +2 -2
  122. package/dist/esm/chunks/{chunk.EWEX3PHR.js.map → chunk.STGRPD2L.js.map} +1 -1
  123. package/dist/esm/chunks/chunk.SYZB7B4F.js +7 -0
  124. package/dist/esm/chunks/chunk.SYZB7B4F.js.map +7 -0
  125. package/dist/esm/chunks/chunk.SZIM4KFZ.js +7 -0
  126. package/dist/esm/chunks/chunk.SZIM4KFZ.js.map +7 -0
  127. package/dist/esm/chunks/{chunk.YNE75HFH.js → chunk.THPU5KBV.js} +2 -2
  128. package/dist/esm/chunks/{chunk.INRH62VL.js → chunk.TL6WVBGT.js} +2 -2
  129. package/dist/esm/chunks/{chunk.O4KZV4MX.js → chunk.TT2VTZJ6.js} +2 -2
  130. package/dist/esm/chunks/{chunk.7X7A74SI.js → chunk.TXFYS6EU.js} +2 -2
  131. package/dist/esm/chunks/{chunk.5MPUISW3.js → chunk.U4GYQOPY.js} +2 -2
  132. package/dist/esm/chunks/{chunk.I3MZQIAF.js → chunk.UCM6CGFM.js} +2 -2
  133. package/dist/esm/chunks/{chunk.SOMT6F6S.js → chunk.V4RBOYNH.js} +2 -2
  134. package/dist/esm/chunks/{chunk.2R72ZTIK.js → chunk.V6JVHYVW.js} +2 -2
  135. package/dist/esm/chunks/{chunk.UROMKMFI.js → chunk.WBYXVMYI.js} +2 -2
  136. package/dist/esm/chunks/chunk.WFDIA7R6.js +7 -0
  137. package/dist/esm/chunks/chunk.WFDIA7R6.js.map +7 -0
  138. package/dist/esm/chunks/{chunk.QUJL4A23.js → chunk.WO7KEM5K.js} +2 -2
  139. package/dist/esm/chunks/{chunk.HVYK2OWE.js → chunk.WYP2M5FR.js} +2 -2
  140. package/dist/esm/chunks/{chunk.NEMJIVPU.js → chunk.X3YNJSDT.js} +2 -2
  141. package/dist/esm/chunks/{chunk.WQL55O4A.js → chunk.XMFQFFKR.js} +2 -2
  142. package/dist/esm/chunks/{chunk.46LZNRRP.js → chunk.Y5UJ23LB.js} +2 -2
  143. package/dist/esm/chunks/{chunk.S5EJVD5E.js → chunk.YQXX5KSW.js} +2 -2
  144. package/dist/esm/chunks/{chunk.RVUMHJMM.js → chunk.YUAU5IWT.js} +2 -2
  145. package/dist/esm/chunks/{chunk.YSFUL5AD.js → chunk.YZLASVCK.js} +2 -2
  146. package/dist/esm/chunks/{chunk.ELY4YCON.js → chunk.Z5TWWM7I.js} +2 -2
  147. package/dist/esm/chunks/{chunk.RPKVFFQ6.js → chunk.ZIB7L7DZ.js} +2 -2
  148. package/dist/esm/circular-progress/index.js +1 -1
  149. package/dist/esm/color-picker/index.js +1 -1
  150. package/dist/esm/core/base/index.js +1 -1
  151. package/dist/esm/core/index.js +1 -1
  152. package/dist/esm/core/utils/index.js +1 -1
  153. package/dist/esm/date-picker/index.js +1 -1
  154. package/dist/esm/date-range-picker/index.js +1 -1
  155. package/dist/esm/dialog/index.js +1 -1
  156. package/dist/esm/divider/index.js +1 -1
  157. package/dist/esm/drawer/base/index.js +1 -1
  158. package/dist/esm/drawer/drawer/index.js +1 -1
  159. package/dist/esm/drawer/index.js +1 -1
  160. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  161. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  162. package/dist/esm/expansion-panel/index.js +1 -1
  163. package/dist/esm/file-picker/index.js +1 -1
  164. package/dist/esm/floating-action-button/index.js +1 -1
  165. package/dist/esm/icon/index.js +1 -1
  166. package/dist/esm/icon-button/index.js +1 -1
  167. package/dist/esm/index.js +1 -1
  168. package/dist/esm/inline-message/index.js +1 -1
  169. package/dist/esm/keyboard-shortcut/index.js +1 -1
  170. package/dist/esm/label-value/index.js +1 -1
  171. package/dist/esm/linear-progress/index.js +1 -1
  172. package/dist/esm/list/index.js +1 -1
  173. package/dist/esm/list/list/index.js +1 -1
  174. package/dist/esm/list/list-item/index.js +1 -1
  175. package/dist/esm/list-dropdown/index.js +1 -1
  176. package/dist/esm/menu/index.js +1 -1
  177. package/dist/esm/open-icon/index.js +1 -1
  178. package/dist/esm/page-state/index.js +1 -1
  179. package/dist/esm/paginator/index.js +1 -1
  180. package/dist/esm/popup/index.js +1 -1
  181. package/dist/esm/product-icon/index.js +1 -1
  182. package/dist/esm/profile-card/index.js +1 -1
  183. package/dist/esm/quantity-field/index.js +1 -1
  184. package/dist/esm/radio/index.js +1 -1
  185. package/dist/esm/ripple/index.js +1 -1
  186. package/dist/esm/scaffold/index.js +1 -1
  187. package/dist/esm/select/core/index.js +1 -1
  188. package/dist/esm/select/index.js +1 -1
  189. package/dist/esm/select/option/index.js +1 -1
  190. package/dist/esm/select/option-group/index.js +1 -1
  191. package/dist/esm/select/select/index.js +1 -1
  192. package/dist/esm/select/select-dropdown/index.js +1 -1
  193. package/dist/esm/skeleton/index.js +1 -1
  194. package/dist/esm/slider/index.js +1 -1
  195. package/dist/esm/split-view/index.js +1 -1
  196. package/dist/esm/split-view/split-view/index.js +1 -1
  197. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  198. package/dist/esm/stack/index.js +1 -1
  199. package/dist/esm/stepper/index.js +1 -1
  200. package/dist/esm/stepper/step/index.js +1 -1
  201. package/dist/esm/stepper/stepper/index.js +1 -1
  202. package/dist/esm/switch/index.js +1 -1
  203. package/dist/esm/table/index.js +1 -1
  204. package/dist/esm/tabs/index.js +1 -1
  205. package/dist/esm/tabs/tab/index.js +1 -1
  206. package/dist/esm/tabs/tab-bar/index.js +1 -1
  207. package/dist/esm/text-field/index.js +1 -1
  208. package/dist/esm/time-picker/index.js +1 -1
  209. package/dist/esm/toast/index.js +1 -1
  210. package/dist/esm/toolbar/index.js +1 -1
  211. package/dist/esm/tooltip/index.js +1 -1
  212. package/dist/esm/utils/index.js +1 -1
  213. package/dist/esm/view-switcher/index.js +1 -1
  214. package/dist/esm/view-switcher/view/index.js +1 -1
  215. package/esm/accordion/accordion.js +4 -4
  216. package/esm/app-bar/app-bar.js +5 -5
  217. package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -5
  218. package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +1 -1
  219. package/esm/app-bar/profile-button/app-bar-profile-button.js +4 -4
  220. package/esm/app-bar/search/app-bar-search.js +6 -6
  221. package/esm/autocomplete/autocomplete-adapter.d.ts +0 -2
  222. package/esm/autocomplete/autocomplete-adapter.js +0 -4
  223. package/esm/autocomplete/autocomplete-component-delegate.d.ts +1 -1
  224. package/esm/autocomplete/autocomplete-constants.d.ts +4 -4
  225. package/esm/autocomplete/autocomplete-foundation.js +0 -11
  226. package/esm/autocomplete/autocomplete.js +6 -6
  227. package/esm/avatar/avatar-component-delegate.d.ts +1 -1
  228. package/esm/avatar/avatar.js +5 -5
  229. package/esm/backdrop/backdrop-constants.d.ts +1 -1
  230. package/esm/backdrop/backdrop.js +5 -5
  231. package/esm/badge/badge-component-delegate.d.ts +1 -1
  232. package/esm/badge/badge.js +5 -5
  233. package/esm/banner/banner.js +6 -6
  234. package/esm/bottom-sheet/bottom-sheet.js +5 -5
  235. package/esm/busy-indicator/busy-indicator-constants.d.ts +1 -1
  236. package/esm/busy-indicator/busy-indicator.js +5 -5
  237. package/esm/button/button-component-delegate.d.ts +1 -1
  238. package/esm/button/button.js +3 -3
  239. package/esm/button-toggle/button-toggle/button-toggle.js +6 -6
  240. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +2 -2
  241. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -5
  242. package/esm/calendar/calendar-component-delegate.d.ts +1 -1
  243. package/esm/calendar/calendar-constants.d.ts +10 -10
  244. package/esm/calendar/calendar-dropdown/calendar-dropdown.js +5 -5
  245. package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +2 -2
  246. package/esm/calendar/calendar-menu/calendar-menu.js +5 -5
  247. package/esm/calendar/calendar.js +6 -6
  248. package/esm/card/card.js +5 -5
  249. package/esm/checkbox/checkbox-component-delegate.d.ts +1 -1
  250. package/esm/checkbox/checkbox.js +3 -3
  251. package/esm/chip-field/chip-field-component-delegate.d.ts +1 -1
  252. package/esm/chips/chip/chip.js +6 -6
  253. package/esm/chips/chip-set/chip-set.js +5 -5
  254. package/esm/circular-progress/circular-progress.js +5 -5
  255. package/esm/color-picker/color-picker-constants.d.ts +2 -2
  256. package/esm/color-picker/color-picker.js +6 -6
  257. package/esm/core/delegates/base-component-delegate.d.ts +1 -1
  258. package/esm/core/delegates/base-component-delegate.js +3 -3
  259. package/esm/core/delegates/form-field-component-delegate.d.ts +1 -1
  260. package/esm/core/mask/time-segment-parser.d.ts +1 -1
  261. package/esm/core/utils/utils.d.ts +17 -0
  262. package/esm/core/utils/utils.js +27 -0
  263. package/esm/date-picker/date-picker-component-delegate.d.ts +1 -1
  264. package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
  265. package/esm/dialog/dialog-constants.d.ts +2 -2
  266. package/esm/dialog/dialog.js +5 -5
  267. package/esm/drawer/base/base-drawer-constants.d.ts +1 -1
  268. package/esm/expansion-panel/expansion-panel.js +5 -5
  269. package/esm/field/field-constants.d.ts +3 -3
  270. package/esm/field/field.js +3 -3
  271. package/esm/file-picker/file-picker-component-delegate.d.ts +1 -1
  272. package/esm/file-picker/file-picker.js +5 -5
  273. package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +1 -1
  274. package/esm/floating-action-button/floating-action-button.js +6 -6
  275. package/esm/icon/icon.js +5 -5
  276. package/esm/icon-button/icon-button-component-delegate.d.ts +1 -1
  277. package/esm/icon-button/icon-button.js +7 -7
  278. package/esm/keyboard-shortcut/keyboard-shortcut.js +4 -4
  279. package/esm/label-value/label-value-component-delegate.d.ts +1 -1
  280. package/esm/label-value/label-value-constants.d.ts +1 -1
  281. package/esm/label-value/label-value.js +5 -5
  282. package/esm/linear-progress/linear-progress.js +5 -5
  283. package/esm/list/list/list.js +5 -5
  284. package/esm/list/list-item/list-item.js +5 -5
  285. package/esm/list-dropdown/list-dropdown-adapter.js +1 -1
  286. package/esm/list-dropdown/list-dropdown-constants.d.ts +6 -6
  287. package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -1
  288. package/esm/list-dropdown/list-dropdown-utils.js +7 -4
  289. package/esm/menu/menu-constants.d.ts +3 -3
  290. package/esm/menu/menu.js +6 -6
  291. package/esm/open-icon/open-icon.js +6 -6
  292. package/esm/paginator/paginator-constants.d.ts +1 -1
  293. package/esm/paginator/paginator-foundation.js +2 -0
  294. package/esm/paginator/paginator.js +11 -11
  295. package/esm/popup/popup-constants.d.ts +2 -2
  296. package/esm/popup/popup.js +5 -5
  297. package/esm/product-icon/product-icon.js +5 -5
  298. package/esm/profile-card/profile-card.js +5 -5
  299. package/esm/quantity-field/quantity-field-component-delegate.d.ts +1 -1
  300. package/esm/quantity-field/quantity-field.js +6 -6
  301. package/esm/radio/radio.js +5 -5
  302. package/esm/ripple/forge-ripple.d.ts +2 -0
  303. package/esm/ripple/forge-ripple.js +4 -0
  304. package/esm/ripple/ripple.js +4 -4
  305. package/esm/select/core/base-select-constants.d.ts +4 -4
  306. package/esm/select/option/option.js +4 -4
  307. package/esm/select/option-group/option-group.js +3 -3
  308. package/esm/select/select/select-adapter.d.ts +1 -1
  309. package/esm/select/select-component-delegate.d.ts +1 -1
  310. package/esm/slider/slider-adapter.d.ts +95 -0
  311. package/esm/slider/slider-adapter.js +238 -0
  312. package/esm/slider/slider-component-delegate.d.ts +19 -3
  313. package/esm/slider/slider-component-delegate.js +48 -0
  314. package/esm/slider/slider-constants.d.ts +58 -19
  315. package/esm/slider/slider-constants.js +59 -14
  316. package/esm/slider/slider-foundation.d.ts +95 -0
  317. package/esm/slider/slider-foundation.js +319 -0
  318. package/esm/slider/slider-handle-ripple.d.ts +18 -0
  319. package/esm/slider/slider-handle-ripple.js +37 -0
  320. package/esm/slider/slider-utils.d.ts +9 -0
  321. package/esm/slider/slider-utils.js +53 -0
  322. package/esm/slider/slider.d.ts +135 -65
  323. package/esm/slider/slider.js +235 -246
  324. package/esm/split-view/split-view/split-view-constants.d.ts +1 -1
  325. package/esm/split-view/split-view/split-view.js +5 -5
  326. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +2 -2
  327. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +18 -18
  328. package/esm/split-view/split-view-panel/split-view-panel.js +7 -7
  329. package/esm/stack/stack-constants.d.ts +1 -1
  330. package/esm/stack/stack.js +5 -5
  331. package/esm/stepper/step/step-constants.d.ts +1 -1
  332. package/esm/stepper/step/step.js +12 -12
  333. package/esm/stepper/stepper/stepper-constants.d.ts +2 -2
  334. package/esm/stepper/stepper/stepper.js +5 -5
  335. package/esm/switch/switch-component-delegate.d.ts +1 -1
  336. package/esm/switch/switch-constants.d.ts +1 -1
  337. package/esm/switch/switch.js +9 -9
  338. package/esm/table/table.js +5 -5
  339. package/esm/table/types.d.ts +4 -4
  340. package/esm/tabs/tab/tab-adapter.d.ts +14 -38
  341. package/esm/tabs/tab/tab-adapter.js +65 -78
  342. package/esm/tabs/tab/tab-constants.d.ts +13 -13
  343. package/esm/tabs/tab/tab-constants.js +18 -10
  344. package/esm/tabs/tab/tab-foundation.d.ts +24 -23
  345. package/esm/tabs/tab/tab-foundation.js +68 -62
  346. package/esm/tabs/tab/tab-ripple.d.ts +17 -0
  347. package/esm/tabs/tab/tab-ripple.js +33 -0
  348. package/esm/tabs/tab/tab.d.ts +56 -19
  349. package/esm/tabs/tab/tab.js +82 -36
  350. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +49 -87
  351. package/esm/tabs/tab-bar/tab-bar-adapter.js +114 -188
  352. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +15 -45
  353. package/esm/tabs/tab-bar/tab-bar-constants.js +22 -56
  354. package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +56 -65
  355. package/esm/tabs/tab-bar/tab-bar-foundation.js +241 -302
  356. package/esm/tabs/tab-bar/tab-bar.d.ts +51 -36
  357. package/esm/tabs/tab-bar/tab-bar.js +89 -57
  358. package/esm/text-field/text-field-component-delegate.d.ts +1 -1
  359. package/esm/theme/theme-utils.d.ts +2 -2
  360. package/esm/time-picker/time-picker-component-delegate.d.ts +1 -1
  361. package/esm/time-picker/time-picker-constants.d.ts +6 -6
  362. package/esm/time-picker/time-picker.js +6 -6
  363. package/esm/toast/toast-constants.d.ts +2 -2
  364. package/esm/toast/toast.js +6 -6
  365. package/esm/toolbar/toolbar.js +5 -5
  366. package/esm/tooltip/tooltip-constants.d.ts +1 -1
  367. package/esm/tooltip/tooltip.js +4 -4
  368. package/esm/utils/color-utils.js +1 -0
  369. package/esm/view-switcher/view-switcher.js +5 -5
  370. package/package.json +1 -1
  371. package/styles/core/style-layer/slider/_core.scss +550 -0
  372. package/styles/core/style-layer/slider/_functions.scss +33 -0
  373. package/styles/core/style-layer/slider/_variables.scss +17 -0
  374. package/styles/core/style-layer/slider/index.scss +18 -0
  375. package/styles/core/style-layer/tabs/tab/_core.scss +419 -0
  376. package/styles/core/style-layer/tabs/tab/_variables.scss +20 -0
  377. package/styles/core/style-layer/tabs/tab/index.scss +13 -0
  378. package/styles/core/style-layer/tabs/tab-bar/_core.scss +110 -0
  379. package/styles/core/style-layer/tabs/tab-bar/_variables.scss +9 -0
  380. package/styles/core/style-layer/tabs/tab-bar/index.scss +13 -0
  381. package/styles/slider/_mixins.scss +27 -0
  382. package/styles/slider/_variables.scss +37 -0
  383. package/styles/slider/slider.scss +3 -20
  384. package/styles/tabs/tab/_mixins.scss +46 -128
  385. package/styles/tabs/tab/_variables.scss +26 -4
  386. package/styles/tabs/tab/tab.scss +50 -11
  387. package/styles/tabs/tab-bar/_mixins.scss +20 -60
  388. package/styles/tabs/tab-bar/_variables.scss +11 -0
  389. package/styles/tabs/tab-bar/tab-bar.scss +29 -2
  390. package/dist/esm/chunks/chunk.2TVYAW7Q.js +0 -7
  391. package/dist/esm/chunks/chunk.3SBF7CUU.js +0 -201
  392. package/dist/esm/chunks/chunk.3SBF7CUU.js.map +0 -7
  393. package/dist/esm/chunks/chunk.3XZRUXG7.js +0 -7
  394. package/dist/esm/chunks/chunk.7JBR7GWZ.js +0 -7
  395. package/dist/esm/chunks/chunk.ABN3DL7G.js +0 -7
  396. package/dist/esm/chunks/chunk.C4YKXXKM.js +0 -7
  397. package/dist/esm/chunks/chunk.FF5DED5D.js +0 -7
  398. package/dist/esm/chunks/chunk.FF5DED5D.js.map +0 -7
  399. package/dist/esm/chunks/chunk.FHW6LV4A.js +0 -7
  400. package/dist/esm/chunks/chunk.FZ43DC2H.js +0 -7
  401. package/dist/esm/chunks/chunk.GOZVC3ZT.js +0 -7
  402. package/dist/esm/chunks/chunk.GOZVC3ZT.js.map +0 -7
  403. package/dist/esm/chunks/chunk.IMRPJU4M.js +0 -129
  404. package/dist/esm/chunks/chunk.IMRPJU4M.js.map +0 -7
  405. package/dist/esm/chunks/chunk.JKEIP657.js +0 -7
  406. package/dist/esm/chunks/chunk.JKEIP657.js.map +0 -7
  407. package/dist/esm/chunks/chunk.LSFIZAUF.js +0 -7
  408. package/dist/esm/chunks/chunk.QH2GB3PD.js +0 -7
  409. package/dist/esm/chunks/chunk.RHPJRCIC.js +0 -7
  410. package/dist/esm/chunks/chunk.SKEI7ZSK.js +0 -153
  411. package/dist/esm/chunks/chunk.SKEI7ZSK.js.map +0 -7
  412. package/dist/esm/chunks/chunk.TFMOLR6W.js +0 -7
  413. package/dist/esm/chunks/chunk.TKDMM2ZZ.js +0 -7
  414. package/dist/esm/chunks/chunk.U4CFRHOW.js +0 -7
  415. package/dist/esm/chunks/chunk.UETV4PTS.js +0 -12
  416. package/dist/esm/chunks/chunk.UZENE2NC.js +0 -7
  417. package/dist/esm/chunks/chunk.VUGNSK4K.js +0 -7
  418. package/dist/esm/chunks/chunk.VUGNSK4K.js.map +0 -7
  419. package/dist/esm/chunks/chunk.WDTA5G7R.js +0 -7
  420. /package/dist/esm/chunks/{chunk.UEN7B7Q4.js.map → chunk.246JM2YT.js.map} +0 -0
  421. /package/dist/esm/chunks/{chunk.64F24XMH.js.map → chunk.24L5GDD2.js.map} +0 -0
  422. /package/dist/esm/chunks/{chunk.IGOGRMRW.js.map → chunk.2CTK5R37.js.map} +0 -0
  423. /package/dist/esm/chunks/{chunk.ZXPAXZCF.js.map → chunk.2LRDPTHK.js.map} +0 -0
  424. /package/dist/esm/chunks/{chunk.HSXUQFHK.js.map → chunk.2QFIMTVP.js.map} +0 -0
  425. /package/dist/esm/chunks/{chunk.SCP23NBN.js.map → chunk.2QSDH3PC.js.map} +0 -0
  426. /package/dist/esm/chunks/{chunk.KWD5EK54.js.map → chunk.2TQONIPK.js.map} +0 -0
  427. /package/dist/esm/chunks/{chunk.SSJYPH4U.js.map → chunk.2XFVFZ3P.js.map} +0 -0
  428. /package/dist/esm/chunks/{chunk.BPEGGZOR.js.map → chunk.2YAU7AXH.js.map} +0 -0
  429. /package/dist/esm/chunks/{chunk.KI5FPZOX.js.map → chunk.2YX7ASSX.js.map} +0 -0
  430. /package/dist/esm/chunks/{chunk.Y4OET6II.js.map → chunk.2ZTERGYF.js.map} +0 -0
  431. /package/dist/esm/chunks/{chunk.3OT44DTM.js.map → chunk.3CBVRCKM.js.map} +0 -0
  432. /package/dist/esm/chunks/{chunk.7BNQYL2F.js.map → chunk.4EB5NVCK.js.map} +0 -0
  433. /package/dist/esm/chunks/{chunk.4NV7AHF2.js.map → chunk.4LVS2EYJ.js.map} +0 -0
  434. /package/dist/esm/chunks/{chunk.LQQIN7JE.js.map → chunk.57IVD67K.js.map} +0 -0
  435. /package/dist/esm/chunks/{chunk.RXBGYGVH.js.map → chunk.5CMQ7DNL.js.map} +0 -0
  436. /package/dist/esm/chunks/{chunk.MT3CYR5E.js.map → chunk.5M6Y2RU6.js.map} +0 -0
  437. /package/dist/esm/chunks/{chunk.E5H7OQXZ.js.map → chunk.5PHLKON3.js.map} +0 -0
  438. /package/dist/esm/chunks/{chunk.A6RLV2QU.js.map → chunk.632OMHHN.js.map} +0 -0
  439. /package/dist/esm/chunks/{chunk.PNDQ3LAB.js.map → chunk.6SBTLXLH.js.map} +0 -0
  440. /package/dist/esm/chunks/{chunk.KTPSDP4C.js.map → chunk.7JQHQKXN.js.map} +0 -0
  441. /package/dist/esm/chunks/{chunk.BTTHTLD3.js.map → chunk.7WVTJIVR.js.map} +0 -0
  442. /package/dist/esm/chunks/{chunk.PKZYVWEG.js.map → chunk.7ZQMJLHE.js.map} +0 -0
  443. /package/dist/esm/chunks/{chunk.A5D7XSBD.js.map → chunk.A5MBSCSQ.js.map} +0 -0
  444. /package/dist/esm/chunks/{chunk.7UN5EYUE.js.map → chunk.A5R7KUIP.js.map} +0 -0
  445. /package/dist/esm/chunks/{chunk.XARGY3WT.js.map → chunk.AGMPIMJV.js.map} +0 -0
  446. /package/dist/esm/chunks/{chunk.3W2ERIMT.js.map → chunk.BKCEVPKW.js.map} +0 -0
  447. /package/dist/esm/chunks/{chunk.X63F5NVD.js.map → chunk.BSTIDYQJ.js.map} +0 -0
  448. /package/dist/esm/chunks/{chunk.UUUF27IU.js.map → chunk.BWZKQ6WX.js.map} +0 -0
  449. /package/dist/esm/chunks/{chunk.XBW6KSW3.js.map → chunk.CNQESSA3.js.map} +0 -0
  450. /package/dist/esm/chunks/{chunk.55FCNVG5.js.map → chunk.DTZFWZPB.js.map} +0 -0
  451. /package/dist/esm/chunks/{chunk.R4B7JSSA.js.map → chunk.E6KWYFZG.js.map} +0 -0
  452. /package/dist/esm/chunks/{chunk.XGWGJFWC.js.map → chunk.E7Z3IRWV.js.map} +0 -0
  453. /package/dist/esm/chunks/{chunk.NSTCCETU.js.map → chunk.ECRL6O3V.js.map} +0 -0
  454. /package/dist/esm/chunks/{chunk.W6MDMZTN.js.map → chunk.EDEYCLDU.js.map} +0 -0
  455. /package/dist/esm/chunks/{chunk.P6ZUHPI6.js.map → chunk.ER52NFXX.js.map} +0 -0
  456. /package/dist/esm/chunks/{chunk.AY46N5Y7.js.map → chunk.EUE3OVC7.js.map} +0 -0
  457. /package/dist/esm/chunks/{chunk.RMPS2I2P.js.map → chunk.EYZ25QUP.js.map} +0 -0
  458. /package/dist/esm/chunks/{chunk.VJ2SSV5X.js.map → chunk.FAANPQES.js.map} +0 -0
  459. /package/dist/esm/chunks/{chunk.DX32NTD3.js.map → chunk.GF2GUVYS.js.map} +0 -0
  460. /package/dist/esm/chunks/{chunk.ABN3DL7G.js.map → chunk.GJW4WS4I.js.map} +0 -0
  461. /package/dist/esm/chunks/{chunk.P4TIMZKU.js.map → chunk.GUYPITGA.js.map} +0 -0
  462. /package/dist/esm/chunks/{chunk.T64UW37U.js.map → chunk.H5D54EHO.js.map} +0 -0
  463. /package/dist/esm/chunks/{chunk.FPMQAUL3.js.map → chunk.HKJEGD6C.js.map} +0 -0
  464. /package/dist/esm/chunks/{chunk.7KEUUHXY.js.map → chunk.IDD54B5P.js.map} +0 -0
  465. /package/dist/esm/chunks/{chunk.H4H75YUA.js.map → chunk.IWA3CYIB.js.map} +0 -0
  466. /package/dist/esm/chunks/{chunk.UETV4PTS.js.map → chunk.JHXNEHWR.js.map} +0 -0
  467. /package/dist/esm/chunks/{chunk.ZOV2BUZG.js.map → chunk.JVW6JGV3.js.map} +0 -0
  468. /package/dist/esm/chunks/{chunk.P64BBB3U.js.map → chunk.MXNLCQRB.js.map} +0 -0
  469. /package/dist/esm/chunks/{chunk.3XZRUXG7.js.map → chunk.OT6H5NHX.js.map} +0 -0
  470. /package/dist/esm/chunks/{chunk.7JBR7GWZ.js.map → chunk.OTVT3XM2.js.map} +0 -0
  471. /package/dist/esm/chunks/{chunk.4ZWV37ZJ.js.map → chunk.P5QIB6OY.js.map} +0 -0
  472. /package/dist/esm/chunks/{chunk.ZB54OC26.js.map → chunk.PHBOQRF6.js.map} +0 -0
  473. /package/dist/esm/chunks/{chunk.YTOYNJMD.js.map → chunk.PHTOULRR.js.map} +0 -0
  474. /package/dist/esm/chunks/{chunk.VMQZA47V.js.map → chunk.QA3NU7EN.js.map} +0 -0
  475. /package/dist/esm/chunks/{chunk.7VWG4IEN.js.map → chunk.QZK3WEH6.js.map} +0 -0
  476. /package/dist/esm/chunks/{chunk.GFWFEBAH.js.map → chunk.RGPNNISQ.js.map} +0 -0
  477. /package/dist/esm/chunks/{chunk.EUNKM7XR.js.map → chunk.RUSHOL23.js.map} +0 -0
  478. /package/dist/esm/chunks/{chunk.YNE75HFH.js.map → chunk.THPU5KBV.js.map} +0 -0
  479. /package/dist/esm/chunks/{chunk.INRH62VL.js.map → chunk.TL6WVBGT.js.map} +0 -0
  480. /package/dist/esm/chunks/{chunk.O4KZV4MX.js.map → chunk.TT2VTZJ6.js.map} +0 -0
  481. /package/dist/esm/chunks/{chunk.7X7A74SI.js.map → chunk.TXFYS6EU.js.map} +0 -0
  482. /package/dist/esm/chunks/{chunk.5MPUISW3.js.map → chunk.U4GYQOPY.js.map} +0 -0
  483. /package/dist/esm/chunks/{chunk.I3MZQIAF.js.map → chunk.UCM6CGFM.js.map} +0 -0
  484. /package/dist/esm/chunks/{chunk.SOMT6F6S.js.map → chunk.V4RBOYNH.js.map} +0 -0
  485. /package/dist/esm/chunks/{chunk.2R72ZTIK.js.map → chunk.V6JVHYVW.js.map} +0 -0
  486. /package/dist/esm/chunks/{chunk.UROMKMFI.js.map → chunk.WBYXVMYI.js.map} +0 -0
  487. /package/dist/esm/chunks/{chunk.QUJL4A23.js.map → chunk.WO7KEM5K.js.map} +0 -0
  488. /package/dist/esm/chunks/{chunk.HVYK2OWE.js.map → chunk.WYP2M5FR.js.map} +0 -0
  489. /package/dist/esm/chunks/{chunk.NEMJIVPU.js.map → chunk.X3YNJSDT.js.map} +0 -0
  490. /package/dist/esm/chunks/{chunk.WQL55O4A.js.map → chunk.XMFQFFKR.js.map} +0 -0
  491. /package/dist/esm/chunks/{chunk.46LZNRRP.js.map → chunk.Y5UJ23LB.js.map} +0 -0
  492. /package/dist/esm/chunks/{chunk.S5EJVD5E.js.map → chunk.YQXX5KSW.js.map} +0 -0
  493. /package/dist/esm/chunks/{chunk.RVUMHJMM.js.map → chunk.YUAU5IWT.js.map} +0 -0
  494. /package/dist/esm/chunks/{chunk.YSFUL5AD.js.map → chunk.YZLASVCK.js.map} +0 -0
  495. /package/dist/esm/chunks/{chunk.ELY4YCON.js.map → chunk.Z5TWWM7I.js.map} +0 -0
  496. /package/dist/esm/chunks/{chunk.RPKVFFQ6.js.map → chunk.ZIB7L7DZ.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/list-dropdown/list-dropdown-constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/events/event-aware.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-types.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-axis-observer.js", "../../src/list-dropdown/list-dropdown-utils.ts", "../../src/list-dropdown/list-dropdown-foundation.ts", "../../src/list-dropdown/list-dropdown-adapter.ts", "../../src/list-dropdown/list-dropdown.ts", "../../src/list-dropdown/list-dropdown-aware-foundation.ts", "../../src/list-dropdown/cascading-list-dropdown-aware-foundation.ts"],
4
+ "sourcesContent": ["import { IPopupPosition, PopupPlacement } from '../popup';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder<T = any> = (option: IListDropdownOptionGroup<T>) => HTMLElement | string;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup<T = any, K = any> {\n text?: string;\n value?: K;\n builder?: ListDropdownOptionGroupBuilder;\n options: IListDropdownOption<T>[];\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n constrainViewportWidth?: boolean;\n wrapOptionText?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n visibleStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IPopupPosition;\n popupStatic?: boolean;\n popupPlacement?: PopupPlacement;\n popupFallbackPlacements?: PopupPlacement[];\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../popup';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n dropdownElement.setAttribute('role', 'menu');\n dropdownElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n dropdownElement.setAttribute('role', 'listbox');\n }\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const popupElement = document.createElement('forge-popup');\n popupElement.targetElement = targetElement;\n popupElement.placement = config.popupPlacement || 'bottom-start';\n popupElement.manageFocus = false;\n popupElement.static = !!config.popupStatic;\n\n if (config.popupFallbackPlacements?.length) {\n popupElement.fallbackPlacements = config.popupFallbackPlacements;\n }\n\n if (config.constrainViewportWidth) {\n popupElement.setAttribute(POPUP_CONSTANTS.attributes.CONSTRAIN_VIEWPORT_WIDTH, '');\n }\n\n if (config.popupOffset) {\n popupElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n popupElement.animationType = PopupAnimationType.Menu;\n break;\n case ListDropdownType.None:\n popupElement.animationType = PopupAnimationType.None;\n break;\n default:\n popupElement.animationType = PopupAnimationType.Dropdown;\n }\n return popupElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>, startIndex = 0, renderSelected = true): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n const flatOptions = getFlattenedOptions(groups);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIdIndex = startIndex;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n\n if (typeof headerElement === 'string') {\n groupWrapper.innerHTML = headerElement;\n } else if (headerElement instanceof HTMLElement) {\n groupWrapper.appendChild(headerElement);\n }\n\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n\n // We don't render selected options that are appended dynamically since those are always displayed at the top of the list\n if (!renderSelected && isSelected) {\n continue;\n }\n\n let listItemElement = document.createElement('forge-list-item');\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIdIndex++}`;\n listItemElement.style.cursor = 'pointer';\n\n if (config.wrapOptionText) {\n listItemElement.wrap = true;\n }\n \n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n // Set role based on type\n switch (config.type) {\n case ListDropdownType.Menu:\n listItemElement.setAttribute('role', 'menuitem');\n break;\n case ListDropdownType.None:\n break;\n default:\n listItemElement.setAttribute('role', 'option');\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.style.cursor = 'pointer';\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = flatOptions.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n\nexport function getFlattenedOptions(options: Array<IListDropdownOptionGroup | IListDropdownOption>): IListDropdownOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n const groups = options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...options as IListDropdownOption[]];\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { getFlattenedOptions } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n if (this._open) {\n this.close();\n }\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public close(): void {\n if (this._open) {\n this._open = false;\n this._adapter.close();\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (typeof this._config.visibleStartIndex === 'number' && this._nonDividerOptions[this._config.visibleStartIndex]) {\n this._adapter.scrollOptionIntoView(this._config.visibleStartIndex);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n case 'NumpadEnter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n return getFlattenedOptions(this._config.options);\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent, IListItemSelectEventData } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollOptionIntoView(index: number): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopupComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener('forge-list-item-select', evt => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Open the popup\n this._dropdownElement.open = true;\n }\n\n public close(): void {\n if (!this._dropdownElement) {\n return;\n }\n this._dropdownElement.open = false;\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollTarget = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n this._scrollObserver = new ScrollAxisObserver(scrollTarget, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollOptionIntoView(index: number, animate = true): void {\n const listItem = this._getListItemElements()[index];\n if (listItem) {\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n this._dropdownElement.style[sync ? 'width' : 'minWidth'] = `${this._getTargetElementWidth(targetWidthCallback)}px`;\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.style.display = 'none';\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options, this._listElement.childElementCount, false);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n } else {\n this._busyElement.style.display = 'none';\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n if (activeItems.length) {\n activeItems.forEach(ai => ai.active = false);\n }\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n if (isSelected) {\n listItem.active = true;\n }\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): void {\n this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n constrainPopupWidth: boolean;\n wrapOptionText: boolean;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n protected _constrainPopupWidth = true;\n protected _wrapOptionText = false;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n public get constrainPopupWidth(): boolean {\n return this._constrainPopupWidth;\n }\n public set constrainPopupWidth(value: boolean) {\n this._constrainPopupWidth = value;\n }\n\n public get wrapOptionText(): boolean {\n return this._wrapOptionText;\n }\n public set wrapOptionText(value: boolean) {\n this._wrapOptionText = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(index: number): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean }): void;\n protected abstract _setCascadeTargetInactive(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown({ fromKeyboard: false });\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["attributes", "classes", "LIST_DROPDOWN_CONSTANTS", "DEFAULT_LIST_DROPDOWN_CONFIG", "ListDropdownType", "ListDropdownAsyncStyle", "EventAware", "type", "data", "listeners", "cb", "listener", "ScrollDirection", "ScrollEvents", "DEFAULT_SCROLL_THROTTLE", "ScrollAxisObserver", "EventAware", "_element", "_config", "wait", "throttle", "isDefined", "isNumber", "isVertical", "isHorizontal", "position", "direction", "ScrollDirection", "ScrollEvents", "scrollStart", "scrollEnd", "createDropdown", "config", "targetElement", "dropdownElement", "createPopupDropdown", "dropdownId", "evt", "composedPath", "getEventPath", "el", "LIST_DROPDOWN_CONSTANTS", "addClass", "_a", "popupElement", "POPUP_CONSTANTS", "createList", "listElement", "LIST_CONSTANTS", "createListItems", "options", "startIndex", "renderSelected", "groups", "getOptionsByGroup", "flatOptions", "getFlattenedOptions", "limitOptions", "optionLimit", "optionIdIndex", "group", "optionParent", "headerElement", "groupWrapper", "listHeaderElement", "option", "dividerElement", "createDivider", "isSelected", "v", "isDeepEqual", "listItemElement", "element", "result", "checkboxElement", "createCheckboxElement", "value", "key", "isObject", "leadingIconElement", "createIconElement", "trailingIconElement", "optionIconElement", "factoryConfig", "o", "cascadingElement", "selected", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "divider", "type", "iconName", "iconClass", "icon", "iconElement", "ICON_CLASS_NAME", "createAsyncElement", "asyncStyle", "createSkeletonElement", "createSpinnerElement", "div", "spinner", "list", "i", "listItemSkeleton", "SKELETON_CONSTANTS", "createBusyElement", "linearProgress", "LINEAR_PROGRESS_CONSTANTS", "isListDropdownOptionType", "isOptionGroups", "isDefined", "isOptionTypes", "flatOpts", "ListDropdownFoundation", "_adapter", "config", "__spreadValues", "DEFAULT_LIST_DROPDOWN_CONFIG", "value", "id", "sync", "index", "isSelected", "o", "options", "animate", "values", "listener", "threshold", "isVisible", "key", "activeOptionIndex", "activeOption", "option", "startIndex", "getFlattenedOptions", "ListDropdownAdapter", "_targetElement", "config", "selectCallback", "closeCb", "createDropdown", "createBusyElement", "LIST_DROPDOWN_CONSTANTS", "createList", "evt", "createListItems", "createAsyncElement", "createVisuallyHiddenElement", "listener", "scrollThreshold", "scrollTarget", "getShadowElement", "POPUP_CONSTANTS", "scrollConfig", "ScrollAxisObserver", "ScrollEvents", "listItems", "activeListItem", "li", "index", "item", "isSelected", "animate", "listItem", "activeChangeCallback", "values", "multiple", "v", "isDeepEqual", "checkboxElement", "newCheckboxElement", "createCheckboxElement", "replaceElement", "sync", "targetWidthCallback", "removeElement", "removeAllChildren", "options", "isVisible", "LIST_ITEM_CONSTANTS", "activeItems", "ai", "ICON_CONSTANTS", "cb", "isFunction", "behavior", "block", "scrollContainer", "tryScrollIntoView", "ListDropdown", "_targetElement", "config", "IconRegistry", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "ListDropdownFoundation", "ListDropdownAdapter", "index", "isSelected", "values", "options", "animate", "listener", "threshold", "isVisible", "key", "ListDropdownAwareFoundation", "value", "CascadingListDropdownAwareFoundation", "ListDropdownAwareFoundation", "_config", "evt", "mouseElement"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{h as f,i as g}from"./chunk.YZLASVCK.js";import{a as s}from"./chunk.NVUMRW44.js";import{a as v,b as h}from"./chunk.DTZFWZPB.js";import{a as b,k as _}from"./chunk.NK7H3MMM.js";import{f as c,g as m}from"./chunk.CFDK4RCW.js";import{k as u}from"./chunk.J2M2MXP2.js";import{d as o}from"./chunk.M3QDAYD2.js";var R=`${h}ripple`,T={SURFACE:"mdc-ripple-surface"},E={TARGET:"target",UNBOUNDED:"unbounded"},e={elementName:R,classes:T,attributes:E};var r=class extends g{handleFocus(){this.foundation.handleFocus()}handleBlur(){this.foundation.handleBlur()}animate(){this.foundation.animateActivation()}},C=class extends f{};var n=class{constructor(t){this._component=t}_tryFindTarget(){return this._component.parentElement}initialize(t,d){t&&(this._target=(this._component.ownerDocument||document).querySelector(t)),this._target||(this._target=this._tryFindTarget()),this._target&&(this._ripple=new r(this._target),this._ripple.unbounded=d,c(e.classes.SURFACE,this._target))}destroy(){this._ripple&&(this._ripple.destroy(),this._ripple=void 0),this._target&&m(e.classes.SURFACE,this._target),this._target=void 0}activate(){var t;(t=this._ripple)==null||t.activate()}deactivate(){var t;(t=this._ripple)==null||t.deactivate()}};var p=class{constructor(t){this._adapter=t;this._unbounded=!1}initialize(){this._adapter.initialize(this._target,this._unbounded)}disconnect(){this._adapter.destroy()}layout(){this._applyTarget()}activate(){this._adapter.activate()}deactivate(){this._adapter.deactivate()}_applyTarget(){this._adapter.destroy(),this._adapter.initialize(this._target,this._unbounded)}get target(){return this._target}set target(t){this._target!==t&&(this._target=t,this._applyTarget())}get unbounded(){return this._unbounded}set unbounded(t){this._unbounded!==t&&(this._unbounded=t,this._applyTarget())}};var i=class extends _{constructor(){super();this._foundation=new p(new n(this))}static get observedAttributes(){return[e.attributes.TARGET,e.attributes.UNBOUNDED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(d,y,l){switch(d){case e.attributes.TARGET:this.target=l;break;case e.attributes.UNBOUNDED:this.unbounded=u(l);break}}layout(){this._foundation.layout()}activate(){return this._foundation.activate()}deactivate(){return this._foundation.deactivate()}};o([s()],i.prototype,"target",2),o([s()],i.prototype,"unbounded",2),i=o([v({name:e.elementName})],i);function X(){b(i)}export{e as a,r as b,C as c,n as d,p as e,i as f,X as g};
7
+ //# sourceMappingURL=chunk.SZIM4KFZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ripple/ripple-constants.ts", "../../src/ripple/forge-ripple.ts", "../../src/ripple/ripple-adapter.ts", "../../src/ripple/ripple-foundation.ts", "../../src/ripple/ripple.ts", "../../src/ripple/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}ripple`;\n\nconst classes = {\n SURFACE: 'mdc-ripple-surface'\n};\n\nconst attributes = {\n TARGET: 'target',\n UNBOUNDED: 'unbounded'\n};\n\nexport const RIPPLE_CONSTANTS = {\n elementName,\n classes,\n attributes\n};\n", "import { MDCRipple, type MDCRippleAdapter, MDCRippleFoundation, type MDCRippleCapableSurface } from '@material/ripple';\n\nexport class ForgeRipple extends MDCRipple {\n /** Manually trigger focus activation. */\n public handleFocus(): void {\n this.foundation.handleFocus();\n }\n\n /** Manually trigger focus deactivation. */\n public handleBlur(): void {\n this.foundation.handleBlur();\n }\n\n /** Executes the ripple animation. */\n public animate(): void {\n (this.foundation as any).animateActivation(); // MDC does not expose this method, using `any` to access it.\n }\n}\nexport class ForgeRippleFoundation extends MDCRippleFoundation {}\nexport {\n MDCRippleAdapter as ForgeRippleAdapter,\n MDCRippleCapableSurface as ForgeRippleCapableSurface\n};\n", "import { addClass, removeClass } from '@tylertech/forge-core';\n\nimport { IRippleComponent } from './ripple';\nimport { RIPPLE_CONSTANTS } from './ripple-constants';\nimport { ForgeRipple } from './forge-ripple';\n\nexport interface IRippleAdapter {\n initialize(target: string, unbounded: boolean): void;\n destroy(): void;\n activate(): void;\n deactivate(): void;\n}\n\nexport class RippleAdapter implements IRippleAdapter {\n private _target: HTMLElement | undefined;\n private _ripple: ForgeRipple | undefined;\n\n constructor(private _component: IRippleComponent) {}\n\n private _tryFindTarget(): HTMLElement {\n return this._component.parentElement as HTMLElement;\n }\n\n public initialize(target: string, unbounded: boolean): void {\n if (target) {\n this._target = (this._component.ownerDocument || document).querySelector(target) as HTMLElement;\n }\n\n if (!this._target) {\n this._target = this._tryFindTarget();\n }\n\n if (this._target) {\n this._ripple = new ForgeRipple(this._target);\n this._ripple.unbounded = unbounded;\n addClass(RIPPLE_CONSTANTS.classes.SURFACE, this._target);\n }\n }\n\n public destroy(): void {\n if (this._ripple) {\n this._ripple.destroy();\n this._ripple = undefined;\n }\n\n if (this._target) {\n removeClass(RIPPLE_CONSTANTS.classes.SURFACE, this._target);\n }\n \n this._target = undefined;\n }\n\n public activate(): void {\n this._ripple?.activate();\n }\n\n public deactivate(): void {\n this._ripple?.deactivate();\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IRippleAdapter } from './ripple-adapter';\n\nexport interface IRippleFoundation extends ICustomElementFoundation {\n target: string;\n unbounded: boolean;\n layout(): void;\n activate(): void;\n deactivate(): void;\n}\n\nexport class RippleFoundation implements IRippleFoundation {\n private _target: string;\n private _unbounded = false;\n\n constructor(private _adapter: IRippleAdapter) {}\n\n public initialize(): void {\n this._adapter.initialize(this._target, this._unbounded);\n }\n\n public disconnect(): void {\n this._adapter.destroy();\n }\n\n public layout(): void {\n this._applyTarget();\n }\n\n public activate(): void {\n this._adapter.activate();\n }\n\n public deactivate(): void {\n this._adapter.deactivate();\n }\n\n private _applyTarget(): void {\n this._adapter.destroy();\n this._adapter.initialize(this._target, this._unbounded);\n }\n\n public get target(): string {\n return this._target;\n }\n public set target(value: string) {\n if (this._target !== value) {\n this._target = value;\n this._applyTarget();\n }\n }\n\n public get unbounded(): boolean {\n return this._unbounded;\n }\n public set unbounded(value: boolean) {\n if (this._unbounded !== value) {\n this._unbounded = value;\n this._applyTarget();\n }\n }\n}\n", "import { coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { RippleAdapter } from './ripple-adapter';\nimport { RIPPLE_CONSTANTS } from './ripple-constants';\nimport { RippleFoundation } from './ripple-foundation';\n\nexport interface IRippleComponent extends IBaseComponent {\n target: string;\n unbounded: boolean;\n layout(): void;\n activate(): void;\n deactivate(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-ripple': IRippleComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-ripple>` custom element.\n * \n * @tag forge-ripple\n */\n@CustomElement({\n name: RIPPLE_CONSTANTS.elementName\n})\nexport class RippleComponent extends BaseComponent implements IRippleComponent {\n public static get observedAttributes(): string[] {\n return [\n RIPPLE_CONSTANTS.attributes.TARGET,\n RIPPLE_CONSTANTS.attributes.UNBOUNDED\n ];\n }\n\n private _foundation: RippleFoundation;\n\n constructor() {\n super();\n this._foundation = new RippleFoundation(new RippleAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case RIPPLE_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case RIPPLE_CONSTANTS.attributes.UNBOUNDED:\n this.unbounded = coerceBoolean(newValue);\n break;\n }\n }\n\n public layout(): void {\n this._foundation.layout();\n }\n\n public activate(): void {\n return this._foundation.activate();\n }\n\n public deactivate(): void {\n return this._foundation.deactivate();\n }\n\n @FoundationProperty()\n public declare target: string;\n\n @FoundationProperty()\n public declare unbounded: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { RippleComponent } from './ripple';\n\nexport * from './ripple-adapter';\nexport * from './ripple-constants';\nexport * from './ripple-foundation';\nexport * from './ripple';\nexport * from './forge-ripple';\n\nexport function defineRippleComponent(): void {\n defineCustomElement(RippleComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "attributes", "RIPPLE_CONSTANTS", "ForgeRipple", "MDCRipple", "ForgeRippleFoundation", "MDCRippleFoundation", "RippleAdapter", "_component", "target", "unbounded", "ForgeRipple", "addClass", "RIPPLE_CONSTANTS", "removeClass", "_a", "RippleFoundation", "_adapter", "value", "RippleComponent", "BaseComponent", "RippleFoundation", "RippleAdapter", "RIPPLE_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "defineRippleComponent", "defineCustomElement", "RippleComponent"]
7
+ }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{d as c}from"./chunk.NEMJIVPU.js";import{b as f}from"./chunk.7UN5EYUE.js";import{w as i}from"./chunk.MZLPUI6R.js";import{d as a,l}from"./chunk.T64UW37U.js";import{a as m,b as r}from"./chunk.55FCNVG5.js";import{a as o,d as n,l as p}from"./chunk.QH2GB3PD.js";import{d as t}from"./chunk.M3QDAYD2.js";var s=`${r}app-bar-menu-button`,u={elementName:s};var g='<template><forge-icon-button style="width: 48px; height: 48px; display: flex; justify-content: center; align-items: center;"><button type="button" aria-label="Toggle navigation menu"><forge-icon name="menu"></forge-icon></button><forge-tooltip delay="500" position="bottom">Menu</forge-tooltip></forge-icon-button></template>',e=class extends p{constructor(){super(),a.define(i)}initializedCallback(){n(this,g)}};e=t([m({name:u.elementName,dependencies:[f,c,l]})],e);function P(){o(e)}export{u as a,e as b,P as c};
7
- //# sourceMappingURL=chunk.YNE75HFH.js.map
6
+ import{d as c}from"./chunk.X3YNJSDT.js";import{b as f}from"./chunk.A5R7KUIP.js";import{x as i}from"./chunk.FYWPZFLJ.js";import{d as a,l}from"./chunk.H5D54EHO.js";import{a as m,b as r}from"./chunk.DTZFWZPB.js";import{a as o,d as n,k as p}from"./chunk.NK7H3MMM.js";import{d as t}from"./chunk.M3QDAYD2.js";var s=`${r}app-bar-menu-button`,u={elementName:s};var g='<template><forge-icon-button style="width: 48px; height: 48px; display: flex; justify-content: center; align-items: center;"><button type="button" aria-label="Toggle navigation menu"><forge-icon name="menu"></forge-icon></button><forge-tooltip delay="500" position="bottom">Menu</forge-tooltip></forge-icon-button></template>',e=class extends p{constructor(){super(),a.define(i)}initializedCallback(){n(this,g)}};e=t([m({name:u.elementName,dependencies:[f,c,l]})],e);function P(){o(e)}export{u as a,e as b,P as c};
7
+ //# sourceMappingURL=chunk.THPU5KBV.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as d,b as g}from"./chunk.55FCNVG5.js";import{a as n,e as l,g as s,l as b}from"./chunk.QH2GB3PD.js";import{k as i}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var m=`${g}toolbar`,f={INVERTED:"inverted"},o={INVERTED:"forge-toolbar--inverted",TOOLBAR:"forge-toolbar",SECTION:"forge-toolbar__section",ALIGN_START:"forge-toolbar__section--align-start",ALIGN_CENTER:"forge-toolbar__section--align-center",ALIGN_END:"forge-toolbar__section--align-end"},p={TOOLBAR:`.${o.TOOLBAR}`,START_SLOT:`.${o.SECTION}.${o.ALIGN_START} > slot[name=start]`,CENTER_SLOT:`.${o.SECTION}.${o.ALIGN_CENTER} > slot[name=center]`,END_SLOT:`.${o.SECTION}.${o.ALIGN_END} > slot[name=end]`},e={elementName:m,attributes:f,classes:o,selectors:p};var h='<template><div class="forge-toolbar" part="root"><div class="forge-toolbar__section forge-toolbar__section--align-start" part="section-start"><slot name="start"></slot><slot></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-center" part="section-center"><slot name="center"></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-end" part="section-end"><slot name="end"></slot></div></div></template>',_=".forge-toolbar{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);min-height:56px;min-height:var(--forge-toolbar-min-height,56px);height:56px;height:var(--forge-toolbar-height,56px);padding-inline:16px;padding-inline:var(--forge-toolbar-padding,16px);border-bottom:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-bottom:var(--forge-toolbar-border-bottom,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-top-left-radius:0;border-top-left-radius:var(--forge-toolbar-border-top-left-radius,0);border-top-right-radius:0;border-top-right-radius:var(--forge-toolbar-border-top-right-radius,0);border-bottom-left-radius:0;border-bottom-left-radius:var(--forge-toolbar-border-bottom-left-radius,0);border-bottom-right-radius:0;border-bottom-right-radius:var(--forge-toolbar-border-bottom-right-radius,0);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);display:grid;grid-template-columns:auto 1fr auto;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section--align-start{grid-column:1}.forge-toolbar__section--align-center{-webkit-box-pack:center;justify-content:center;grid-column:2}.forge-toolbar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;grid-column:3}.forge-toolbar--inverted{border-top:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-top:var(--forge-toolbar-border-top,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-bottom:none}:host{display:block;contain:layout}:host([hidden]){display:none}:host([no-border]) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{padding-inline:0;padding-inline:var(--forge-toolbar-padding,0)}:host([auto-height]) .forge-toolbar{height:auto;height:var(--forge-toolbar-height,auto)}.forge-toolbar ::slotted(h1){margin:0}.forge-toolbar ::slotted(h2){margin:0}.forge-toolbar ::slotted(h3){margin:0}.forge-toolbar ::slotted(h4){margin:0}.forge-toolbar ::slotted(h5){margin:0}.forge-toolbar ::slotted(h6){margin:0}.forge-toolbar ::slotted(p){margin:0}",t=class extends b{constructor(){super();this._inverted=!1;l(this,h,_),this._rootElement=s(this,e.selectors.TOOLBAR)}static get observedAttributes(){return[e.attributes.INVERTED]}connectedCallback(){this._initialize()}attributeChangedCallback(r,T,c){switch(r){case e.attributes.INVERTED:this.inverted=i(c);break}}_initialize(){this._setInverted(this._inverted)}_setInverted(r){r?this._rootElement.classList.add(e.classes.INVERTED):this._rootElement.classList.remove(e.classes.INVERTED)}get inverted(){return this._inverted}set inverted(r){this._inverted=r,this._setInverted(this._inverted)}};t=a([d({name:e.elementName})],t);function k(){n(t)}export{e as a,t as b,k as c};
7
- //# sourceMappingURL=chunk.INRH62VL.js.map
6
+ import{a as d,b as g}from"./chunk.DTZFWZPB.js";import{a as n,e as l,f as s,k as b}from"./chunk.NK7H3MMM.js";import{k as i}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var m=`${g}toolbar`,f={INVERTED:"inverted"},o={INVERTED:"forge-toolbar--inverted",TOOLBAR:"forge-toolbar",SECTION:"forge-toolbar__section",ALIGN_START:"forge-toolbar__section--align-start",ALIGN_CENTER:"forge-toolbar__section--align-center",ALIGN_END:"forge-toolbar__section--align-end"},p={TOOLBAR:`.${o.TOOLBAR}`,START_SLOT:`.${o.SECTION}.${o.ALIGN_START} > slot[name=start]`,CENTER_SLOT:`.${o.SECTION}.${o.ALIGN_CENTER} > slot[name=center]`,END_SLOT:`.${o.SECTION}.${o.ALIGN_END} > slot[name=end]`},e={elementName:m,attributes:f,classes:o,selectors:p};var h='<template><div class="forge-toolbar" part="root"><div class="forge-toolbar__section forge-toolbar__section--align-start" part="section-start"><slot name="start"></slot><slot></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-center" part="section-center"><slot name="center"></slot></div><div class="forge-toolbar__section forge-toolbar__section--align-end" part="section-end"><slot name="end"></slot></div></div></template>',_=".forge-toolbar{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);min-height:56px;min-height:var(--forge-toolbar-min-height,56px);height:56px;height:var(--forge-toolbar-height,56px);padding-inline:16px;padding-inline:var(--forge-toolbar-padding,16px);border-bottom:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-bottom:var(--forge-toolbar-border-bottom,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-top-left-radius:0;border-top-left-radius:var(--forge-toolbar-border-top-left-radius,0);border-top-right-radius:0;border-top-right-radius:var(--forge-toolbar-border-top-right-radius,0);border-bottom-left-radius:0;border-bottom-left-radius:var(--forge-toolbar-border-bottom-left-radius,0);border-bottom-right-radius:0;border-bottom-right-radius:var(--forge-toolbar-border-bottom-right-radius,0);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);display:grid;grid-template-columns:auto 1fr auto;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-toolbar__section--align-start{grid-column:1}.forge-toolbar__section--align-center{-webkit-box-pack:center;justify-content:center;grid-column:2}.forge-toolbar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;grid-column:3}.forge-toolbar--inverted{border-top:1px solid var(--forge-theme-border-color,rgba(0,0,0,.12));border-top:var(--forge-toolbar-border-top,1px solid var(--forge-theme-border-color,rgba(0,0,0,.12)));border-bottom:none}:host{display:block;contain:layout}:host([hidden]){display:none}:host([no-border]) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{padding-inline:0;padding-inline:var(--forge-toolbar-padding,0)}:host([auto-height]) .forge-toolbar{height:auto;height:var(--forge-toolbar-height,auto)}.forge-toolbar ::slotted(h1){margin:0}.forge-toolbar ::slotted(h2){margin:0}.forge-toolbar ::slotted(h3){margin:0}.forge-toolbar ::slotted(h4){margin:0}.forge-toolbar ::slotted(h5){margin:0}.forge-toolbar ::slotted(h6){margin:0}.forge-toolbar ::slotted(p){margin:0}",t=class extends b{constructor(){super();this._inverted=!1;l(this,h,_),this._rootElement=s(this,e.selectors.TOOLBAR)}static get observedAttributes(){return[e.attributes.INVERTED]}connectedCallback(){this._initialize()}attributeChangedCallback(r,T,c){switch(r){case e.attributes.INVERTED:this.inverted=i(c);break}}_initialize(){this._setInverted(this._inverted)}_setInverted(r){r?this._rootElement.classList.add(e.classes.INVERTED):this._rootElement.classList.remove(e.classes.INVERTED)}get inverted(){return this._inverted}set inverted(r){this._inverted=r,this._setInverted(this._inverted)}};t=a([d({name:e.elementName})],t);function k(){n(t)}export{e as a,t as b,k as c};
7
+ //# sourceMappingURL=chunk.TL6WVBGT.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as c,d as w}from"./chunk.GFWFEBAH.js";import{a as n}from"./chunk.NVUMRW44.js";import{a as A}from"./chunk.TKDMM2ZZ.js";import{a as x,b as O}from"./chunk.55FCNVG5.js";import{a as k,e as M,g as u,l as D}from"./chunk.QH2GB3PD.js";import{i as C,r as T,s as y,t as p}from"./chunk.CFDK4RCW.js";import{c as f,d as E,k as m}from"./chunk.J2M2MXP2.js";import{a as _,d as s}from"./chunk.M3QDAYD2.js";var l=`${O}dialog`,S={ANIMATING:"forge-dialog--animating",OPEN:"forge-dialog--open",ACTION_BUTTON:"forge-dialog__action__button",BUTTON_TEXT:"forge-button__text",SCROLLABLE:"forge-dialog--scrollable",FULLSCREEN:"forge-dialog--fullscreen",MOVEABLE:"forge-dialog--moveable"},v={BACKDROP_CLOSE:"backdrop-close",ESCAPE_CLOSE:"escape-close",FULLSCREEN:"fullscreen",POSITION_TYPE:"position-type",POSITION_X:"position-x",POSITION_Y:"position-y",MOVEABLE:"moveable",MOVE_TARGET:"move-target",OPEN:"forge-dialog-open",INITIAL_FOCUS:"forge-dialog-focus",DFEAULT_MOVE_TARGET:"forge-dialog-move-target"},L={CONTAINER:".forge-dialog",SURFACE:".forge-dialog__surface",BACKDROP:c.elementName,INITIAL_FOCUS:`[${v.INITIAL_FOCUS}]`,DFEAULT_MOVE_TARGET:`[${v.DFEAULT_MOVE_TARGET}]`,CONTENT:".forge-dialog__body"},I={BEFORE_CLOSE:`${l}-before-close`,OPEN:`${l}-open`,CLOSE:`${l}-close`,READY:`${l}-ready`,MOVE_START:`${l}-move-start`,MOVED:`${l}-move`,MOVE_END:`${l}-move-end`},H={ANIMATION_DURATION:150,BACKDROP_MAX_OPACITY:.3},i={elementName:l,classes:S,selectors:L,attributes:v,events:I,numbers:H};var b=class{constructor(t){this._adapter=t;this._open=!1;this._backdropClose=!0;this._escapeClose=!0;this._fullscreen=!1;this._positionType="absolute";this._positionX=null;this._positionY=null;this._moveable=!1;this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET;this._isAnimating=!1;this._isMoving=!1;this._transitionEndHandler=e=>this._onTransitionEnd(),this._documentKeydownHandler=e=>this._onDocumentKeydown(e),this._backdropClickHandler=e=>this._onBackdropClick(e),this._moveTargetMouseDownHandler=e=>this._onMoveTargetMouseDown(e),this._moveTargetMouseMoveHandler=e=>this._onMoveTargetMouseMove(e),this._moveTargetMouseUpHandler=e=>this._onMoveTargetMouseUp(e)}initialize(){this._adapter.initializeAccessibility(),this._open&&this._moveable&&(this._adapter.setMoveable(this._moveable),this._initMoveTarget())}destroy(){this._open&&(this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}async _applyOpen(t){if(t){if(typeof this._openCallback=="function"&&!await this._executeOpenCallback())return;this._open=t,this._openDialog()}else{if(typeof this._closeCallback=="function"&&!await this._executeCloseCallback())return;this._open=t,this._closeDialog()}this._adapter.toggleHostAttribute(i.attributes.OPEN,this._open)}async _executeOpenCallback(){try{return await Promise.resolve(this._openCallback())!==!1}catch(t){return!1}}async _executeCloseCallback(){try{return await Promise.resolve(this._closeCallback())!==!1}catch(t){return!1}}initializeMoveTarget(){this._moveTarget||(this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET),this._initMoveTarget()}resetPosition(){this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)}async show(t){this._open||(this._open=!0,this._adapter.isConnected||this._adapter.attach(t),await this._openDialog())}async hide(t){this._open&&(this._open=!1,await this._closeDialog(),t&&this._adapter.detach())}_normalizePositionValue(t){return E(t)?`${t}px`:f(t)?t:null}_openDialog(){return this._fullscreen||(this._moveable&&this._adapter.setMoveable(this._moveable),(this._positionX!==null||this._positionY!==null)&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)),this._adapter.setBodyAttribute(i.attributes.OPEN,"true"),this._adapter.registerTransitionEndHandler(this._transitionEndHandler),this._setDocumentKeydownListener(this._escapeClose),this._adapter.setAnimating(!0),this._isAnimating=!0,window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.setVisibility(!0),this._setBackdropClickListener(this._backdropClose),this._adapter.emitHostEvent(i.events.OPEN),this._adapter.trySetInitialFocus(),this._adapter.isScrollable()&&this._adapter.addRootClass(i.classes.SCROLLABLE)})}),new Promise(t=>{window.setTimeout(()=>{window.requestAnimationFrame(()=>{this._open&&this._isAnimating&&(this._onTransitionEnd(),t())})},i.numbers.ANIMATION_DURATION)})}_closeDialog(){return this._moveTarget&&this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._escapeClose&&this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._backdropClose&&this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler),this._isAnimating=!1,this._moveContext=void 0,this._lastPosition=void 0,this._adapter.setAnimating(!0),this._adapter.setVisibility(!1),this._adapter.setSurfacePosition(null,null,null),new Promise(t=>{setTimeout(()=>{this._adapter.emitHostEvent(i.events.CLOSE),this._adapter.getOpenDialogs(`${i.elementName}[${i.attributes.OPEN}]`).length||this._adapter.removeBodyAttribute(i.attributes.OPEN),this._adapter.setAnimating(!1),t()},i.numbers.ANIMATION_DURATION)})}_onTransitionEnd(){this._isAnimating&&(this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.setAnimating(!1),this._adapter.emitHostEvent(i.events.READY),this._moveable&&this._initMoveTarget(),this._isAnimating=!1)}_initMoveTarget(){!this._fullscreen&&this._moveable&&this._moveTarget&&this._adapter.setMoveTarget(this._moveTarget)&&this._adapter.setMoveTargetHandler("mousedown",this._moveTargetMouseDownHandler)}_removeDragHandlers(){this._adapter.removeDragTargetHandler("mousedown",this._moveTargetMouseDownHandler),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseDown(t){t.preventDefault(),this._adapter.captureActiveElement();let e=this._adapter.getSurfaceBounds();this._moveContext={top:t.pageY-e.top,left:t.pageX-e.left,height:e.height,width:e.width},this._adapter.setDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.setDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseMove(t){t.preventDefault();let e=this._calculateOffsetPosition(t.pageX,t.pageY,this._moveContext);if(!this._isMoving&&(this._isMoving=!0,!this._adapter.emitHostEvent(i.events.MOVE_START,e,!0,!0)))return;let o=this._clampPosition(e,this._moveContext);if((!this._lastPosition||o.x!==this._lastPosition.x||o.y!==this._lastPosition.y)&&this._adapter.emitHostEvent(i.events.MOVED,o,!0,!0)){this._lastPosition=_({},o);let d=this._normalizePositionValue(o.x),P=this._normalizePositionValue(o.y);this._adapter.setSurfacePosition(d,P,"absolute")}}_onMoveTargetMouseUp(t){this._isMoving&&this._adapter.emitHostEvent(i.events.MOVE_END),this._moveComplete()}_moveComplete(){this._adapter.tryRestoreActiveElement(),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler),this._lastPosition=void 0,this._moveContext=void 0,this._isMoving=!1}_onDocumentKeydown(t){t.stopPropagation(),t.key&&(t.key==="Escape"||t.key==="Esc")&&this._tryClose()}_onBackdropClick(t){t.stopPropagation(),this._tryClose()}async _tryClose(){if(this._adapter.emitHostEvent(i.events.BEFORE_CLOSE,void 0,void 0,!0)){if(!this._beforeCloseCallback){this.open=!1;return}try{if(await Promise.resolve(this._beforeCloseCallback())!==!1){this.open=!1;return}}catch(e){return}}}_setBackdropClickListener(t){this._open&&(t&&this._backdropClose?this._adapter.registerBackdropClickHandler(this._backdropClickHandler):t||this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}_setDocumentKeydownListener(t){this._open&&(t&&this._escapeClose?this._adapter.setDocumentListener("keydown",this._documentKeydownHandler):t||this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler))}_calculateOffsetPosition(t,e,o){return{x:t-((o==null?void 0:o.left)||0),y:e-((o==null?void 0:o.top)||0)}}_clampPosition({x:t,y:e},o){let a=0,d=0;return o&&(a=o.width,d=o.height),t<=0?t=0:t+a>=window.innerWidth&&(t=window.innerWidth-a),e<=0?e=0:e+d>=window.innerHeight&&(e=window.innerHeight-d),{x:t,y:e}}set backdropClose(t){t=!!t,this._backdropClose!==t&&(this._backdropClose=t,this._setBackdropClickListener(this._backdropClose),this._adapter.toggleHostAttribute(i.attributes.BACKDROP_CLOSE,this._backdropClose))}get backdropClose(){return this._backdropClose}set escapeClose(t){t=!!t,this._escapeClose!==t&&(this._escapeClose=!!t,this._setDocumentKeydownListener(this._escapeClose),this._adapter.toggleHostAttribute(i.attributes.ESCAPE_CLOSE,this._escapeClose))}get escapeClose(){return this._escapeClose}get open(){return this._open}set open(t){this._open!==t&&(t=!!t,t!==this._open&&this._applyOpen(t))}get fullscreen(){return this._fullscreen}set fullscreen(t){this._fullscreen!==t&&(this._fullscreen=!!t,this._adapter.setFullscreen(this._fullscreen),this._adapter.toggleHostAttribute(i.attributes.FULLSCREEN,this._fullscreen))}get openCallback(){return this._openCallback}set openCallback(t){this._openCallback=t}get closeCallback(){return this._closeCallback}set closeCallback(t){this._closeCallback=t}get beforeCloseCallback(){return this._beforeCloseCallback}set beforeCloseCallback(t){this._beforeCloseCallback=t}get positionType(){return this._positionType}set positionType(t){this._positionType!==t&&(this._positionType=t,this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionX(){return this._positionX}set positionX(t){this._positionX!==t&&(this._positionX=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionY(){return this._positionY}set positionY(t){this._positionY!==t&&(this._positionY=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get moveable(){return this._moveable}set moveable(t){this._moveable!==t&&(this._moveable=!!t,this._open&&(this._adapter.setMoveable(this._moveable),this._moveable?this._initMoveTarget():(this._removeDragHandlers(),this._isMoving=!1)),this._adapter.toggleHostAttribute(i.attributes.MOVEABLE,this._moveable))}get moveTarget(){return this._moveTarget}set moveTarget(t){this._moveTarget=t}};var g=class extends A{constructor(e){super(e);this._containerElement=u(e,i.selectors.CONTAINER),this._surfaceElement=u(e,i.selectors.SURFACE)}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","dialog"),this._component.setAttribute("aria-modal","true")}setAnimating(e){p(this._containerElement,e,i.classes.ANIMATING)}setVisibility(e){p(this._containerElement,e,i.classes.OPEN),this._backdropElement||(this._backdropElement=document.createElement("forge-backdrop"),this._backdropElement.setAttribute("part","scrim"),this._containerElement.appendChild(this._backdropElement)),e?this._backdropElement.fadeIn():this._backdropElement.fadeOut()}attach(e=document.body){e.appendChild(this._component)}detach(){this._activeElement&&(this._activeElement=void 0),C(this._component)}registerTransitionEndHandler(e){this._surfaceElement.addEventListener("transitionend",e)}deregisterTransitionEndHandler(e){this._surfaceElement.removeEventListener("transitionend",e)}setDocumentListener(e,o){document.addEventListener(e,o)}removeDocumentListener(e,o){document.removeEventListener(e,o)}registerBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.addEventListener(c.events.BACKDROP_CLICK,e)}deregisterBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.removeEventListener(c.events.BACKDROP_CLICK,e)}getOpenDialogs(e){return document.querySelectorAll(e)}setBodyAttribute(e,o){document.body.setAttribute(e,o)}removeBodyAttribute(e){document.body.removeAttribute(e)}trySetInitialFocus(){let e=T(this._component,i.selectors.INITIAL_FOCUS);e&&e.length&&e[e.length-1].focus()}isScrollable(){let e=this._component.querySelector(i.selectors.CONTENT);return e?e.scrollHeight>e.offsetHeight:!1}addRootClass(e){this._component.classList.add(e)}setFullscreen(e){p(this._containerElement,e,i.classes.FULLSCREEN)}setMoveable(e){p(this._containerElement,e,i.classes.MOVEABLE)}setMoveTarget(e){return e?(this._moveTargetElement=this._component.querySelector(e),!!this._moveTargetElement):!1}setMoveTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.addEventListener(e,o)}removeDragTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.removeEventListener(e,o)}getSurfaceBounds(){return this._surfaceElement.getBoundingClientRect()}setSurfacePosition(e,o,a){a?this._surfaceElement.style.position=a==="absolute"?a:"relative":this._surfaceElement.style.removeProperty("position"),o!==null?this._surfaceElement.style.top=o:this._surfaceElement.style.removeProperty("top"),e!==null?this._surfaceElement.style.left=e:this._surfaceElement.style.removeProperty("left")}captureActiveElement(){var e;this._activeElement=y(),(e=this._activeElement)==null||e.blur()}tryRestoreActiveElement(){this._activeElement&&(this._activeElement.isConnected&&this._activeElement.focus(),this._activeElement=void 0)}};var N='<template><div class="forge-dialog" part="root"><div class="forge-dialog__surface" part="surface"><slot></slot></div></div></template>',B='.forge-dialog{position:fixed;top:0;bottom:0;left:0;right:0;z-index:8;z-index:var(--forge-z-index-dialog,8);-webkit-box-align:center;align-items:center;-webkit-box-align:var(--forge-dialog-align-items,center);align-items:var(--forge-dialog-align-items,center);top:0;top:var(--forge-dialog-top,0);padding:24px;padding:var(--forge-dialog-padding,24px);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;visibility:hidden}@media (max-width:599px){.forge-dialog{padding:0}}.forge-dialog--moveable:not(.forge-dialog--fullscreen) ::slotted([forge-dialog-move-target]){cursor:move}.forge-dialog--animating{visibility:visible}.forge-dialog--animating .forge-dialog--open .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--animating .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--scrollable .forge-dialog__footer,.forge-dialog--scrollable .forge-dialog__title{border-color:rgba(0,0,0,.12)}.forge-dialog--open{visibility:visible!important}.forge-dialog--open .forge-dialog__surface{-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-dialog__surface{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);width:auto;width:var(--forge-dialog-width,auto);height:auto;height:var(--forge-dialog-height,auto);min-width:280px;min-width:var(--forge-dialog-min-width,280px);max-width:100%;max-width:var(--forge-dialog-max-width,100%);max-height:100%;max-height:var(--forge-dialog-max-height,100%);border-radius:4px;border-radius:var(--forge-dialog-border-radius,var(--mdc-shape-medium,4px));display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;overflow:hidden;z-index:inherit}.forge-dialog__header{margin:0;padding:0 24px 9px;border-bottom:1px solid transparent}.forge-dialog__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.forge-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.forge-dialog__body{-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-size:1rem;font-size:var(--mdc-typography-body1-font-size, 1rem);line-height:1.5rem;line-height:var(--mdc-typography-body1-line-height, 1.5rem);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);padding-top:20px;padding:0 24px 24px;overflow:auto}.forge-dialog__body--scrollable{max-height:195px;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.forge-dialog__footer{display:-webkit-box;display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid transparent}.forge-dialog--fullscreen{padding:0}.forge-dialog--fullscreen .forge-dialog__surface{height:100%;width:100%;min-width:auto;max-width:100%;border-radius:0}:host{display:block}:host([hidden]){display:none}',r=class extends D{constructor(){super();M(this,N,B),this._foundation=new b(new g(this))}static get observedAttributes(){return[i.attributes.BACKDROP_CLOSE,i.attributes.ESCAPE_CLOSE,i.attributes.OPEN,i.attributes.FULLSCREEN,i.attributes.POSITION_TYPE,i.attributes.POSITION_X,i.attributes.POSITION_Y,i.attributes.MOVEABLE,i.attributes.MOVE_TARGET]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,o,a){switch(e){case i.attributes.BACKDROP_CLOSE:this.backdropClose=a==="true";break;case i.attributes.ESCAPE_CLOSE:this.escapeClose=a==="true";break;case i.attributes.OPEN:this.open=m(a);break;case i.attributes.FULLSCREEN:this.fullscreen=m(a);break;case i.attributes.POSITION_TYPE:this.positionType=a;break;case i.attributes.POSITION_X:this.positionX=a;break;case i.attributes.POSITION_Y:this.positionY=a;break;case i.attributes.MOVEABLE:this.moveable=m(a);break;case i.attributes.MOVE_TARGET:this.moveTarget=a;break}}initializeMoveTarget(){this._foundation.initializeMoveTarget()}resetPosition(){this._foundation.resetPosition()}show(e){return this._foundation.show(e)}hide(e){return this._foundation.hide(e)}};s([n()],r.prototype,"backdropClose",2),s([n()],r.prototype,"escapeClose",2),s([n()],r.prototype,"open",2),s([n()],r.prototype,"fullscreen",2),s([n()],r.prototype,"openCallback",2),s([n()],r.prototype,"closeCallback",2),s([n()],r.prototype,"beforeCloseCallback",2),s([n()],r.prototype,"positionType",2),s([n()],r.prototype,"positionX",2),s([n()],r.prototype,"positionY",2),s([n()],r.prototype,"moveable",2),s([n()],r.prototype,"moveTarget",2),r=s([x({name:i.elementName,dependencies:[w]})],r);function Ee(){k(r)}export{i as a,b,g as c,r as d,Ee as e};
7
- //# sourceMappingURL=chunk.O4KZV4MX.js.map
6
+ import{a as c,d as w}from"./chunk.RGPNNISQ.js";import{a as n}from"./chunk.NVUMRW44.js";import{a as A}from"./chunk.5V5ABSHI.js";import{a as x,b as O}from"./chunk.DTZFWZPB.js";import{a as k,e as M,f as u,k as D}from"./chunk.NK7H3MMM.js";import{i as C,r as T,s as y,t as p}from"./chunk.CFDK4RCW.js";import{c as f,d as E,k as m}from"./chunk.J2M2MXP2.js";import{a as _,d as s}from"./chunk.M3QDAYD2.js";var l=`${O}dialog`,S={ANIMATING:"forge-dialog--animating",OPEN:"forge-dialog--open",ACTION_BUTTON:"forge-dialog__action__button",BUTTON_TEXT:"forge-button__text",SCROLLABLE:"forge-dialog--scrollable",FULLSCREEN:"forge-dialog--fullscreen",MOVEABLE:"forge-dialog--moveable"},v={BACKDROP_CLOSE:"backdrop-close",ESCAPE_CLOSE:"escape-close",FULLSCREEN:"fullscreen",POSITION_TYPE:"position-type",POSITION_X:"position-x",POSITION_Y:"position-y",MOVEABLE:"moveable",MOVE_TARGET:"move-target",OPEN:"forge-dialog-open",INITIAL_FOCUS:"forge-dialog-focus",DFEAULT_MOVE_TARGET:"forge-dialog-move-target"},L={CONTAINER:".forge-dialog",SURFACE:".forge-dialog__surface",BACKDROP:c.elementName,INITIAL_FOCUS:`[${v.INITIAL_FOCUS}]`,DFEAULT_MOVE_TARGET:`[${v.DFEAULT_MOVE_TARGET}]`,CONTENT:".forge-dialog__body"},I={BEFORE_CLOSE:`${l}-before-close`,OPEN:`${l}-open`,CLOSE:`${l}-close`,READY:`${l}-ready`,MOVE_START:`${l}-move-start`,MOVED:`${l}-move`,MOVE_END:`${l}-move-end`},H={ANIMATION_DURATION:150,BACKDROP_MAX_OPACITY:.3},i={elementName:l,classes:S,selectors:L,attributes:v,events:I,numbers:H};var b=class{constructor(t){this._adapter=t;this._open=!1;this._backdropClose=!0;this._escapeClose=!0;this._fullscreen=!1;this._positionType="absolute";this._positionX=null;this._positionY=null;this._moveable=!1;this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET;this._isAnimating=!1;this._isMoving=!1;this._transitionEndHandler=e=>this._onTransitionEnd(),this._documentKeydownHandler=e=>this._onDocumentKeydown(e),this._backdropClickHandler=e=>this._onBackdropClick(e),this._moveTargetMouseDownHandler=e=>this._onMoveTargetMouseDown(e),this._moveTargetMouseMoveHandler=e=>this._onMoveTargetMouseMove(e),this._moveTargetMouseUpHandler=e=>this._onMoveTargetMouseUp(e)}initialize(){this._adapter.initializeAccessibility(),this._open&&this._moveable&&(this._adapter.setMoveable(this._moveable),this._initMoveTarget())}destroy(){this._open&&(this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}async _applyOpen(t){if(t){if(typeof this._openCallback=="function"&&!await this._executeOpenCallback())return;this._open=t,this._openDialog()}else{if(typeof this._closeCallback=="function"&&!await this._executeCloseCallback())return;this._open=t,this._closeDialog()}this._adapter.toggleHostAttribute(i.attributes.OPEN,this._open)}async _executeOpenCallback(){try{return await Promise.resolve(this._openCallback())!==!1}catch(t){return!1}}async _executeCloseCallback(){try{return await Promise.resolve(this._closeCallback())!==!1}catch(t){return!1}}initializeMoveTarget(){this._moveTarget||(this._moveTarget=i.selectors.DFEAULT_MOVE_TARGET),this._initMoveTarget()}resetPosition(){this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)}async show(t){this._open||(this._open=!0,this._adapter.isConnected||this._adapter.attach(t),await this._openDialog())}async hide(t){this._open&&(this._open=!1,await this._closeDialog(),t&&this._adapter.detach())}_normalizePositionValue(t){return E(t)?`${t}px`:f(t)?t:null}_openDialog(){return this._fullscreen||(this._moveable&&this._adapter.setMoveable(this._moveable),(this._positionX!==null||this._positionY!==null)&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType)),this._adapter.setBodyAttribute(i.attributes.OPEN,"true"),this._adapter.registerTransitionEndHandler(this._transitionEndHandler),this._setDocumentKeydownListener(this._escapeClose),this._adapter.setAnimating(!0),this._isAnimating=!0,window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.setVisibility(!0),this._setBackdropClickListener(this._backdropClose),this._adapter.emitHostEvent(i.events.OPEN),this._adapter.trySetInitialFocus(),this._adapter.isScrollable()&&this._adapter.addRootClass(i.classes.SCROLLABLE)})}),new Promise(t=>{window.setTimeout(()=>{window.requestAnimationFrame(()=>{this._open&&this._isAnimating&&(this._onTransitionEnd(),t())})},i.numbers.ANIMATION_DURATION)})}_closeDialog(){return this._moveTarget&&this._removeDragHandlers(),this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._escapeClose&&this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler),this._backdropClose&&this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler),this._isAnimating=!1,this._moveContext=void 0,this._lastPosition=void 0,this._adapter.setAnimating(!0),this._adapter.setVisibility(!1),this._adapter.setSurfacePosition(null,null,null),new Promise(t=>{setTimeout(()=>{this._adapter.emitHostEvent(i.events.CLOSE),this._adapter.getOpenDialogs(`${i.elementName}[${i.attributes.OPEN}]`).length||this._adapter.removeBodyAttribute(i.attributes.OPEN),this._adapter.setAnimating(!1),t()},i.numbers.ANIMATION_DURATION)})}_onTransitionEnd(){this._isAnimating&&(this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler),this._adapter.setAnimating(!1),this._adapter.emitHostEvent(i.events.READY),this._moveable&&this._initMoveTarget(),this._isAnimating=!1)}_initMoveTarget(){!this._fullscreen&&this._moveable&&this._moveTarget&&this._adapter.setMoveTarget(this._moveTarget)&&this._adapter.setMoveTargetHandler("mousedown",this._moveTargetMouseDownHandler)}_removeDragHandlers(){this._adapter.removeDragTargetHandler("mousedown",this._moveTargetMouseDownHandler),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseDown(t){t.preventDefault(),this._adapter.captureActiveElement();let e=this._adapter.getSurfaceBounds();this._moveContext={top:t.pageY-e.top,left:t.pageX-e.left,height:e.height,width:e.width},this._adapter.setDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.setDocumentListener("mouseup",this._moveTargetMouseUpHandler)}_onMoveTargetMouseMove(t){t.preventDefault();let e=this._calculateOffsetPosition(t.pageX,t.pageY,this._moveContext);if(!this._isMoving&&(this._isMoving=!0,!this._adapter.emitHostEvent(i.events.MOVE_START,e,!0,!0)))return;let o=this._clampPosition(e,this._moveContext);if((!this._lastPosition||o.x!==this._lastPosition.x||o.y!==this._lastPosition.y)&&this._adapter.emitHostEvent(i.events.MOVED,o,!0,!0)){this._lastPosition=_({},o);let d=this._normalizePositionValue(o.x),P=this._normalizePositionValue(o.y);this._adapter.setSurfacePosition(d,P,"absolute")}}_onMoveTargetMouseUp(t){this._isMoving&&this._adapter.emitHostEvent(i.events.MOVE_END),this._moveComplete()}_moveComplete(){this._adapter.tryRestoreActiveElement(),this._adapter.removeDocumentListener("mousemove",this._moveTargetMouseMoveHandler),this._adapter.removeDocumentListener("mouseup",this._moveTargetMouseUpHandler),this._lastPosition=void 0,this._moveContext=void 0,this._isMoving=!1}_onDocumentKeydown(t){t.stopPropagation(),t.key&&(t.key==="Escape"||t.key==="Esc")&&this._tryClose()}_onBackdropClick(t){t.stopPropagation(),this._tryClose()}async _tryClose(){if(this._adapter.emitHostEvent(i.events.BEFORE_CLOSE,void 0,void 0,!0)){if(!this._beforeCloseCallback){this.open=!1;return}try{if(await Promise.resolve(this._beforeCloseCallback())!==!1){this.open=!1;return}}catch(e){return}}}_setBackdropClickListener(t){this._open&&(t&&this._backdropClose?this._adapter.registerBackdropClickHandler(this._backdropClickHandler):t||this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler))}_setDocumentKeydownListener(t){this._open&&(t&&this._escapeClose?this._adapter.setDocumentListener("keydown",this._documentKeydownHandler):t||this._adapter.removeDocumentListener("keydown",this._documentKeydownHandler))}_calculateOffsetPosition(t,e,o){return{x:t-((o==null?void 0:o.left)||0),y:e-((o==null?void 0:o.top)||0)}}_clampPosition({x:t,y:e},o){let a=0,d=0;return o&&(a=o.width,d=o.height),t<=0?t=0:t+a>=window.innerWidth&&(t=window.innerWidth-a),e<=0?e=0:e+d>=window.innerHeight&&(e=window.innerHeight-d),{x:t,y:e}}set backdropClose(t){t=!!t,this._backdropClose!==t&&(this._backdropClose=t,this._setBackdropClickListener(this._backdropClose),this._adapter.toggleHostAttribute(i.attributes.BACKDROP_CLOSE,this._backdropClose))}get backdropClose(){return this._backdropClose}set escapeClose(t){t=!!t,this._escapeClose!==t&&(this._escapeClose=!!t,this._setDocumentKeydownListener(this._escapeClose),this._adapter.toggleHostAttribute(i.attributes.ESCAPE_CLOSE,this._escapeClose))}get escapeClose(){return this._escapeClose}get open(){return this._open}set open(t){this._open!==t&&(t=!!t,t!==this._open&&this._applyOpen(t))}get fullscreen(){return this._fullscreen}set fullscreen(t){this._fullscreen!==t&&(this._fullscreen=!!t,this._adapter.setFullscreen(this._fullscreen),this._adapter.toggleHostAttribute(i.attributes.FULLSCREEN,this._fullscreen))}get openCallback(){return this._openCallback}set openCallback(t){this._openCallback=t}get closeCallback(){return this._closeCallback}set closeCallback(t){this._closeCallback=t}get beforeCloseCallback(){return this._beforeCloseCallback}set beforeCloseCallback(t){this._beforeCloseCallback=t}get positionType(){return this._positionType}set positionType(t){this._positionType!==t&&(this._positionType=t,this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionX(){return this._positionX}set positionX(t){this._positionX!==t&&(this._positionX=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get positionY(){return this._positionY}set positionY(t){this._positionY!==t&&(this._positionY=this._normalizePositionValue(t),this._open&&this._adapter.setSurfacePosition(this._positionX,this._positionY,this._positionType))}get moveable(){return this._moveable}set moveable(t){this._moveable!==t&&(this._moveable=!!t,this._open&&(this._adapter.setMoveable(this._moveable),this._moveable?this._initMoveTarget():(this._removeDragHandlers(),this._isMoving=!1)),this._adapter.toggleHostAttribute(i.attributes.MOVEABLE,this._moveable))}get moveTarget(){return this._moveTarget}set moveTarget(t){this._moveTarget=t}};var g=class extends A{constructor(e){super(e);this._containerElement=u(e,i.selectors.CONTAINER),this._surfaceElement=u(e,i.selectors.SURFACE)}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","dialog"),this._component.setAttribute("aria-modal","true")}setAnimating(e){p(this._containerElement,e,i.classes.ANIMATING)}setVisibility(e){p(this._containerElement,e,i.classes.OPEN),this._backdropElement||(this._backdropElement=document.createElement("forge-backdrop"),this._backdropElement.setAttribute("part","scrim"),this._containerElement.appendChild(this._backdropElement)),e?this._backdropElement.fadeIn():this._backdropElement.fadeOut()}attach(e=document.body){e.appendChild(this._component)}detach(){this._activeElement&&(this._activeElement=void 0),C(this._component)}registerTransitionEndHandler(e){this._surfaceElement.addEventListener("transitionend",e)}deregisterTransitionEndHandler(e){this._surfaceElement.removeEventListener("transitionend",e)}setDocumentListener(e,o){document.addEventListener(e,o)}removeDocumentListener(e,o){document.removeEventListener(e,o)}registerBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.addEventListener(c.events.BACKDROP_CLICK,e)}deregisterBackdropClickHandler(e){var o;(o=this._backdropElement)==null||o.removeEventListener(c.events.BACKDROP_CLICK,e)}getOpenDialogs(e){return document.querySelectorAll(e)}setBodyAttribute(e,o){document.body.setAttribute(e,o)}removeBodyAttribute(e){document.body.removeAttribute(e)}trySetInitialFocus(){let e=T(this._component,i.selectors.INITIAL_FOCUS);e&&e.length&&e[e.length-1].focus()}isScrollable(){let e=this._component.querySelector(i.selectors.CONTENT);return e?e.scrollHeight>e.offsetHeight:!1}addRootClass(e){this._component.classList.add(e)}setFullscreen(e){p(this._containerElement,e,i.classes.FULLSCREEN)}setMoveable(e){p(this._containerElement,e,i.classes.MOVEABLE)}setMoveTarget(e){return e?(this._moveTargetElement=this._component.querySelector(e),!!this._moveTargetElement):!1}setMoveTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.addEventListener(e,o)}removeDragTargetHandler(e,o){var a;(a=this._moveTargetElement)==null||a.removeEventListener(e,o)}getSurfaceBounds(){return this._surfaceElement.getBoundingClientRect()}setSurfacePosition(e,o,a){a?this._surfaceElement.style.position=a==="absolute"?a:"relative":this._surfaceElement.style.removeProperty("position"),o!==null?this._surfaceElement.style.top=o:this._surfaceElement.style.removeProperty("top"),e!==null?this._surfaceElement.style.left=e:this._surfaceElement.style.removeProperty("left")}captureActiveElement(){var e;this._activeElement=y(),(e=this._activeElement)==null||e.blur()}tryRestoreActiveElement(){this._activeElement&&(this._activeElement.isConnected&&this._activeElement.focus(),this._activeElement=void 0)}};var N='<template><div class="forge-dialog" part="root"><div class="forge-dialog__surface" part="surface"><slot></slot></div></div></template>',B='.forge-dialog{position:fixed;top:0;bottom:0;left:0;right:0;z-index:8;z-index:var(--forge-z-index-dialog,8);-webkit-box-align:center;align-items:center;-webkit-box-align:var(--forge-dialog-align-items,center);align-items:var(--forge-dialog-align-items,center);top:0;top:var(--forge-dialog-top,0);padding:24px;padding:var(--forge-dialog-padding,24px);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;visibility:hidden}@media (max-width:599px){.forge-dialog{padding:0}}.forge-dialog--moveable:not(.forge-dialog--fullscreen) ::slotted([forge-dialog-move-target]){cursor:move}.forge-dialog--animating{visibility:visible}.forge-dialog--animating .forge-dialog--open .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--animating .forge-dialog__surface{-webkit-transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 150ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-dialog--scrollable .forge-dialog__footer,.forge-dialog--scrollable .forge-dialog__title{border-color:rgba(0,0,0,.12)}.forge-dialog--open{visibility:visible!important}.forge-dialog--open .forge-dialog__surface{-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-dialog__surface{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);width:auto;width:var(--forge-dialog-width,auto);height:auto;height:var(--forge-dialog-height,auto);min-width:280px;min-width:var(--forge-dialog-min-width,280px);max-width:100%;max-width:var(--forge-dialog-max-width,100%);max-height:100%;max-height:var(--forge-dialog-max-height,100%);border-radius:4px;border-radius:var(--forge-dialog-border-radius,var(--mdc-shape-medium,4px));display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;overflow:hidden;z-index:inherit}.forge-dialog__header{margin:0;padding:0 24px 9px;border-bottom:1px solid transparent}.forge-dialog__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.25rem;font-size:var(--forge-typography-title-font-size, 1.25rem);line-height:2rem;line-height:var(--forge-typography-title-line-height, 2rem);font-weight:400;font-weight:var(--forge-typography-title-font-weight,400);letter-spacing:.0125em;letter-spacing:var(--forge-typography-title-letter-spacing, .0125em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-title-text-decoration,inherit);text-decoration:var(--forge-typography-title-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-title-text-transform,inherit);-webkit-box-sizing:border-box;box-sizing:border-box;margin:0}.forge-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.forge-dialog__body{-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-size:1rem;font-size:var(--mdc-typography-body1-font-size, 1rem);line-height:1.5rem;line-height:var(--mdc-typography-body1-line-height, 1.5rem);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);padding-top:20px;padding:0 24px 24px;overflow:auto}.forge-dialog__body--scrollable{max-height:195px;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.forge-dialog__footer{display:-webkit-box;display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid transparent}.forge-dialog--fullscreen{padding:0}.forge-dialog--fullscreen .forge-dialog__surface{height:100%;width:100%;min-width:auto;max-width:100%;border-radius:0}:host{display:block}:host([hidden]){display:none}',r=class extends D{constructor(){super();M(this,N,B),this._foundation=new b(new g(this))}static get observedAttributes(){return[i.attributes.BACKDROP_CLOSE,i.attributes.ESCAPE_CLOSE,i.attributes.OPEN,i.attributes.FULLSCREEN,i.attributes.POSITION_TYPE,i.attributes.POSITION_X,i.attributes.POSITION_Y,i.attributes.MOVEABLE,i.attributes.MOVE_TARGET]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,o,a){switch(e){case i.attributes.BACKDROP_CLOSE:this.backdropClose=a==="true";break;case i.attributes.ESCAPE_CLOSE:this.escapeClose=a==="true";break;case i.attributes.OPEN:this.open=m(a);break;case i.attributes.FULLSCREEN:this.fullscreen=m(a);break;case i.attributes.POSITION_TYPE:this.positionType=a;break;case i.attributes.POSITION_X:this.positionX=a;break;case i.attributes.POSITION_Y:this.positionY=a;break;case i.attributes.MOVEABLE:this.moveable=m(a);break;case i.attributes.MOVE_TARGET:this.moveTarget=a;break}}initializeMoveTarget(){this._foundation.initializeMoveTarget()}resetPosition(){this._foundation.resetPosition()}show(e){return this._foundation.show(e)}hide(e){return this._foundation.hide(e)}};s([n()],r.prototype,"backdropClose",2),s([n()],r.prototype,"escapeClose",2),s([n()],r.prototype,"open",2),s([n()],r.prototype,"fullscreen",2),s([n()],r.prototype,"openCallback",2),s([n()],r.prototype,"closeCallback",2),s([n()],r.prototype,"beforeCloseCallback",2),s([n()],r.prototype,"positionType",2),s([n()],r.prototype,"positionX",2),s([n()],r.prototype,"positionY",2),s([n()],r.prototype,"moveable",2),s([n()],r.prototype,"moveTarget",2),r=s([x({name:i.elementName,dependencies:[w]})],r);function Ee(){k(r)}export{i as a,b,g as c,r as d,Ee as e};
7
+ //# sourceMappingURL=chunk.TT2VTZJ6.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as b}from"./chunk.2R72ZTIK.js";import{a as I}from"./chunk.YTOYNJMD.js";import{a as g}from"./chunk.MGLWXAZO.js";import{a as E}from"./chunk.7UN5EYUE.js";import{a as y}from"./chunk.XIQFHO5R.js";import{c as f,d as k}from"./chunk.DMCBAYQX.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as C}from"./chunk.TKDMM2ZZ.js";import{g as v,l as m}from"./chunk.QH2GB3PD.js";import{m as D}from"./chunk.CFDK4RCW.js";import{a as h,g as u,k as d,m as _}from"./chunk.J2M2MXP2.js";import{d as r}from"./chunk.M3QDAYD2.js";var P={MIN:"min",MAX:"max",OPEN:"open",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",MASKED:"masked",MASK_FORMAT:"mask-format",SHOW_MASK_FORMAT:"show-mask-format",VALUE_MODE:"value-mode",ALLOW_INVALID_DATE:"allow-invalid-date",SHOW_TODAY:"show-today",SHOW_CLEAR:"show-clear",DISABLED_DAYS_OF_WEEK:"disabled-days-of-week",YEAR_RANGE:"year-range"},S={TOGGLE:"forge-date-picker-toggle"},O={INPUT:"input",TOGGLE:"[forge-date-picker-toggle],[data-forge-date-picker-toggle]"},s={observedAttributes:P,attributes:S,selectors:O};var n=class extends m{constructor(){super()}async connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():(await D(this,s.selectors.INPUT),this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,a,i){switch(t){case s.observedAttributes.MIN:this.min=i;break;case s.observedAttributes.MAX:this.max=i;break;case s.observedAttributes.OPEN:this.open=d(i);break;case s.observedAttributes.POPUP_CLASSES:this.popupClasses=i;break;case s.observedAttributes.DISABLED:this.disabled=d(i);break;case s.observedAttributes.MASKED:this.masked=d(i);break;case s.observedAttributes.SHOW_MASK_FORMAT:this.showMaskFormat=d(i);break;case s.observedAttributes.MASK_FORMAT:this.maskFormat=i;break;case s.observedAttributes.VALUE_MODE:this.valueMode=i;break;case s.observedAttributes.ALLOW_INVALID_DATE:this.allowInvalidDate=d(i);break;case s.observedAttributes.SHOW_TODAY:this.showToday=d(i);break;case s.observedAttributes.SHOW_CLEAR:this.showClear=d(i);break;case s.observedAttributes.DISABLED_DAYS_OF_WEEK:this.disabledDaysOfWeek=_(i);break;case s.observedAttributes.YEAR_RANGE:this.yearRange=i;break}}};r([l()],n.prototype,"value",2),r([l()],n.prototype,"min",2),r([l()],n.prototype,"max",2),r([l()],n.prototype,"disabledDates",2),r([l()],n.prototype,"open",2),r([l()],n.prototype,"popupClasses",2),r([l()],n.prototype,"disabled",2),r([l()],n.prototype,"masked",2),r([l()],n.prototype,"maskFormat",2),r([l()],n.prototype,"showMaskFormat",2),r([l()],n.prototype,"valueMode",2),r([l()],n.prototype,"notifyInputValueChanges",2),r([l()],n.prototype,"allowInvalidDate",2),r([l()],n.prototype,"showToday",2),r([l()],n.prototype,"showClear",2),r([l()],n.prototype,"parseCallback",2),r([l()],n.prototype,"formatCallback",2),r([l()],n.prototype,"prepareMaskCallback",2),r([l()],n.prototype,"disabledDaysOfWeek",2),r([l()],n.prototype,"disableDayCallback",2),r([l()],n.prototype,"yearRange",2);function w(p){let e=document.createElement("forge-icon-button");e.slot="trailing",e.dense=!0,e.densityLevel=3,e.style.marginRight="4px";let t=document.createElement("button");t.type="button",t.tabIndex=-1,t.setAttribute("aria-label","Toggle calendar"),e.appendChild(t);let a=document.createElement("forge-icon");return a.name=p,t.appendChild(a),e}var M=class extends C{constructor(t){super(t);this._valueChangeListeners=[];this._identifier=h()}initialize(){this._initializeInput()}destroy(){var t;(t=this._calendarDropdown)==null||t.destroy(),this.destroyValueChangeListener()}destroyValueChangeListener(){this._valueChangeListeners.forEach(t=>t())}addToggleListener(t,a){var i;(i=this._toggleElement)==null||i.addEventListener(t,a)}removeToggleListener(t,a){var i;(i=this._toggleElement)==null||i.removeEventListener(t,a)}attachCalendar(t,a){var i,o,c;if(this._calendarDropdown&&((i=this._calendarDropdown)==null||i.destroy()),this._initializeCalendarDropdown(),!this._calendarDropdown)throw new Error("CalendarDropdown was not initialized.");a&&Object.assign(this._calendarDropdown,a),this._calendarDropdown.open(t),(o=this._calendarDropdown.dropdownElement)==null||o.style.setProperty("--forge-calendar-width","320px"),(c=this._calendarDropdown.calendar)==null||c.style.setProperty("margin","8px")}detachCalendar(){this._calendarDropdown&&this._calendarDropdown.isOpen&&this._calendarDropdown.close()}goToCalendarDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.goToDate(t,!0)}addDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.addEventListener(b.events.DATE_SELECT,t)}removeDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.removeEventListener(b.events.DATE_SELECT,t)}setCalendarValue(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.value=t)}setCalendarMinDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.min=t)}setCalendarMaxDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.max=t)}setCalendarDisabledDates(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDates=t)}setCalendarDisabledDaysOfWeek(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDaysOfWeek=t)}setCalendarDisableDayCallback(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDateBuilder=t)}setCalendarActiveDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.setActiveDate(t)}getCalendarActiveDate(){var t,a;return(a=(t=this._calendarDropdown)==null?void 0:t.calendar)==null?void 0:a.activeDate}setCalendarYearRange(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)!=null&&i.yearRange&&(this._calendarDropdown.calendar.yearRange=t)}propagateCalendarKey(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.handleKey(t)}tryCreateToggle(){let t=this._component.querySelector("forge-text-field"),a=this._component.querySelector(s.selectors.TOGGLE);if(t){let i=t.querySelector(`${E.elementName}[slot=trailing]`);if(i||a){this._toggleElement=i||a;return}let o=this._createToggleElement();t.appendChild(o),this._toggleElement=o}else a&&(this._toggleElement=a)}_createToggleElement(){return w("insert_invitation")}_getDefaultTargetElement(){let t=this._component.querySelector("forge-text-field");if(t&&t.shadowRoot){let a=v(t,I.selectors.ROOT);if(a)return a}return this._component.querySelector("input")||this._component}};var A=class{constructor(e){this._adapter=e;this._value=null;this._min=null;this._max=null;this._disabledDates=null;this._open=!1;this._disabled=!1;this._masked=!0;this._maskFormat=y;this._showMaskFormat=!1;this._valueMode="object";this._notifyInputValueChanges=!0;this._allowInvalidDate=!1;this._showToday=!1;this._showClear=!1;this._yearRange="-50:+50";this._isInitialized=!1;this._inputListener=t=>this._onInput(t),this._inputKeydownListener=t=>this._onInputKeydown(t),this._inputFocusListener=t=>this._onInputFocus(t),this._inputBlurListener=t=>this._onInputBlur(t),this._inputValueChangedListener=t=>this._onInputValueChanged(t),this._dropdownCloseListener=()=>this._onDropdownClose(),this._toggleMousedownListener=t=>this._onToggleMousedown(t),this._dateSelectListener=t=>this._onDateSelected(t.detail),this._activeChangeListener=t=>this._onActiveDescendantChanged(t),this._todayListener=()=>this._onToday(),this._clearListener=()=>this._onClear()}initialize(){var e;if(this._adapter.initialize(),this._adapter.initializeAccessibility(),!this._adapter.hasInputElement())throw new Error("Unable to locate child <input> element.");(e=this._initializeState)==null||e.call(this),this._adapter.tryCreateToggle(),this._masked||this._setInputChangeListeners(),this._initializeListeners(),this._setFormattedInputValue(!0),this._applyDisabled(),this._applyMask(),this._initializeValueChangedListeners(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._destroyListeners(),this._masked&&this._adapter.destroyMask(),this._closeCalendar(),this._adapter.destroy()}_initializeListeners(){this._adapter.addToggleListener("mousedown",this._toggleMousedownListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener)}_initializeValueChangedListeners(){this._adapter.setInputValueChangedListener(this,this._inputValueChangedListener)}_setInputChangeListeners(){this._adapter.addInputListener("input",this._inputListener)}_removeInputChangeListeners(){this._adapter.removeInputListener("input",this._inputListener)}_destroyListeners(){this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._removeInputChangeListeners()}_onInput(e){this._handleInput(this._adapter.getInputValue())}_onInputFocus(e){this._adapter.selectInputText(),this.masked&&this.showMaskFormat&&this._applyMask()}_onInputBlur(e){this.masked&&this.showMaskFormat&&this._applyMask(),this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeCalendar(!0)}_openCalendar(e=!1){this._formatInputValue();let t={mode:this._mode,value:this._getCurrentValue(),min:this._min,max:this._max,disabledDates:this._disabledDates,yearRange:this._yearRange,todayButton:this._showToday,clearButton:this._showClear,todayCallback:this._todayListener,clearCallback:this._clearListener,disabledDateBuilder:this._disableDayCallback,disabledDaysOfWeek:this._disabledDaysOfWeek,preventFocus:!0,menuAnimation:"fade",fixedHeight:!0,selectionFollowsMonth:!0},a={popupClasses:this._popupClasses,closeCallback:this._dropdownCloseListener,activeChangeCallback:this._activeChangeListener};this._adapter.attachCalendar(t,a),this._adapter.addDateSelectListener(this._dateSelectListener),this._open=!0,this._adapter.setHostAttribute(s.observedAttributes.OPEN),e&&this._emitOpenEvent()}_closeCalendar(e=!1){this._open=!1,this._adapter.removeHostAttribute(s.observedAttributes.OPEN),this._adapter.removeDateSelectListener(this._dateSelectListener),this._adapter.detachCalendar(),e&&this._emitCloseEvent()}_onInputKeydown(e){if(e.shiftKey)switch(e.key){case"Delete":case"Backspace":e.preventDefault(),this._onClear(),this._open&&this._closeCalendar(!0);return;case"ArrowLeft":case"ArrowRight":case"m":case"M":case"y":case"Y":case"d":case"D":if(this._open){e.preventDefault(),this._adapter.propagateCalendarKey(e);return}break}switch(e.key){case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeCalendar(!0));break;case"ArrowDown":e.preventDefault(),this._open?this._adapter.propagateCalendarKey(e):(this._adapter.selectInputText(),this._openCalendar(!0));break;case"ArrowUp":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"ArrowLeft":case"ArrowRight":case"Enter":case"Home":case"End":if(this._open){e.key==="Enter"&&e.stopPropagation(),e.preventDefault();let t=["ArrowLeft","ArrowRight"].includes(e.key);this._masked&&t&&e.stopImmediatePropagation(),this._adapter.propagateCalendarKey(e)}break;case"n":case"t":e.preventDefault(),this._onToday(),this._open&&this._closeCalendar(!0);break;case"PageUp":case"PageDown":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"Tab":if(this._open){let t=this._adapter.getCalendarActiveDate();t&&this._onDateSelected({date:t,selected:!0,type:"date"})}break}}_getSanitizedDateString(e){return e.replace(/_|[a-z]|[A-Z]/g,"").replace(/\/$|\/\/$/,"")}_onToggleMousedown(e){this._disabled||(e.stopPropagation(),!this._adapter.isInputDisabled()&&(e.preventDefault(),this._open?this._closeCalendar(!0):(g.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openCalendar(!0))))}_onDropdownClose(){this._closeCalendar(!0)}_onActiveDescendantChanged(e){this._adapter.setActiveDescendant(e)}_formatInputValue(){let e=this._adapter.getInputValue();if(e){let t=this._parseDateString(e);if(u(t)&&this._isDateValueAcceptable(t)){let a=this._formatDate(t);a&&a!==e&&this._adapter.setInputValue(a,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setInputValue("",this._notifyInputValueChanges)}}_formatDate(e){return u(e)?typeof this._formatCallback=="function"?this._formatCallback(e):k(e):""}_parseDateString(e){if(e=e.replace(/_|\s/g,""),!e||!e.length)return null;let t=typeof this._parseCallback=="function"?this._parseCallback(e):f(e);return u(t)?t:null}_coerceDateValue(e){return typeof e=="string"?this._parseDateString(e):e}_getTypedValue(e){switch(this._valueMode){case"object":return e;case"string":return this._formatDate(e);case"iso-string":return e&&e.setHours(0,0,0,0),e?e.toISOString():null;default:return e}}_isDateValueAcceptable(e){if(!e||this._allowInvalidDate)return!0;let t=()=>this._min&&!this._allowInvalidDate?this._min.getTime()<=e.getTime():!0,a=()=>this._max&&!this._allowInvalidDate?this._max.getTime()>=e.getTime():!0,i=()=>Array.isArray(this._disabledDates)?this._disabledDates:this._disabledDates?[this._disabledDates]:[],o=()=>!i().some(L=>L.getTime()===e.getTime()),c=()=>!(this._disabledDaysOfWeek&&this._disabledDaysOfWeek.includes(e.getDay())),T=()=>typeof this._disableDayCallback!="function"||!this._disableDayCallback(e);return t()&&a()&&o()&&c()&&T()}_initializeMask(){let e={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),pattern:this._maskFormat,onChange:t=>this._handleInput(t)};this._prepareMaskCallback&&(e.prepareCallback=(t,a,i,o)=>this._prepareMaskCallback.call(null,t,a,i,o)),this._adapter.initializeMask(e)}_applyMask(){this._masked?this._initializeMask():(this._adapter.destroyMask(),this._formatInputValue())}_applyMin(){this._isInitialized&&this._adapter.setCalendarMinDate(this._min)}_applyMax(){this._isInitialized&&this._adapter.setCalendarMaxDate(this._max)}_applyDisableDayCallback(){this._adapter.setCalendarDisableDayCallback(this._disableDayCallback)}_applyDisabled(){this._adapter.setDisabled(this._disabled)}get valueMode(){return this._valueMode}set valueMode(e){if(this._valueMode!==e){if(!["object","string","iso-string"].includes(e))return;this._valueMode=e,this._emitChangeEvent(this._value),this._adapter.setHostAttribute(s.observedAttributes.VALUE_MODE,this._valueMode)}}get min(){return this._min?new Date(this._min.getTime()):null}set min(e){if(this._min!==e){let t=this._coerceDateValue(e);this._min=t?new Date(t.getTime()):null,this._applyMin(),this._isInitialized&&this._open&&this._adapter.setCalendarMinDate(this._min)}}get max(){return this._max?new Date(this._max.getTime()):null}set max(e){this._max!==e&&(this._max=this._coerceDateValue(e),this._applyMax(),this._isInitialized&&this._open&&this._adapter.setCalendarMaxDate(this._max))}get open(){return this._open}set open(e){this._open!==e&&this._isInitialized&&(this._open=e,this._open?this._openCalendar():this._closeCalendar())}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._isInitialized&&this._applyDisabled())}get disabledDates(){return this._disabledDates?Array.isArray(this._disabledDates)?this._disabledDates.map(e=>new Date(e.getTime())):new Date(this._disabledDates.getTime()):null}set disabledDates(e){e?Array.isArray(e)?this._disabledDates=e.map(t=>new Date(t.getTime())):this._disabledDates=new Date(e.getTime()):this._disabledDates=null,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDates(this._disabledDates),this._applyDisabledDates()}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(e){Array.isArray(e)?this._popupClasses=[...e]:this._popupClasses=e}get masked(){return this._masked}set masked(e){this._masked!==e&&(this._masked=e,this._isInitialized&&(this._masked?(this._removeInputChangeListeners(),this._applyMask()):(this._adapter.destroyMask(),this._setInputChangeListeners(),this._formatInputValue())))}get maskFormat(){return this._maskFormat}set maskFormat(e){this._maskFormat!==e&&(this._maskFormat=e,this._isInitialized&&this._applyMask())}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(e){this._showMaskFormat!==e&&(this._showMaskFormat=e)}get notifyInputValueChanges(){return this._notifyInputValueChanges}set notifyInputValueChanges(e){this._notifyInputValueChanges=e}get allowInvalidDate(){return this._allowInvalidDate}set allowInvalidDate(e){this._allowInvalidDate!==e&&(this._allowInvalidDate=e,this._adapter.toggleHostAttribute(s.observedAttributes.ALLOW_INVALID_DATE,this._allowInvalidDate))}get disabledDaysOfWeek(){return this._disabledDaysOfWeek}set disabledDaysOfWeek(e){this._disabledDaysOfWeek!==e&&(this._disabledDaysOfWeek=e,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDaysOfWeek(this._disabledDaysOfWeek),this._applyDisabledDaysOfWeek())}get disableDayCallback(){return this._disableDayCallback}set disableDayCallback(e){e!==this._disableDayCallback&&(this._disableDayCallback=e,this._applyDisableDayCallback())}get parseCallback(){return this._parseCallback}set parseCallback(e){this._parseCallback=e,this._isInitialized&&this._applyMask()}get formatCallback(){return this._formatCallback}set formatCallback(e){this._formatCallback=e,this._isInitialized&&this._applyMask()}get prepareMaskCallback(){return this._prepareMaskCallback}set prepareMaskCallback(e){this._prepareMaskCallback=e,this._isInitialized&&this._applyMask()}get showToday(){return this._showToday}set showToday(e){this._showToday=e}get showClear(){return this._showClear}set showClear(e){this._showClear=e}get yearRange(){return this._yearRange}set yearRange(e){this._yearRange!==e&&(this._yearRange=e,this._isInitialized&&this._open&&this._adapter.setCalendarYearRange(this._yearRange))}};export{s as a,n as b,w as c,M as d,A as e};
7
- //# sourceMappingURL=chunk.7X7A74SI.js.map
6
+ import{a as b}from"./chunk.V6JVHYVW.js";import{a as I}from"./chunk.PHTOULRR.js";import{a as g}from"./chunk.MGLWXAZO.js";import{a as E}from"./chunk.A5R7KUIP.js";import{a as y}from"./chunk.XIQFHO5R.js";import{c as f,d as k}from"./chunk.DMCBAYQX.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as C}from"./chunk.5V5ABSHI.js";import{f as v,k as m}from"./chunk.NK7H3MMM.js";import{m as D}from"./chunk.CFDK4RCW.js";import{a as h,g as u,k as d,m as _}from"./chunk.J2M2MXP2.js";import{d as r}from"./chunk.M3QDAYD2.js";var P={MIN:"min",MAX:"max",OPEN:"open",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",MASKED:"masked",MASK_FORMAT:"mask-format",SHOW_MASK_FORMAT:"show-mask-format",VALUE_MODE:"value-mode",ALLOW_INVALID_DATE:"allow-invalid-date",SHOW_TODAY:"show-today",SHOW_CLEAR:"show-clear",DISABLED_DAYS_OF_WEEK:"disabled-days-of-week",YEAR_RANGE:"year-range"},S={TOGGLE:"forge-date-picker-toggle"},O={INPUT:"input",TOGGLE:"[forge-date-picker-toggle],[data-forge-date-picker-toggle]"},s={observedAttributes:P,attributes:S,selectors:O};var n=class extends m{constructor(){super()}async connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():(await D(this,s.selectors.INPUT),this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,a,i){switch(t){case s.observedAttributes.MIN:this.min=i;break;case s.observedAttributes.MAX:this.max=i;break;case s.observedAttributes.OPEN:this.open=d(i);break;case s.observedAttributes.POPUP_CLASSES:this.popupClasses=i;break;case s.observedAttributes.DISABLED:this.disabled=d(i);break;case s.observedAttributes.MASKED:this.masked=d(i);break;case s.observedAttributes.SHOW_MASK_FORMAT:this.showMaskFormat=d(i);break;case s.observedAttributes.MASK_FORMAT:this.maskFormat=i;break;case s.observedAttributes.VALUE_MODE:this.valueMode=i;break;case s.observedAttributes.ALLOW_INVALID_DATE:this.allowInvalidDate=d(i);break;case s.observedAttributes.SHOW_TODAY:this.showToday=d(i);break;case s.observedAttributes.SHOW_CLEAR:this.showClear=d(i);break;case s.observedAttributes.DISABLED_DAYS_OF_WEEK:this.disabledDaysOfWeek=_(i);break;case s.observedAttributes.YEAR_RANGE:this.yearRange=i;break}}};r([l()],n.prototype,"value",2),r([l()],n.prototype,"min",2),r([l()],n.prototype,"max",2),r([l()],n.prototype,"disabledDates",2),r([l()],n.prototype,"open",2),r([l()],n.prototype,"popupClasses",2),r([l()],n.prototype,"disabled",2),r([l()],n.prototype,"masked",2),r([l()],n.prototype,"maskFormat",2),r([l()],n.prototype,"showMaskFormat",2),r([l()],n.prototype,"valueMode",2),r([l()],n.prototype,"notifyInputValueChanges",2),r([l()],n.prototype,"allowInvalidDate",2),r([l()],n.prototype,"showToday",2),r([l()],n.prototype,"showClear",2),r([l()],n.prototype,"parseCallback",2),r([l()],n.prototype,"formatCallback",2),r([l()],n.prototype,"prepareMaskCallback",2),r([l()],n.prototype,"disabledDaysOfWeek",2),r([l()],n.prototype,"disableDayCallback",2),r([l()],n.prototype,"yearRange",2);function w(p){let e=document.createElement("forge-icon-button");e.slot="trailing",e.dense=!0,e.densityLevel=3,e.style.marginRight="4px";let t=document.createElement("button");t.type="button",t.tabIndex=-1,t.setAttribute("aria-label","Toggle calendar"),e.appendChild(t);let a=document.createElement("forge-icon");return a.name=p,t.appendChild(a),e}var M=class extends C{constructor(t){super(t);this._valueChangeListeners=[];this._identifier=h()}initialize(){this._initializeInput()}destroy(){var t;(t=this._calendarDropdown)==null||t.destroy(),this.destroyValueChangeListener()}destroyValueChangeListener(){this._valueChangeListeners.forEach(t=>t())}addToggleListener(t,a){var i;(i=this._toggleElement)==null||i.addEventListener(t,a)}removeToggleListener(t,a){var i;(i=this._toggleElement)==null||i.removeEventListener(t,a)}attachCalendar(t,a){var i,o,c;if(this._calendarDropdown&&((i=this._calendarDropdown)==null||i.destroy()),this._initializeCalendarDropdown(),!this._calendarDropdown)throw new Error("CalendarDropdown was not initialized.");a&&Object.assign(this._calendarDropdown,a),this._calendarDropdown.open(t),(o=this._calendarDropdown.dropdownElement)==null||o.style.setProperty("--forge-calendar-width","320px"),(c=this._calendarDropdown.calendar)==null||c.style.setProperty("margin","8px")}detachCalendar(){this._calendarDropdown&&this._calendarDropdown.isOpen&&this._calendarDropdown.close()}goToCalendarDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.goToDate(t,!0)}addDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.addEventListener(b.events.DATE_SELECT,t)}removeDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.removeEventListener(b.events.DATE_SELECT,t)}setCalendarValue(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.value=t)}setCalendarMinDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.min=t)}setCalendarMaxDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.max=t)}setCalendarDisabledDates(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDates=t)}setCalendarDisabledDaysOfWeek(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDaysOfWeek=t)}setCalendarDisableDayCallback(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDateBuilder=t)}setCalendarActiveDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.setActiveDate(t)}getCalendarActiveDate(){var t,a;return(a=(t=this._calendarDropdown)==null?void 0:t.calendar)==null?void 0:a.activeDate}setCalendarYearRange(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)!=null&&i.yearRange&&(this._calendarDropdown.calendar.yearRange=t)}propagateCalendarKey(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.handleKey(t)}tryCreateToggle(){let t=this._component.querySelector("forge-text-field"),a=this._component.querySelector(s.selectors.TOGGLE);if(t){let i=t.querySelector(`${E.elementName}[slot=trailing]`);if(i||a){this._toggleElement=i||a;return}let o=this._createToggleElement();t.appendChild(o),this._toggleElement=o}else a&&(this._toggleElement=a)}_createToggleElement(){return w("insert_invitation")}_getDefaultTargetElement(){let t=this._component.querySelector("forge-text-field");if(t&&t.shadowRoot){let a=v(t,I.selectors.ROOT);if(a)return a}return this._component.querySelector("input")||this._component}};var A=class{constructor(e){this._adapter=e;this._value=null;this._min=null;this._max=null;this._disabledDates=null;this._open=!1;this._disabled=!1;this._masked=!0;this._maskFormat=y;this._showMaskFormat=!1;this._valueMode="object";this._notifyInputValueChanges=!0;this._allowInvalidDate=!1;this._showToday=!1;this._showClear=!1;this._yearRange="-50:+50";this._isInitialized=!1;this._inputListener=t=>this._onInput(t),this._inputKeydownListener=t=>this._onInputKeydown(t),this._inputFocusListener=t=>this._onInputFocus(t),this._inputBlurListener=t=>this._onInputBlur(t),this._inputValueChangedListener=t=>this._onInputValueChanged(t),this._dropdownCloseListener=()=>this._onDropdownClose(),this._toggleMousedownListener=t=>this._onToggleMousedown(t),this._dateSelectListener=t=>this._onDateSelected(t.detail),this._activeChangeListener=t=>this._onActiveDescendantChanged(t),this._todayListener=()=>this._onToday(),this._clearListener=()=>this._onClear()}initialize(){var e;if(this._adapter.initialize(),this._adapter.initializeAccessibility(),!this._adapter.hasInputElement())throw new Error("Unable to locate child <input> element.");(e=this._initializeState)==null||e.call(this),this._adapter.tryCreateToggle(),this._masked||this._setInputChangeListeners(),this._initializeListeners(),this._setFormattedInputValue(!0),this._applyDisabled(),this._applyMask(),this._initializeValueChangedListeners(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._destroyListeners(),this._masked&&this._adapter.destroyMask(),this._closeCalendar(),this._adapter.destroy()}_initializeListeners(){this._adapter.addToggleListener("mousedown",this._toggleMousedownListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener)}_initializeValueChangedListeners(){this._adapter.setInputValueChangedListener(this,this._inputValueChangedListener)}_setInputChangeListeners(){this._adapter.addInputListener("input",this._inputListener)}_removeInputChangeListeners(){this._adapter.removeInputListener("input",this._inputListener)}_destroyListeners(){this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._removeInputChangeListeners()}_onInput(e){this._handleInput(this._adapter.getInputValue())}_onInputFocus(e){this._adapter.selectInputText(),this.masked&&this.showMaskFormat&&this._applyMask()}_onInputBlur(e){this.masked&&this.showMaskFormat&&this._applyMask(),this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeCalendar(!0)}_openCalendar(e=!1){this._formatInputValue();let t={mode:this._mode,value:this._getCurrentValue(),min:this._min,max:this._max,disabledDates:this._disabledDates,yearRange:this._yearRange,todayButton:this._showToday,clearButton:this._showClear,todayCallback:this._todayListener,clearCallback:this._clearListener,disabledDateBuilder:this._disableDayCallback,disabledDaysOfWeek:this._disabledDaysOfWeek,preventFocus:!0,menuAnimation:"fade",fixedHeight:!0,selectionFollowsMonth:!0},a={popupClasses:this._popupClasses,closeCallback:this._dropdownCloseListener,activeChangeCallback:this._activeChangeListener};this._adapter.attachCalendar(t,a),this._adapter.addDateSelectListener(this._dateSelectListener),this._open=!0,this._adapter.setHostAttribute(s.observedAttributes.OPEN),e&&this._emitOpenEvent()}_closeCalendar(e=!1){this._open=!1,this._adapter.removeHostAttribute(s.observedAttributes.OPEN),this._adapter.removeDateSelectListener(this._dateSelectListener),this._adapter.detachCalendar(),e&&this._emitCloseEvent()}_onInputKeydown(e){if(e.shiftKey)switch(e.key){case"Delete":case"Backspace":e.preventDefault(),this._onClear(),this._open&&this._closeCalendar(!0);return;case"ArrowLeft":case"ArrowRight":case"m":case"M":case"y":case"Y":case"d":case"D":if(this._open){e.preventDefault(),this._adapter.propagateCalendarKey(e);return}break}switch(e.key){case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeCalendar(!0));break;case"ArrowDown":e.preventDefault(),this._open?this._adapter.propagateCalendarKey(e):(this._adapter.selectInputText(),this._openCalendar(!0));break;case"ArrowUp":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"ArrowLeft":case"ArrowRight":case"Enter":case"Home":case"End":if(this._open){e.key==="Enter"&&e.stopPropagation(),e.preventDefault();let t=["ArrowLeft","ArrowRight"].includes(e.key);this._masked&&t&&e.stopImmediatePropagation(),this._adapter.propagateCalendarKey(e)}break;case"n":case"t":e.preventDefault(),this._onToday(),this._open&&this._closeCalendar(!0);break;case"PageUp":case"PageDown":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"Tab":if(this._open){let t=this._adapter.getCalendarActiveDate();t&&this._onDateSelected({date:t,selected:!0,type:"date"})}break}}_getSanitizedDateString(e){return e.replace(/_|[a-z]|[A-Z]/g,"").replace(/\/$|\/\/$/,"")}_onToggleMousedown(e){this._disabled||(e.stopPropagation(),!this._adapter.isInputDisabled()&&(e.preventDefault(),this._open?this._closeCalendar(!0):(g.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openCalendar(!0))))}_onDropdownClose(){this._closeCalendar(!0)}_onActiveDescendantChanged(e){this._adapter.setActiveDescendant(e)}_formatInputValue(){let e=this._adapter.getInputValue();if(e){let t=this._parseDateString(e);if(u(t)&&this._isDateValueAcceptable(t)){let a=this._formatDate(t);a&&a!==e&&this._adapter.setInputValue(a,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setInputValue("",this._notifyInputValueChanges)}}_formatDate(e){return u(e)?typeof this._formatCallback=="function"?this._formatCallback(e):k(e):""}_parseDateString(e){if(e=e.replace(/_|\s/g,""),!e||!e.length)return null;let t=typeof this._parseCallback=="function"?this._parseCallback(e):f(e);return u(t)?t:null}_coerceDateValue(e){return typeof e=="string"?this._parseDateString(e):e}_getTypedValue(e){switch(this._valueMode){case"object":return e;case"string":return this._formatDate(e);case"iso-string":return e&&e.setHours(0,0,0,0),e?e.toISOString():null;default:return e}}_isDateValueAcceptable(e){if(!e||this._allowInvalidDate)return!0;let t=()=>this._min&&!this._allowInvalidDate?this._min.getTime()<=e.getTime():!0,a=()=>this._max&&!this._allowInvalidDate?this._max.getTime()>=e.getTime():!0,i=()=>Array.isArray(this._disabledDates)?this._disabledDates:this._disabledDates?[this._disabledDates]:[],o=()=>!i().some(L=>L.getTime()===e.getTime()),c=()=>!(this._disabledDaysOfWeek&&this._disabledDaysOfWeek.includes(e.getDay())),T=()=>typeof this._disableDayCallback!="function"||!this._disableDayCallback(e);return t()&&a()&&o()&&c()&&T()}_initializeMask(){let e={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),pattern:this._maskFormat,onChange:t=>this._handleInput(t)};this._prepareMaskCallback&&(e.prepareCallback=(t,a,i,o)=>this._prepareMaskCallback.call(null,t,a,i,o)),this._adapter.initializeMask(e)}_applyMask(){this._masked?this._initializeMask():(this._adapter.destroyMask(),this._formatInputValue())}_applyMin(){this._isInitialized&&this._adapter.setCalendarMinDate(this._min)}_applyMax(){this._isInitialized&&this._adapter.setCalendarMaxDate(this._max)}_applyDisableDayCallback(){this._adapter.setCalendarDisableDayCallback(this._disableDayCallback)}_applyDisabled(){this._adapter.setDisabled(this._disabled)}get valueMode(){return this._valueMode}set valueMode(e){if(this._valueMode!==e){if(!["object","string","iso-string"].includes(e))return;this._valueMode=e,this._emitChangeEvent(this._value),this._adapter.setHostAttribute(s.observedAttributes.VALUE_MODE,this._valueMode)}}get min(){return this._min?new Date(this._min.getTime()):null}set min(e){if(this._min!==e){let t=this._coerceDateValue(e);this._min=t?new Date(t.getTime()):null,this._applyMin(),this._isInitialized&&this._open&&this._adapter.setCalendarMinDate(this._min)}}get max(){return this._max?new Date(this._max.getTime()):null}set max(e){this._max!==e&&(this._max=this._coerceDateValue(e),this._applyMax(),this._isInitialized&&this._open&&this._adapter.setCalendarMaxDate(this._max))}get open(){return this._open}set open(e){this._open!==e&&this._isInitialized&&(this._open=e,this._open?this._openCalendar():this._closeCalendar())}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._isInitialized&&this._applyDisabled())}get disabledDates(){return this._disabledDates?Array.isArray(this._disabledDates)?this._disabledDates.map(e=>new Date(e.getTime())):new Date(this._disabledDates.getTime()):null}set disabledDates(e){e?Array.isArray(e)?this._disabledDates=e.map(t=>new Date(t.getTime())):this._disabledDates=new Date(e.getTime()):this._disabledDates=null,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDates(this._disabledDates),this._applyDisabledDates()}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(e){Array.isArray(e)?this._popupClasses=[...e]:this._popupClasses=e}get masked(){return this._masked}set masked(e){this._masked!==e&&(this._masked=e,this._isInitialized&&(this._masked?(this._removeInputChangeListeners(),this._applyMask()):(this._adapter.destroyMask(),this._setInputChangeListeners(),this._formatInputValue())))}get maskFormat(){return this._maskFormat}set maskFormat(e){this._maskFormat!==e&&(this._maskFormat=e,this._isInitialized&&this._applyMask())}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(e){this._showMaskFormat!==e&&(this._showMaskFormat=e)}get notifyInputValueChanges(){return this._notifyInputValueChanges}set notifyInputValueChanges(e){this._notifyInputValueChanges=e}get allowInvalidDate(){return this._allowInvalidDate}set allowInvalidDate(e){this._allowInvalidDate!==e&&(this._allowInvalidDate=e,this._adapter.toggleHostAttribute(s.observedAttributes.ALLOW_INVALID_DATE,this._allowInvalidDate))}get disabledDaysOfWeek(){return this._disabledDaysOfWeek}set disabledDaysOfWeek(e){this._disabledDaysOfWeek!==e&&(this._disabledDaysOfWeek=e,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDaysOfWeek(this._disabledDaysOfWeek),this._applyDisabledDaysOfWeek())}get disableDayCallback(){return this._disableDayCallback}set disableDayCallback(e){e!==this._disableDayCallback&&(this._disableDayCallback=e,this._applyDisableDayCallback())}get parseCallback(){return this._parseCallback}set parseCallback(e){this._parseCallback=e,this._isInitialized&&this._applyMask()}get formatCallback(){return this._formatCallback}set formatCallback(e){this._formatCallback=e,this._isInitialized&&this._applyMask()}get prepareMaskCallback(){return this._prepareMaskCallback}set prepareMaskCallback(e){this._prepareMaskCallback=e,this._isInitialized&&this._applyMask()}get showToday(){return this._showToday}set showToday(e){this._showToday=e}get showClear(){return this._showClear}set showClear(e){this._showClear=e}get yearRange(){return this._yearRange}set yearRange(e){this._yearRange!==e&&(this._yearRange=e,this._isInitialized&&this._open&&this._adapter.setCalendarYearRange(this._yearRange))}};export{s as a,n as b,w as c,M as d,A as e};
7
+ //# sourceMappingURL=chunk.TXFYS6EU.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as i,b as n}from"./chunk.55FCNVG5.js";import{a as o,e as t,l as d}from"./chunk.QH2GB3PD.js";import{d as r}from"./chunk.M3QDAYD2.js";var a=`${n}divider`,s={ROOT:".forge-divider"},m={elementName:a,classes:s};var l='<template><div class="forge-divider" role="separator" part="root"></div></template>',p=".forge-divider{border:none;border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);border-bottom-width:1px;border-bottom-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:0;border-bottom-style:solid}:host{display:block;contain:content}:host([hidden]){display:none}:host-context(forge-drawer) .forge-divider{margin:var(--forge-divider-drawer-margin,4px) 0}:host([vertical]){display:inline-block;height:100%}:host([vertical]) .forge-divider{border:none;border-right-color:#e0e0e0;border-right-color:var(--forge-theme-border-color,#e0e0e0);border-right-width:1px;border-right-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:100%;width:0;border-right-style:solid}",e=class extends d{constructor(){super(),t(this,l,p)}};e=r([i({name:m.elementName})],e);function I(){o(e)}export{m as a,e as b,I as c};
7
- //# sourceMappingURL=chunk.5MPUISW3.js.map
6
+ import{a as i,b as n}from"./chunk.DTZFWZPB.js";import{a as o,e as t,k as d}from"./chunk.NK7H3MMM.js";import{d as r}from"./chunk.M3QDAYD2.js";var a=`${n}divider`,s={ROOT:".forge-divider"},m={elementName:a,classes:s};var l='<template><div class="forge-divider" role="separator" part="root"></div></template>',p=".forge-divider{border:none;border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);border-bottom-width:1px;border-bottom-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:0;border-bottom-style:solid}:host{display:block;contain:content}:host([hidden]){display:none}:host-context(forge-drawer) .forge-divider{margin:var(--forge-divider-drawer-margin,4px) 0}:host([vertical]){display:inline-block;height:100%}:host([vertical]) .forge-divider{border:none;border-right-color:#e0e0e0;border-right-color:var(--forge-theme-border-color,#e0e0e0);border-right-width:1px;border-right-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:100%;width:0;border-right-style:solid}",e=class extends d{constructor(){super(),t(this,l,p)}};e=r([i({name:m.elementName})],e);function I(){o(e)}export{m as a,e as b,I as c};
7
+ //# sourceMappingURL=chunk.U4GYQOPY.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as H}from"./chunk.PKZYVWEG.js";import{a as v}from"./chunk.NVUMRW44.js";import{a as x}from"./chunk.TKDMM2ZZ.js";import{a as S,b as C}from"./chunk.55FCNVG5.js";import{a as I,e as V,g as w,l as A}from"./chunk.QH2GB3PD.js";import{g as y}from"./chunk.CFDK4RCW.js";import{b as E,l as g}from"./chunk.J2M2MXP2.js";import{d as h}from"./chunk.M3QDAYD2.js";var D=`${C}view-switcher`,u={ROOT:"forge-view-switcher",VIEW_HIDDEN:"forge-view-switcher__view--hidden",VIEW_SWITCHER_SLIDE:"forge-view-switcher--slide",VIEW_SWITCHER_FADE:"forge-view-switcher--fade"},O={ROOT:`.${u.ROOT}`,DEFAULT_SLOT:"slot:not([name])",VIEW_HIDDEN:`.${u.VIEW_HIDDEN}`},W={INDEX:"index",ANIMATION_TYPE:"animation-type"},F={DEFAULT_TRANSITION_DURATION:500},s={elementName:D,attributes:W,classes:u,selectors:O,numbers:F},_=(e=>(e.Left="left",e.Right="right",e))(_||{}),b=(t=>(t.None="none",t.Slide="slide",t.Fade="fade",t))(b||{});var c=class extends x{constructor(e){super(e);this._rootElement=w(e,s.selectors.ROOT),this._slotElement=w(e,s.selectors.DEFAULT_SLOT)}getViewCount(){return this._getViews().length}startViewObserver(e){this._viewObserver=new MutationObserver(e),this._viewObserver.observe(this._component,{childList:!0})}stopViewObserver(){this._viewObserver&&this._viewObserver.disconnect()}initializeSlideViews(e){let t=this._getViews();t.forEach((i,o)=>{if(i.style.removeProperty("opacity"),i.style.removeProperty("display"),o===e){t[e].classList.remove(s.classes.VIEW_HIDDEN),i.style.removeProperty("visibility");return}i.style.transition="none",i.classList.add(s.classes.VIEW_HIDDEN),i.style.visibility="hidden",o>e?i.style.transform="translate3d(100%, 0, 0)":i.style.transform="translate3d(-100%, 0, 0)"}),window.requestAnimationFrame(()=>{t=this._getViews(),t.forEach((i,o)=>{o!==e&&i.style.removeProperty("transition")})})}initializeFadeViews(e){let t=this._getViews();t.forEach((i,o)=>{if(i.style.removeProperty("transform"),i.style.removeProperty("display"),o===e){i.classList.remove(s.classes.VIEW_HIDDEN),i.style.removeProperty("visibility");return}i.classList.add(s.classes.VIEW_HIDDEN),i.style.visibility="hidden"}),t[e]&&(t[e].style.opacity="1")}setActiveView(e){let t=this._getViews();t.forEach((i,o)=>{o!==e&&(i.classList.add(s.classes.VIEW_HIDDEN),i.style.display="none")}),t[e]&&(t[e].classList.remove(s.classes.VIEW_HIDDEN),t[e].style.removeProperty("display"))}hideInactiveViews(e){this._getViews().forEach((i,o)=>{if(i.style.removeProperty("opacity"),i.style.removeProperty("transform"),i.style.removeProperty("visibility"),o===e){i.classList.remove(s.classes.VIEW_HIDDEN);return}i.classList.add(s.classes.VIEW_HIDDEN),i.style.display="none"})}async transitionToView(e,t,i,o){let l=this._getViews(),r=l[e],d=l[t];return new Promise(N=>{d.style.removeProperty("visibility"),window.requestAnimationFrame(()=>{let p;switch(i){case"slide":this._slideToView(r,d,o),p="transform";break;case"fade":this._fadeToView(r,d),p="opacity";break;default:return}this._animateHeight(r,d),r?r.addEventListener("transitionend",T):d.classList.remove(s.classes.VIEW_HIDDEN);function T(L){L.propertyName===p&&(r.removeEventListener("transitionend",T),d.classList.remove(s.classes.VIEW_HIDDEN),N())}})})}_slideToView(e,t,i){i==="left"?(e&&(e.style.transform="translate3d(-100%, 0, 0)"),t.style.transform="translate3d(0, 0, 0)"):(e&&(e.style.transform="translate3d(100%, 0, 0)"),t.style.transform="translate3d(0, 0, 0)")}_fadeToView(e,t){e&&(e.style.opacity="0"),t.style.opacity="1"}_animateHeight(e,t){let i=e?this._getViewHeight(e):0,o=this._getViewHeight(t);i!==o&&(this._rootElement.addEventListener("transitionend",this._onRootTransitionEnd.bind(this)),this._setHeight(i),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._setHeight(o)})}))}_onRootTransitionEnd(e){e.propertyName==="height"&&(this._rootElement.removeEventListener("transitionend",this._onRootTransitionEnd),this._rootElement.style.removeProperty("height"))}setAnimationType(e){switch(y([s.classes.VIEW_SWITCHER_SLIDE,s.classes.VIEW_SWITCHER_FADE],this._component),e){case"slide":this._component.classList.add(s.classes.VIEW_SWITCHER_SLIDE);break;case"fade":this._component.classList.add(s.classes.VIEW_SWITCHER_FADE);break}}_getViews(){return this._slotElement.assignedNodes().filter(e=>e.nodeType===1)}_setHeight(e){this._rootElement.style.height=`${e}px`}_getViewHeight(e){let t=0,i=e.children.length?Array.from(e.children):[e];for(let o of i){let l=window.getComputedStyle(o),r=parseFloat(l.marginTop)+parseFloat(l.marginBottom);t+=Math.ceil(o.offsetHeight+r)}return t}};var m=class{constructor(n){this._adapter=n;this._viewCount=0;this._viewIndex=0;this._animationType="none";this._viewsChangedListener=()=>this._onViewsChanged()}initialize(){this._viewCount=this._adapter.getViewCount(),this._adapter.startViewObserver(this._viewsChangedListener),this._adapter.setAnimationType(this._animationType),this._viewCount&&this._initializeAnimationType()}disconnect(){this._adapter.stopViewObserver()}_initializeAnimationType(){switch(this._animationType){case"slide":this._adapter.initializeSlideViews(this._viewIndex);break;case"fade":this._adapter.initializeFadeViews(this._viewIndex);break;case"none":default:this._adapter.hideInactiveViews(this._viewIndex);break}}_onViewsChanged(){if(this._viewCount=this._adapter.getViewCount(),this._viewCount===0&&(this._viewIndex=0),this._viewCount&&this._initializeAnimationType(),this._viewCount>0&&this._viewIndex>=this._viewCount){let n=this._viewIndex;this._viewIndex=this._viewCount>0?this._viewCount-1:0,this._goToView(n,this._viewCount)}}async _goToView(n,e){if(this._viewCount=E(e)?e:this._adapter.getViewCount(),!(!(this._viewIndex>=0&&this._viewIndex<=this._viewCount-1)||n===this._clampedViewIndex(this._viewIndex,this._viewCount)))switch(this._animationType){case"slide":let i=this._viewIndex>n?"left":"right";await this._adapter.transitionToView(n,this._viewIndex,"slide",i),this._adapter.initializeSlideViews(this._viewIndex);break;case"fade":await this._adapter.transitionToView(n,this._viewIndex,"fade"),this._adapter.initializeFadeViews(this._viewIndex);break;case"none":default:this._adapter.setActiveView(this._viewIndex);break}}_clampedViewIndex(n,e){return n<0?n=0:n>e-1&&(n=e>0?e-1:0),n}next(){this.index++}previous(){this.index--}goToStart(){this.index=0}goToEnd(){this.index=this._viewCount-1}get index(){return this._viewIndex}set index(n){if(this._viewIndex!==n){let e=this._viewIndex;this._viewIndex=n,this._goToView(e),this._adapter.setHostAttribute(s.attributes.INDEX,this._viewIndex.toString())}}get animationType(){return this._animationType}set animationType(n){this._animationType!==n&&(this._animationType=n,this._initializeAnimationType(),this._adapter.setAnimationType(this._animationType),this._adapter.setHostAttribute(s.attributes.ANIMATION_TYPE,this._animationType))}};var M='<template><div class="forge-view-switcher" part="root"><slot></slot></div></template>',P=".forge-view-switcher{height:auto;height:var(--forge-view-switcher-height,auto);width:auto;width:var(--forge-view-switcher-width,auto);position:relative;overflow:hidden;-webkit-transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1)}.forge-view-switcher ::slotted(.forge-view-switcher__view--hidden){position:absolute;top:0;right:0;bottom:0;left:0}:host{height:auto;height:var(--forge-view-switcher-height,auto);width:auto;width:var(--forge-view-switcher-width,auto);display:block}:host([hidden]){display:none}:host(.forge-view-switcher--slide) ::slotted(forge-view){-webkit-transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1),-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:transform}:host(.forge-view-switcher--fade) ::slotted(forge-view){-webkit-transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:opacity}:host(.forge-view-switcher--fade) ::slotted(.forge-view-switcher__view--hidden){opacity:0}",a=class extends A{constructor(){super();V(this,M,P),this._foundation=new m(new c(this))}static get observedAttributes(){return[s.attributes.INDEX,s.attributes.ANIMATION_TYPE]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,t,i){switch(e){case s.attributes.INDEX:this.index=g(i);break;case s.attributes.ANIMATION_TYPE:this.animationType=i;break}}next(){this._foundation.next()}previous(){this._foundation.previous()}goToStart(){this._foundation.goToStart()}goToEnd(){this._foundation.goToEnd()}};h([v()],a.prototype,"index",2),h([v()],a.prototype,"animationType",2),a=h([S({name:s.elementName,dependencies:[H]})],a);function he(){I(a)}export{s as a,_ as b,b as c,c as d,m as e,a as f,he as g};
7
- //# sourceMappingURL=chunk.I3MZQIAF.js.map
6
+ import{b as H}from"./chunk.7ZQMJLHE.js";import{a as v}from"./chunk.NVUMRW44.js";import{a as x}from"./chunk.5V5ABSHI.js";import{a as S,b as C}from"./chunk.DTZFWZPB.js";import{a as I,e as V,f as w,k as A}from"./chunk.NK7H3MMM.js";import{g as y}from"./chunk.CFDK4RCW.js";import{b as E,l as g}from"./chunk.J2M2MXP2.js";import{d as h}from"./chunk.M3QDAYD2.js";var D=`${C}view-switcher`,u={ROOT:"forge-view-switcher",VIEW_HIDDEN:"forge-view-switcher__view--hidden",VIEW_SWITCHER_SLIDE:"forge-view-switcher--slide",VIEW_SWITCHER_FADE:"forge-view-switcher--fade"},O={ROOT:`.${u.ROOT}`,DEFAULT_SLOT:"slot:not([name])",VIEW_HIDDEN:`.${u.VIEW_HIDDEN}`},W={INDEX:"index",ANIMATION_TYPE:"animation-type"},F={DEFAULT_TRANSITION_DURATION:500},s={elementName:D,attributes:W,classes:u,selectors:O,numbers:F},_=(e=>(e.Left="left",e.Right="right",e))(_||{}),b=(t=>(t.None="none",t.Slide="slide",t.Fade="fade",t))(b||{});var c=class extends x{constructor(e){super(e);this._rootElement=w(e,s.selectors.ROOT),this._slotElement=w(e,s.selectors.DEFAULT_SLOT)}getViewCount(){return this._getViews().length}startViewObserver(e){this._viewObserver=new MutationObserver(e),this._viewObserver.observe(this._component,{childList:!0})}stopViewObserver(){this._viewObserver&&this._viewObserver.disconnect()}initializeSlideViews(e){let t=this._getViews();t.forEach((i,o)=>{if(i.style.removeProperty("opacity"),i.style.removeProperty("display"),o===e){t[e].classList.remove(s.classes.VIEW_HIDDEN),i.style.removeProperty("visibility");return}i.style.transition="none",i.classList.add(s.classes.VIEW_HIDDEN),i.style.visibility="hidden",o>e?i.style.transform="translate3d(100%, 0, 0)":i.style.transform="translate3d(-100%, 0, 0)"}),window.requestAnimationFrame(()=>{t=this._getViews(),t.forEach((i,o)=>{o!==e&&i.style.removeProperty("transition")})})}initializeFadeViews(e){let t=this._getViews();t.forEach((i,o)=>{if(i.style.removeProperty("transform"),i.style.removeProperty("display"),o===e){i.classList.remove(s.classes.VIEW_HIDDEN),i.style.removeProperty("visibility");return}i.classList.add(s.classes.VIEW_HIDDEN),i.style.visibility="hidden"}),t[e]&&(t[e].style.opacity="1")}setActiveView(e){let t=this._getViews();t.forEach((i,o)=>{o!==e&&(i.classList.add(s.classes.VIEW_HIDDEN),i.style.display="none")}),t[e]&&(t[e].classList.remove(s.classes.VIEW_HIDDEN),t[e].style.removeProperty("display"))}hideInactiveViews(e){this._getViews().forEach((i,o)=>{if(i.style.removeProperty("opacity"),i.style.removeProperty("transform"),i.style.removeProperty("visibility"),o===e){i.classList.remove(s.classes.VIEW_HIDDEN);return}i.classList.add(s.classes.VIEW_HIDDEN),i.style.display="none"})}async transitionToView(e,t,i,o){let l=this._getViews(),r=l[e],d=l[t];return new Promise(N=>{d.style.removeProperty("visibility"),window.requestAnimationFrame(()=>{let p;switch(i){case"slide":this._slideToView(r,d,o),p="transform";break;case"fade":this._fadeToView(r,d),p="opacity";break;default:return}this._animateHeight(r,d),r?r.addEventListener("transitionend",T):d.classList.remove(s.classes.VIEW_HIDDEN);function T(L){L.propertyName===p&&(r.removeEventListener("transitionend",T),d.classList.remove(s.classes.VIEW_HIDDEN),N())}})})}_slideToView(e,t,i){i==="left"?(e&&(e.style.transform="translate3d(-100%, 0, 0)"),t.style.transform="translate3d(0, 0, 0)"):(e&&(e.style.transform="translate3d(100%, 0, 0)"),t.style.transform="translate3d(0, 0, 0)")}_fadeToView(e,t){e&&(e.style.opacity="0"),t.style.opacity="1"}_animateHeight(e,t){let i=e?this._getViewHeight(e):0,o=this._getViewHeight(t);i!==o&&(this._rootElement.addEventListener("transitionend",this._onRootTransitionEnd.bind(this)),this._setHeight(i),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._setHeight(o)})}))}_onRootTransitionEnd(e){e.propertyName==="height"&&(this._rootElement.removeEventListener("transitionend",this._onRootTransitionEnd),this._rootElement.style.removeProperty("height"))}setAnimationType(e){switch(y([s.classes.VIEW_SWITCHER_SLIDE,s.classes.VIEW_SWITCHER_FADE],this._component),e){case"slide":this._component.classList.add(s.classes.VIEW_SWITCHER_SLIDE);break;case"fade":this._component.classList.add(s.classes.VIEW_SWITCHER_FADE);break}}_getViews(){return this._slotElement.assignedNodes().filter(e=>e.nodeType===1)}_setHeight(e){this._rootElement.style.height=`${e}px`}_getViewHeight(e){let t=0,i=e.children.length?Array.from(e.children):[e];for(let o of i){let l=window.getComputedStyle(o),r=parseFloat(l.marginTop)+parseFloat(l.marginBottom);t+=Math.ceil(o.offsetHeight+r)}return t}};var m=class{constructor(n){this._adapter=n;this._viewCount=0;this._viewIndex=0;this._animationType="none";this._viewsChangedListener=()=>this._onViewsChanged()}initialize(){this._viewCount=this._adapter.getViewCount(),this._adapter.startViewObserver(this._viewsChangedListener),this._adapter.setAnimationType(this._animationType),this._viewCount&&this._initializeAnimationType()}disconnect(){this._adapter.stopViewObserver()}_initializeAnimationType(){switch(this._animationType){case"slide":this._adapter.initializeSlideViews(this._viewIndex);break;case"fade":this._adapter.initializeFadeViews(this._viewIndex);break;case"none":default:this._adapter.hideInactiveViews(this._viewIndex);break}}_onViewsChanged(){if(this._viewCount=this._adapter.getViewCount(),this._viewCount===0&&(this._viewIndex=0),this._viewCount&&this._initializeAnimationType(),this._viewCount>0&&this._viewIndex>=this._viewCount){let n=this._viewIndex;this._viewIndex=this._viewCount>0?this._viewCount-1:0,this._goToView(n,this._viewCount)}}async _goToView(n,e){if(this._viewCount=E(e)?e:this._adapter.getViewCount(),!(!(this._viewIndex>=0&&this._viewIndex<=this._viewCount-1)||n===this._clampedViewIndex(this._viewIndex,this._viewCount)))switch(this._animationType){case"slide":let i=this._viewIndex>n?"left":"right";await this._adapter.transitionToView(n,this._viewIndex,"slide",i),this._adapter.initializeSlideViews(this._viewIndex);break;case"fade":await this._adapter.transitionToView(n,this._viewIndex,"fade"),this._adapter.initializeFadeViews(this._viewIndex);break;case"none":default:this._adapter.setActiveView(this._viewIndex);break}}_clampedViewIndex(n,e){return n<0?n=0:n>e-1&&(n=e>0?e-1:0),n}next(){this.index++}previous(){this.index--}goToStart(){this.index=0}goToEnd(){this.index=this._viewCount-1}get index(){return this._viewIndex}set index(n){if(this._viewIndex!==n){let e=this._viewIndex;this._viewIndex=n,this._goToView(e),this._adapter.setHostAttribute(s.attributes.INDEX,this._viewIndex.toString())}}get animationType(){return this._animationType}set animationType(n){this._animationType!==n&&(this._animationType=n,this._initializeAnimationType(),this._adapter.setAnimationType(this._animationType),this._adapter.setHostAttribute(s.attributes.ANIMATION_TYPE,this._animationType))}};var M='<template><div class="forge-view-switcher" part="root"><slot></slot></div></template>',P=".forge-view-switcher{height:auto;height:var(--forge-view-switcher-height,auto);width:auto;width:var(--forge-view-switcher-width,auto);position:relative;overflow:hidden;-webkit-transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1)}.forge-view-switcher ::slotted(.forge-view-switcher__view--hidden){position:absolute;top:0;right:0;bottom:0;left:0}:host{height:auto;height:var(--forge-view-switcher-height,auto);width:auto;width:var(--forge-view-switcher-width,auto);display:block}:host([hidden]){display:none}:host(.forge-view-switcher--slide) ::slotted(forge-view){-webkit-transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1),-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:transform}:host(.forge-view-switcher--fade) ::slotted(forge-view){-webkit-transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:opacity}:host(.forge-view-switcher--fade) ::slotted(.forge-view-switcher__view--hidden){opacity:0}",a=class extends A{constructor(){super();V(this,M,P),this._foundation=new m(new c(this))}static get observedAttributes(){return[s.attributes.INDEX,s.attributes.ANIMATION_TYPE]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,t,i){switch(e){case s.attributes.INDEX:this.index=g(i);break;case s.attributes.ANIMATION_TYPE:this.animationType=i;break}}next(){this._foundation.next()}previous(){this._foundation.previous()}goToStart(){this._foundation.goToStart()}goToEnd(){this._foundation.goToEnd()}};h([v()],a.prototype,"index",2),h([v()],a.prototype,"animationType",2),a=h([S({name:s.elementName,dependencies:[H]})],a);function he(){I(a)}export{s as a,_ as b,b as c,c as d,m as e,a as f,he as g};
7
+ //# sourceMappingURL=chunk.UCM6CGFM.js.map