@tylertech/forge 3.0.0-next.8 → 3.0.0-next.9

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 (343) hide show
  1. package/custom-elements.json +2080 -487
  2. package/dist/button/forge-button.css +1 -1
  3. package/dist/esm/accordion/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/banner/index.js +1 -1
  12. package/dist/esm/bottom-sheet/index.js +1 -1
  13. package/dist/esm/busy-indicator/index.js +1 -1
  14. package/dist/esm/button/index.js +1 -1
  15. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  16. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  17. package/dist/esm/button-toggle/index.js +1 -1
  18. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  19. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  20. package/dist/esm/calendar/index.js +1 -1
  21. package/dist/esm/checkbox/index.js +1 -1
  22. package/dist/esm/chip-field/index.js +1 -1
  23. package/dist/esm/chips/chip/index.js +1 -1
  24. package/dist/esm/chips/chip-set/index.js +1 -1
  25. package/dist/esm/chips/index.js +1 -1
  26. package/dist/esm/chunks/{chunk.PPPTT3SM.js → chunk.2VP57RZO.js} +2 -2
  27. package/dist/esm/chunks/{chunk.PPPTT3SM.js.map → chunk.2VP57RZO.js.map} +2 -2
  28. package/dist/esm/chunks/{chunk.TXFYS6EU.js → chunk.33EJTOVA.js} +2 -2
  29. package/dist/esm/chunks/{chunk.OTVT3XM2.js → chunk.3JDFBEF7.js} +2 -2
  30. package/dist/esm/chunks/chunk.3ME47JIX.js +7 -0
  31. package/dist/esm/chunks/chunk.3ME47JIX.js.map +7 -0
  32. package/dist/esm/chunks/{chunk.V6JVHYVW.js → chunk.44UCSD46.js} +2 -2
  33. package/dist/esm/chunks/{chunk.EUE3OVC7.js → chunk.4WVHON6T.js} +2 -2
  34. package/dist/esm/chunks/chunk.4WVHON6T.js.map +7 -0
  35. package/dist/esm/chunks/{chunk.6SBTLXLH.js → chunk.5IQGVS6U.js} +2 -2
  36. package/dist/esm/chunks/{chunk.6SBTLXLH.js.map → chunk.5IQGVS6U.js.map} +1 -1
  37. package/dist/esm/chunks/{chunk.7JQHQKXN.js → chunk.6MPXRRMB.js} +2 -2
  38. package/dist/esm/chunks/{chunk.MXNLCQRB.js → chunk.6VDF54LZ.js} +2 -2
  39. package/dist/esm/chunks/{chunk.GF2GUVYS.js → chunk.7TGGJGTG.js} +2 -2
  40. package/dist/esm/chunks/{chunk.GF2GUVYS.js.map → chunk.7TGGJGTG.js.map} +1 -1
  41. package/dist/esm/chunks/{chunk.4EB5NVCK.js → chunk.AHHNJSZK.js} +2 -2
  42. package/dist/esm/chunks/chunk.BBKRPL6R.js +7 -0
  43. package/dist/esm/chunks/chunk.BBKRPL6R.js.map +7 -0
  44. package/dist/esm/chunks/{chunk.BSTIDYQJ.js → chunk.BBWMSCVG.js} +2 -2
  45. package/dist/esm/chunks/{chunk.BKCEVPKW.js → chunk.BDCJIRNK.js} +2 -2
  46. package/dist/esm/chunks/{chunk.IIXLFXHZ.js → chunk.BSVFCJCQ.js} +2 -2
  47. package/dist/esm/chunks/chunk.CAUWWFF4.js +7 -0
  48. package/dist/esm/chunks/chunk.CAUWWFF4.js.map +7 -0
  49. package/dist/esm/chunks/{chunk.SYZB7B4F.js → chunk.CL65KLH7.js} +2 -2
  50. package/dist/esm/chunks/{chunk.4LVS2EYJ.js → chunk.DFGBVJBE.js} +2 -2
  51. package/dist/esm/chunks/chunk.DXZ5LVFJ.js +7 -0
  52. package/dist/esm/chunks/chunk.DXZ5LVFJ.js.map +7 -0
  53. package/dist/esm/chunks/{chunk.YUAU5IWT.js → chunk.F776DWXU.js} +2 -2
  54. package/dist/esm/chunks/{chunk.HKJEGD6C.js → chunk.FIBGOPNP.js} +2 -2
  55. package/dist/esm/chunks/{chunk.HKJEGD6C.js.map → chunk.FIBGOPNP.js.map} +1 -1
  56. package/dist/esm/chunks/{chunk.CN27IHDN.js → chunk.GEGK55XX.js} +2 -2
  57. package/dist/esm/chunks/{chunk.CN27IHDN.js.map → chunk.GEGK55XX.js.map} +2 -2
  58. package/dist/esm/chunks/{chunk.2QFIMTVP.js → chunk.GT3XBPZY.js} +2 -2
  59. package/dist/esm/chunks/{chunk.5MK5YWCK.js → chunk.HUGRRRQA.js} +2 -2
  60. package/dist/esm/chunks/{chunk.GJW4WS4I.js → chunk.HXJCTE47.js} +2 -2
  61. package/dist/esm/chunks/{chunk.RHYRMQS7.js → chunk.IPGZ24EH.js} +2 -2
  62. package/dist/esm/chunks/{chunk.RHYRMQS7.js.map → chunk.IPGZ24EH.js.map} +1 -1
  63. package/dist/esm/chunks/chunk.ISC7SZSP.js +7 -0
  64. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +7 -0
  65. package/dist/esm/chunks/{chunk.RUSHOL23.js → chunk.JAAJDT5E.js} +2 -2
  66. package/dist/esm/chunks/{chunk.SIJGKRYS.js → chunk.JCRC2VEI.js} +2 -2
  67. package/dist/esm/chunks/{chunk.SIJGKRYS.js.map → chunk.JCRC2VEI.js.map} +1 -1
  68. package/dist/esm/chunks/{chunk.3AF7CJP2.js → chunk.JFKSREWG.js} +2 -2
  69. package/dist/esm/chunks/{chunk.3AF7CJP2.js.map → chunk.JFKSREWG.js.map} +1 -1
  70. package/dist/esm/chunks/{chunk.FAANPQES.js → chunk.JL4XB4RI.js} +2 -2
  71. package/dist/esm/chunks/{chunk.24L5GDD2.js → chunk.JTIPXKV6.js} +2 -2
  72. package/dist/esm/chunks/{chunk.24L5GDD2.js.map → chunk.JTIPXKV6.js.map} +2 -2
  73. package/dist/esm/chunks/chunk.KO45GDOA.js +7 -0
  74. package/dist/esm/chunks/{chunk.2CTK5R37.js.map → chunk.KO45GDOA.js.map} +2 -2
  75. package/dist/esm/chunks/chunk.KSCUIS5C.js +7 -0
  76. package/dist/esm/chunks/chunk.KSCUIS5C.js.map +7 -0
  77. package/dist/esm/chunks/{chunk.2LRDPTHK.js → chunk.M2M47T4L.js} +2 -2
  78. package/dist/esm/chunks/{chunk.JVW6JGV3.js → chunk.MGWY7YIL.js} +2 -2
  79. package/dist/esm/chunks/{chunk.JVW6JGV3.js.map → chunk.MGWY7YIL.js.map} +2 -2
  80. package/dist/esm/chunks/{chunk.3CBVRCKM.js → chunk.MJSLXZBM.js} +2 -2
  81. package/dist/esm/chunks/{chunk.3CBVRCKM.js.map → chunk.MJSLXZBM.js.map} +1 -1
  82. package/dist/esm/chunks/{chunk.2YAU7AXH.js → chunk.N7PQ2MUQ.js} +2 -2
  83. package/dist/esm/chunks/{chunk.2YAU7AXH.js.map → chunk.N7PQ2MUQ.js.map} +1 -1
  84. package/dist/esm/chunks/{chunk.NDGFQILG.js → chunk.NE4NCRRZ.js} +2 -2
  85. package/dist/esm/chunks/chunk.NF4J3Q5X.js +7 -0
  86. package/dist/esm/chunks/chunk.NF4J3Q5X.js.map +7 -0
  87. package/dist/esm/chunks/chunk.OEYALYRM.js +7 -0
  88. package/dist/esm/chunks/chunk.OEYALYRM.js.map +7 -0
  89. package/dist/esm/chunks/{chunk.GHSAKRYH.js → chunk.OKKH7F7M.js} +2 -2
  90. package/dist/esm/chunks/{chunk.AGMPIMJV.js → chunk.QL45FKVJ.js} +2 -2
  91. package/dist/esm/chunks/{chunk.AGMPIMJV.js.map → chunk.QL45FKVJ.js.map} +2 -2
  92. package/dist/esm/chunks/chunk.QU76MOCS.js +12 -0
  93. package/dist/esm/chunks/chunk.QU76MOCS.js.map +7 -0
  94. package/dist/esm/chunks/{chunk.5PHLKON3.js → chunk.R5HZFOUK.js} +2 -2
  95. package/dist/esm/chunks/{chunk.5PHLKON3.js.map → chunk.R5HZFOUK.js.map} +2 -2
  96. package/dist/esm/chunks/chunk.SAXRW6GB.js +7 -0
  97. package/dist/esm/chunks/chunk.SAXRW6GB.js.map +7 -0
  98. package/dist/esm/chunks/{chunk.2IQGDFQS.js → chunk.SEP3L4QL.js} +2 -2
  99. package/dist/esm/chunks/{chunk.2IQGDFQS.js.map → chunk.SEP3L4QL.js.map} +1 -1
  100. package/dist/esm/chunks/{chunk.Z5TWWM7I.js → chunk.SN5LPTHH.js} +2 -2
  101. package/dist/esm/chunks/{chunk.Z5TWWM7I.js.map → chunk.SN5LPTHH.js.map} +1 -1
  102. package/dist/esm/chunks/{chunk.CNQESSA3.js → chunk.UKFJHDO7.js} +2 -2
  103. package/dist/esm/chunks/{chunk.IGK3VYZG.js → chunk.VI2GRQO3.js} +2 -2
  104. package/dist/esm/chunks/{chunk.A5MBSCSQ.js → chunk.VNOJO2PF.js} +2 -2
  105. package/dist/esm/chunks/chunk.W7PZTNZ4.js +7 -0
  106. package/dist/esm/chunks/chunk.W7PZTNZ4.js.map +7 -0
  107. package/dist/esm/chunks/{chunk.2YX7ASSX.js → chunk.WXN4S7CN.js} +2 -2
  108. package/dist/esm/chunks/{chunk.ER52NFXX.js → chunk.X5BG35YX.js} +2 -2
  109. package/dist/esm/chunks/{chunk.THPU5KBV.js → chunk.XRESQBNE.js} +2 -2
  110. package/dist/esm/chunks/{chunk.632OMHHN.js → chunk.YDY2IGBF.js} +2 -2
  111. package/dist/esm/chunks/{chunk.632OMHHN.js.map → chunk.YDY2IGBF.js.map} +1 -1
  112. package/dist/esm/chunks/{chunk.QYKO543K.js → chunk.YWCLKUK7.js} +2 -2
  113. package/dist/esm/chunks/{chunk.QA3NU7EN.js → chunk.Z4J4D5FD.js} +2 -2
  114. package/dist/esm/chunks/{chunk.QA3NU7EN.js.map → chunk.Z4J4D5FD.js.map} +1 -1
  115. package/dist/esm/chunks/{chunk.V4RBOYNH.js → chunk.ZTGPXIC2.js} +2 -2
  116. package/dist/esm/chunks/{chunk.V4RBOYNH.js.map → chunk.ZTGPXIC2.js.map} +1 -1
  117. package/dist/esm/circular-progress/index.js +1 -1
  118. package/dist/esm/color-picker/index.js +1 -1
  119. package/dist/esm/core/index.js +1 -1
  120. package/dist/esm/core/utils/index.js +1 -1
  121. package/dist/esm/date-picker/index.js +1 -1
  122. package/dist/esm/date-range-picker/index.js +1 -1
  123. package/dist/esm/expansion-panel/index.js +1 -1
  124. package/dist/esm/file-picker/index.js +1 -1
  125. package/dist/esm/focus-indicator/index.js +1 -1
  126. package/dist/esm/icon/index.js +1 -1
  127. package/dist/esm/icon-button/index.js +1 -1
  128. package/dist/esm/index.js +1 -1
  129. package/dist/esm/list/index.js +1 -1
  130. package/dist/esm/list/list/index.js +1 -1
  131. package/dist/esm/list/list-item/index.js +1 -1
  132. package/dist/esm/list-dropdown/index.js +1 -1
  133. package/dist/esm/menu/index.js +1 -1
  134. package/dist/esm/open-icon/index.js +1 -1
  135. package/dist/esm/paginator/index.js +1 -1
  136. package/dist/esm/profile-card/index.js +1 -1
  137. package/dist/esm/quantity-field/index.js +1 -1
  138. package/dist/esm/radio/index.js +1 -1
  139. package/dist/esm/select/core/index.js +1 -1
  140. package/dist/esm/select/index.js +1 -1
  141. package/dist/esm/select/select/index.js +1 -1
  142. package/dist/esm/select/select-dropdown/index.js +1 -1
  143. package/dist/esm/slider/index.js +1 -1
  144. package/dist/esm/split-view/index.js +1 -1
  145. package/dist/esm/split-view/split-view/index.js +1 -1
  146. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  147. package/dist/esm/state-layer/index.js +7 -0
  148. package/dist/esm/state-layer/index.js.map +7 -0
  149. package/dist/esm/stepper/index.js +1 -1
  150. package/dist/esm/stepper/step/index.js +1 -1
  151. package/dist/esm/stepper/stepper/index.js +1 -1
  152. package/dist/esm/switch/index.js +1 -1
  153. package/dist/esm/table/index.js +1 -1
  154. package/dist/esm/tabs/index.js +1 -1
  155. package/dist/esm/tabs/tab/index.js +1 -1
  156. package/dist/esm/tabs/tab-bar/index.js +1 -1
  157. package/dist/esm/text-field/index.js +1 -1
  158. package/dist/esm/time-picker/index.js +1 -1
  159. package/dist/esm/toast/index.js +1 -1
  160. package/dist/forge-dark.css +1 -1
  161. package/dist/forge.css +1 -1
  162. package/dist/icon-button/forge-icon-button.css +1 -1
  163. package/dist/table/forge-table.css +1 -1
  164. package/dist/theme/forge-theme.css +1 -1
  165. package/esm/app-bar/app-bar.js +1 -1
  166. package/esm/banner/banner.js +1 -1
  167. package/esm/bottom-sheet/bottom-sheet.js +1 -1
  168. package/esm/busy-indicator/busy-indicator.js +1 -1
  169. package/esm/button/button.d.ts +1 -0
  170. package/esm/button/button.js +8 -2
  171. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  172. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  173. package/esm/calendar/calendar.js +1 -1
  174. package/esm/checkbox/checkbox-adapter.d.ts +1 -0
  175. package/esm/checkbox/checkbox-adapter.js +9 -2
  176. package/esm/checkbox/checkbox.js +1 -1
  177. package/esm/chip-field/chip-field.js +1 -1
  178. package/esm/chips/chip/chip.js +1 -1
  179. package/esm/circular-progress/circular-progress.d.ts +3 -3
  180. package/esm/circular-progress/circular-progress.js +4 -4
  181. package/esm/color-picker/color-picker.js +1 -1
  182. package/esm/core/testing/pointer.d.ts +13 -0
  183. package/esm/core/testing/pointer.js +42 -0
  184. package/esm/core/utils/utils.d.ts +16 -2
  185. package/esm/core/utils/utils.js +47 -6
  186. package/esm/file-picker/file-picker.js +1 -1
  187. package/esm/focus-indicator/focus-indicator-adapter.d.ts +0 -8
  188. package/esm/focus-indicator/focus-indicator-adapter.js +2 -22
  189. package/esm/focus-indicator/focus-indicator-foundation.js +1 -1
  190. package/esm/focus-indicator/focus-indicator.js +1 -1
  191. package/esm/icon-button/icon-button.d.ts +1 -0
  192. package/esm/icon-button/icon-button.js +9 -2
  193. package/esm/index.d.ts +1 -0
  194. package/esm/index.js +3 -0
  195. package/esm/list/list-item/list-item-adapter.d.ts +3 -3
  196. package/esm/list/list-item/list-item-adapter.js +2 -2
  197. package/esm/list/list-item/list-item-foundation.d.ts +1 -0
  198. package/esm/list/list-item/list-item-foundation.js +8 -1
  199. package/esm/list/list-item/list-item.js +1 -1
  200. package/esm/paginator/paginator.js +1 -1
  201. package/esm/profile-card/profile-card.js +1 -1
  202. package/esm/radio/radio-adapter.d.ts +1 -0
  203. package/esm/radio/radio-adapter.js +9 -2
  204. package/esm/select/select/select.js +1 -1
  205. package/esm/slider/slider-adapter.d.ts +0 -16
  206. package/esm/slider/slider-adapter.js +11 -71
  207. package/esm/slider/slider-constants.d.ts +0 -3
  208. package/esm/slider/slider-constants.js +0 -3
  209. package/esm/slider/slider-foundation.d.ts +0 -1
  210. package/esm/slider/slider-foundation.js +0 -6
  211. package/esm/slider/slider-utils.js +3 -3
  212. package/esm/slider/slider.d.ts +0 -1
  213. package/esm/slider/slider.js +5 -6
  214. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  215. package/esm/state-layer/index.d.ts +10 -0
  216. package/esm/state-layer/index.js +14 -0
  217. package/esm/state-layer/state-layer-adapter.d.ts +41 -0
  218. package/esm/state-layer/state-layer-adapter.js +101 -0
  219. package/esm/state-layer/state-layer-constants.d.ts +79 -0
  220. package/esm/state-layer/state-layer-constants.js +89 -0
  221. package/esm/state-layer/state-layer-foundation.d.ts +57 -0
  222. package/esm/state-layer/state-layer-foundation.js +237 -0
  223. package/esm/state-layer/state-layer-utils.d.ts +26 -0
  224. package/esm/state-layer/state-layer-utils.js +54 -0
  225. package/esm/state-layer/state-layer.d.ts +66 -0
  226. package/esm/state-layer/state-layer.js +96 -0
  227. package/esm/stepper/step/step.js +1 -1
  228. package/esm/switch/switch.js +10 -3
  229. package/esm/tabs/tab/tab-adapter.d.ts +3 -5
  230. package/esm/tabs/tab/tab-adapter.js +6 -15
  231. package/esm/tabs/tab/tab-constants.d.ts +0 -1
  232. package/esm/tabs/tab/tab-constants.js +0 -1
  233. package/esm/tabs/tab/tab-foundation.d.ts +0 -1
  234. package/esm/tabs/tab/tab-foundation.js +1 -3
  235. package/esm/tabs/tab/tab.d.ts +0 -1
  236. package/esm/tabs/tab/tab.js +5 -6
  237. package/esm/tabs/tab-bar/tab-bar.d.ts +2 -2
  238. package/esm/tabs/tab-bar/tab-bar.js +3 -3
  239. package/esm/text-field/text-field.js +1 -1
  240. package/esm/toast/toast.js +1 -1
  241. package/package.json +1 -1
  242. package/styles/app-bar/_mixins.scss +9 -1
  243. package/styles/circular-progress/_mixins.scss +3 -10
  244. package/styles/core/{style-layer → styles}/circular-progress/_core.scss +5 -8
  245. package/styles/core/styles/focus-indicator/_core.scss +5 -0
  246. package/styles/core/styles/focus-indicator/_variables.scss +8 -0
  247. package/styles/core/styles/focus-indicator/index.scss +7 -0
  248. package/styles/core/{style-layer → styles}/slider/_core.scss +13 -31
  249. package/styles/core/styles/state-layer/_core.scss +144 -0
  250. package/styles/core/styles/state-layer/_variables.scss +8 -0
  251. package/styles/core/{style-layer/tabs/tab → styles/state-layer}/index.scss +0 -4
  252. package/styles/core/{style-layer → styles}/tabs/tab/_core.scss +36 -40
  253. package/styles/core/{style-layer → styles}/tabs/tab-bar/_core.scss +2 -2
  254. package/styles/core/{style-layer → styles}/tabs/tab-bar/_variables.scss +1 -1
  255. package/styles/core/styles/tabs/tab-bar/index.scss +7 -0
  256. package/styles/core/styles/tokens/_color-palette.scss +299 -0
  257. package/styles/core/styles/tokens/circular-progress/_tokens.scss +14 -0
  258. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +24 -0
  259. package/styles/core/styles/tokens/index.scss +58 -0
  260. package/styles/core/styles/tokens/state-layer/_tokens.scss +17 -0
  261. package/styles/core/styles/tokens/theme/_tokens.scss +185 -0
  262. package/styles/core/styles/tokens/typography/_tokens.scss +47 -0
  263. package/styles/core/styles/utils/_elevation.scss +5 -0
  264. package/styles/focus-indicator/_mixins.scss +4 -13
  265. package/styles/focus-indicator/_variables.scss +0 -15
  266. package/styles/linear-progress/_mixins.scss +1 -1
  267. package/styles/linear-progress/_variables.scss +1 -1
  268. package/styles/slider/_mixins.scss +8 -1
  269. package/styles/state-layer/_mixins.scss +23 -0
  270. package/styles/state-layer/state-layer.scss +20 -0
  271. package/styles/tabs/tab/_mixins.scss +9 -1
  272. package/styles/tabs/tab/_variables.scss +2 -0
  273. package/styles/tabs/tab-bar/_mixins.scss +2 -1
  274. package/styles/tabs/tab-bar/_variables.scss +2 -2
  275. package/styles/theme/_theme-dark.scss +5 -3
  276. package/styles/theme/_theme.scss +3 -36
  277. package/dist/esm/chunks/chunk.246JM2YT.js +0 -7
  278. package/dist/esm/chunks/chunk.246JM2YT.js.map +0 -7
  279. package/dist/esm/chunks/chunk.2CTK5R37.js +0 -7
  280. package/dist/esm/chunks/chunk.2XFVFZ3P.js +0 -7
  281. package/dist/esm/chunks/chunk.2XFVFZ3P.js.map +0 -7
  282. package/dist/esm/chunks/chunk.57XQ4F6F.js +0 -12
  283. package/dist/esm/chunks/chunk.57XQ4F6F.js.map +0 -7
  284. package/dist/esm/chunks/chunk.5IVB5L5Z.js +0 -7
  285. package/dist/esm/chunks/chunk.5IVB5L5Z.js.map +0 -7
  286. package/dist/esm/chunks/chunk.A5R7KUIP.js +0 -7
  287. package/dist/esm/chunks/chunk.A5R7KUIP.js.map +0 -7
  288. package/dist/esm/chunks/chunk.C2LTB7EX.js +0 -7
  289. package/dist/esm/chunks/chunk.C2LTB7EX.js.map +0 -7
  290. package/dist/esm/chunks/chunk.EUE3OVC7.js.map +0 -7
  291. package/dist/esm/chunks/chunk.GUYPITGA.js +0 -7
  292. package/dist/esm/chunks/chunk.GUYPITGA.js.map +0 -7
  293. package/dist/esm/chunks/chunk.JQIOVCKI.js +0 -7
  294. package/dist/esm/chunks/chunk.JQIOVCKI.js.map +0 -7
  295. package/dist/esm/chunks/chunk.LJYTJ3RV.js +0 -7
  296. package/dist/esm/chunks/chunk.LJYTJ3RV.js.map +0 -7
  297. package/dist/esm/chunks/chunk.NVMILGC2.js +0 -7
  298. package/dist/esm/chunks/chunk.NVMILGC2.js.map +0 -7
  299. package/esm/slider/slider-handle-ripple.d.ts +0 -18
  300. package/esm/slider/slider-handle-ripple.js +0 -37
  301. package/esm/tabs/tab/tab-ripple.d.ts +0 -17
  302. package/esm/tabs/tab/tab-ripple.js +0 -33
  303. package/styles/circular-progress/_variables.scss +0 -12
  304. /package/dist/esm/chunks/{chunk.TXFYS6EU.js.map → chunk.33EJTOVA.js.map} +0 -0
  305. /package/dist/esm/chunks/{chunk.OTVT3XM2.js.map → chunk.3JDFBEF7.js.map} +0 -0
  306. /package/dist/esm/chunks/{chunk.V6JVHYVW.js.map → chunk.44UCSD46.js.map} +0 -0
  307. /package/dist/esm/chunks/{chunk.7JQHQKXN.js.map → chunk.6MPXRRMB.js.map} +0 -0
  308. /package/dist/esm/chunks/{chunk.MXNLCQRB.js.map → chunk.6VDF54LZ.js.map} +0 -0
  309. /package/dist/esm/chunks/{chunk.4EB5NVCK.js.map → chunk.AHHNJSZK.js.map} +0 -0
  310. /package/dist/esm/chunks/{chunk.BSTIDYQJ.js.map → chunk.BBWMSCVG.js.map} +0 -0
  311. /package/dist/esm/chunks/{chunk.BKCEVPKW.js.map → chunk.BDCJIRNK.js.map} +0 -0
  312. /package/dist/esm/chunks/{chunk.IIXLFXHZ.js.map → chunk.BSVFCJCQ.js.map} +0 -0
  313. /package/dist/esm/chunks/{chunk.SYZB7B4F.js.map → chunk.CL65KLH7.js.map} +0 -0
  314. /package/dist/esm/chunks/{chunk.4LVS2EYJ.js.map → chunk.DFGBVJBE.js.map} +0 -0
  315. /package/dist/esm/chunks/{chunk.YUAU5IWT.js.map → chunk.F776DWXU.js.map} +0 -0
  316. /package/dist/esm/chunks/{chunk.2QFIMTVP.js.map → chunk.GT3XBPZY.js.map} +0 -0
  317. /package/dist/esm/chunks/{chunk.5MK5YWCK.js.map → chunk.HUGRRRQA.js.map} +0 -0
  318. /package/dist/esm/chunks/{chunk.GJW4WS4I.js.map → chunk.HXJCTE47.js.map} +0 -0
  319. /package/dist/esm/chunks/{chunk.RUSHOL23.js.map → chunk.JAAJDT5E.js.map} +0 -0
  320. /package/dist/esm/chunks/{chunk.FAANPQES.js.map → chunk.JL4XB4RI.js.map} +0 -0
  321. /package/dist/esm/chunks/{chunk.2LRDPTHK.js.map → chunk.M2M47T4L.js.map} +0 -0
  322. /package/dist/esm/chunks/{chunk.NDGFQILG.js.map → chunk.NE4NCRRZ.js.map} +0 -0
  323. /package/dist/esm/chunks/{chunk.GHSAKRYH.js.map → chunk.OKKH7F7M.js.map} +0 -0
  324. /package/dist/esm/chunks/{chunk.CNQESSA3.js.map → chunk.UKFJHDO7.js.map} +0 -0
  325. /package/dist/esm/chunks/{chunk.IGK3VYZG.js.map → chunk.VI2GRQO3.js.map} +0 -0
  326. /package/dist/esm/chunks/{chunk.A5MBSCSQ.js.map → chunk.VNOJO2PF.js.map} +0 -0
  327. /package/dist/esm/chunks/{chunk.2YX7ASSX.js.map → chunk.WXN4S7CN.js.map} +0 -0
  328. /package/dist/esm/chunks/{chunk.ER52NFXX.js.map → chunk.X5BG35YX.js.map} +0 -0
  329. /package/dist/esm/chunks/{chunk.THPU5KBV.js.map → chunk.XRESQBNE.js.map} +0 -0
  330. /package/dist/esm/chunks/{chunk.QYKO543K.js.map → chunk.YWCLKUK7.js.map} +0 -0
  331. /package/styles/core/{style-layer → styles}/circular-progress/_animations.scss +0 -0
  332. /package/styles/core/{style-layer → styles}/circular-progress/_variables.scss +0 -0
  333. /package/styles/core/{style-layer → styles}/circular-progress/index.scss +0 -0
  334. /package/styles/core/{style-layer → styles}/core/_config.scss +0 -0
  335. /package/styles/core/{style-layer → styles}/linear-progress/_animations.scss +0 -0
  336. /package/styles/core/{style-layer → styles}/linear-progress/_core.scss +0 -0
  337. /package/styles/core/{style-layer → styles}/linear-progress/_variables.scss +0 -0
  338. /package/styles/core/{style-layer → styles}/linear-progress/index.scss +0 -0
  339. /package/styles/core/{style-layer → styles}/slider/_functions.scss +0 -0
  340. /package/styles/core/{style-layer → styles}/slider/_variables.scss +0 -0
  341. /package/styles/core/{style-layer → styles}/slider/index.scss +0 -0
  342. /package/styles/core/{style-layer → styles}/tabs/tab/_variables.scss +0 -0
  343. /package/styles/core/{style-layer/tabs/tab-bar → styles/tabs/tab}/index.scss +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/checkbox/checkbox-constants.ts", "../../src/checkbox/checkbox-foundation.ts", "../../src/checkbox/checkbox-adapter.ts", "../../src/checkbox/checkbox.ts", "../../src/checkbox/checkbox-component-delegate.ts", "../../src/checkbox/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}checkbox`;\n\nconst classes = {\n CONTAINER: 'forge-checkbox-container',\n ROOT: 'mdc-checkbox',\n CHECKBOX: 'mdc-checkbox',\n CHECKBOX_DENSE: 'forge-checkbox--dense',\n ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate',\n ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked',\n ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked',\n ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked',\n ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked',\n ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate',\n BACKGROUND: 'mdc-checkbox__background',\n CHECKMARK: 'mdc-checkbox__checkmark',\n CHECKMARK_PATH: 'mdc-checkbox__checkmark-path',\n DISABLED: 'mdc-checkbox--disabled',\n WRAPPER_DISABLED: 'forge-checkbox-wrapper--disabled',\n MIXEDMARK: 'mdc-checkbox__mixedmark',\n SELECTED: 'mdc-checkbox--selected',\n UPGRADED: 'mdc-checkbox--upgraded',\n CHECKED: 'forge-checkbox--checked',\n INDETERMINATE: 'forge-checkbox--indeterminate',\n FOCUSED: 'forge-checkbox--focused',\n ENABLED: 'forge-checkbox--enabled'\n};\n\nconst selectors = {\n INPUT: 'input',\n LABEL: 'label',\n ROOT: `.${classes.ROOT}`,\n WRAPPER: '.forge-checkbox-wrapper'\n};\n\nconst attributes = {\n DENSE: 'dense',\n CHECKED: 'checked',\n SLOT: 'slot',\n DISABLED: 'disabled',\n INDETERMINATE: 'indeterminate'\n};\n\nexport const strings = {\n ARIA_CHECKED_ATTR: 'aria-checked',\n ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed',\n DATA_INDETERMINATE_ATTR: 'data-indeterminate',\n NATIVE_CONTROL_SELECTOR: '.mdc-checkbox__native-control',\n TRANSITION_STATE_CHECKED: 'checked',\n TRANSITION_STATE_INDETERMINATE: 'indeterminate',\n TRANSITION_STATE_INIT: 'init',\n TRANSITION_STATE_UNCHECKED: 'unchecked'\n};\n\nconst CB_PROTO_PROPS = ['checked', 'indeterminate', 'disabled'];\n\nexport const numbers = {\n ANIM_END_LATCH_MS: 250\n};\n\nexport const CHECKBOX_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n strings,\n CB_PROTO_PROPS,\n numbers\n};\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ICheckboxAdapter } from './checkbox-adapter';\nimport { CHECKBOX_CONSTANTS } from './checkbox-constants';\n\nexport interface ICheckboxFoundation extends ICustomElementFoundation {\n dense: boolean;\n}\n\nexport class CheckboxFoundation implements ICheckboxFoundation {\n private _dense = false;\n private _currentCheckState = CHECKBOX_CONSTANTS.strings.TRANSITION_STATE_INIT;\n private _currentAnimationClass = '';\n private _animEndLatchTimer = 0;\n private _enableAnimationEndHandler = false;\n\n private _handleChange!: () => void;\n private _inputAttributeChangedListener: (name: string, value: string) => void;\n private _handleAnimationEnd: () => void;\n\n constructor(private _adapter: ICheckboxAdapter) {}\n\n public disconnect(): void {\n this._adapter.unlisten('change', this._handleChange);\n this._adapter.disconnect();\n this._adapter.uninstallPropertyChangeHooks();\n this._adapter.unlisten('animationend', this._handleAnimationEnd);\n }\n\n public connect(): void {\n this._adapter.initialize();\n this._currentCheckState = this._determineCheckState();\n this._setDense(this.dense);\n this._updateAriaChecked();\n this._inputAttributeChangedListener = (name, value) => this._handleInputAttributeChange();\n this._adapter.setInputAttributeObserver((name, value) => this._inputAttributeChangedListener(name, value));\n\n this._handleChange = () => this._handleInputChange();\n this._adapter.listen('change', this._handleChange);\n this._adapter.installPropertyChangeHooks(() => {\n this._handleInputChange();\n });\n this._handleAnimationEnd = () => this.handleAnimationEnd();\n this._adapter.listen('animationend', this._handleAnimationEnd, true);\n\n this._handleInputChange();\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._setDense(value);\n }\n }\n\n public handleAnimationEnd(): void {\n if (!this._enableAnimationEndHandler) {\n return;\n }\n\n const handler: TimerHandler = () => {\n this._adapter.removeRootClass(this._currentAnimationClass);\n this._enableAnimationEndHandler = false;\n };\n\n clearTimeout(this._animEndLatchTimer);\n this._animEndLatchTimer = setTimeout(handler, CHECKBOX_CONSTANTS.numbers.ANIM_END_LATCH_MS);\n }\n\n private _setDense(value: boolean): void {\n this._adapter.setDense(value);\n }\n\n private _determineCheckState(): string {\n const { TRANSITION_STATE_INDETERMINATE, TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED } = CHECKBOX_CONSTANTS.strings;\n\n if (this._adapter.isIndeterminate()) {\n return TRANSITION_STATE_INDETERMINATE;\n }\n\n return this._adapter.isChecked() ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED;\n }\n\n private _updateAriaChecked(): void {\n const { ARIA_CHECKED_INDETERMINATE_VALUE, ARIA_CHECKED_ATTR } = CHECKBOX_CONSTANTS.strings;\n // Ensure aria-checked is set to mixed if checkbox is in indeterminate state.\n if (this._adapter.isIndeterminate()) {\n this._adapter.setNativeAttribute(ARIA_CHECKED_ATTR, ARIA_CHECKED_INDETERMINATE_VALUE);\n this._adapter.setRootClass(CHECKBOX_CONSTANTS.classes.INDETERMINATE);\n if (!this._adapter.isChecked()) {\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.CHECKED);\n }\n } else {\n // The on/off state does not need to keep track of aria-checked, since\n // the screenreader uses the checked property on the checkbox element.\n this._adapter.removeNativeAttribute(ARIA_CHECKED_ATTR);\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.INDETERMINATE);\n }\n }\n\n private _handleInputChange(): void {\n this._handleInputAttributeChange();\n this._updateCheckboxStateClasses();\n this._transitionCheckState();\n }\n\n private _transitionCheckState(): void {\n if (!this._adapter.isAttachedToDOM()) {\n return;\n }\n const oldState = this._currentCheckState;\n const newState = this._determineCheckState();\n\n if (oldState === newState) {\n return;\n }\n\n this._updateAriaChecked();\n\n const { TRANSITION_STATE_UNCHECKED } = CHECKBOX_CONSTANTS.strings;\n const { SELECTED } = CHECKBOX_CONSTANTS.classes;\n if (newState === TRANSITION_STATE_UNCHECKED) {\n this._adapter.removeRootClass(SELECTED);\n } else {\n this._adapter.setRootClass(SELECTED);\n }\n\n // Check to ensure that there isn't a previously existing animation class, in case for example\n // the user interacted with the checkbox before the animation was finished.\n if (this._currentAnimationClass.length > 0) {\n clearTimeout(this._animEndLatchTimer);\n this._adapter.removeRootClass(this._currentAnimationClass);\n }\n // Check to ensure that there isn't a previously existing animation class, in case for example\n // the user interacted with the checkbox before the animation was finished.\n if (this._currentAnimationClass.length > 0) {\n clearTimeout(this._animEndLatchTimer);\n this._adapter.removeRootClass(this._currentAnimationClass);\n }\n\n this._currentAnimationClass = this._getTransitionAnimationClass(oldState, newState);\n this._currentCheckState = newState;\n\n // Check for parentNode so that animations are only run when the element is attached\n // to the DOM.\n if (this._adapter.isAttachedToDOM() && this._currentAnimationClass.length > 0) {\n this._adapter.setRootClass(this._currentAnimationClass);\n this._enableAnimationEndHandler = true;\n }\n }\n\n private _handleInputAttributeChange(): void {\n if (this._adapter.isDisabled()) {\n this._adapter.setRootClass(CHECKBOX_CONSTANTS.classes.DISABLED);\n this._adapter.setWrapperClass(CHECKBOX_CONSTANTS.classes.WRAPPER_DISABLED);\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.ENABLED);\n } else {\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.DISABLED);\n this._adapter.removeWrapperClass(CHECKBOX_CONSTANTS.classes.WRAPPER_DISABLED);\n this._adapter.setRootClass(CHECKBOX_CONSTANTS.classes.ENABLED);\n }\n\n this._updateCheckboxStateClasses();\n }\n\n private _getTransitionAnimationClass(oldState: string, newState: string): string {\n const { TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED } = CHECKBOX_CONSTANTS.strings;\n\n const {\n ANIM_UNCHECKED_CHECKED,\n ANIM_UNCHECKED_INDETERMINATE,\n ANIM_CHECKED_UNCHECKED,\n ANIM_CHECKED_INDETERMINATE,\n ANIM_INDETERMINATE_CHECKED,\n ANIM_INDETERMINATE_UNCHECKED\n } = CHECKBOX_CONSTANTS.classes;\n\n switch (oldState) {\n case TRANSITION_STATE_UNCHECKED:\n return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE;\n case TRANSITION_STATE_CHECKED:\n return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE;\n default:\n // TRANSITION_STATE_INDETERMINATE\n // Handles TRANSITION_STATE_INIT\n return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;\n }\n }\n\n private _updateCheckboxStateClasses(): void {\n // Since we can't use the ::slotted():checked ~ selector, simulating the same functionality with classes\n if (this._adapter.isChecked()) {\n this._adapter.setRootClass(CHECKBOX_CONSTANTS.classes.CHECKED);\n } else {\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.CHECKED);\n }\n\n if (this._adapter.isIndeterminate()) {\n this._adapter.setRootClass(CHECKBOX_CONSTANTS.classes.INDETERMINATE);\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.CHECKED);\n } else {\n this._adapter.removeRootClass(CHECKBOX_CONSTANTS.classes.INDETERMINATE);\n }\n }\n}\n", "import { addClass, getShadowElement, removeClass } from '@tylertech/forge-core';\nimport { createUserInteractionListener } from '../core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { ForgeRipple, ForgeRippleAdapter, ForgeRippleCapableSurface, ForgeRippleFoundation } from '../ripple';\nimport { ICheckboxComponent } from './checkbox';\nimport { CHECKBOX_CONSTANTS } from './checkbox-constants';\n\ntype PropertyDescriptorGetter = (() => unknown) | undefined;\n\nexport interface ICheckboxAdapter extends IBaseAdapter {\n isAttachedToDOM(): boolean;\n isDisabled(): boolean;\n isChecked(): boolean;\n isIndeterminate(): boolean;\n setRootClass(classes: string | string[]): void;\n removeRootClass(classes: string | string[]): void;\n setWrapperClass(classes: string | string[]): void;\n removeWrapperClass(classes: string | string[]): void;\n setDense(value: boolean): void;\n initialize(): void;\n disconnect(): void;\n // Sets attributes on the native checkbox element\n setNativeAttribute(qualifiedName: string, value: string): void;\n removeNativeAttribute(qualifiedName: string): void;\n listen(qualifiedName: string, callback: () => void, onRoot?: boolean): void;\n unlisten(qualifiedName: string, callback: () => void, onRoot?: boolean): void;\n installPropertyChangeHooks(callback: () => void): void;\n uninstallPropertyChangeHooks(): void;\n setInputAttributeObserver(listener: (name: string, value: string) => void): void;\n}\n\nexport class CheckboxAdapter extends BaseAdapter<ICheckboxComponent> implements ICheckboxAdapter, ForgeRippleCapableSurface {\n private _wrapperElement: HTMLElement;\n private _rootElement: HTMLElement;\n private _inputElement: HTMLInputElement;\n private _labelElement: HTMLLabelElement;\n private _inputFocusHandler: () => void;\n private _inputBlurHandler: () => void;\n private _inputMutationObserver: MutationObserver;\n private _rippleInstance: ForgeRipple | undefined;\n private _destroyUserInteractionListener: (() => void) | undefined;\n\n constructor(component: ICheckboxComponent) {\n super(component);\n }\n\n // ForgeRippleCapableSurface\n public get root(): Element {\n return this._rootElement;\n }\n\n public get unbounded(): boolean | undefined {\n return true;\n }\n\n public get disabled(): boolean | undefined {\n return this.isDisabled();\n }\n\n public initialize(): void {\n this._configureElements();\n this._attachInternalInputListeners();\n this._deferRippleInitialization();\n }\n\n private async _deferRippleInitialization(): Promise<void> {\n const { userInteraction, destroy } = createUserInteractionListener(this._rootElement);\n this._destroyUserInteractionListener = destroy;\n const { type } = await userInteraction;\n this._destroyUserInteractionListener = undefined;\n if (!this._rippleInstance) {\n this._rippleInstance = this._createRipple();\n if (type === 'focusin') {\n this._rippleInstance.handleFocus();\n }\n }\n }\n\n public setDense(value: boolean | undefined): void {\n if (value) {\n this._setHostAttribute(CHECKBOX_CONSTANTS.attributes.DENSE);\n this.setRootClass(CHECKBOX_CONSTANTS.classes.CHECKBOX_DENSE);\n } else {\n this._removeHostAttribute(CHECKBOX_CONSTANTS.attributes.DENSE);\n this.removeRootClass(CHECKBOX_CONSTANTS.classes.CHECKBOX_DENSE);\n }\n\n this._rippleInstance?.layout();\n }\n\n public isAttachedToDOM(): boolean {\n return Boolean(this._component.parentNode);\n }\n\n private _configureElements(): void {\n this._inputElement = this._component.querySelector(CHECKBOX_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n this._wrapperElement = getShadowElement(this._component, CHECKBOX_CONSTANTS.selectors.WRAPPER);\n this._rootElement = getShadowElement(this._component, CHECKBOX_CONSTANTS.selectors.ROOT);\n this._labelElement = this._component.querySelector(CHECKBOX_CONSTANTS.selectors.LABEL) as HTMLLabelElement;\n\n if (this._labelElement) {\n this._labelElement.setAttribute(CHECKBOX_CONSTANTS.attributes.SLOT, CHECKBOX_CONSTANTS.selectors.LABEL);\n }\n if (this._inputElement) {\n this._inputElement.setAttribute(CHECKBOX_CONSTANTS.attributes.SLOT, CHECKBOX_CONSTANTS.selectors.INPUT);\n }\n addClass(CHECKBOX_CONSTANTS.classes.UPGRADED, this._rootElement);\n }\n\n private _setHostAttribute(name: string, value = ''): void {\n this._component.setAttribute(name, value);\n }\n\n private _removeHostAttribute(name: string): void {\n this._component.removeAttribute(name);\n }\n\n public disconnect(): void {\n if (this._labelElement) {\n this._labelElement.removeAttribute(CHECKBOX_CONSTANTS.attributes.SLOT);\n }\n\n if (this._inputElement) {\n this._inputElement.removeAttribute(CHECKBOX_CONSTANTS.attributes.SLOT);\n }\n\n if (this._inputMutationObserver) {\n this._inputMutationObserver.disconnect();\n }\n\n this._detachInternalInputListeners();\n\n if (typeof this._destroyUserInteractionListener === 'function') {\n this._destroyUserInteractionListener();\n this._destroyUserInteractionListener = undefined;\n }\n\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n }\n\n public setRootClass(classes: string | string[]): void {\n if (this._rootElement) {\n addClass(classes, this._rootElement);\n }\n }\n\n public removeRootClass(classes: string | string[]): void {\n if (this._rootElement) {\n removeClass(classes, this._rootElement);\n }\n }\n\n public setWrapperClass(classes: string | string[]): void {\n if (this._wrapperElement) {\n addClass(classes, this._wrapperElement);\n }\n }\n\n public removeWrapperClass(classes: string | string[]): void {\n if (this._wrapperElement) {\n removeClass(classes, this._wrapperElement);\n }\n }\n\n public setNativeAttribute(qualifiedName: string, value: string): void {\n this._inputElement.setAttribute(qualifiedName, value);\n }\n\n public isDisabled(): boolean {\n return this._inputElement.disabled;\n }\n\n public isChecked(): boolean {\n return this._inputElement && this._inputElement.checked;\n }\n public isIndeterminate(): boolean {\n return this._inputElement && this._inputElement.indeterminate;\n }\n\n public removeNativeAttribute(qualifiedName: string): void {\n this._inputElement.removeAttribute(qualifiedName);\n }\n\n public installPropertyChangeHooks(callback: () => void): void {\n const nativeCb = this._inputElement;\n const cbProto = Object.getPrototypeOf(nativeCb);\n\n CHECKBOX_CONSTANTS.CB_PROTO_PROPS.forEach(controlState => {\n const desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n // We have to check for this descriptor, since some browsers (Safari) don't support its return.\n // See: https://bugs.webkit.org/show_bug.cgi?id=49739\n if (!this._validDescriptor(desc)) {\n return;\n }\n\n // Type cast is needed for compatibility with Closure Compiler.\n const nativeGetter = (desc as { get: PropertyDescriptorGetter }).get;\n\n if (desc) {\n const nativeCbDesc = {\n configurable: desc.configurable,\n enumerable: desc.enumerable,\n get: nativeGetter,\n set: (state: boolean) => {\n desc.set?.call(nativeCb, state);\n callback();\n }\n };\n Object.defineProperty(nativeCb, controlState, nativeCbDesc);\n }\n });\n }\n\n public listen(qualifiedName: string, callback: () => void, onRoot = false): void {\n if (onRoot) {\n this._rootElement.addEventListener(qualifiedName, callback);\n } else {\n this._inputElement.addEventListener(qualifiedName, callback);\n }\n }\n\n public unlisten(qualifiedName: string, callback: () => void, onRoot = false): void {\n if (!this._inputElement) {\n return;\n }\n\n if (onRoot) {\n this._rootElement.removeEventListener(qualifiedName, callback);\n } else {\n this._inputElement.removeEventListener(qualifiedName, callback);\n }\n }\n\n public uninstallPropertyChangeHooks(): void {\n if (!this._inputElement) {\n return;\n }\n\n const nativeCb = this._inputElement;\n const cbProto = Object.getPrototypeOf(nativeCb);\n\n CHECKBOX_CONSTANTS.CB_PROTO_PROPS.forEach(controlState => {\n const desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n if (!this._validDescriptor(desc)) {\n return;\n }\n Object.defineProperty(nativeCb, controlState, desc);\n });\n }\n\n public setInputAttributeObserver(listener: (name: string, value: string) => void): void {\n this._inputMutationObserver = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName) {\n listener(mutation.attributeName, this._inputElement.getAttribute(mutation.attributeName) as string);\n }\n }\n });\n this._inputMutationObserver.observe(this._inputElement, {\n attributes: true,\n attributeFilter: ['disabled', 'checked']\n });\n }\n\n private _validDescriptor(inputPropDesc: PropertyDescriptor | undefined): inputPropDesc is PropertyDescriptor {\n return !!inputPropDesc && typeof inputPropDesc.set === 'function';\n }\n\n private _attachInternalInputListeners(): void {\n this._inputFocusHandler = () => this._handleInputFocusListener();\n this._inputBlurHandler = () => this._handleInputBlurListener();\n this._inputElement.addEventListener('focus', this._inputFocusHandler);\n this._inputElement.addEventListener('blur', this._inputBlurHandler);\n }\n\n private _detachInternalInputListeners(): void {\n removeEventListener('focus', this._inputFocusHandler);\n removeEventListener('blur', this._inputBlurHandler);\n }\n\n private _handleInputFocusListener(): void {\n addClass(CHECKBOX_CONSTANTS.classes.FOCUSED, this._rootElement);\n }\n\n private _handleInputBlurListener(): void {\n removeClass(CHECKBOX_CONSTANTS.classes.FOCUSED, this._rootElement);\n }\n\n private _createRipple(): ForgeRipple {\n const adapter: ForgeRippleAdapter = {\n ...ForgeRipple.createAdapter(this),\n deregisterInteractionHandler: (evtType, handler) => this._inputElement.removeEventListener(evtType, handler, { passive: true } as AddEventListenerOptions),\n isSurfaceActive: () => this._inputElement.matches(':active'),\n isUnbounded: () => Boolean(this.unbounded),\n registerInteractionHandler: (evtType, handler) => this._inputElement.addEventListener(evtType, handler, { passive: true }),\n isSurfaceDisabled: () => this._inputElement.disabled,\n addClass: (className: string) => addClass(className, this._rootElement),\n removeClass: (className: string) => removeClass(className, this._rootElement),\n updateCssVariable: (varName: string, value: string | null) => this._rootElement.style.setProperty(varName, value)\n };\n const ripple = new ForgeRipple(this._rootElement, new ForgeRippleFoundation(adapter));\n return ripple;\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { CHECKBOX_CONSTANTS } from './checkbox-constants';\nimport { CheckboxFoundation } from './checkbox-foundation';\nimport { CheckboxAdapter } from './checkbox-adapter';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-checkbox-wrapper forge-form-field\\\" part=\\\"root\\\"><div class=\\\"mdc-checkbox\\\" part=\\\"container\\\"><slot name=\\\"input\\\"></slot><div class=\\\"mdc-checkbox__background\\\" part=\\\"background\\\"><svg class=\\\"mdc-checkbox__checkmark\\\" viewBox=\\\"0 0 24 24\\\" part=\\\"checkmark-svg\\\"><path class=\\\"mdc-checkbox__checkmark-path\\\" fill=\\\"none\\\" d=\\\"M1.73,12.91 8.1,19.28 22.79,4.59\\\" part=\\\"checkmark-path\\\"></path></svg><div class=\\\"mdc-checkbox__mixedmark\\\" part=\\\"mixedmark\\\"></div></div><div class=\\\"mdc-checkbox__ripple\\\" part=\\\"ripple-container\\\"></div></div><slot name=\\\"label\\\"></slot></div></template>';\nconst styles = '.mdc-checkbox{padding:calc((40px - 18px)/ 2);padding:calc((var(--mdc-checkbox-ripple-size,40px) - 18px)/ 2);margin:calc((40px - 40px)/ 2);margin:calc((var(--mdc-checkbox-ripple-size,40px) - var(--mdc-checkbox-ripple-size,40px))/ 2)}.mdc-checkbox .mdc-checkbox__ripple::after,.mdc-checkbox .mdc-checkbox__ripple::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.mdc-checkbox.mdc-ripple-surface--hover .mdc-checkbox__ripple::before,.mdc-checkbox:hover .mdc-checkbox__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-checkbox:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-checkbox.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after,.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before{background-color:#3d5afe;background-color:var(--forge-theme-tertiary,#3d5afe)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-surface--hover .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after,.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before{background-color:#3d5afe;background-color:var(--forge-theme-tertiary,#3d5afe)}.mdc-checkbox .mdc-checkbox__background{top:calc((40px - 18px)/ 2);top:calc((var(--mdc-checkbox-ripple-size,40px) - 18px)/ 2);left:calc((40px - 18px)/ 2);left:calc((var(--mdc-checkbox-ripple-size,40px) - 18px)/ 2)}.mdc-checkbox ::slotted(input[type=checkbox]){top:calc((40px - 40px)/ 2);top:calc((var(--mdc-checkbox-ripple-size,40px) - var(--mdc-checkbox-ripple-size,40px))/ 2);right:calc((40px - 40px)/ 2);right:calc((var(--mdc-checkbox-ripple-size,40px) - var(--mdc-checkbox-ripple-size,40px))/ 2);left:calc((40px - 40px)/ 2);left:calc((var(--mdc-checkbox-ripple-size,40px) - var(--mdc-checkbox-ripple-size,40px))/ 2);width:40px;width:var(--mdc-checkbox-ripple-size,40px);height:40px;height:var(--mdc-checkbox-ripple-size,40px)}.mdc-checkbox.forge-checkbox--enabled:not(.forge-checkbox--checked):not(.forge-checkbox--indeterminate) .mdc-checkbox__background{border-color:#000;border-color:var(--mdc-theme-text-secondary-on-background,#000);background-color:transparent}.mdc-checkbox.forge-checkbox--enabled.forge-checkbox--checked .mdc-checkbox__background,.mdc-checkbox.forge-checkbox--enabled.forge-checkbox--indeterminate .mdc-checkbox__background{border-color:#3d5afe;border-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe));background-color:#3d5afe;background-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe))}@-webkit-keyframes mdc-checkbox-fade-in-background-FF000000FF3D5AFE00000000FF3D5AFE{0%{border-color:#000;border-color:var(--mdc-theme-text-secondary-on-background,#000);background-color:transparent}50%{border-color:#3d5afe;border-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe));background-color:#3d5afe;background-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe))}}@keyframes mdc-checkbox-fade-in-background-FF000000FF3D5AFE00000000FF3D5AFE{0%{border-color:#000;border-color:var(--mdc-theme-text-secondary-on-background,#000);background-color:transparent}50%{border-color:#3d5afe;border-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe));background-color:#3d5afe;background-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe))}}@-webkit-keyframes mdc-checkbox-fade-out-background-FF000000FF3D5AFE00000000FF3D5AFE{0%,80%{border-color:#3d5afe;border-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe));background-color:#3d5afe;background-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe))}100%{border-color:#000;border-color:var(--mdc-theme-text-secondary-on-background,#000);background-color:transparent}}@keyframes mdc-checkbox-fade-out-background-FF000000FF3D5AFE00000000FF3D5AFE{0%,80%{border-color:#3d5afe;border-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe));background-color:#3d5afe;background-color:var(--mdc-checkbox-checked-color,var(--forge-theme-tertiary,#3d5afe))}100%{border-color:#000;border-color:var(--mdc-theme-text-secondary-on-background,#000);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked.forge-checkbox--enabled .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate.forge-checkbox--enabled .mdc-checkbox__background{-webkit-animation-name:mdc-checkbox-fade-in-background-FF000000FF3D5AFE00000000FF3D5AFE;animation-name:mdc-checkbox-fade-in-background-FF000000FF3D5AFE00000000FF3D5AFE}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked.forge-checkbox--enabled .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked.forge-checkbox--enabled .mdc-checkbox__background{-webkit-animation-name:mdc-checkbox-fade-out-background-FF000000FF3D5AFE00000000FF3D5AFE;animation-name:mdc-checkbox-fade-out-background-FF000000FF3D5AFE00000000FF3D5AFE}.mdc-checkbox.mdc-checkbox--disabled:not(.forge-checkbox--checked):not(.forge-checkbox--indeterminate) .mdc-checkbox__background{border-color:#000;border-color:var(--forge-theme-form-field-icon-disabled-on-background,#000);background-color:transparent}.mdc-checkbox.mdc-checkbox--disabled.forge-checkbox--checked .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--disabled.forge-checkbox--indeterminate .mdc-checkbox__background{border-color:transparent;background-color:#000;background-color:var(--forge-theme-form-field-icon-disabled-on-background,#000)}.mdc-checkbox.forge-checkbox--enabled .mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff)}.mdc-checkbox.forge-checkbox--enabled .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-theme-text-primary-on-dark,#fff)}.mdc-checkbox.mdc-checkbox--disabled .mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff)}.mdc-checkbox.mdc-checkbox--disabled .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-theme-text-primary-on-dark,#fff)}@-webkit-keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}100%{stroke-dashoffset:0}}@-webkit-keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{-webkit-transform:scaleX(0);transform:scaleX(0)}68.2%{-webkit-animation-timing-function:cubic-bezier(0,0,0,1);animation-timing-function:cubic-bezier(0,0,0,1)}100%{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{-webkit-transform:scaleX(0);transform:scaleX(0)}68.2%{-webkit-animation-timing-function:cubic-bezier(0,0,0,1);animation-timing-function:cubic-bezier(0,0,0,1)}100%{-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,1,1);animation-timing-function:cubic-bezier(0.4,0,1,1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,1,1);animation-timing-function:cubic-bezier(0.4,0,1,1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@-webkit-keyframes mdc-checkbox-checked-indeterminate-checkmark{from{-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@-webkit-keyframes mdc-checkbox-indeterminate-checked-checkmark{from{-webkit-animation-timing-function:cubic-bezier(0.14,0,0,1);animation-timing-function:cubic-bezier(0.14,0,0,1);-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{-webkit-animation-timing-function:cubic-bezier(0.14,0,0,1);animation-timing-function:cubic-bezier(0.14,0,0,1);-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:1}}@-webkit-keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{-webkit-animation-timing-function:mdc-animation-deceleration-curve-timing-function;animation-timing-function:mdc-animation-deceleration-curve-timing-function;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{-webkit-animation-timing-function:mdc-animation-deceleration-curve-timing-function;animation-timing-function:mdc-animation-deceleration-curve-timing-function;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@-webkit-keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{-webkit-animation-timing-function:cubic-bezier(0.14,0,0,1);animation-timing-function:cubic-bezier(0.14,0,0,1);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}to{-webkit-transform:rotate(315deg);transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{-webkit-animation-timing-function:cubic-bezier(0.14,0,0,1);animation-timing-function:cubic-bezier(0.14,0,0,1);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}to{-webkit-transform:rotate(315deg);transform:rotate(315deg);opacity:0}}@-webkit-keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-transform:scaleX(1);transform:scaleX(1);opacity:1}100%,32.8%{-webkit-transform:scaleX(0);transform:scaleX(0);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-transform:scaleX(1);transform:scaleX(1);opacity:1}100%,32.8%{-webkit-transform:scaleX(0);transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;-webkit-box-flex:0;flex:0 0 18px;-webkit-box-sizing:content-box;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:-webkit-inline-box;display:inline-flex;position:absolute;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:transparent;pointer-events:none;will-change:background-color,border-color;-webkit-transition:background-color 90ms 0s cubic-bezier(.4, 0, .6, 1),border-color 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:background-color 90ms 0s cubic-bezier(.4, 0, .6, 1),border-color 90ms 0s cubic-bezier(.4, 0, .6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;-webkit-transition:opacity 180ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 180ms 0s cubic-bezier(.4, 0, .6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{-webkit-transition:stroke-dashoffset 180ms 0s cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 180ms 0s cubic-bezier(.4, 0, .6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;-webkit-transform:scaleX(0) rotate(0);transform:scaleX(0) rotate(0);border-width:1px;border-style:solid;opacity:0;-webkit-transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),transform 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1)}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background{-webkit-animation-duration:180ms;animation-duration:180ms;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{-webkit-animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{-webkit-animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{-webkit-animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{-webkit-animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{-webkit-animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{-webkit-animation:mdc-checkbox-indeterminate-checked-checkmark .5s linear 0s;animation:mdc-checkbox-indeterminate-checked-checkmark .5s linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{-webkit-animation:mdc-checkbox-indeterminate-checked-mixedmark .5s linear 0s;animation:mdc-checkbox-indeterminate-checked-mixedmark .5s linear 0s;-webkit-transition:none;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{-webkit-animation:mdc-checkbox-indeterminate-unchecked-mixedmark .3s linear 0s;animation:mdc-checkbox-indeterminate-unchecked-mixedmark .3s linear 0s;-webkit-transition:none;transition:none}.forge-checkbox--checked .mdc-checkbox__background,.forge-checkbox--indeterminate .mdc-checkbox__background{-webkit-transition:border-color 90ms 0s cubic-bezier(0, 0, .2, 1),background-color 90ms 0s cubic-bezier(0, 0, .2, 1);transition:border-color 90ms 0s cubic-bezier(0, 0, .2, 1),background-color 90ms 0s cubic-bezier(0, 0, .2, 1)}.forge-checkbox--checked .mdc-checkbox__background .mdc-checkbox__checkmark-path,.forge-checkbox--indeterminate .mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}::slotted(input[type=checkbox]){position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.forge-checkbox--disabled ::slotted(input[type=checkbox]){cursor:default;pointer-events:none}.forge-checkbox--checked .mdc-checkbox__background .mdc-checkbox__checkmark{-webkit-transition:opacity 180ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 180ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 180ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 180ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 180ms 0s cubic-bezier(0, 0, .2, 1),transform 180ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 180ms 0s cubic-bezier(0, 0, .2, 1),transform 180ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 180ms 0s cubic-bezier(0, 0, .2, 1);opacity:1}.forge-checkbox--checked .mdc-checkbox__background .mdc-checkbox__mixedmark{-webkit-transform:scaleX(1) rotate(-45deg);transform:scaleX(1) rotate(-45deg)}.forge-checkbox--indeterminate .mdc-checkbox__background .mdc-checkbox__checkmark{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),transform 90ms 0s cubic-bezier(.4, 0, .6, 1);transition:opacity 90ms 0s cubic-bezier(.4, 0, .6, 1),transform 90ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 90ms 0s cubic-bezier(.4, 0, .6, 1)}.forge-checkbox--indeterminate .mdc-checkbox__background .mdc-checkbox__mixedmark{-webkit-transform:scaleX(1) rotate(0);transform:scaleX(1) rotate(0);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{-webkit-transition:none;transition:none}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-checkbox{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.mdc-checkbox .mdc-checkbox__ripple::after,.mdc-checkbox .mdc-checkbox__ripple::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mdc-checkbox .mdc-checkbox__ripple::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-checkbox .mdc-checkbox__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-checkbox.mdc-ripple-upgraded--unbounded .mdc-checkbox__ripple::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-checkbox.mdc-ripple-upgraded--foreground-activation .mdc-checkbox__ripple::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-checkbox.mdc-ripple-upgraded--foreground-deactivation .mdc-checkbox__ripple::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-checkbox .mdc-checkbox__ripple::after,.mdc-checkbox .mdc-checkbox__ripple::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::after,.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-checkbox{z-index:0}.mdc-checkbox .mdc-checkbox__ripple::after,.mdc-checkbox .mdc-checkbox__ripple::before{z-index:-1;z-index:var(--mdc-ripple-z-index,-1)}.mdc-checkbox__ripple{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.forge-checkbox--dense{padding:calc((28px - 18px)/ 2);padding:calc((var(--mdc-checkbox-ripple-size,28px) - 18px)/ 2);margin:calc((28px - 28px)/ 2);margin:calc((var(--mdc-checkbox-ripple-size,28px) - var(--mdc-checkbox-ripple-size,28px))/ 2)}.forge-checkbox--dense .mdc-checkbox__background{top:calc((28px - 18px)/ 2);top:calc((var(--mdc-checkbox-ripple-size,28px) - 18px)/ 2);left:calc((28px - 18px)/ 2);left:calc((var(--mdc-checkbox-ripple-size,28px) - 18px)/ 2)}.forge-checkbox--dense ::slotted(input[type=checkbox]){top:calc((28px - 28px)/ 2);top:calc((var(--mdc-checkbox-ripple-size,28px) - var(--mdc-checkbox-ripple-size,28px))/ 2);right:calc((28px - 28px)/ 2);right:calc((var(--mdc-checkbox-ripple-size,28px) - var(--mdc-checkbox-ripple-size,28px))/ 2);left:calc((28px - 28px)/ 2);left:calc((var(--mdc-checkbox-ripple-size,28px) - var(--mdc-checkbox-ripple-size,28px))/ 2);width:28px;width:var(--mdc-checkbox-ripple-size,28px);height:28px;height:var(--mdc-checkbox-ripple-size,28px)}.forge-checkbox-wrapper--disabled{cursor:not-allowed}.forge-checkbox-wrapper--disabled ::slotted(label){cursor:not-allowed}.mdc-checkbox--disabled+::slotted(label){color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;vertical-align:middle}.forge-form-field ::slotted([slot=label]){-webkit-box-ordinal-group:1;order:0;margin-right:auto;padding-left:4px}.forge-form-field forge-switch~::slotted([slot=label]){padding-left:8px}.forge-form-field--align-end ::slotted([slot=label]){-webkit-box-ordinal-group:0;order:-1;margin-left:auto;padding-right:4px}:host{display:inline-block}:host([hidden]){display:none}';\n\nexport interface ICheckboxComponent extends IBaseComponent {\n dense: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-checkbox': ICheckboxComponent;\n }\n}\n\n/**\n * The custom element class behind the `<forge-checkbox>` element.\n * \n * @tag forge-checkbox\n */\n@CustomElement({\n name: CHECKBOX_CONSTANTS.elementName\n})\nexport class CheckboxComponent extends BaseComponent implements ICheckboxComponent {\n public static get observedAttributes(): string[] {\n return [CHECKBOX_CONSTANTS.attributes.DENSE];\n }\n\n private _foundation: CheckboxFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new CheckboxFoundation(new CheckboxAdapter(this));\n }\n\n public async connectedCallback(): Promise<void> {\n await this._ensureInputElement();\n this._foundation.connect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case CHECKBOX_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets or sets whether or not the checkbox is dense */\n @FoundationProperty()\n public declare dense: boolean;\n\n private async _ensureInputElement(): Promise<Element> {\n // Not using core function ensureChild because it was not selecting the input properly\n return new Promise<Element>(resolve => {\n const element = this.querySelector('input');\n if (element) {\n resolve(element);\n }\n\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElement = this.querySelector('input');\n if (foundElement) {\n observer.disconnect();\n resolve(foundElement);\n }\n }\n });\n observer.observe(this, { childList: true, subtree: true });\n });\n }\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core';\nimport { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { ICheckboxComponent } from './checkbox';\nimport { CHECKBOX_CONSTANTS } from './checkbox-constants';\n\nexport type CheckboxComponentDelegateProps = Partial<ICheckboxComponent>;\nexport interface ICheckboxComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n id?: string;\n label?: string;\n checked?: boolean;\n}\nexport interface ICheckboxComponentDelegateConfig extends IBaseComponentDelegateConfig<ICheckboxComponent, ICheckboxComponentDelegateOptions> {}\n\nexport class CheckboxComponentDelegate extends FormFieldComponentDelegate<ICheckboxComponent, ICheckboxComponentDelegateOptions> {\n private _inputElement: HTMLInputElement;\n private _labelElement?: HTMLLabelElement;\n\n constructor(config?: ICheckboxComponentDelegateConfig) {\n super(config);\n }\n\n public get value(): boolean {\n return this.checked;\n }\n public set value(value: boolean) {\n this.checked = value;\n }\n\n public get checked(): boolean {\n return this._inputElement.checked;\n }\n public set checked(value: boolean) {\n this._inputElement.checked = value;\n }\n\n public get disabled(): boolean {\n return this._inputElement.disabled;\n }\n public set disabled(value: boolean) {\n this._inputElement.disabled = value;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._inputElement;\n }\n\n public get labelElement(): HTMLLabelElement | undefined {\n return this._labelElement;\n }\n\n public onChange(listener: (value: boolean) => void): void {\n this._inputElement.addEventListener('change', evt => listener((evt.target as HTMLInputElement).checked));\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('blur', evt => listener(evt));\n }\n\n public setLabel(text: string | null): void {\n if (text) {\n if (this._labelElement) {\n this._labelElement.textContent = text;\n } else {\n this._createLabel(text);\n }\n } else if (this._labelElement) {\n this._element.removeChild(this._labelElement);\n this._labelElement = undefined;\n }\n }\n\n protected _build(): ICheckboxComponent {\n const checkbox = document.createElement(CHECKBOX_CONSTANTS.elementName);\n this._inputElement = this._buildInputElement();\n checkbox.appendChild(this._inputElement);\n return checkbox;\n }\n\n protected override _configure(): void {\n if (typeof this._config.options?.label === 'string') {\n this._createLabel(this._config.options.label);\n }\n }\n\n private _createLabel(text: string): void {\n this._labelElement = document.createElement('label');\n this._labelElement.textContent = text;\n if (this._config.options?.id) {\n this._labelElement.setAttribute('for', this._config.options.id);\n }\n this._element.appendChild(this._labelElement);\n }\n\n private _buildInputElement(): HTMLInputElement {\n const inputElement = document.createElement('input');\n inputElement.type = 'checkbox';\n\n if (this._config.options?.checked !== undefined) {\n inputElement.checked = this._config.options.checked;\n }\n if (this._config.options?.id) {\n inputElement.id = this._config.options.id;\n }\n\n return inputElement;\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { CheckboxComponent } from './checkbox';\n\nexport * from './checkbox-constants';\nexport * from './checkbox-adapter';\nexport * from './checkbox-foundation';\nexport * from './checkbox';\nexport * from './checkbox-component-delegate';\n\nexport function defineCheckboxComponent(): void {\n defineCustomElement(CheckboxComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "strings", "CB_PROTO_PROPS", "numbers", "CHECKBOX_CONSTANTS", "CheckboxFoundation", "_adapter", "CHECKBOX_CONSTANTS", "name", "value", "handler", "TRANSITION_STATE_INDETERMINATE", "TRANSITION_STATE_CHECKED", "TRANSITION_STATE_UNCHECKED", "ARIA_CHECKED_INDETERMINATE_VALUE", "ARIA_CHECKED_ATTR", "oldState", "newState", "SELECTED", "ANIM_UNCHECKED_CHECKED", "ANIM_UNCHECKED_INDETERMINATE", "ANIM_CHECKED_UNCHECKED", "ANIM_CHECKED_INDETERMINATE", "ANIM_INDETERMINATE_CHECKED", "ANIM_INDETERMINATE_UNCHECKED", "CheckboxAdapter", "BaseAdapter", "component", "userInteraction", "destroy", "createUserInteractionListener", "type", "value", "_a", "CHECKBOX_CONSTANTS", "getShadowElement", "addClass", "name", "classes", "removeClass", "qualifiedName", "callback", "nativeCb", "cbProto", "controlState", "desc", "nativeGetter", "nativeCbDesc", "state", "onRoot", "listener", "mutations", "mutation", "inputPropDesc", "adapter", "__spreadProps", "__spreadValues", "ForgeRipple", "evtType", "handler", "className", "varName", "ForgeRippleFoundation", "template", "styles", "CheckboxComponent", "BaseComponent", "attachShadowTemplate", "CheckboxFoundation", "CheckboxAdapter", "CHECKBOX_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "resolve", "element", "observer", "changes", "prev", "curr", "foundElement", "__decorateClass", "FoundationProperty", "CustomElement", "CheckboxComponentDelegate", "FormFieldComponentDelegate", "config", "value", "listener", "evt", "text", "checkbox", "CHECKBOX_CONSTANTS", "_a", "_b", "inputElement", "defineCheckboxComponent", "defineCustomElement", "CheckboxComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as x,j as P}from"./chunk.ISC7SZSP.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as I}from"./chunk.5V5ABSHI.js";import{a as S,b as C}from"./chunk.DTZFWZPB.js";import{a as b,e as y,f as T,k as A}from"./chunk.NK7H3MMM.js";import{k as g}from"./chunk.J2M2MXP2.js";import{a as L,d as h}from"./chunk.M3QDAYD2.js";var Y=`${C}state-layer`,$={TARGET:"target",DISABLED:"disabled"},V=L({},$),W={SURFACE:".forge-state-layer"},K={HOVERED:"forge-state-layer--hovered",PRESSED:"forge-state-layer--pressed"},s={elementName:Y,attributes:V,selectors:W,classes:K},l=class n{constructor(e,t){this.x=e;this.y=t}static fromPointerEvent(e){return new n(e.pageX,e.pageY)}},N=150,M=450,f=225,D=.2,R=10,H=75,O=.35,w="::after",k="forwards",B="cubic-bezier(0.2, 0, 0, 1)",G=(i=>(i[i.INACTIVE=0]="INACTIVE",i[i.TOUCH_DELAY=1]="TOUCH_DELAY",i[i.HOLDING=2]="HOLDING",i[i.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK",i))(G||{});function U(n){let{height:e,width:t}=n.getBoundingClientRect(),r=Math.max(e,t),i=Math.max(O*r,H),o=Math.floor(r*D),c=`${(Math.sqrt(t**2+e**2)+R+i)/o}`,_=`${o}px`;return{rippleScale:c,rippleSize:_,initialSize:o}}function z(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o={x:(i-e)/2,y:(r-e)/2},a;return Z(t)?a=X(n,t):a={x:i/2,y:r/2},a={x:a.x-e/2,y:a.y-e/2},{startPoint:a,endPoint:o}}function X(n,e){let{scrollX:t,scrollY:r}=window,{left:i,top:o}=n.getBoundingClientRect(),a=t+i,p=r+o,{x:c,y:_}=e;return{x:c-a,y:_-p}}function F(n,e,t){let{height:r,width:i}=n.getBoundingClientRect();return e>=0&&e<=i&&t>=0&&t<=r}function Z(n){return n&&(n instanceof l||["x","y"].every(e=>e in n))}var m=class extends I{constructor(t){super(t);this._targetElement=null;this._surfaceElement=T(t,s.selectors.SURFACE)}destroy(){typeof this._destroyDeferListener=="function"&&(this._destroyDeferListener(),this._destroyDeferListener=void 0)}async deferInitialization(t){if(!this._targetElement)return;let{userInteraction:r,destroy:i}=x(this._targetElement);this._destroyDeferListener=i;let o=await r;t(o.type==="pointerenter"?o:void 0)}addTargetListener(t,r){var i;(i=this._targetElement)==null||i.addEventListener(t,r)}removeTargetListener(t,r){var i;(i=this._targetElement)==null||i.removeEventListener(t,r)}setHovered(t){this._surfaceElement.classList.toggle(s.classes.HOVERED,t)}setPressed(t){this._surfaceElement.classList.toggle(s.classes.PRESSED,t)}getTargetElement(){return this._targetElement}setTargetElement(t){this._targetElement=t}trySetTarget(t){this._targetElement=P(this._component,t)}startAnimation(t){var E;if(!this._surfaceElement)return;this.setPressed(!0),(E=this._rippleAnimation)==null||E.cancel();let{rippleSize:r,rippleScale:i,initialSize:o}=U(this._component),{startPoint:a,endPoint:p}=z(this._component,o,t),c=`${a.x}px, ${a.y}px`,_=`${p.x}px, ${p.y}px`;this._rippleAnimation=this._surfaceElement.animate({top:[0,0],left:[0,0],height:[r,r],width:[r,r],transform:[`translate(${c}) scale(1)`,`translate(${_}) scale(${i})`]},{pseudoElement:w,duration:M,easing:B,fill:k})}async endAnimation(){var i;let t=this._rippleAnimation,r=(i=t==null?void 0:t.currentTime)!=null?i:1/0;if(r>=f){this.setPressed(!1);return}await new Promise(o=>{setTimeout(o,f-r)}),this._rippleAnimation===t&&this.setPressed(!1)}inBounds(t,r){return F(this._component,t,r)}};var v=class{constructor(e){this._adapter=e;this._target=null;this._disabled=!1;this._attached=!1;this._deferred=!0;this._pointerState=0;this._checkBoundsAfterContextMenu=!1;this._pointerEnterListener=t=>this._onPointerEnter(t),this._pointerLeaveListener=t=>this._onPointerLeave(t),this._pointerDownListener=t=>this._onPointerDown(t),this._pointerUpListener=t=>this._onPointerUp(t),this._pointerCancelListener=t=>this._onPointerCancel(t),this._clickListener=()=>this._onClick(),this._contextmenuListener=()=>this._onContextmenu()}initialize(){this._adapter.trySetTarget(this._target),this._deferInitialization()}disconnect(){this._pointerStartEvent=void 0,this._pointerState=0,this._adapter.setHovered(!1),this._adapter.setPressed(!1),this._adapter.destroy(),this._removeListeners()}playAnimation(e){this._adapter.startAnimation(e),this._endAnimation()}_deferInitialization(){this._adapter.deferInitialization(this._onDeferredInitialize.bind(this))}_applyListeners(){this._disabled||(this._adapter.addTargetListener("pointerenter",this._pointerEnterListener),this._adapter.addTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.addTargetListener("pointerdown",this._pointerDownListener),this._adapter.addTargetListener("pointerup",this._pointerUpListener),this._adapter.addTargetListener("pointercancel",this._pointerCancelListener),this._adapter.addTargetListener("click",this._clickListener),this._adapter.addTargetListener("contextmenu",this._contextmenuListener),this._attached=!0)}_removeListeners(){this._adapter.removeTargetListener("pointerenter",this._pointerEnterListener),this._adapter.removeTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.removeTargetListener("pointerdown",this._pointerDownListener),this._adapter.removeTargetListener("pointerup",this._pointerUpListener),this._adapter.removeTargetListener("pointercancel",this._pointerCancelListener),this._adapter.removeTargetListener("click",this._clickListener),this._adapter.removeTargetListener("contextmenu",this._contextmenuListener),this._attached=!1}_onDeferredInitialize(e){this._applyListeners(),(e==null?void 0:e.type)==="pointerenter"&&this._pointerEnterListener(e),this._deferred=!1}_onPointerEnter(e){this._canHandleEvent(e)&&this._adapter.setHovered(!0)}_onPointerLeave(e){this._canHandleEvent(e)&&(this._adapter.setHovered(!1),this._pointerState!==0&&this._adapter.endAnimation())}async _onPointerDown(e){if(this._pointerStartEvent=e,!!this._canHandleEvent(e)){if(!this._isTouch(e.pointerType)){this._pointerState=3,this._startAnimation(e);return}this._checkBoundsAfterContextMenu&&!this._adapter.inBounds(e.x,e.y)||(this._checkBoundsAfterContextMenu=!1,this._pointerState=1,await new Promise(t=>setTimeout(t,N)),this._pointerState===1&&(this._pointerState=2,this._startAnimation(e)))}}_onPointerUp(e){if(this._canHandleEvent(e)){if(this._pointerState===2){this._pointerState=3;return}if(this._pointerState===1){this._pointerState=3,this._startAnimation(this._pointerStartEvent);return}}}_onClick(){if(!this._disabled){if(this._pointerState===3){this._endAnimation();return}this._pointerState===0&&(this._startAnimation(this._pointerStartEvent),this._endAnimation())}}_onPointerCancel(e){this._canHandleEvent(e)&&this._endAnimation()}_onContextmenu(){this._disabled||(this._checkBoundsAfterContextMenu=!0,this._adapter.endAnimation())}_startAnimation(e){let t=e?l.fromPointerEvent(e):void 0;this._adapter.startAnimation(t)}_endAnimation(){this._pointerState=0,this._adapter.endAnimation(),this._pointerStartEvent=void 0}_canHandleEvent({type:e,isPrimary:t,buttons:r,pointerType:i,pointerId:o}){if(this._disabled||!t||this._pointerStartEvent&&this._pointerStartEvent.pointerId!==o)return!1;if(e==="pointerenter"||e==="pointerleave")return!this._isTouch(i);let a=r===1;return this._isTouch(i)||a}_isTouch(e){return e==="touch"}get isAttached(){return this._attached}get targetElement(){return this._adapter.getTargetElement()}set targetElement(e){this._attached&&this._removeListeners(),this._adapter.setTargetElement(e),this._deferred||this._deferInitialization()}get target(){return this._adapter.getHostAttribute(s.attributes.TARGET)}set target(e){this._target!==e&&(this._target=e,this._adapter.isConnected&&(this._attached&&this._removeListeners(),this._adapter.trySetTarget(e),this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.TARGET,!!this._target,this._target))}get disabled(){return this._disabled}set disabled(e){e=!!e,this._disabled!==e&&(this._disabled=e,this._adapter.isConnected&&(this._disabled?this._removeListeners():this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}};var q='<template><div class="forge-state-layer" part="surface"></div></template>',j='.forge-state-layer{--_color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_hover-color:var(--forge-state-layer-hover-color, var(--_color));--_hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);--_pressed-color:var(--forge-state-layer-pressed-color, var(--_color));--_pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);--_hover-duration:var(--forge-state-layer-hover-duration, 15ms);--_pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);--_animation-duration:var(--forge-state-layer-animation-duration, 375ms)}.forge-state-layer::after,.forge-state-layer::before{content:"";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_hover-color);inset:0;-webkit-transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear;transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_animation-duration) linear;transition:opacity var(--_animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_hover-color);opacity:var(--_hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_pressed-opacity);-webkit-transition-duration:var(--_pressed-duration);transition-duration:var(--_pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}:host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}',d=class extends A{constructor(){super();y(this,q,j),this._foundation=new v(new m(this))}static get observedAttributes(){return[s.attributes.TARGET,s.attributes.DISABLED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,r,i){switch(t){case s.attributes.TARGET:this.target=i;break;case s.attributes.DISABLED:this.disabled=g(i);break}}playAnimation(t){this._foundation.playAnimation(t)}};h([u()],d.prototype,"targetElement",2),h([u()],d.prototype,"target",2),h([u()],d.prototype,"disabled",2),d=h([S({name:s.elementName})],d);function Se(){b(d)}export{s as a,l as b,N as c,M as d,f as e,D as f,R as g,H as h,O as i,w as j,k,B as l,G as m,m as n,v as o,d as p,Se as q};
7
+ //# sourceMappingURL=chunk.OEYALYRM.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/state-layer/state-layer-constants.ts", "../../src/state-layer/state-layer-utils.ts", "../../src/state-layer/state-layer-adapter.ts", "../../src/state-layer/state-layer-foundation.ts", "../../src/state-layer/state-layer.ts", "../../src/state-layer/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}state-layer`;\n\nconst observedAttributes = {\n TARGET: 'target',\n DISABLED: 'disabled'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst selectors = {\n SURFACE: '.forge-state-layer'\n};\n\nconst classes = {\n HOVERED: 'forge-state-layer--hovered',\n PRESSED: 'forge-state-layer--pressed'\n};\n\nexport const STATE_LAYER_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n classes\n};\n\nexport class StateLayerCoords {\n constructor(public x: number, public y: number) {}\n\n public static fromPointerEvent(event: PointerEvent): StateLayerCoords {\n return new StateLayerCoords(event.pageX, event.pageY);\n }\n}\n\nexport const TOUCH_DELAY_MS = 150;\nexport const PRESS_GROW_MS = 450;\nexport const MINIMUM_PRESS_MS = 225;\nexport const INITIAL_ORIGIN_SCALE = 0.2;\nexport const PADDING = 10;\nexport const SOFT_EDGE_MINIMUM_SIZE = 75;\nexport const SOFT_EDGE_CONTAINER_RATIO = 0.35;\nexport const PRESS_PSEUDO = '::after';\nexport const ANIMATION_FILL = 'forwards';\nexport const EASING = 'cubic-bezier(0.2, 0, 0, 1)';\n\n/**\n * Interaction states for the state layer.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nexport enum PointerState {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK\n}\n", "import { INITIAL_ORIGIN_SCALE, PADDING, SOFT_EDGE_CONTAINER_RATIO, SOFT_EDGE_MINIMUM_SIZE, StateLayerCoords } from './state-layer-constants';\n\nexport function calcRippleSize(hostEl: HTMLElement): { rippleScale: string; rippleSize: string; initialSize: number } {\n const { height, width } = hostEl.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n const rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n const rippleSize = `${initialSize}px`;\n return { rippleScale, rippleSize, initialSize };\n}\n\nexport function getTranslationCoordinates(hostEl: HTMLElement, initialSize: number, coords?: StateLayerCoords): { startPoint: { x: number; y: number }; endPoint: { x: number; y: number } } {\n const { height, width } = hostEl.getBoundingClientRect();\n const endPoint = {\n x: (width - initialSize) / 2,\n y: (height - initialSize) / 2\n };\n\n let startPoint;\n if (isValidCoords(coords)) {\n startPoint = toNormalizedCoords(hostEl, coords);\n } else {\n startPoint = {\n x: width / 2,\n y: height / 2\n };\n }\n\n startPoint = {\n x: startPoint.x - (initialSize / 2),\n y: startPoint.y - (initialSize / 2)\n };\n\n return { startPoint, endPoint };\n}\n\nexport function toNormalizedCoords(hostEl: HTMLElement, coords: StateLayerCoords): { x: number; y: number } {\n const { scrollX, scrollY } = window;\n const { left, top } = hostEl.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { x, y } = coords;\n return { x: x - documentX, y: y - documentY };\n}\n\nexport function isInBounds(hostEl: HTMLElement, x: number, y: number): boolean {\n const { height, width } = hostEl.getBoundingClientRect();\n return x >= 0 && x <= width && y >= 0 && y <= height;\n}\n\nfunction isValidCoords(value: any): value is StateLayerCoords {\n return value && (value instanceof StateLayerCoords || ['x', 'y'].every(key => key in value));\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { locateTargetHeuristic, createUserInteractionListener } from '../core/utils/utils';\nimport { IStateLayerComponent } from './state-layer';\nimport { ANIMATION_FILL, EASING, MINIMUM_PRESS_MS, PRESS_GROW_MS, PRESS_PSEUDO, StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { calcRippleSize, getTranslationCoordinates, isInBounds } from './state-layer-utils';\n\nexport interface IStateLayerAdapter extends IBaseAdapter {\n destroy(): void;\n deferInitialization(listener: (evt?: PointerEvent) => void): void;\n getTargetElement(): HTMLElement | null;\n setTargetElement(el: HTMLElement | null): void;\n trySetTarget(value?: string | null): void;\n addTargetListener(type: string, listener: EventListener): void;\n removeTargetListener(type: string, listener: EventListener): void;\n setHovered(hovered: boolean): void;\n setPressed(pressed: boolean): void;\n startAnimation(coords?: StateLayerCoords): void;\n endAnimation(): Promise<void>;\n inBounds(x: number, y: number): boolean;\n}\n\nexport class StateLayerAdapter extends BaseAdapter<IStateLayerComponent> implements IStateLayerAdapter {\n private readonly _surfaceElement: HTMLElement;\n private _targetElement: HTMLElement | null = null;\n private _rippleAnimation: Animation | undefined;\n private _destroyDeferListener: (() => void) | undefined;\n\n constructor(component: IStateLayerComponent) {\n super(component);\n this._surfaceElement = getShadowElement(component, STATE_LAYER_CONSTANTS.selectors.SURFACE);\n }\n\n public destroy(): void {\n if (typeof this._destroyDeferListener === 'function') {\n this._destroyDeferListener();\n this._destroyDeferListener = undefined;\n }\n }\n\n public async deferInitialization(listener: (evt?: PointerEvent) => void): Promise<void> {\n if (!this._targetElement) {\n return;\n }\n const { userInteraction, destroy } = createUserInteractionListener(this._targetElement);\n this._destroyDeferListener = destroy;\n const evt = await userInteraction;\n listener(evt.type === 'pointerenter' ? evt as PointerEvent : undefined);\n }\n\n public addTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.removeEventListener(type, listener);\n }\n\n public setHovered(hovered: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.HOVERED, hovered);\n }\n \n public setPressed(pressed: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.PRESSED, pressed);\n }\n\n public getTargetElement(): HTMLElement | null {\n return this._targetElement;\n }\n\n public setTargetElement(el: HTMLElement | null): void {\n this._targetElement = el;\n }\n\n public trySetTarget(value?: string | null): void {\n this._targetElement = locateTargetHeuristic(this._component, value);\n }\n\n public startAnimation(coords?: StateLayerCoords): void {\n if (!this._surfaceElement) {\n return;\n }\n\n this.setPressed(true);\n this._rippleAnimation?.cancel();\n\n const { rippleSize, rippleScale, initialSize } = calcRippleSize(this._component);\n const { startPoint, endPoint } = getTranslationCoordinates(this._component, initialSize, coords);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n\n this._rippleAnimation = this._surfaceElement.animate(\n {\n top: [0, 0],\n left: [0, 0],\n height: [rippleSize, rippleSize],\n width: [rippleSize, rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${rippleScale})`\n ]\n },\n {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING,\n fill: ANIMATION_FILL\n });\n }\n\n public async endAnimation(): Promise<void> {\n const animation = this._rippleAnimation;\n const pressAnimationPlayState = animation?.currentTime ?? Infinity;\n\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.setPressed(false);\n return;\n }\n\n await new Promise(resolve => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n\n if (this._rippleAnimation !== animation) {\n return;\n }\n\n this.setPressed(false);\n }\n\n public inBounds(x: number, y: number): boolean {\n return isInBounds(this._component, x, y);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IStateLayerAdapter } from './state-layer-adapter';\nimport { PointerState, StateLayerCoords, STATE_LAYER_CONSTANTS, TOUCH_DELAY_MS } from './state-layer-constants';\n\nexport interface IStateLayerFoundation extends ICustomElementFoundation {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\nexport class StateLayerFoundation implements IStateLayerFoundation {\n // State\n private _target: string | null = null;\n private _disabled = false;\n private _attached = false;\n private _deferred = true;\n private _pointerStartEvent: PointerEvent | undefined;\n private _pointerState: PointerState = PointerState.INACTIVE;\n private _checkBoundsAfterContextMenu = false;\n\n // Listeners\n private _pointerEnterListener: EventListener;\n private _pointerLeaveListener: EventListener;\n private _pointerDownListener: EventListener;\n private _pointerUpListener: EventListener;\n private _pointerCancelListener: EventListener;\n private _clickListener: EventListener;\n private _contextmenuListener: EventListener;\n\n constructor(private _adapter: IStateLayerAdapter) {\n this._pointerEnterListener = (evt: PointerEvent) => this._onPointerEnter(evt);\n this._pointerLeaveListener = (evt: PointerEvent) => this._onPointerLeave(evt);\n this._pointerDownListener = (evt: PointerEvent) => this._onPointerDown(evt);\n this._pointerUpListener = (evt: PointerEvent) => this._onPointerUp(evt);\n this._pointerCancelListener = (evt: PointerEvent) => this._onPointerCancel(evt);\n this._clickListener = () => this._onClick();\n this._contextmenuListener = () => this._onContextmenu();\n }\n\n public initialize(): void {\n this._adapter.trySetTarget(this._target);\n\n // We defer initialization until the first pointerenter event is received.\n //\n // This is a performance optimization to avoid attaching many listeners to the target element\n // until the user is first interacting with it.\n this._deferInitialization();\n }\n\n public disconnect(): void {\n this._pointerStartEvent = undefined;\n this._pointerState = PointerState.INACTIVE;\n this._adapter.setHovered(false);\n this._adapter.setPressed(false);\n this._adapter.destroy();\n this._removeListeners();\n }\n\n public playAnimation(coords?: StateLayerCoords): void {\n this._adapter.startAnimation(coords);\n this._endAnimation();\n }\n\n private _deferInitialization(): void {\n this._adapter.deferInitialization(this._onDeferredInitialize.bind(this));\n }\n\n private _applyListeners(): void {\n if (this._disabled) {\n return;\n }\n\n this._adapter.addTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.addTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.addTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.addTargetListener('pointerup', this._pointerUpListener);\n this._adapter.addTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.addTargetListener('click', this._clickListener);\n this._adapter.addTargetListener('contextmenu', this._contextmenuListener);\n this._attached = true;\n }\n\n private _removeListeners(): void {\n this._adapter.removeTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.removeTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.removeTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.removeTargetListener('pointerup', this._pointerUpListener);\n this._adapter.removeTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._adapter.removeTargetListener('contextmenu', this._contextmenuListener);\n this._attached = false;\n }\n\n private _onDeferredInitialize(evt?: PointerEvent): void {\n this._applyListeners();\n\n if (evt?.type === 'pointerenter') {\n // Manually trigger the pointerenter listener since this is in response to a pointerenter event already\n this._pointerEnterListener(evt);\n }\n \n this._deferred = false;\n }\n\n private _onPointerEnter(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._adapter.setHovered(true);\n }\n\n private _onPointerLeave(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n this._adapter.setHovered(false);\n\n if (this._pointerState !== PointerState.INACTIVE) {\n this._adapter.endAnimation();\n }\n }\n\n private async _onPointerDown(evt: PointerEvent): Promise<void> {\n this._pointerStartEvent = evt;\n\n if (!this._canHandleEvent(evt)) {\n return;\n }\n \n if (!this._isTouch(evt.pointerType)) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(evt);\n return;\n }\n\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this._checkBoundsAfterContextMenu && !this._adapter.inBounds(evt.x, evt.y)) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = false;\n\n this._pointerState = PointerState.TOUCH_DELAY;\n await new Promise(resolve => setTimeout(resolve, TOUCH_DELAY_MS));\n\n if (this._pointerState !== PointerState.TOUCH_DELAY) {\n return;\n }\n\n this._pointerState = PointerState.HOLDING;\n this._startAnimation(evt);\n }\n\n private _onPointerUp(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n if (this._pointerState === PointerState.HOLDING) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n return;\n }\n\n if (this._pointerState === PointerState.TOUCH_DELAY) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(this._pointerStartEvent);\n return;\n }\n }\n\n private _onClick(): void {\n if (this._disabled) {\n return;\n }\n\n if (this._pointerState === PointerState.WAITING_FOR_CLICK) {\n this._endAnimation();\n return;\n }\n\n if (this._pointerState === PointerState.INACTIVE) {\n this._startAnimation(this._pointerStartEvent);\n this._endAnimation();\n }\n }\n\n private _onPointerCancel(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._endAnimation();\n }\n\n private _onContextmenu(): void {\n if (this._disabled) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = true;\n this._adapter.endAnimation();\n }\n\n private _startAnimation(evt?: PointerEvent): void {\n const coords = evt ? StateLayerCoords.fromPointerEvent(evt) : undefined;\n this._adapter.startAnimation(coords);\n }\n\n private _endAnimation(): void {\n this._pointerState = PointerState.INACTIVE;\n this._adapter.endAnimation();\n this._pointerStartEvent = undefined;\n }\n\n private _canHandleEvent({ type, isPrimary, buttons, pointerType, pointerId }: PointerEvent): boolean {\n if (this._disabled || !isPrimary) {\n return false;\n }\n\n if (this._pointerStartEvent && this._pointerStartEvent.pointerId !== pointerId) {\n return false;\n }\n\n if (type === 'pointerenter' || type === 'pointerleave') {\n return !this._isTouch(pointerType);\n }\n\n const isPrimaryButton = buttons === 1;\n return this._isTouch(pointerType) || isPrimaryButton;\n }\n\n private _isTouch(pointerType: string): boolean {\n return pointerType === 'touch';\n }\n\n public get isAttached(): boolean {\n return this._attached;\n }\n\n public get targetElement(): HTMLElement | null {\n return this._adapter.getTargetElement();\n }\n public set targetElement(el: HTMLElement | null) {\n // Always remove the listeners from the previous target element\n if (this._attached) {\n this._removeListeners();\n }\n\n this._adapter.setTargetElement(el);\n\n // If we are not already deferring attaching the listeners, then do that now\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n public get target(): string | null {\n return this._adapter.getHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET);\n }\n public set target(value: string | null) {\n if (this._target !== value) {\n this._target = value;\n\n if (this._adapter.isConnected) {\n if (this._attached) {\n this._removeListeners();\n }\n\n this._adapter.trySetTarget(value);\n\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET, Boolean(this._target), this._target as string);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n value = Boolean(value);\n if (this._disabled !== value) {\n this._disabled = value;\n\n if (this._adapter.isConnected) {\n if (this._disabled) {\n this._removeListeners();\n } else if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { StateLayerAdapter } from './state-layer-adapter';\nimport { StateLayerFoundation } from './state-layer-foundation';\nimport { StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-state-layer\\\" part=\\\"surface\\\"></div></template>';\nconst styles = '.forge-state-layer{--_color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_hover-color:var(--forge-state-layer-hover-color, var(--_color));--_hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);--_pressed-color:var(--forge-state-layer-pressed-color, var(--_color));--_pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);--_hover-duration:var(--forge-state-layer-hover-duration, 15ms);--_pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);--_animation-duration:var(--forge-state-layer-animation-duration, 375ms)}.forge-state-layer::after,.forge-state-layer::before{content:\\\"\\\";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_hover-color);inset:0;-webkit-transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear;transition:opacity var(--_hover-duration) linear,background-color var(--_hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_animation-duration) linear;transition:opacity var(--_animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_hover-color);opacity:var(--_hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_pressed-opacity);-webkit-transition-duration:var(--_pressed-duration);transition-duration:var(--_pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}:host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}';\n\nexport interface IStateLayerComponent extends IBaseComponent {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-state-layer': IStateLayerComponent;\n }\n}\n\n/**\n * @tag forge-state-layer\n * \n * @summary State layers show the interaction status of an element.\n * \n * @description \n * A state layer is a semi-transparent overlay on an element that indicates its interaction\n * state. State layers provide a systematic approach to visualizing states by using opacity.\n * A layer can be applied to an entire element or in a circular shape. Only one state layer\n * can be applied at a given time.\n * \n * @property {HTMLElement} targetElement - The element to attach the state layer to.\n * @property {string} target - The id of the element to attach the state layer to.\n * @property {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @attribute {string} target - The id of the element to attach the state layer to.\n * @attribute {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @cssproperty --forge-state-layer-color - The color of the state layer.\n * @cssproperty --forge-state-layer-hover-color - The color of the state layer when hovered.\n * @cssproperty --forge-state-layer-hover-opacity - The opacity of the state layer when hovered.\n * @cssproperty --forge-state-layer-pressed-color - The color of the state layer when pressed.\n * @cssproperty --forge-state-layer-pressed-opacity - The opacity of the state layer when pressed.\n * @cssproperty --forge-state-layer-hover-duration - The duration of the hover animation.\n * @cssproperty --forge-state-layer-animation-duration - The duration of the animation.\n * @cssproperty --forge-state-layer-pressed-duration - The duration of the pressed animation.\n * \n * @csspart surface - The surface element.\n */\n@CustomElement({\n name: STATE_LAYER_CONSTANTS.elementName\n})\nexport class StateLayerComponent extends BaseComponent implements IStateLayerComponent {\n public static get observedAttributes(): string[] {\n return [\n STATE_LAYER_CONSTANTS.attributes.TARGET,\n STATE_LAYER_CONSTANTS.attributes.DISABLED\n ];\n }\n\n private _foundation: StateLayerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new StateLayerFoundation(new StateLayerAdapter(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 STATE_LAYER_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case STATE_LAYER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare targetElement: HTMLElement | null;\n\n @FoundationProperty()\n public declare target: string | null;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n /**\n * Triggers the animation to run.\n * \n * Note: If coordinates are not provided, the transition will originate from the center of the target element.\n * \n * @param {StateLayerCoords} [coords] - The coordinates to play the animation from.\n */\n public playAnimation(coords?: StateLayerCoords): void {\n this._foundation.playAnimation(coords);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { StateLayerComponent } from './state-layer';\n\nexport * from './state-layer-adapter';\nexport * from './state-layer-constants';\nexport * from './state-layer-foundation';\nexport * from './state-layer';\n\nexport function defineStateLayerComponent(): void {\n defineCustomElement(StateLayerComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "selectors", "classes", "STATE_LAYER_CONSTANTS", "StateLayerCoords", "_StateLayerCoords", "x", "y", "event", "TOUCH_DELAY_MS", "PRESS_GROW_MS", "MINIMUM_PRESS_MS", "INITIAL_ORIGIN_SCALE", "PADDING", "SOFT_EDGE_MINIMUM_SIZE", "SOFT_EDGE_CONTAINER_RATIO", "PRESS_PSEUDO", "ANIMATION_FILL", "EASING", "PointerState", "calcRippleSize", "hostEl", "height", "width", "maxDim", "softEdgeSize", "SOFT_EDGE_CONTAINER_RATIO", "SOFT_EDGE_MINIMUM_SIZE", "initialSize", "INITIAL_ORIGIN_SCALE", "rippleScale", "PADDING", "rippleSize", "getTranslationCoordinates", "coords", "endPoint", "startPoint", "isValidCoords", "toNormalizedCoords", "scrollX", "scrollY", "left", "top", "documentX", "documentY", "x", "y", "isInBounds", "value", "StateLayerCoords", "key", "StateLayerAdapter", "BaseAdapter", "component", "getShadowElement", "STATE_LAYER_CONSTANTS", "listener", "userInteraction", "destroy", "createUserInteractionListener", "evt", "type", "_a", "hovered", "pressed", "el", "value", "locateTargetHeuristic", "coords", "rippleSize", "rippleScale", "initialSize", "calcRippleSize", "startPoint", "endPoint", "getTranslationCoordinates", "translateStart", "translateEnd", "PRESS_PSEUDO", "PRESS_GROW_MS", "EASING", "ANIMATION_FILL", "animation", "pressAnimationPlayState", "MINIMUM_PRESS_MS", "resolve", "x", "y", "isInBounds", "StateLayerFoundation", "_adapter", "evt", "coords", "resolve", "TOUCH_DELAY_MS", "StateLayerCoords", "type", "isPrimary", "buttons", "pointerType", "pointerId", "isPrimaryButton", "el", "STATE_LAYER_CONSTANTS", "value", "template", "styles", "StateLayerComponent", "BaseComponent", "attachShadowTemplate", "StateLayerFoundation", "StateLayerAdapter", "STATE_LAYER_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "coords", "__decorateClass", "FoundationProperty", "CustomElement", "defineStateLayerComponent", "defineCustomElement", "StateLayerComponent"]
7
+ }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as t}from"./chunk.SYZB7B4F.js";import{a as r}from"./chunk.NVUMRW44.js";import{k as l}from"./chunk.NK7H3MMM.js";import{k as p,l as s}from"./chunk.J2M2MXP2.js";import{d as o}from"./chunk.M3QDAYD2.js";var e=class extends l{constructor(){super()}attributeChangedCallback(a,u,i){switch(a){case t.attributes.POPUP_CLASSES:this.popupClasses=i;break;case t.attributes.OPTION_LIMIT:this.optionLimit=s(i);break;case t.attributes.OBSERVE_SCROLL:this.observeScroll=p(i);break;case t.attributes.OBSERVE_SCROLL_THRESHOLD:this.observeScrollThreshold=s(i);break;case t.attributes.SYNC_POPUP_WIDTH:this.syncPopupWidth=p(i);break;case t.attributes.CONSTRAIN_POPUP_WIDTH:this.constrainPopupWidth=p(i);break;case t.attributes.WRAP_OPTION_TEXT:this.wrapOptionText=p(i);break}}};o([r()],e.prototype,"popupClasses",2),o([r()],e.prototype,"popupHeaderBuilder",2),o([r()],e.prototype,"popupFooterBuilder",2),o([r()],e.prototype,"syncPopupWidth",2),o([r()],e.prototype,"optionLimit",2),o([r()],e.prototype,"observeScroll",2),o([r()],e.prototype,"observeScrollThreshold",2),o([r()],e.prototype,"constrainPopupWidth",2),o([r()],e.prototype,"wrapOptionText",2);export{e as a};
7
- //# sourceMappingURL=chunk.GHSAKRYH.js.map
6
+ import{a as t}from"./chunk.CL65KLH7.js";import{a as r}from"./chunk.NVUMRW44.js";import{k as l}from"./chunk.NK7H3MMM.js";import{k as p,l as s}from"./chunk.J2M2MXP2.js";import{d as o}from"./chunk.M3QDAYD2.js";var e=class extends l{constructor(){super()}attributeChangedCallback(a,u,i){switch(a){case t.attributes.POPUP_CLASSES:this.popupClasses=i;break;case t.attributes.OPTION_LIMIT:this.optionLimit=s(i);break;case t.attributes.OBSERVE_SCROLL:this.observeScroll=p(i);break;case t.attributes.OBSERVE_SCROLL_THRESHOLD:this.observeScrollThreshold=s(i);break;case t.attributes.SYNC_POPUP_WIDTH:this.syncPopupWidth=p(i);break;case t.attributes.CONSTRAIN_POPUP_WIDTH:this.constrainPopupWidth=p(i);break;case t.attributes.WRAP_OPTION_TEXT:this.wrapOptionText=p(i);break}}};o([r()],e.prototype,"popupClasses",2),o([r()],e.prototype,"popupHeaderBuilder",2),o([r()],e.prototype,"popupFooterBuilder",2),o([r()],e.prototype,"syncPopupWidth",2),o([r()],e.prototype,"optionLimit",2),o([r()],e.prototype,"observeScroll",2),o([r()],e.prototype,"observeScrollThreshold",2),o([r()],e.prototype,"constrainPopupWidth",2),o([r()],e.prototype,"wrapOptionText",2);export{e as a};
7
+ //# sourceMappingURL=chunk.OKKH7F7M.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{c as x,d as D}from"./chunk.246JM2YT.js";import{a as y}from"./chunk.RFLASSCI.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as E}from"./chunk.5V5ABSHI.js";import{a as b,b as L}from"./chunk.DTZFWZPB.js";import{a as v,e as f,f as c,k as _}from"./chunk.NK7H3MMM.js";import{k as p,l as u}from"./chunk.J2M2MXP2.js";import{d as s}from"./chunk.M3QDAYD2.js";var C=`${L}file-picker`,I={ACCEPT:"accept",MAX_SIZE:"max-size",CAPTURE:"capture",MULTIPLE:"multiple",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},T={HIGHLIGHT:"highlight",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},S={CONTAINER:"container",BUTTON:"button",INPUT:"input"},A={CONTAINER:"#container",BUTTON:"#button",INPUT:"#input",BUTTON_SLOT:"#button-slot"},P={FILES_CHANGED:`${C}-change`},i={elementName:C,attributes:I,classes:T,ids:S,selectors:A,events:P};var d=class extends E{constructor(e){super(e);this._container=c(e,i.selectors.CONTAINER),this._buttonSlot=c(e,i.selectors.BUTTON_SLOT),this._input=c(e,i.selectors.INPUT),this._inputEventListener=()=>{this._input.value="",this._input.click()},this._container.addEventListener("click",this._inputEventListener)}registerButtonSlotListener(e){this._buttonSlot.addEventListener("slotchange",e)}registerInputChangeListener(e){this._input.addEventListener("change",e)}registerDragEnterListener(e){this._container.addEventListener("dragenter",e)}registerDragLeaveListener(e){this._container.addEventListener("dragleave",e)}registerDragOverListener(e){this._container.addEventListener("dragover",e)}registerDropListener(e){this._container.addEventListener("drop",e)}removeDragEnterListener(e){this._container.removeEventListener("dragenter",e)}removeDragLeaveListener(e){this._container.removeEventListener("dragleave",e)}removeDragOverListener(e){this._container.removeEventListener("dragover",e)}removeDropListener(e){this._container.removeEventListener("drop",e)}initializeButton(){let e=this._component.querySelector("button");this._button=e||void 0}setHighlightState(e){this._container.classList.contains(i.classes.HIGHLIGHT)!==e&&this._container.classList.toggle(i.classes.HIGHLIGHT)}setAccept(e){e?this._input.setAttribute("accept",e):this._input.removeAttribute("accept")}setCapture(e){e?this._input.setAttribute("capture",e):this._input.removeAttribute("capture")}setMultiple(e){e?this._input.setAttribute("multiple",""):this._input.removeAttribute("multiple")}setDisabled(e){var n,o;e?(this._container.removeEventListener("click",this._inputEventListener),(n=this._button)==null||n.setAttribute("disabled",""),this._container.setAttribute("disabled","")):(this._container.addEventListener("click",this._inputEventListener),(o=this._button)==null||o.removeAttribute("disabled"),this._container.removeAttribute("disabled"))}setCompact(e){this._container.classList.contains(i.classes.COMPACT)!==e&&this._container.classList.toggle(i.classes.COMPACT)}setBorderless(e){this._container.classList.contains(i.classes.BORDERLESS)!==e&&this._container.classList.toggle(i.classes.BORDERLESS)}};var g=class{constructor(t){this._adapter=t;this._isInitialized=!1;this._accept=null;this._maxSize=null;this._capture=null;this._multiple=!1;this._disabled=!1;this._compact=!1;this._borderless=!1;this._buttonSlotListener=e=>this._onButtonSlotChanged(e),this._inputChangeListener=e=>this._onInputChange(e),this._dragEnterListener=e=>this._onDragEnter(e),this._dragLeaveListener=e=>this._onDragLeave(e),this._dragOverListener=e=>this._onDragOver(e),this._dropListener=e=>this._onDrop(e),this._adapter.registerButtonSlotListener(this._buttonSlotListener),this._adapter.registerInputChangeListener(this._inputChangeListener),this._compact||this._registerDragListeners()}initialize(){this._adapter.initializeButton(),this._adapter.setDisabled(this._disabled),this._isInitialized=!0}destroy(){this._isInitialized=!1}_onButtonSlotChanged(t){this._adapter.initializeButton()}_onInputChange(t){let e=t.target.files;e&&this._handleFiles(e)}_onDragEnter(t){this._handleDragEvent(t,!0)}_onDragLeave(t){this._handleDragEvent(t,!1)}_onDragOver(t){this._handleDragEvent(t,!0)}_onDrop(t){if(this._handleDragEvent(t,!1),!this._disabled){let e=t.dataTransfer;if(e){let n=e.files;this._handleFiles(n)}}}_registerDragListeners(){this._adapter.registerDragEnterListener(this._dragEnterListener),this._adapter.registerDragLeaveListener(this._dragLeaveListener),this._adapter.registerDragOverListener(this._dragOverListener),this._adapter.registerDropListener(this._dropListener)}_removeDragListeners(){this._adapter.removeDragEnterListener(this._dragEnterListener),this._adapter.removeDragLeaveListener(this._dragLeaveListener),this._adapter.removeDragOverListener(this._dragOverListener),this._adapter.removeDropListener(this._dropListener)}_handleFiles(t){let e={};if(t){let n=this._sortFiles(t),o=n.legalFiles||null;!this._multiple&&o&&o.length>1&&(o=o.splice(1)),e=n}this._adapter.emitHostEvent(i.events.FILES_CHANGED,e)}_sortFiles(t){let e=[],n=[];if(!this._accept&&!this.maxSize)return e=Array.from(t),{legalFiles:e,illegalFiles:n};let o=this._accept?this._accept.split(",").map(r=>r.trim().toLowerCase()):[""];for(let r=0;r<t.length;r++)!o.some(m=>t[r].type.toLowerCase().match(m)||t[r].name.toLowerCase().match("\\"+m))||this._maxSize&&t[r].size>this._maxSize?n.push(t[r]):e.push(t[r]);return{legalFiles:e,illegalFiles:n}}_handleDragEvent(t,e){this._disabled||(t.preventDefault(),t.stopPropagation(),this._adapter.setHighlightState(e))}get accept(){return this._accept}set accept(t){this._accept!==t&&(this._accept=t,this._adapter.setAccept(t),this._adapter.toggleHostAttribute(i.attributes.ACCEPT,!!t,String(t)))}get maxSize(){return this._maxSize}set maxSize(t){this._maxSize!==t&&(this._maxSize=t,this._adapter.toggleHostAttribute(i.attributes.MAX_SIZE,!!t,String(t)))}get capture(){return this._capture}set capture(t){this._capture!==t&&(this._capture=t,this._adapter.setCapture(t),this._adapter.toggleHostAttribute(i.attributes.CAPTURE,!!t,String(t)))}get multiple(){return this._multiple}set multiple(t){this._multiple!==t&&(this._multiple=t,this._adapter.setMultiple(t),this._adapter.toggleHostAttribute(i.attributes.MULTIPLE,t))}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=t,this._isInitialized&&this._adapter.setDisabled(t),this._adapter.toggleHostAttribute(i.attributes.DISABLED,t))}get compact(){return this._compact}set compact(t){this._compact!==t&&(this._compact=t,this._adapter.setCompact(t),t?this._removeDragListeners():this._registerDragListeners(),this._adapter.toggleHostAttribute(i.attributes.COMPACT,t))}get borderless(){return this._borderless}set borderless(t){this._borderless!==t&&(this._borderless=t,this._adapter.setBorderless(t),this._adapter.toggleHostAttribute(i.attributes.BORDERLESS,t))}};var F='<template><form class="forge-file-picker" id="container" part="form"><div class="forge-file-picker__primary" id="primary" part="primary"><slot name="primary"></slot></div><slot id="button-slot"></slot><div class="forge-file-picker__secondary" id="secondary" part="secondary"><slot name="secondary"></slot></div><input type="file" class="forge-file-picker__input" id="input" part="input"></form><div class="forge-file-picker__helper-text" part="helper-text-container"><slot name="helper-text"></slot></div></template>',O=".forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}",a=class extends _{constructor(){super();f(this,F,O),this._foundation=new g(new d(this))}static get observedAttributes(){return[i.attributes.ACCEPT,i.attributes.MAX_SIZE,i.attributes.CAPTURE,i.attributes.MULTIPLE,i.attributes.DISABLED,i.attributes.COMPACT,i.attributes.BORDERLESS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,n,o){switch(e){case i.attributes.ACCEPT:this.accept=o;break;case i.attributes.MAX_SIZE:this.maxSize=u(o);break;case i.attributes.CAPTURE:this.capture=o;break;case i.attributes.MULTIPLE:this.multiple=p(o);break;case i.attributes.DISABLED:this.disabled=p(o);break;case i.attributes.COMPACT:this.compact=p(o);break;case i.attributes.BORDERLESS:this.borderless=p(o);break}}};s([l()],a.prototype,"accept",2),s([l()],a.prototype,"maxSize",2),s([l()],a.prototype,"capture",2),s([l()],a.prototype,"multiple",2),s([l()],a.prototype,"disabled",2),s([l()],a.prototype,"compact",2),s([l()],a.prototype,"borderless",2),a=s([b({name:i.elementName,dependencies:[x]})],a);var k=class extends y{constructor(t){super(t)}_build(){return document.createElement(i.elementName)}_configure(){var t,e,n,o;if((t=this._config.options)!=null&&t.primaryText){let r=document.createElement("span");r.slot="primary",r.textContent=this._config.options.primaryText,this._element.appendChild(r)}if((e=this._config.options)!=null&&e.secondaryText){let r=document.createElement("span");r.slot="secondary",r.textContent=this._config.options.secondaryText,this._element.appendChild(r)}if((n=this._config.options)!=null&&n.buttonText&&new D({options:{parent:this._element,text:this._config.options.buttonText},props:{type:"outlined"}}),(o=this._config.options)!=null&&o.helperText){let r=document.createElement("span");r.slot="helper-text",r.textContent=this._config.options.helperText,this._element.appendChild(r)}}onChange(t){this._element.addEventListener(i.events.FILES_CHANGED,e=>t(e.detail))}};function ce(){v(a)}export{i as a,d as b,g as c,a as d,k as e,ce as f};
7
- //# sourceMappingURL=chunk.AGMPIMJV.js.map
6
+ import{c as x,d as D}from"./chunk.BBKRPL6R.js";import{a as y}from"./chunk.RFLASSCI.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as E}from"./chunk.5V5ABSHI.js";import{a as b,b as L}from"./chunk.DTZFWZPB.js";import{a as v,e as f,f as c,k as _}from"./chunk.NK7H3MMM.js";import{k as p,l as u}from"./chunk.J2M2MXP2.js";import{d as s}from"./chunk.M3QDAYD2.js";var C=`${L}file-picker`,I={ACCEPT:"accept",MAX_SIZE:"max-size",CAPTURE:"capture",MULTIPLE:"multiple",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},T={HIGHLIGHT:"highlight",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},S={CONTAINER:"container",BUTTON:"button",INPUT:"input"},A={CONTAINER:"#container",BUTTON:"#button",INPUT:"#input",BUTTON_SLOT:"#button-slot"},P={FILES_CHANGED:`${C}-change`},i={elementName:C,attributes:I,classes:T,ids:S,selectors:A,events:P};var d=class extends E{constructor(e){super(e);this._container=c(e,i.selectors.CONTAINER),this._buttonSlot=c(e,i.selectors.BUTTON_SLOT),this._input=c(e,i.selectors.INPUT),this._inputEventListener=()=>{this._input.value="",this._input.click()},this._container.addEventListener("click",this._inputEventListener)}registerButtonSlotListener(e){this._buttonSlot.addEventListener("slotchange",e)}registerInputChangeListener(e){this._input.addEventListener("change",e)}registerDragEnterListener(e){this._container.addEventListener("dragenter",e)}registerDragLeaveListener(e){this._container.addEventListener("dragleave",e)}registerDragOverListener(e){this._container.addEventListener("dragover",e)}registerDropListener(e){this._container.addEventListener("drop",e)}removeDragEnterListener(e){this._container.removeEventListener("dragenter",e)}removeDragLeaveListener(e){this._container.removeEventListener("dragleave",e)}removeDragOverListener(e){this._container.removeEventListener("dragover",e)}removeDropListener(e){this._container.removeEventListener("drop",e)}initializeButton(){let e=this._component.querySelector("button");this._button=e||void 0}setHighlightState(e){this._container.classList.contains(i.classes.HIGHLIGHT)!==e&&this._container.classList.toggle(i.classes.HIGHLIGHT)}setAccept(e){e?this._input.setAttribute("accept",e):this._input.removeAttribute("accept")}setCapture(e){e?this._input.setAttribute("capture",e):this._input.removeAttribute("capture")}setMultiple(e){e?this._input.setAttribute("multiple",""):this._input.removeAttribute("multiple")}setDisabled(e){var n,o;e?(this._container.removeEventListener("click",this._inputEventListener),(n=this._button)==null||n.setAttribute("disabled",""),this._container.setAttribute("disabled","")):(this._container.addEventListener("click",this._inputEventListener),(o=this._button)==null||o.removeAttribute("disabled"),this._container.removeAttribute("disabled"))}setCompact(e){this._container.classList.contains(i.classes.COMPACT)!==e&&this._container.classList.toggle(i.classes.COMPACT)}setBorderless(e){this._container.classList.contains(i.classes.BORDERLESS)!==e&&this._container.classList.toggle(i.classes.BORDERLESS)}};var g=class{constructor(t){this._adapter=t;this._isInitialized=!1;this._accept=null;this._maxSize=null;this._capture=null;this._multiple=!1;this._disabled=!1;this._compact=!1;this._borderless=!1;this._buttonSlotListener=e=>this._onButtonSlotChanged(e),this._inputChangeListener=e=>this._onInputChange(e),this._dragEnterListener=e=>this._onDragEnter(e),this._dragLeaveListener=e=>this._onDragLeave(e),this._dragOverListener=e=>this._onDragOver(e),this._dropListener=e=>this._onDrop(e),this._adapter.registerButtonSlotListener(this._buttonSlotListener),this._adapter.registerInputChangeListener(this._inputChangeListener),this._compact||this._registerDragListeners()}initialize(){this._adapter.initializeButton(),this._adapter.setDisabled(this._disabled),this._isInitialized=!0}destroy(){this._isInitialized=!1}_onButtonSlotChanged(t){this._adapter.initializeButton()}_onInputChange(t){let e=t.target.files;e&&this._handleFiles(e)}_onDragEnter(t){this._handleDragEvent(t,!0)}_onDragLeave(t){this._handleDragEvent(t,!1)}_onDragOver(t){this._handleDragEvent(t,!0)}_onDrop(t){if(this._handleDragEvent(t,!1),!this._disabled){let e=t.dataTransfer;if(e){let n=e.files;this._handleFiles(n)}}}_registerDragListeners(){this._adapter.registerDragEnterListener(this._dragEnterListener),this._adapter.registerDragLeaveListener(this._dragLeaveListener),this._adapter.registerDragOverListener(this._dragOverListener),this._adapter.registerDropListener(this._dropListener)}_removeDragListeners(){this._adapter.removeDragEnterListener(this._dragEnterListener),this._adapter.removeDragLeaveListener(this._dragLeaveListener),this._adapter.removeDragOverListener(this._dragOverListener),this._adapter.removeDropListener(this._dropListener)}_handleFiles(t){let e={};if(t){let n=this._sortFiles(t),o=n.legalFiles||null;!this._multiple&&o&&o.length>1&&(o=o.splice(1)),e=n}this._adapter.emitHostEvent(i.events.FILES_CHANGED,e)}_sortFiles(t){let e=[],n=[];if(!this._accept&&!this.maxSize)return e=Array.from(t),{legalFiles:e,illegalFiles:n};let o=this._accept?this._accept.split(",").map(r=>r.trim().toLowerCase()):[""];for(let r=0;r<t.length;r++)!o.some(m=>t[r].type.toLowerCase().match(m)||t[r].name.toLowerCase().match("\\"+m))||this._maxSize&&t[r].size>this._maxSize?n.push(t[r]):e.push(t[r]);return{legalFiles:e,illegalFiles:n}}_handleDragEvent(t,e){this._disabled||(t.preventDefault(),t.stopPropagation(),this._adapter.setHighlightState(e))}get accept(){return this._accept}set accept(t){this._accept!==t&&(this._accept=t,this._adapter.setAccept(t),this._adapter.toggleHostAttribute(i.attributes.ACCEPT,!!t,String(t)))}get maxSize(){return this._maxSize}set maxSize(t){this._maxSize!==t&&(this._maxSize=t,this._adapter.toggleHostAttribute(i.attributes.MAX_SIZE,!!t,String(t)))}get capture(){return this._capture}set capture(t){this._capture!==t&&(this._capture=t,this._adapter.setCapture(t),this._adapter.toggleHostAttribute(i.attributes.CAPTURE,!!t,String(t)))}get multiple(){return this._multiple}set multiple(t){this._multiple!==t&&(this._multiple=t,this._adapter.setMultiple(t),this._adapter.toggleHostAttribute(i.attributes.MULTIPLE,t))}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=t,this._isInitialized&&this._adapter.setDisabled(t),this._adapter.toggleHostAttribute(i.attributes.DISABLED,t))}get compact(){return this._compact}set compact(t){this._compact!==t&&(this._compact=t,this._adapter.setCompact(t),t?this._removeDragListeners():this._registerDragListeners(),this._adapter.toggleHostAttribute(i.attributes.COMPACT,t))}get borderless(){return this._borderless}set borderless(t){this._borderless!==t&&(this._borderless=t,this._adapter.setBorderless(t),this._adapter.toggleHostAttribute(i.attributes.BORDERLESS,t))}};var F='<template><form class="forge-file-picker" id="container" part="form"><div class="forge-file-picker__primary" id="primary" part="primary"><slot name="primary"></slot></div><slot id="button-slot"></slot><div class="forge-file-picker__secondary" id="secondary" part="secondary"><slot name="secondary"></slot></div><input type="file" class="forge-file-picker__input" id="input" part="input"></form><div class="forge-file-picker__helper-text" part="helper-text-container"><slot name="helper-text"></slot></div></template>',O=".forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fff;background-color:var(--mdc-theme-background,#fff);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee);background-color:rgba(98,0,238,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}",a=class extends _{constructor(){super();f(this,F,O),this._foundation=new g(new d(this))}static get observedAttributes(){return[i.attributes.ACCEPT,i.attributes.MAX_SIZE,i.attributes.CAPTURE,i.attributes.MULTIPLE,i.attributes.DISABLED,i.attributes.COMPACT,i.attributes.BORDERLESS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,n,o){switch(e){case i.attributes.ACCEPT:this.accept=o;break;case i.attributes.MAX_SIZE:this.maxSize=u(o);break;case i.attributes.CAPTURE:this.capture=o;break;case i.attributes.MULTIPLE:this.multiple=p(o);break;case i.attributes.DISABLED:this.disabled=p(o);break;case i.attributes.COMPACT:this.compact=p(o);break;case i.attributes.BORDERLESS:this.borderless=p(o);break}}};s([l()],a.prototype,"accept",2),s([l()],a.prototype,"maxSize",2),s([l()],a.prototype,"capture",2),s([l()],a.prototype,"multiple",2),s([l()],a.prototype,"disabled",2),s([l()],a.prototype,"compact",2),s([l()],a.prototype,"borderless",2),a=s([b({name:i.elementName,dependencies:[x]})],a);var k=class extends y{constructor(t){super(t)}_build(){return document.createElement(i.elementName)}_configure(){var t,e,n,o;if((t=this._config.options)!=null&&t.primaryText){let r=document.createElement("span");r.slot="primary",r.textContent=this._config.options.primaryText,this._element.appendChild(r)}if((e=this._config.options)!=null&&e.secondaryText){let r=document.createElement("span");r.slot="secondary",r.textContent=this._config.options.secondaryText,this._element.appendChild(r)}if((n=this._config.options)!=null&&n.buttonText&&new D({options:{parent:this._element,text:this._config.options.buttonText},props:{type:"outlined"}}),(o=this._config.options)!=null&&o.helperText){let r=document.createElement("span");r.slot="helper-text",r.textContent=this._config.options.helperText,this._element.appendChild(r)}}onChange(t){this._element.addEventListener(i.events.FILES_CHANGED,e=>t(e.detail))}};function ce(){v(a)}export{i as a,d as b,g as c,a as d,k as e,ce as f};
7
+ //# sourceMappingURL=chunk.QL45FKVJ.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/file-picker/file-picker-constants.ts", "../../src/file-picker/file-picker-adapter.ts", "../../src/file-picker/file-picker-foundation.ts", "../../src/file-picker/file-picker.ts", "../../src/file-picker/file-picker-component-delegate.ts", "../../src/file-picker/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}file-picker`;\n\nconst attributes = {\n ACCEPT: 'accept',\n MAX_SIZE: 'max-size',\n CAPTURE: 'capture',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst classes = {\n HIGHLIGHT: 'highlight',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst ids = {\n CONTAINER: 'container',\n BUTTON: 'button',\n INPUT: 'input'\n};\n\nconst selectors = {\n CONTAINER: '#container',\n BUTTON: '#button',\n INPUT: '#input',\n BUTTON_SLOT: '#button-slot'\n};\n\nconst events = {\n FILES_CHANGED: `${elementName}-change`\n};\n\nexport const FILE_PICKER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n selectors,\n events\n};\n\nexport interface IFilePickerChangeEventData {\n legalFiles?: File[];\n illegalFiles?: File[];\n}\n", "import { getShadowElement, emitEvent } from '@tylertech/forge-core';\n\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS } from './file-picker-constants';\nimport { BaseAdapter, IBaseAdapter } from '../core';\n\nexport interface IFilePickerAdapter extends IBaseAdapter {\n registerButtonSlotListener(listener: (evt: Event) => void): void;\n registerInputChangeListener(listener: (evt: Event) => void): void;\n registerDragEnterListener(listener: (evt: DragEvent) => void): void;\n registerDragLeaveListener(listener: (evt: DragEvent) => void): void;\n registerDragOverListener(listener: (evt: DragEvent) => void): void;\n registerDropListener(listener: (evt: DragEvent) => void): void;\n removeDragEnterListener(listener: (evt: DragEvent) => void): void;\n removeDragLeaveListener(listener: (evt: DragEvent) => void): void;\n removeDragOverListener(listener: (evt: DragEvent) => void): void;\n removeDropListener(listener: (evt: DragEvent) => void): void;\n initializeButton(): void;\n setHighlightState(value: boolean): void;\n setAccept(value: string | null | undefined): void;\n setCapture(value: string | null | undefined): void;\n setMultiple(value: boolean): void;\n setDisabled(value: boolean): void;\n setCompact(value: boolean): void;\n setBorderless(value: boolean): void;\n}\n\nexport class FilePickerAdapter extends BaseAdapter<IFilePickerComponent> implements IFilePickerAdapter {\n private _container: HTMLElement;\n private _buttonSlot: HTMLSlotElement;\n private _button: HTMLButtonElement | undefined;\n private _input: HTMLInputElement;\n private _inputEventListener: () => void;\n\n constructor(component: IFilePickerComponent) {\n super(component);\n\n this._container = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.CONTAINER);\n this._buttonSlot = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.BUTTON_SLOT) as HTMLSlotElement;\n this._input = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n\n this._inputEventListener = () => {\n this._input.value = '';\n this._input.click();\n };\n\n this._container.addEventListener('click', this._inputEventListener);\n }\n\n public registerButtonSlotListener(listener: (evt: Event) => void): void {\n this._buttonSlot.addEventListener('slotchange', listener);\n }\n\n public registerInputChangeListener(listener: (evt: Event) => void): void {\n this._input.addEventListener('change', listener);\n }\n\n public registerDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragenter', listener);\n }\n\n public registerDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragleave', listener);\n }\n\n public registerDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragover', listener);\n }\n\n public registerDropListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('drop', listener);\n }\n\n public removeDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragenter', listener);\n }\n\n public removeDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragleave', listener);\n }\n\n public removeDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragover', listener);\n }\n\n public removeDropListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('drop', listener);\n }\n\n public initializeButton(): void {\n const button = this._component.querySelector('button') as HTMLButtonElement;\n this._button = button || undefined;\n }\n\n /**\n * Sets the highlight state of the file picker.\n * @param value True if the highlight should be applied and false if not.\n */\n public setHighlightState(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT);\n }\n }\n\n /**\n * Sets the accept attribute of the input.\n * @param value The accept string.\n */\n public setAccept(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('accept', value);\n } else {\n this._input.removeAttribute('accept');\n }\n }\n\n /**\n * Sets the capture attribute of the input.\n * @param value The capture string.\n */\n public setCapture(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('capture', value);\n } else {\n this._input.removeAttribute('capture');\n }\n }\n\n /**\n * Sets the multiple attribute of the input.\n * @param value The multiple state.\n */\n public setMultiple(value: boolean): void {\n if (value) {\n this._input.setAttribute('multiple', '');\n } else {\n this._input.removeAttribute('multiple');\n }\n }\n\n /**\n * Sets the disabled state of the file picker.\n * @param value The disabled state.\n */\n public setDisabled(value: boolean): void {\n if (value) {\n this._container.removeEventListener('click', this._inputEventListener);\n this._button?.setAttribute('disabled', '');\n this._container.setAttribute('disabled', '');\n } else {\n this._container.addEventListener('click', this._inputEventListener);\n this._button?.removeAttribute('disabled');\n this._container.removeAttribute('disabled');\n }\n }\n\n /**\n * Sets the compact state of the file picker.\n * @param value The compact state.\n */\n public setCompact(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.COMPACT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.COMPACT);\n }\n }\n\n /**\n * Sets the borderless state of the file picker.\n * @param value The borderless state.\n */\n public setBorderless(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.BORDERLESS) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.BORDERLESS);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IFilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport interface IFilePickerFoundation extends ICustomElementFoundation {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\nexport class FilePickerFoundation implements IFilePickerFoundation {\n private _isInitialized = false;\n private _accept: string | null | undefined = null;\n private _maxSize: number | null | undefined = null;\n private _capture: string | null | undefined = null;\n private _multiple = false;\n private _disabled = false;\n private _compact = false;\n private _borderless = false;\n private _buttonSlotListener: (evt: Event) => void;\n private _inputChangeListener: (evt: Event) => void;\n private _dragEnterListener: (evt: DragEvent) => void;\n private _dragLeaveListener: (evt: DragEvent) => void;\n private _dragOverListener: (evt: DragEvent) => void;\n private _dropListener: (evt: DragEvent) => void;\n\n constructor(private _adapter: IFilePickerAdapter) {\n this._buttonSlotListener = evt => this._onButtonSlotChanged(evt);\n this._inputChangeListener = evt => this._onInputChange(evt);\n this._dragEnterListener = evt => this._onDragEnter(evt);\n this._dragLeaveListener = evt => this._onDragLeave(evt);\n this._dragOverListener = evt => this._onDragOver(evt);\n this._dropListener = evt => this._onDrop(evt);\n\n this._adapter.registerButtonSlotListener(this._buttonSlotListener);\n this._adapter.registerInputChangeListener(this._inputChangeListener);\n if (!this._compact) {\n this._registerDragListeners();\n }\n }\n\n public initialize(): void {\n this._adapter.initializeButton();\n this._adapter.setDisabled(this._disabled);\n this._isInitialized = true;\n }\n\n public destroy(): void {\n this._isInitialized = false;\n }\n\n private _onButtonSlotChanged(evt: Event): void {\n this._adapter.initializeButton();\n }\n\n private _onInputChange(evt: Event): void {\n const files = (evt.target as HTMLInputElement).files;\n if (files) {\n this._handleFiles(files);\n }\n }\n\n private _onDragEnter(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDragLeave(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n }\n\n private _onDragOver(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDrop(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n\n if (!this._disabled) {\n const dataTransfer = evt.dataTransfer;\n if (dataTransfer) {\n const files = dataTransfer.files;\n this._handleFiles(files);\n }\n }\n }\n\n private _registerDragListeners(): void {\n this._adapter.registerDragEnterListener(this._dragEnterListener);\n this._adapter.registerDragLeaveListener(this._dragLeaveListener);\n this._adapter.registerDragOverListener(this._dragOverListener);\n this._adapter.registerDropListener(this._dropListener);\n }\n\n private _removeDragListeners(): void {\n this._adapter.removeDragEnterListener(this._dragEnterListener);\n this._adapter.removeDragLeaveListener(this._dragLeaveListener);\n this._adapter.removeDragOverListener(this._dragOverListener);\n this._adapter.removeDropListener(this._dropListener);\n }\n\n private _handleFiles(fileList: FileList): void {\n let data: IFilePickerChangeEventData = {};\n if (fileList) {\n const sortedFiles = this._sortFiles(fileList);\n let files = sortedFiles.legalFiles || null;\n\n // Ensure that we can only drop 1 file if not in multiple mode\n if (!this._multiple && files && files.length > 1) {\n files = files.splice(1);\n }\n\n data = sortedFiles;\n }\n this._adapter.emitHostEvent(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, data);\n }\n\n private _sortFiles(files: FileList): IFilePickerChangeEventData {\n let legalFiles: File[] = [];\n const illegalFiles: File[] = [];\n\n if (!this._accept && !this.maxSize) {\n legalFiles = Array.from(files);\n return { legalFiles, illegalFiles };\n }\n\n const formats = this._accept ? this._accept.split(',').map(f => f.trim().toLowerCase()) : [''];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < files.length; i++) {\n if (!formats.some(f => {\n return files[i].type.toLowerCase().match(f) || files[i].name.toLowerCase().match('\\\\' + f);\n }) || (this._maxSize && files[i].size > this._maxSize)) {\n illegalFiles.push(files[i]);\n } else {\n legalFiles.push(files[i]);\n }\n }\n\n return { legalFiles, illegalFiles };\n }\n\n private _handleDragEvent(evt: DragEvent, isOverTarget: boolean): void {\n if (!this._disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this._adapter.setHighlightState(isOverTarget);\n }\n }\n\n /** Get and set the allowed file types */\n public get accept(): string | null | undefined {\n return this._accept;\n }\n public set accept(value: string | null | undefined) {\n if (this._accept !== value) {\n this._accept = value;\n this._adapter.setAccept(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT, !!value, String(value));\n }\n }\n\n /** Get and set the maximum allowed file size */\n public get maxSize(): number | null | undefined {\n return this._maxSize;\n }\n public set maxSize(value: number | null | undefined) {\n if (this._maxSize !== value) {\n this._maxSize = value;\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE, !!value, String(value));\n }\n }\n\n /** Get and set the camera to use when capturing video or images */\n public get capture(): string | null | undefined {\n return this._capture;\n }\n public set capture(value: string | null | undefined) {\n if (this._capture !== value) {\n this._capture = value;\n this._adapter.setCapture(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE, !!value, String(value));\n }\n }\n\n /** Get and set whether multiple files are allowed */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setMultiple(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE, value);\n }\n }\n\n /** Get and set whether the file picker is disabled */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n if (this._isInitialized) {\n this._adapter.setDisabled(value);\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED, value);\n }\n }\n\n /** Get and set whether the file picker is compact */\n public get compact(): boolean {\n return this._compact;\n }\n public set compact(value: boolean) {\n if (this._compact !== value) {\n this._compact = value;\n this._adapter.setCompact(value);\n if (value) {\n this._removeDragListeners();\n } else {\n this._registerDragListeners();\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT, value);\n }\n }\n\n /** Get and set whether the file picker is borderless */\n public get borderless(): boolean {\n return this._borderless;\n }\n public set borderless(value: boolean) {\n if (this._borderless !== value) {\n this._borderless = value;\n this._adapter.setBorderless(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS, value);\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { ButtonComponent } from '../button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\nimport { FilePickerFoundation } from './file-picker-foundation';\n\nconst template = '<template><form class=\\\"forge-file-picker\\\" id=\\\"container\\\" part=\\\"form\\\"><div class=\\\"forge-file-picker__primary\\\" id=\\\"primary\\\" part=\\\"primary\\\"><slot name=\\\"primary\\\"></slot></div><slot id=\\\"button-slot\\\"></slot><div class=\\\"forge-file-picker__secondary\\\" id=\\\"secondary\\\" part=\\\"secondary\\\"><slot name=\\\"secondary\\\"></slot></div><input type=\\\"file\\\" class=\\\"forge-file-picker__input\\\" id=\\\"input\\\" part=\\\"input\\\"></form><div class=\\\"forge-file-picker__helper-text\\\" part=\\\"helper-text-container\\\"><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';\n\nexport interface IFilePickerComponent extends IBaseComponent {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-file-picker': IFilePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-file-picker>` custom element.\n * \n * @tag forge-file-picker\n */\n@CustomElement({\n name: FILE_PICKER_CONSTANTS.elementName,\n dependencies: [ButtonComponent]\n})\nexport class FilePickerComponent extends BaseComponent implements IFilePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n FILE_PICKER_CONSTANTS.attributes.ACCEPT,\n FILE_PICKER_CONSTANTS.attributes.MAX_SIZE,\n FILE_PICKER_CONSTANTS.attributes.CAPTURE,\n FILE_PICKER_CONSTANTS.attributes.MULTIPLE,\n FILE_PICKER_CONSTANTS.attributes.DISABLED,\n FILE_PICKER_CONSTANTS.attributes.COMPACT,\n FILE_PICKER_CONSTANTS.attributes.BORDERLESS\n ];\n }\n\n private _foundation: FilePickerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new FilePickerFoundation(new FilePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FILE_PICKER_CONSTANTS.attributes.ACCEPT:\n this.accept = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MAX_SIZE:\n this.maxSize = coerceNumber(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.CAPTURE:\n this.capture = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.COMPACT:\n this.compact = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.BORDERLESS:\n this.borderless = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the allowed file types */\n @FoundationProperty()\n public declare accept: string | null | undefined;\n\n /** Gets and sets the maximum allowed file size */\n @FoundationProperty()\n public declare maxSize: number | null | undefined;\n\n /** Gets and sets the camera to use when capturing video or images */\n @FoundationProperty()\n public declare capture: string | null | undefined;\n\n /** Gets and sets whether multiple files are allowed */\n @FoundationProperty()\n public declare multiple: boolean;\n\n /** Gets and sets whether the file picker is disabled */\n @FoundationProperty()\n public declare disabled: boolean;\n\n /** Gets and sets whether the file picker is compact */\n @FoundationProperty()\n public declare compact: boolean;\n\n /** Gets and sets whether the file picker is borderless */\n @FoundationProperty()\n public declare borderless: boolean;\n}\n", "import { ButtonComponentDelegate } from '../button/button-component-delegate';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport type FilePickerComponentDelegateProps = Partial<IFilePickerComponent>;\nexport interface IFilePickerComponentDelegateOptions extends IBaseComponentDelegateOptions {\n primaryText?: string;\n secondaryText?: string;\n helperText?: string;\n buttonText?: string;\n}\nexport interface IFilePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IFilePickerComponent, IFilePickerComponentDelegateOptions> {}\n\nexport class FilePickerComponentDelegate extends BaseComponentDelegate<IFilePickerComponent, IFilePickerComponentDelegateOptions> {\n constructor(config?: IFilePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IFilePickerComponent {\n return document.createElement(FILE_PICKER_CONSTANTS.elementName);\n }\n\n protected _configure(): void {\n if (this._config.options?.primaryText) {\n const primarySpan = document.createElement('span');\n primarySpan.slot = 'primary';\n primarySpan.textContent = this._config.options.primaryText;\n this._element.appendChild(primarySpan);\n }\n\n if (this._config.options?.secondaryText) {\n const secondarySpan = document.createElement('span');\n secondarySpan.slot = 'secondary';\n secondarySpan.textContent = this._config.options.secondaryText;\n this._element.appendChild(secondarySpan);\n }\n\n if (this._config.options?.buttonText) {\n new ButtonComponentDelegate({\n options: {\n parent: this._element,\n text: this._config.options.buttonText\n },\n props: { type: 'outlined' }\n });\n }\n\n if (this._config.options?.helperText) {\n const helperTextSpan = document.createElement('span');\n helperTextSpan.slot = 'helper-text';\n helperTextSpan.textContent = this._config.options.helperText;\n this._element.appendChild(helperTextSpan);\n }\n }\n\n public onChange(cb: (evt: IFilePickerChangeEventData) => void): void {\n this._element.addEventListener(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, (evt: CustomEvent<IFilePickerChangeEventData>) => cb(evt.detail));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { FilePickerComponent } from './file-picker';\n\nexport * from './file-picker-adapter';\nexport * from './file-picker-constants';\nexport * from './file-picker-foundation';\nexport * from './file-picker';\nexport * from './file-picker-component-delegate';\n\nexport function defineFilePickerComponent(): void {\n defineCustomElement(FilePickerComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}file-picker`;\n\nconst attributes = {\n ACCEPT: 'accept',\n MAX_SIZE: 'max-size',\n CAPTURE: 'capture',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst classes = {\n HIGHLIGHT: 'highlight',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst ids = {\n CONTAINER: 'container',\n BUTTON: 'button',\n INPUT: 'input'\n};\n\nconst selectors = {\n CONTAINER: '#container',\n BUTTON: '#button',\n INPUT: '#input',\n BUTTON_SLOT: '#button-slot'\n};\n\nconst events = {\n FILES_CHANGED: `${elementName}-change`\n};\n\nexport const FILE_PICKER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n selectors,\n events\n};\n\nexport interface IFilePickerChangeEventData {\n legalFiles?: File[];\n illegalFiles?: File[];\n}\n", "import { getShadowElement, emitEvent } from '@tylertech/forge-core';\n\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS } from './file-picker-constants';\nimport { BaseAdapter, IBaseAdapter } from '../core';\n\nexport interface IFilePickerAdapter extends IBaseAdapter {\n registerButtonSlotListener(listener: (evt: Event) => void): void;\n registerInputChangeListener(listener: (evt: Event) => void): void;\n registerDragEnterListener(listener: (evt: DragEvent) => void): void;\n registerDragLeaveListener(listener: (evt: DragEvent) => void): void;\n registerDragOverListener(listener: (evt: DragEvent) => void): void;\n registerDropListener(listener: (evt: DragEvent) => void): void;\n removeDragEnterListener(listener: (evt: DragEvent) => void): void;\n removeDragLeaveListener(listener: (evt: DragEvent) => void): void;\n removeDragOverListener(listener: (evt: DragEvent) => void): void;\n removeDropListener(listener: (evt: DragEvent) => void): void;\n initializeButton(): void;\n setHighlightState(value: boolean): void;\n setAccept(value: string | null | undefined): void;\n setCapture(value: string | null | undefined): void;\n setMultiple(value: boolean): void;\n setDisabled(value: boolean): void;\n setCompact(value: boolean): void;\n setBorderless(value: boolean): void;\n}\n\nexport class FilePickerAdapter extends BaseAdapter<IFilePickerComponent> implements IFilePickerAdapter {\n private _container: HTMLElement;\n private _buttonSlot: HTMLSlotElement;\n private _button: HTMLButtonElement | undefined;\n private _input: HTMLInputElement;\n private _inputEventListener: () => void;\n\n constructor(component: IFilePickerComponent) {\n super(component);\n\n this._container = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.CONTAINER);\n this._buttonSlot = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.BUTTON_SLOT) as HTMLSlotElement;\n this._input = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n\n this._inputEventListener = () => {\n this._input.value = '';\n this._input.click();\n };\n\n this._container.addEventListener('click', this._inputEventListener);\n }\n\n public registerButtonSlotListener(listener: (evt: Event) => void): void {\n this._buttonSlot.addEventListener('slotchange', listener);\n }\n\n public registerInputChangeListener(listener: (evt: Event) => void): void {\n this._input.addEventListener('change', listener);\n }\n\n public registerDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragenter', listener);\n }\n\n public registerDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragleave', listener);\n }\n\n public registerDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragover', listener);\n }\n\n public registerDropListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('drop', listener);\n }\n\n public removeDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragenter', listener);\n }\n\n public removeDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragleave', listener);\n }\n\n public removeDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragover', listener);\n }\n\n public removeDropListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('drop', listener);\n }\n\n public initializeButton(): void {\n const button = this._component.querySelector('button') as HTMLButtonElement;\n this._button = button || undefined;\n }\n\n /**\n * Sets the highlight state of the file picker.\n * @param value True if the highlight should be applied and false if not.\n */\n public setHighlightState(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT);\n }\n }\n\n /**\n * Sets the accept attribute of the input.\n * @param value The accept string.\n */\n public setAccept(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('accept', value);\n } else {\n this._input.removeAttribute('accept');\n }\n }\n\n /**\n * Sets the capture attribute of the input.\n * @param value The capture string.\n */\n public setCapture(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('capture', value);\n } else {\n this._input.removeAttribute('capture');\n }\n }\n\n /**\n * Sets the multiple attribute of the input.\n * @param value The multiple state.\n */\n public setMultiple(value: boolean): void {\n if (value) {\n this._input.setAttribute('multiple', '');\n } else {\n this._input.removeAttribute('multiple');\n }\n }\n\n /**\n * Sets the disabled state of the file picker.\n * @param value The disabled state.\n */\n public setDisabled(value: boolean): void {\n if (value) {\n this._container.removeEventListener('click', this._inputEventListener);\n this._button?.setAttribute('disabled', '');\n this._container.setAttribute('disabled', '');\n } else {\n this._container.addEventListener('click', this._inputEventListener);\n this._button?.removeAttribute('disabled');\n this._container.removeAttribute('disabled');\n }\n }\n\n /**\n * Sets the compact state of the file picker.\n * @param value The compact state.\n */\n public setCompact(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.COMPACT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.COMPACT);\n }\n }\n\n /**\n * Sets the borderless state of the file picker.\n * @param value The borderless state.\n */\n public setBorderless(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.BORDERLESS) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.BORDERLESS);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IFilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport interface IFilePickerFoundation extends ICustomElementFoundation {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\nexport class FilePickerFoundation implements IFilePickerFoundation {\n private _isInitialized = false;\n private _accept: string | null | undefined = null;\n private _maxSize: number | null | undefined = null;\n private _capture: string | null | undefined = null;\n private _multiple = false;\n private _disabled = false;\n private _compact = false;\n private _borderless = false;\n private _buttonSlotListener: (evt: Event) => void;\n private _inputChangeListener: (evt: Event) => void;\n private _dragEnterListener: (evt: DragEvent) => void;\n private _dragLeaveListener: (evt: DragEvent) => void;\n private _dragOverListener: (evt: DragEvent) => void;\n private _dropListener: (evt: DragEvent) => void;\n\n constructor(private _adapter: IFilePickerAdapter) {\n this._buttonSlotListener = evt => this._onButtonSlotChanged(evt);\n this._inputChangeListener = evt => this._onInputChange(evt);\n this._dragEnterListener = evt => this._onDragEnter(evt);\n this._dragLeaveListener = evt => this._onDragLeave(evt);\n this._dragOverListener = evt => this._onDragOver(evt);\n this._dropListener = evt => this._onDrop(evt);\n\n this._adapter.registerButtonSlotListener(this._buttonSlotListener);\n this._adapter.registerInputChangeListener(this._inputChangeListener);\n if (!this._compact) {\n this._registerDragListeners();\n }\n }\n\n public initialize(): void {\n this._adapter.initializeButton();\n this._adapter.setDisabled(this._disabled);\n this._isInitialized = true;\n }\n\n public destroy(): void {\n this._isInitialized = false;\n }\n\n private _onButtonSlotChanged(evt: Event): void {\n this._adapter.initializeButton();\n }\n\n private _onInputChange(evt: Event): void {\n const files = (evt.target as HTMLInputElement).files;\n if (files) {\n this._handleFiles(files);\n }\n }\n\n private _onDragEnter(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDragLeave(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n }\n\n private _onDragOver(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDrop(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n\n if (!this._disabled) {\n const dataTransfer = evt.dataTransfer;\n if (dataTransfer) {\n const files = dataTransfer.files;\n this._handleFiles(files);\n }\n }\n }\n\n private _registerDragListeners(): void {\n this._adapter.registerDragEnterListener(this._dragEnterListener);\n this._adapter.registerDragLeaveListener(this._dragLeaveListener);\n this._adapter.registerDragOverListener(this._dragOverListener);\n this._adapter.registerDropListener(this._dropListener);\n }\n\n private _removeDragListeners(): void {\n this._adapter.removeDragEnterListener(this._dragEnterListener);\n this._adapter.removeDragLeaveListener(this._dragLeaveListener);\n this._adapter.removeDragOverListener(this._dragOverListener);\n this._adapter.removeDropListener(this._dropListener);\n }\n\n private _handleFiles(fileList: FileList): void {\n let data: IFilePickerChangeEventData = {};\n if (fileList) {\n const sortedFiles = this._sortFiles(fileList);\n let files = sortedFiles.legalFiles || null;\n\n // Ensure that we can only drop 1 file if not in multiple mode\n if (!this._multiple && files && files.length > 1) {\n files = files.splice(1);\n }\n\n data = sortedFiles;\n }\n this._adapter.emitHostEvent(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, data);\n }\n\n private _sortFiles(files: FileList): IFilePickerChangeEventData {\n let legalFiles: File[] = [];\n const illegalFiles: File[] = [];\n\n if (!this._accept && !this.maxSize) {\n legalFiles = Array.from(files);\n return { legalFiles, illegalFiles };\n }\n\n const formats = this._accept ? this._accept.split(',').map(f => f.trim().toLowerCase()) : [''];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < files.length; i++) {\n if (!formats.some(f => {\n return files[i].type.toLowerCase().match(f) || files[i].name.toLowerCase().match('\\\\' + f);\n }) || (this._maxSize && files[i].size > this._maxSize)) {\n illegalFiles.push(files[i]);\n } else {\n legalFiles.push(files[i]);\n }\n }\n\n return { legalFiles, illegalFiles };\n }\n\n private _handleDragEvent(evt: DragEvent, isOverTarget: boolean): void {\n if (!this._disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this._adapter.setHighlightState(isOverTarget);\n }\n }\n\n /** Get and set the allowed file types */\n public get accept(): string | null | undefined {\n return this._accept;\n }\n public set accept(value: string | null | undefined) {\n if (this._accept !== value) {\n this._accept = value;\n this._adapter.setAccept(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT, !!value, String(value));\n }\n }\n\n /** Get and set the maximum allowed file size */\n public get maxSize(): number | null | undefined {\n return this._maxSize;\n }\n public set maxSize(value: number | null | undefined) {\n if (this._maxSize !== value) {\n this._maxSize = value;\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE, !!value, String(value));\n }\n }\n\n /** Get and set the camera to use when capturing video or images */\n public get capture(): string | null | undefined {\n return this._capture;\n }\n public set capture(value: string | null | undefined) {\n if (this._capture !== value) {\n this._capture = value;\n this._adapter.setCapture(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE, !!value, String(value));\n }\n }\n\n /** Get and set whether multiple files are allowed */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setMultiple(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE, value);\n }\n }\n\n /** Get and set whether the file picker is disabled */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n if (this._isInitialized) {\n this._adapter.setDisabled(value);\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED, value);\n }\n }\n\n /** Get and set whether the file picker is compact */\n public get compact(): boolean {\n return this._compact;\n }\n public set compact(value: boolean) {\n if (this._compact !== value) {\n this._compact = value;\n this._adapter.setCompact(value);\n if (value) {\n this._removeDragListeners();\n } else {\n this._registerDragListeners();\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT, value);\n }\n }\n\n /** Get and set whether the file picker is borderless */\n public get borderless(): boolean {\n return this._borderless;\n }\n public set borderless(value: boolean) {\n if (this._borderless !== value) {\n this._borderless = value;\n this._adapter.setBorderless(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS, value);\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { ButtonComponent } from '../button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\nimport { FilePickerFoundation } from './file-picker-foundation';\n\nconst template = '<template><form class=\\\"forge-file-picker\\\" id=\\\"container\\\" part=\\\"form\\\"><div class=\\\"forge-file-picker__primary\\\" id=\\\"primary\\\" part=\\\"primary\\\"><slot name=\\\"primary\\\"></slot></div><slot id=\\\"button-slot\\\"></slot><div class=\\\"forge-file-picker__secondary\\\" id=\\\"secondary\\\" part=\\\"secondary\\\"><slot name=\\\"secondary\\\"></slot></div><input type=\\\"file\\\" class=\\\"forge-file-picker__input\\\" id=\\\"input\\\" part=\\\"input\\\"></form><div class=\\\"forge-file-picker__helper-text\\\" part=\\\"helper-text-container\\\"><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fff;background-color:var(--mdc-theme-background,#fff);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee);background-color:rgba(98,0,238,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';\n\nexport interface IFilePickerComponent extends IBaseComponent {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-file-picker': IFilePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-file-picker>` custom element.\n * \n * @tag forge-file-picker\n */\n@CustomElement({\n name: FILE_PICKER_CONSTANTS.elementName,\n dependencies: [ButtonComponent]\n})\nexport class FilePickerComponent extends BaseComponent implements IFilePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n FILE_PICKER_CONSTANTS.attributes.ACCEPT,\n FILE_PICKER_CONSTANTS.attributes.MAX_SIZE,\n FILE_PICKER_CONSTANTS.attributes.CAPTURE,\n FILE_PICKER_CONSTANTS.attributes.MULTIPLE,\n FILE_PICKER_CONSTANTS.attributes.DISABLED,\n FILE_PICKER_CONSTANTS.attributes.COMPACT,\n FILE_PICKER_CONSTANTS.attributes.BORDERLESS\n ];\n }\n\n private _foundation: FilePickerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new FilePickerFoundation(new FilePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FILE_PICKER_CONSTANTS.attributes.ACCEPT:\n this.accept = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MAX_SIZE:\n this.maxSize = coerceNumber(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.CAPTURE:\n this.capture = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.COMPACT:\n this.compact = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.BORDERLESS:\n this.borderless = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the allowed file types */\n @FoundationProperty()\n public declare accept: string | null | undefined;\n\n /** Gets and sets the maximum allowed file size */\n @FoundationProperty()\n public declare maxSize: number | null | undefined;\n\n /** Gets and sets the camera to use when capturing video or images */\n @FoundationProperty()\n public declare capture: string | null | undefined;\n\n /** Gets and sets whether multiple files are allowed */\n @FoundationProperty()\n public declare multiple: boolean;\n\n /** Gets and sets whether the file picker is disabled */\n @FoundationProperty()\n public declare disabled: boolean;\n\n /** Gets and sets whether the file picker is compact */\n @FoundationProperty()\n public declare compact: boolean;\n\n /** Gets and sets whether the file picker is borderless */\n @FoundationProperty()\n public declare borderless: boolean;\n}\n", "import { ButtonComponentDelegate } from '../button/button-component-delegate';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport type FilePickerComponentDelegateProps = Partial<IFilePickerComponent>;\nexport interface IFilePickerComponentDelegateOptions extends IBaseComponentDelegateOptions {\n primaryText?: string;\n secondaryText?: string;\n helperText?: string;\n buttonText?: string;\n}\nexport interface IFilePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IFilePickerComponent, IFilePickerComponentDelegateOptions> {}\n\nexport class FilePickerComponentDelegate extends BaseComponentDelegate<IFilePickerComponent, IFilePickerComponentDelegateOptions> {\n constructor(config?: IFilePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IFilePickerComponent {\n return document.createElement(FILE_PICKER_CONSTANTS.elementName);\n }\n\n protected _configure(): void {\n if (this._config.options?.primaryText) {\n const primarySpan = document.createElement('span');\n primarySpan.slot = 'primary';\n primarySpan.textContent = this._config.options.primaryText;\n this._element.appendChild(primarySpan);\n }\n\n if (this._config.options?.secondaryText) {\n const secondarySpan = document.createElement('span');\n secondarySpan.slot = 'secondary';\n secondarySpan.textContent = this._config.options.secondaryText;\n this._element.appendChild(secondarySpan);\n }\n\n if (this._config.options?.buttonText) {\n new ButtonComponentDelegate({\n options: {\n parent: this._element,\n text: this._config.options.buttonText\n },\n props: { type: 'outlined' }\n });\n }\n\n if (this._config.options?.helperText) {\n const helperTextSpan = document.createElement('span');\n helperTextSpan.slot = 'helper-text';\n helperTextSpan.textContent = this._config.options.helperText;\n this._element.appendChild(helperTextSpan);\n }\n }\n\n public onChange(cb: (evt: IFilePickerChangeEventData) => void): void {\n this._element.addEventListener(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, (evt: CustomEvent<IFilePickerChangeEventData>) => cb(evt.detail));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { FilePickerComponent } from './file-picker';\n\nexport * from './file-picker-adapter';\nexport * from './file-picker-constants';\nexport * from './file-picker-foundation';\nexport * from './file-picker';\nexport * from './file-picker-component-delegate';\n\nexport function defineFilePickerComponent(): void {\n defineCustomElement(FilePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "ids", "selectors", "events", "FILE_PICKER_CONSTANTS", "FilePickerAdapter", "BaseAdapter", "component", "getShadowElement", "FILE_PICKER_CONSTANTS", "listener", "button", "value", "_a", "_b", "FilePickerFoundation", "_adapter", "evt", "files", "dataTransfer", "fileList", "data", "sortedFiles", "FILE_PICKER_CONSTANTS", "legalFiles", "illegalFiles", "formats", "f", "i", "isOverTarget", "value", "template", "styles", "FilePickerComponent", "BaseComponent", "attachShadowTemplate", "FilePickerFoundation", "FilePickerAdapter", "FILE_PICKER_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "ButtonComponent", "FilePickerComponentDelegate", "BaseComponentDelegate", "config", "FILE_PICKER_CONSTANTS", "_a", "_b", "_c", "_d", "primarySpan", "secondarySpan", "ButtonComponentDelegate", "helperTextSpan", "cb", "evt", "defineFilePickerComponent", "defineCustomElement", "FilePickerComponent"]
7
7
  }