@tylertech/forge 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/custom-elements.json +4350 -82
  2. package/dist/esm/accordion/index.js +7 -7
  3. package/dist/esm/app-bar/help-button/index.js +9 -9
  4. package/dist/esm/app-bar/index.js +15 -15
  5. package/dist/esm/app-bar/menu-button/index.js +6 -6
  6. package/dist/esm/app-bar/notification-button/index.js +6 -6
  7. package/dist/esm/app-bar/profile-button/index.js +7 -7
  8. package/dist/esm/app-bar/search/index.js +5 -5
  9. package/dist/esm/autocomplete/index.js +13 -13
  10. package/dist/esm/banner/index.js +6 -6
  11. package/dist/esm/bottom-sheet/index.js +5 -5
  12. package/dist/esm/busy-indicator/index.js +4 -4
  13. package/dist/esm/button/index.js +3 -3
  14. package/dist/esm/calendar/calendar-dropdown/index.js +2 -2
  15. package/dist/esm/calendar/calendar-menu/index.js +2 -2
  16. package/dist/esm/calendar/index.js +7 -7
  17. package/dist/esm/checkbox/index.js +2 -2
  18. package/dist/esm/chip-field/index.js +9 -9
  19. package/dist/esm/chips/chip/index.js +6 -6
  20. package/dist/esm/chips/chip-set/index.js +6 -6
  21. package/dist/esm/chips/index.js +7 -7
  22. package/dist/esm/chunks/{chunk.VXVE7KEM.js → chunk.2QB3WXEH.js} +4 -4
  23. package/dist/esm/chunks/{chunk.VXVE7KEM.js.map → chunk.2QB3WXEH.js.map} +0 -0
  24. package/dist/esm/chunks/{chunk.3QXCVTCP.js → chunk.2Z23LQVW.js} +2 -2
  25. package/dist/esm/chunks/{chunk.3QXCVTCP.js.map → chunk.2Z23LQVW.js.map} +0 -0
  26. package/dist/esm/chunks/{chunk.BEAJZPWS.js → chunk.3TFBNPQF.js} +2 -2
  27. package/dist/esm/chunks/{chunk.BEAJZPWS.js.map → chunk.3TFBNPQF.js.map} +0 -0
  28. package/dist/esm/chunks/{chunk.2MBI5DLT.js → chunk.3ULPDQ2I.js} +71 -15
  29. package/dist/esm/chunks/chunk.3ULPDQ2I.js.map +7 -0
  30. package/dist/esm/chunks/{chunk.JC2PZ4TS.js → chunk.5DJS3K7V.js} +10 -8
  31. package/dist/esm/chunks/chunk.5DJS3K7V.js.map +7 -0
  32. package/dist/esm/chunks/{chunk.GHZ75UPO.js → chunk.5EBM357P.js} +3 -3
  33. package/dist/esm/chunks/{chunk.GHZ75UPO.js.map → chunk.5EBM357P.js.map} +0 -0
  34. package/dist/esm/chunks/{chunk.J5NUYQ4D.js → chunk.5XUOWRCK.js} +3 -3
  35. package/dist/esm/chunks/{chunk.J5NUYQ4D.js.map → chunk.5XUOWRCK.js.map} +0 -0
  36. package/dist/esm/chunks/{chunk.6EGTLHJS.js → chunk.65ZCTZEM.js} +6 -2
  37. package/dist/esm/chunks/{chunk.6EGTLHJS.js.map → chunk.65ZCTZEM.js.map} +2 -2
  38. package/dist/esm/chunks/chunk.A5GIQB6E.js +20 -0
  39. package/dist/esm/chunks/{chunk.2NMHSTAO.js.map → chunk.A5GIQB6E.js.map} +3 -3
  40. package/dist/esm/chunks/{chunk.PM7D2SUE.js → chunk.A6YZB7UK.js} +33 -2
  41. package/dist/esm/chunks/{chunk.PM7D2SUE.js.map → chunk.A6YZB7UK.js.map} +2 -2
  42. package/dist/esm/chunks/chunk.AJJILT3A.js +6 -0
  43. package/dist/esm/chunks/chunk.AJJILT3A.js.map +7 -0
  44. package/dist/esm/chunks/chunk.CGKWQIL3.js +1236 -0
  45. package/dist/esm/chunks/chunk.CGKWQIL3.js.map +7 -0
  46. package/dist/esm/chunks/chunk.CGOYP37Z.js +345 -0
  47. package/dist/esm/chunks/chunk.CGOYP37Z.js.map +7 -0
  48. package/dist/esm/chunks/{chunk.QYWAZCBX.js → chunk.CTMCTMRO.js} +2 -2
  49. package/dist/esm/chunks/{chunk.QYWAZCBX.js.map → chunk.CTMCTMRO.js.map} +0 -0
  50. package/dist/esm/chunks/{chunk.2NMHSTAO.js → chunk.D2AL6QLF.js} +10 -13
  51. package/dist/esm/chunks/chunk.D2AL6QLF.js.map +7 -0
  52. package/dist/esm/chunks/{chunk.U5ECVIX5.js → chunk.D3MXPNTL.js} +2 -2
  53. package/dist/esm/chunks/{chunk.U5ECVIX5.js.map → chunk.D3MXPNTL.js.map} +0 -0
  54. package/dist/esm/chunks/{chunk.HAWYW54W.js → chunk.D45QN7JA.js} +5 -5
  55. package/dist/esm/chunks/{chunk.HAWYW54W.js.map → chunk.D45QN7JA.js.map} +0 -0
  56. package/dist/esm/chunks/{chunk.2WBHHTUM.js → chunk.EFQZGAM5.js} +2 -2
  57. package/dist/esm/chunks/{chunk.2WBHHTUM.js.map → chunk.EFQZGAM5.js.map} +0 -0
  58. package/dist/esm/chunks/{chunk.BLZJIYMG.js → chunk.F5O63UF4.js} +2 -2
  59. package/dist/esm/chunks/{chunk.BLZJIYMG.js.map → chunk.F5O63UF4.js.map} +0 -0
  60. package/dist/esm/chunks/{chunk.RL7ZFLMG.js → chunk.FRT7RD5L.js} +2 -2
  61. package/dist/esm/chunks/{chunk.RL7ZFLMG.js.map → chunk.FRT7RD5L.js.map} +0 -0
  62. package/dist/esm/chunks/{chunk.LK2DN5KX.js → chunk.GG3O42UP.js} +4 -4
  63. package/dist/esm/chunks/{chunk.LK2DN5KX.js.map → chunk.GG3O42UP.js.map} +0 -0
  64. package/dist/esm/chunks/{chunk.WSH4S3GM.js → chunk.GVR5LXMJ.js} +2 -2
  65. package/dist/esm/chunks/{chunk.WSH4S3GM.js.map → chunk.GVR5LXMJ.js.map} +0 -0
  66. package/dist/esm/chunks/{chunk.LHWZ4KZU.js → chunk.HL2ORG3A.js} +4 -4
  67. package/dist/esm/chunks/{chunk.LHWZ4KZU.js.map → chunk.HL2ORG3A.js.map} +1 -1
  68. package/dist/esm/chunks/{chunk.ELAJS33V.js → chunk.J2FCOFOE.js} +2 -2
  69. package/dist/esm/chunks/{chunk.ELAJS33V.js.map → chunk.J2FCOFOE.js.map} +0 -0
  70. package/dist/esm/chunks/{chunk.PKZ43JNW.js → chunk.JM6SZSUI.js} +50 -4
  71. package/dist/esm/chunks/{chunk.PKZ43JNW.js.map → chunk.JM6SZSUI.js.map} +2 -2
  72. package/dist/esm/chunks/{chunk.VXAPRFMK.js → chunk.K4B7NJ2G.js} +4 -4
  73. package/dist/esm/chunks/{chunk.VXAPRFMK.js.map → chunk.K4B7NJ2G.js.map} +0 -0
  74. package/dist/esm/chunks/{chunk.67B6JDOJ.js → chunk.KVOXJKCU.js} +3 -3
  75. package/dist/esm/chunks/{chunk.67B6JDOJ.js.map → chunk.KVOXJKCU.js.map} +0 -0
  76. package/dist/esm/chunks/{chunk.ITQ55IPH.js → chunk.LTN47GWQ.js} +4 -4
  77. package/dist/esm/chunks/{chunk.ITQ55IPH.js.map → chunk.LTN47GWQ.js.map} +0 -0
  78. package/dist/esm/chunks/{chunk.UPW5HUKB.js → chunk.NU3XRT37.js} +5 -5
  79. package/dist/esm/chunks/{chunk.UPW5HUKB.js.map → chunk.NU3XRT37.js.map} +0 -0
  80. package/dist/esm/chunks/{chunk.I6PJGNJS.js → chunk.NWPH4FRE.js} +6 -6
  81. package/dist/esm/chunks/chunk.NWPH4FRE.js.map +7 -0
  82. package/dist/esm/chunks/{chunk.KNR5DXE4.js → chunk.OTJJU35B.js} +2 -2
  83. package/dist/esm/chunks/{chunk.KNR5DXE4.js.map → chunk.OTJJU35B.js.map} +0 -0
  84. package/dist/esm/chunks/{chunk.BVGJFMEG.js → chunk.PRRL5C6Z.js} +7 -7
  85. package/dist/esm/chunks/{chunk.BVGJFMEG.js.map → chunk.PRRL5C6Z.js.map} +0 -0
  86. package/dist/esm/chunks/{chunk.TIUNGGBF.js → chunk.QFG7SPQV.js} +3 -3
  87. package/dist/esm/chunks/{chunk.TIUNGGBF.js.map → chunk.QFG7SPQV.js.map} +0 -0
  88. package/dist/esm/chunks/{chunk.XE7ZMJBZ.js → chunk.QKCIMRRG.js} +32 -17
  89. package/dist/esm/chunks/chunk.QKCIMRRG.js.map +7 -0
  90. package/dist/esm/chunks/{chunk.IGBDDH3J.js → chunk.QRGWP6Z2.js} +3 -3
  91. package/dist/esm/chunks/chunk.QRGWP6Z2.js.map +7 -0
  92. package/dist/esm/chunks/{chunk.MUP3NY6M.js → chunk.QSFE3J74.js} +5 -5
  93. package/dist/esm/chunks/{chunk.MUP3NY6M.js.map → chunk.QSFE3J74.js.map} +0 -0
  94. package/dist/esm/chunks/{chunk.UFMUXBT4.js → chunk.R357QRWX.js} +53 -49
  95. package/dist/esm/chunks/chunk.R357QRWX.js.map +7 -0
  96. package/dist/esm/chunks/{chunk.46BED43J.js → chunk.SVS3G6Y7.js} +5 -19
  97. package/dist/esm/chunks/chunk.SVS3G6Y7.js.map +7 -0
  98. package/dist/esm/chunks/{chunk.S3UVF647.js → chunk.TBQ72CBS.js} +3 -3
  99. package/dist/esm/chunks/{chunk.S3UVF647.js.map → chunk.TBQ72CBS.js.map} +0 -0
  100. package/dist/esm/chunks/{chunk.ZSHQMR4O.js → chunk.TSHHEAIC.js} +2 -2
  101. package/dist/esm/chunks/{chunk.ZSHQMR4O.js.map → chunk.TSHHEAIC.js.map} +0 -0
  102. package/dist/esm/chunks/{chunk.EBC2HGO3.js → chunk.UAW46BWM.js} +3 -3
  103. package/dist/esm/chunks/{chunk.EBC2HGO3.js.map → chunk.UAW46BWM.js.map} +0 -0
  104. package/dist/esm/chunks/{chunk.FJJVIMZ2.js → chunk.V6ESTGWD.js} +5 -5
  105. package/dist/esm/chunks/chunk.V6ESTGWD.js.map +7 -0
  106. package/dist/esm/chunks/{chunk.5OYAJ36F.js → chunk.VLAUYV76.js} +2 -2
  107. package/dist/esm/chunks/{chunk.5OYAJ36F.js.map → chunk.VLAUYV76.js.map} +0 -0
  108. package/dist/esm/chunks/{chunk.L4OUV7W6.js → chunk.VSKPHQZE.js} +4 -4
  109. package/dist/esm/chunks/{chunk.L4OUV7W6.js.map → chunk.VSKPHQZE.js.map} +0 -0
  110. package/dist/esm/chunks/{chunk.GS2AXUCN.js → chunk.WOL4KRZK.js} +6 -1
  111. package/dist/esm/chunks/{chunk.GS2AXUCN.js.map → chunk.WOL4KRZK.js.map} +1 -1
  112. package/dist/esm/chunks/{chunk.TM46MNYN.js → chunk.WQRR5OGK.js} +5 -5
  113. package/dist/esm/chunks/{chunk.TM46MNYN.js.map → chunk.WQRR5OGK.js.map} +0 -0
  114. package/dist/esm/chunks/chunk.X2RP4QW3.js +6 -0
  115. package/dist/esm/chunks/chunk.X2RP4QW3.js.map +7 -0
  116. package/dist/esm/chunks/{chunk.K7OLG7CS.js → chunk.X3TV6IHS.js} +2 -2
  117. package/dist/esm/chunks/{chunk.K7OLG7CS.js.map → chunk.X3TV6IHS.js.map} +0 -0
  118. package/dist/esm/chunks/{chunk.U37G47LH.js → chunk.XC56O73Q.js} +6 -6
  119. package/dist/esm/chunks/{chunk.U37G47LH.js.map → chunk.XC56O73Q.js.map} +0 -0
  120. package/dist/esm/chunks/{chunk.QWW6A7AF.js → chunk.XRK62M5E.js} +2 -2
  121. package/dist/esm/chunks/{chunk.QWW6A7AF.js.map → chunk.XRK62M5E.js.map} +0 -0
  122. package/dist/esm/chunks/{chunk.ZLF2G3YT.js → chunk.XSS7BYJS.js} +3 -3
  123. package/dist/esm/chunks/{chunk.ZLF2G3YT.js.map → chunk.XSS7BYJS.js.map} +0 -0
  124. package/dist/esm/chunks/{chunk.PNKLV3BK.js → chunk.YCHKXJLN.js} +2 -2
  125. package/dist/esm/chunks/{chunk.PNKLV3BK.js.map → chunk.YCHKXJLN.js.map} +0 -0
  126. package/dist/esm/chunks/{chunk.UQ3QTUUB.js → chunk.YMP3JQQQ.js} +2 -2
  127. package/dist/esm/chunks/{chunk.UQ3QTUUB.js.map → chunk.YMP3JQQQ.js.map} +0 -0
  128. package/dist/esm/chunks/{chunk.7I2XNJBL.js → chunk.YTFOQNFU.js} +6 -16
  129. package/dist/esm/chunks/chunk.YTFOQNFU.js.map +7 -0
  130. package/dist/esm/chunks/{chunk.IJW2YKP3.js → chunk.Z5KLXKMB.js} +21 -15
  131. package/dist/esm/chunks/chunk.Z5KLXKMB.js.map +7 -0
  132. package/dist/esm/chunks/{chunk.MBZLA635.js → chunk.ZIZGRSAX.js} +6 -6
  133. package/dist/esm/chunks/{chunk.MBZLA635.js.map → chunk.ZIZGRSAX.js.map} +1 -1
  134. package/dist/esm/chunks/{chunk.CLEUHAZ6.js → chunk.ZLX3L6KW.js} +2 -2
  135. package/dist/esm/chunks/{chunk.CLEUHAZ6.js.map → chunk.ZLX3L6KW.js.map} +0 -0
  136. package/dist/esm/color-picker/index.js +6 -6
  137. package/dist/esm/core/index.js +14 -2
  138. package/dist/esm/core/utils/index.js +14 -2
  139. package/dist/esm/date-picker/index.js +11 -11
  140. package/dist/esm/date-range-picker/index.js +11 -11
  141. package/dist/esm/dialog/index.js +5 -5
  142. package/dist/esm/drawer/base/index.js +2 -2
  143. package/dist/esm/drawer/drawer/index.js +3 -3
  144. package/dist/esm/drawer/index.js +5 -5
  145. package/dist/esm/drawer/mini-drawer/index.js +3 -3
  146. package/dist/esm/drawer/modal-drawer/index.js +3 -3
  147. package/dist/esm/expansion-panel/index.js +6 -6
  148. package/dist/esm/file-picker/index.js +4 -4
  149. package/dist/esm/icon/index.js +3 -3
  150. package/dist/esm/icon-button/index.js +4 -4
  151. package/dist/esm/index.js +168 -93
  152. package/dist/esm/list-dropdown/index.js +5 -5
  153. package/dist/esm/menu/index.js +7 -7
  154. package/dist/esm/open-icon/index.js +5 -5
  155. package/dist/esm/paginator/index.js +12 -12
  156. package/dist/esm/profile-card/index.js +4 -4
  157. package/dist/esm/quantity-field/index.js +6 -7
  158. package/dist/esm/select/core/index.js +7 -7
  159. package/dist/esm/select/index.js +11 -11
  160. package/dist/esm/select/select/index.js +9 -9
  161. package/dist/esm/select/select-dropdown/index.js +9 -9
  162. package/dist/esm/slider/index.js +2 -2
  163. package/dist/esm/split-view/core/index.js +7 -0
  164. package/dist/esm/split-view/core/index.js.map +7 -0
  165. package/dist/esm/split-view/index.js +92 -0
  166. package/dist/esm/split-view/index.js.map +7 -0
  167. package/dist/esm/split-view/split-view/index.js +44 -0
  168. package/dist/esm/split-view/split-view/index.js.map +7 -0
  169. package/dist/esm/split-view/split-view-panel/index.js +78 -0
  170. package/dist/esm/split-view/split-view-panel/index.js.map +7 -0
  171. package/dist/esm/stepper/index.js +6 -6
  172. package/dist/esm/stepper/step/index.js +5 -5
  173. package/dist/esm/stepper/stepper/index.js +6 -6
  174. package/dist/esm/switch/index.js +2 -2
  175. package/dist/esm/table/index.js +7 -7
  176. package/dist/esm/tabs/index.js +6 -6
  177. package/dist/esm/tabs/tab-bar/index.js +6 -6
  178. package/dist/esm/text-field/index.js +2 -2
  179. package/dist/esm/time-picker/index.js +11 -10
  180. package/dist/esm/toast/index.js +7 -7
  181. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +6 -1
  182. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +30 -12
  183. package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +4 -0
  184. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +2 -0
  185. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +8 -0
  186. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +22 -0
  187. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +4 -0
  188. package/esm/app-bar/profile-button/app-bar-profile-button.js +14 -0
  189. package/esm/autocomplete/autocomplete-adapter.d.ts +2 -0
  190. package/esm/autocomplete/autocomplete-adapter.js +4 -0
  191. package/esm/autocomplete/autocomplete-foundation.js +10 -7
  192. package/esm/chip-field/chip-field-adapter.d.ts +1 -1
  193. package/esm/chip-field/chip-field-adapter.js +2 -2
  194. package/esm/chip-field/chip-field.js +1 -1
  195. package/esm/chips/chip/chip.js +1 -1
  196. package/esm/core/utils/event-utils.d.ts +1 -0
  197. package/esm/core/utils/event-utils.js +3 -0
  198. package/esm/core/utils/utils.d.ts +36 -0
  199. package/esm/core/utils/utils.js +57 -0
  200. package/esm/date-picker/date-picker-foundation.js +3 -1
  201. package/esm/field/field-adapter.d.ts +4 -4
  202. package/esm/field/field-adapter.js +4 -13
  203. package/esm/field/field-foundation.js +2 -2
  204. package/esm/index.d.ts +1 -0
  205. package/esm/index.js +3 -0
  206. package/esm/profile-card/profile-card-adapter.d.ts +4 -0
  207. package/esm/profile-card/profile-card-adapter.js +6 -0
  208. package/esm/profile-card/profile-card-constants.d.ts +4 -0
  209. package/esm/profile-card/profile-card-constants.js +5 -1
  210. package/esm/profile-card/profile-card-foundation.d.ts +6 -0
  211. package/esm/profile-card/profile-card-foundation.js +22 -0
  212. package/esm/profile-card/profile-card.d.ts +4 -0
  213. package/esm/profile-card/profile-card.js +15 -1
  214. package/esm/quantity-field/quantity-field-adapter.d.ts +0 -2
  215. package/esm/quantity-field/quantity-field-adapter.js +1 -13
  216. package/esm/quantity-field/quantity-field-foundation.js +0 -1
  217. package/esm/quantity-field/quantity-field.js +1 -1
  218. package/esm/select/select/select.js +1 -1
  219. package/esm/split-view/core/index.d.ts +6 -0
  220. package/esm/split-view/core/index.js +6 -0
  221. package/esm/split-view/core/split-view-base.d.ts +14 -0
  222. package/esm/split-view/core/split-view-base.js +6 -0
  223. package/esm/split-view/index.d.ts +8 -0
  224. package/esm/split-view/index.js +8 -0
  225. package/esm/split-view/split-view/index.d.ts +10 -0
  226. package/esm/split-view/split-view/index.js +14 -0
  227. package/esm/split-view/split-view/split-view-adapter.d.ts +29 -0
  228. package/esm/split-view/split-view/split-view-adapter.js +62 -0
  229. package/esm/split-view/split-view/split-view-constants.d.ts +41 -0
  230. package/esm/split-view/split-view/split-view-constants.js +40 -0
  231. package/esm/split-view/split-view/split-view-foundation.d.ts +86 -0
  232. package/esm/split-view/split-view/split-view-foundation.js +179 -0
  233. package/esm/split-view/split-view/split-view.d.ts +67 -0
  234. package/esm/split-view/split-view/split-view.js +103 -0
  235. package/esm/split-view/split-view-panel/index.d.ts +11 -0
  236. package/esm/split-view/split-view-panel/index.js +15 -0
  237. package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +171 -0
  238. package/esm/split-view/split-view-panel/split-view-panel-adapter.js +295 -0
  239. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +97 -0
  240. package/esm/split-view/split-view-panel/split-view-panel-constants.js +78 -0
  241. package/esm/split-view/split-view-panel/split-view-panel-foundation.d.ts +235 -0
  242. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +667 -0
  243. package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +130 -0
  244. package/esm/split-view/split-view-panel/split-view-panel-utils.js +300 -0
  245. package/esm/split-view/split-view-panel/split-view-panel.d.ts +105 -0
  246. package/esm/split-view/split-view-panel/split-view-panel.js +173 -0
  247. package/esm/table/table-utils.d.ts +2 -2
  248. package/esm/table/table-utils.js +30 -14
  249. package/esm/text-field/text-field-adapter.d.ts +1 -1
  250. package/esm/text-field/text-field-adapter.js +2 -2
  251. package/esm/text-field/text-field.js +1 -1
  252. package/package.json +2 -2
  253. package/styles/chip-field/_base.scss +2 -2
  254. package/styles/chip-field/_selector.scss +1 -1
  255. package/styles/chip-field/_variables.scss +1 -1
  256. package/styles/chips/chip/_mixins.scss +4 -3
  257. package/styles/chips/chip/_variables.scss +3 -2
  258. package/styles/field/_base.scss +16 -4
  259. package/styles/field/_selector.scss +4 -4
  260. package/styles/quantity-field/_mixins.scss +1 -1
  261. package/styles/select/select/_selector.scss +1 -1
  262. package/styles/split-view/split-view/_mixins.scss +48 -0
  263. package/styles/split-view/split-view/split-view.scss +25 -0
  264. package/styles/split-view/split-view-panel/_mixins.scss +260 -0
  265. package/styles/split-view/split-view-panel/_variables.scss +7 -0
  266. package/styles/split-view/split-view-panel/split-view-panel.scss +23 -0
  267. package/dist/esm/chunks/chunk.2MBI5DLT.js.map +0 -7
  268. package/dist/esm/chunks/chunk.46BED43J.js.map +0 -7
  269. package/dist/esm/chunks/chunk.7I2XNJBL.js.map +0 -7
  270. package/dist/esm/chunks/chunk.FJJVIMZ2.js.map +0 -7
  271. package/dist/esm/chunks/chunk.I6PJGNJS.js.map +0 -7
  272. package/dist/esm/chunks/chunk.IGBDDH3J.js.map +0 -7
  273. package/dist/esm/chunks/chunk.IJW2YKP3.js.map +0 -7
  274. package/dist/esm/chunks/chunk.JC2PZ4TS.js.map +0 -7
  275. package/dist/esm/chunks/chunk.UFMUXBT4.js.map +0 -7
  276. package/dist/esm/chunks/chunk.XE7ZMJBZ.js.map +0 -7
@@ -273,6 +273,32 @@ function userInteractionListener(element, { capture = true, pointerenter = true,
273
273
  }
274
274
  });
275
275
  }
276
+ function percentToPixels(amount, containerSize) {
277
+ if (containerSize === 0) {
278
+ return 0;
279
+ }
280
+ return amount / 100 * containerSize;
281
+ }
282
+ function pixelsToPercent(amount, containerSize) {
283
+ if (containerSize === 0) {
284
+ return 0;
285
+ }
286
+ return amount * 100 / containerSize;
287
+ }
288
+ function scaleValue(value, fromMin, fromMax, toMin = 0, toMax = 100) {
289
+ const range = fromMax - fromMin;
290
+ const adjustedValue = value - fromMin;
291
+ if (!range || !adjustedValue) {
292
+ return toMin;
293
+ }
294
+ return adjustedValue * toMax / range + toMin;
295
+ }
296
+ function safeMin(...args) {
297
+ return Math.min(...args.map((arg) => arg != null ? arg : Number.POSITIVE_INFINITY));
298
+ }
299
+ function safeMax(...args) {
300
+ return Math.max(...args.map((arg) => arg != null ? arg : Number.NEGATIVE_INFINITY));
301
+ }
276
302
 
277
303
  export {
278
304
  ISO_8601_REGEX,
@@ -292,6 +318,11 @@ export {
292
318
  isSupportedTimeFormat,
293
319
  tryCoerceTimeString,
294
320
  highlightTextHTML,
295
- userInteractionListener
321
+ userInteractionListener,
322
+ percentToPixels,
323
+ pixelsToPercent,
324
+ scaleValue,
325
+ safeMin,
326
+ safeMax
296
327
  };
297
- //# sourceMappingURL=chunk.PM7D2SUE.js.map
328
+ //# sourceMappingURL=chunk.A6YZB7UK.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/core/utils/date-utils.ts", "../../src/core/utils/svg-utils.ts", "../../src/core/utils/time-utils.ts", "../../src/core/utils/utils.ts"],
4
- "sourcesContent": ["import { isValidDate } from '@tylertech/forge-core';\n\nexport const ISO_8601_REGEX = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\nexport const ISO_TIMEZONE_REGEX = /a-z/i;\nconst FUTURE_YEAR_COERCION = 10; // The number of years in the future to coerce two-digit years into current century\n\n/**\n * Parses a date string value to a `Date` object in local time.\n * @param str The date string value.\n */\nexport function parseDateString(value: string): Date | null {\n value = value.replace(/_|\\s/g, ''); // Remove potential extraneous characters\n\n // We first check if this is a valid date in ISO 8601 format and return it if so\n if (ISO_8601_REGEX.test(value)) {\n const iso8601Date = new Date(value);\n\n // This is an ISO string, but does it have a timezone? If not, we add current timezone offset\n if (!ISO_TIMEZONE_REGEX.test(value)) {\n iso8601Date.setMinutes(iso8601Date.getMinutes() + iso8601Date.getTimezoneOffset());\n }\n\n if (isValidDate(iso8601Date)) {\n return iso8601Date;\n }\n }\n\n let values: string[] = [];\n\n // We accept dates with a \"/\" or \"-\" separator and in the format of MM/DD/YYYY\n if (value.indexOf('/') !== -1) {\n values = value.split('/');\n } else if (value.indexOf('-') !== -1) {\n values = value.split('-');\n } else if ((value.length === 6 || value.length === 8) && !isNaN(+value)) {\n values = [value.substring(0, 2), value.substring(2, 4), value.substring(4)];\n }\n\n const hasMonthDayYear = values.length === 3;\n let [month, day, year] = values;\n\n // Ensure are month and year values are coerced from 0 to 1 in case of incomplete entry\n if (month === '0') {\n month = '1';\n }\n if (day === '0') {\n day = '1';\n }\n\n // Trap for the case where only 3 digit years are entered\n if (typeof year === 'string' && year.length === 3) {\n year = year.padEnd(4, '0');\n }\n \n if (hasMonthDayYear) {\n const isValidMonthLength = month.length === 1 || month.length === 2;\n const isValidDayLength = day.length === 1 || day.length === 2;\n const isValidYearLength = year.length === 2 || year.length === 4;\n\n if (!isValidMonthLength || !isValidDayLength || !isValidYearLength) {\n return null;\n }\n } else {\n return null;\n }\n\n // Check if we need to coerce two-digit years to the four-digit equivalent\n if (year.length === 2) {\n const minYear = new Date().getFullYear() - (100 - FUTURE_YEAR_COERCION);\n const maxYear = new Date().getFullYear() + FUTURE_YEAR_COERCION;\n const minYearCentury = String(minYear).slice(0, 2);\n const maxYearCentury = String(maxYear).slice(0, 2);\n const normalizedMaxYear = +String(maxYear).slice(2);\n year = +year <= normalizedMaxYear ? `${maxYearCentury}${year}` : `${minYearCentury}${year}`;\n }\n\n let numMonth = +month;\n let numDay = +day;\n const numYear = +year;\n\n if (numMonth > 12) {\n numMonth = 12;\n }\n\n const maxDaysInMonth = new Date(numYear, numMonth, 0).getDate();\n\n if (numDay > maxDaysInMonth) {\n numDay = maxDaysInMonth;\n }\n\n const parsedDate = new Date(numYear, numMonth - 1, numDay, 0, 0, 0, 0);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Formats a `Date` to a specified format.\n * @param str The date string value.\n */\nexport function formatDate(date: Date): string {\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return [month, day, year].join('/');\n}\n\n/**\n * Determines if two date objects are equal.\n * \n * Note: Time values are ignored.\n * @param first The date to compare.\n * @param second The date to compare the first date to. \n * @returns A boolean whether the two dates are equivalent.\n */\nexport function isSameDate(first: Date | null, second: Date | null): boolean {\n if (!first && !second) {\n return true;\n } else if (!first || !second) {\n return false;\n } else if (!isValidDate(first) || !isValidDate(second)) {\n return false;\n }\n return first.setHours(0, 0, 0, 0) === second.setHours(0, 0, 0, 0);\n}\n\n/** \n * Returns the last date on a month.\n * \n * @param month The month.\n * @param year The year of the month, needed for February otherwise optional.\n * @returns The last date of the given month.\n */\nexport function getLastDateOfMonth(month: number, year?: number): Date {\n return new Date(year ?? 1970, month + 1, 0);\n}\n\n/**\n * Returns the number of days in a month.\n * \n * @param month The month to find the length of.\n * @param year The year to check within, needed for February otherwise optional.\n * @returns The number of days in the month.\n */\nexport function getMonthLength(month: number, year?: number): number {\n return getLastDateOfMonth(month, year).getDate();\n}\n", "/**\n * Creates an SVG element from a string.\n */\nexport function createSvgFromString(svgContent: string, defaultViewBox?: string): SVGSVGElement | null {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // Remove all non-svg child nodes\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n const svgElm = div.firstElementChild as SVGSVGElement;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg' && isSafeSvg(svgElm)) {\n // Check if a custom viewbox value was provided and use that if so\n if (defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Force a default viewBox if one doesn't exist (this ensures our icon is scalable)\n if (!svgElm.hasAttribute('viewBox') && defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Remove any height and width attributes to ensure that the icon is properly scalable\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n return svgElm;\n }\n\n return null;\n}\n\n/**\n * Determines if the provided element is a safe SVG to use.\n * @param el The element reference to test.\n */\nexport function isSafeSvg(el: Element): boolean {\n if (el.nodeType !== 1) {\n return true;\n }\n\n // Validate no <script> tags exist\n if (el.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n // Ensure there are no inline listeners\n const attributes = Array.from(el.attributes);\n for (const attr of attributes) {\n if (typeof attr.name === 'string' && attr.name.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n // Ensure all child nodes are valid\n const childNodes = Array.from(el.childNodes) as Element[];\n for (const node of childNodes) {\n if (!isSafeSvg(node)) {\n return false;\n }\n }\n\n return true;\n}\n", "export const TWENTY_FOUR_HOUR_TIME_REGEX = /^(0?[0-9]|1\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?$/;\nexport const TWELVE_HOUR_TIME_REGEX = /^(0?[1-9]|1[0-2]):([0-5]\\d)(:([0-5]\\d))?\\s*([AaPp][Mm])?$/;\nexport const PARSEABLE_TIME_FORMAT = /^(\\d\\d?):?(\\d\\d?)(:?(\\d?\\d?))?\\s*([AaPp][Mm]?)?$/;\n\nexport function tokenize24HourTimeString(value: string): { hours: string; minutes: string; seconds: string } {\n const matches = value.match(TWENTY_FOUR_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n return { hours, minutes, seconds };\n}\n\nexport function tokenize12HourTimeString(value: string): { hours: string; minutes: string; seconds: string; meridiem: string } {\n const matches = value.match(TWELVE_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0, 'AM'];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n const meridiem = matches[5];\n return { hours, minutes, seconds, meridiem };\n}\n\nexport function isSupportedTimeFormat(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value) ||\n TWELVE_HOUR_TIME_REGEX.test(value);\n}\n\nexport function tryCoerceTimeString(str: string, use24HourTime: boolean, allowSeconds: boolean): string {\n str = str && typeof str === 'string' ? str.replace(/_|\\s/g, '') : '';\n if (/^\\s*$/.test(str)) {\n return '';\n }\n\n const matches = str.match(PARSEABLE_TIME_FORMAT);\n if (!matches) {\n return '';\n }\n\n let hoursStr = matches[1];\n let minutesStr = matches[2];\n let secondsStr = matches[4];\n let meridiem = matches[5];\n\n // Normalize the meridiem string\n if (use24HourTime) {\n meridiem = '';\n } else if (/[AaPp][Mm]/.test(meridiem)) {\n meridiem = meridiem.toUpperCase();\n } else {\n if (/^[AaPp]/.test(meridiem)) {\n if (meridiem.toLowerCase().startsWith('a')) {\n meridiem = 'AM';\n } else if (meridiem.toLowerCase().startsWith('p')) {\n meridiem = 'PM';\n }\n } else {\n meridiem = '';\n }\n }\n\n const hoursNum = +hoursStr || 0;\n const minutesNum = +minutesStr || 0;\n\n // Clamp and normalize hours\n const maxHours = !meridiem || use24HourTime ? 23 : 12;\n if (hoursNum >= maxHours) {\n hoursStr = String(maxHours);\n } else if (hoursNum < 0) {\n hoursStr = '00';\n }\n\n // Clamp and normalize minutes\n if (minutesStr !== undefined) {\n if (minutesNum > 59) {\n minutesStr = '59';\n } else if (minutesNum < 0) {\n minutesStr = '00';\n } else {\n minutesStr = minutesStr.padStart(2, '0');\n }\n }\n\n // Clamp and normalize seconds (if applicable)\n if (secondsStr !== undefined) {\n const secondsNum = +secondsStr || 0;\n if (secondsNum > 59) {\n secondsStr = '59';\n } else if (secondsNum < 0) {\n secondsStr = '00';\n } else {\n secondsStr = secondsStr.padStart(2, '0');\n }\n }\n\n // Build resulting time string\n let timeStr = hoursStr;\n if (minutesStr !== undefined) {\n timeStr += `:${minutesStr}`;\n if (secondsStr === undefined && allowSeconds) {\n secondsStr = '00';\n }\n }\n if (secondsStr !== undefined) {\n timeStr += `:${secondsStr}`;\n }\n if (meridiem) {\n timeStr += ` ${meridiem}`;\n }\n\n return timeStr;\n}\n", "/**\n * Highlights text in the given label by converting it to HTML and using a `<span>` tag to show the highlighted text within the original label.\n * @param label The full text.\n * @param highlightText The text to highlight.\n */\nexport function highlightTextHTML(label: string, highlightText: string): HTMLElement | undefined {\n const text = label.toLowerCase();\n const startIndex = text.indexOf(highlightText.toLowerCase());\n\n if (startIndex !== -1) {\n const endIndex = startIndex + highlightText.length;\n const wrapperSpan = document.createElement('span');\n const highlightSpan = document.createElement('span');\n\n highlightSpan.style.fontWeight = 'bold';\n highlightSpan.textContent = label.substring(startIndex, endIndex);\n \n wrapperSpan.appendChild(document.createTextNode(label.substring(0, startIndex)));\n wrapperSpan.appendChild(highlightSpan);\n wrapperSpan.appendChild(document.createTextNode(label.substring(endIndex)));\n \n return wrapperSpan;\n }\n\n return undefined;\n}\n\n\n/**\n * Awaits user interaction on an element in the form of `pointerenter` or `focusin` to let a listener know\n * when the user has attempted to interact with the provided element.\n * \n * The listeners are only called once, and the other is removed after one of the listeners is called.\n * @param element The element to listen to.\n * @param capture Whether to use capturing listeners or not.\n * @returns A `Promise` that will be resolved when either of the listeners has executed.\n */\nexport function userInteractionListener(element: HTMLElement, { capture = true, pointerenter = true, focusin = true } = {}): Promise<'pointerenter' | 'focusin'> {\n return new Promise<'pointerenter' | 'focusin'>(resolve => {\n const listenerOpts: EventListenerOptions & { once: boolean } = { once: true, capture };\n \n const handlePointerenter = (): void => {\n if (focusin) {\n element.removeEventListener('focusin', handleFocusin, listenerOpts);\n }\n resolve('pointerenter');\n };\n \n const handleFocusin = (): void => {\n if (pointerenter) {\n element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n resolve('focusin');\n };\n\n if (pointerenter) {\n element.addEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n if (focusin) {\n element.addEventListener('focusin', handleFocusin, listenerOpts);\n }\n });\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { isValidDate } from '@tylertech/forge-core';\n\nexport const ISO_8601_REGEX = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\nexport const ISO_TIMEZONE_REGEX = /a-z/i;\nconst FUTURE_YEAR_COERCION = 10; // The number of years in the future to coerce two-digit years into current century\n\n/**\n * Parses a date string value to a `Date` object in local time.\n * @param str The date string value.\n */\nexport function parseDateString(value: string): Date | null {\n value = value.replace(/_|\\s/g, ''); // Remove potential extraneous characters\n\n // We first check if this is a valid date in ISO 8601 format and return it if so\n if (ISO_8601_REGEX.test(value)) {\n const iso8601Date = new Date(value);\n\n // This is an ISO string, but does it have a timezone? If not, we add current timezone offset\n if (!ISO_TIMEZONE_REGEX.test(value)) {\n iso8601Date.setMinutes(iso8601Date.getMinutes() + iso8601Date.getTimezoneOffset());\n }\n\n if (isValidDate(iso8601Date)) {\n return iso8601Date;\n }\n }\n\n let values: string[] = [];\n\n // We accept dates with a \"/\" or \"-\" separator and in the format of MM/DD/YYYY\n if (value.indexOf('/') !== -1) {\n values = value.split('/');\n } else if (value.indexOf('-') !== -1) {\n values = value.split('-');\n } else if ((value.length === 6 || value.length === 8) && !isNaN(+value)) {\n values = [value.substring(0, 2), value.substring(2, 4), value.substring(4)];\n }\n\n const hasMonthDayYear = values.length === 3;\n let [month, day, year] = values;\n\n // Ensure are month and year values are coerced from 0 to 1 in case of incomplete entry\n if (month === '0') {\n month = '1';\n }\n if (day === '0') {\n day = '1';\n }\n\n // Trap for the case where only 3 digit years are entered\n if (typeof year === 'string' && year.length === 3) {\n year = year.padEnd(4, '0');\n }\n \n if (hasMonthDayYear) {\n const isValidMonthLength = month.length === 1 || month.length === 2;\n const isValidDayLength = day.length === 1 || day.length === 2;\n const isValidYearLength = year.length === 2 || year.length === 4;\n\n if (!isValidMonthLength || !isValidDayLength || !isValidYearLength) {\n return null;\n }\n } else {\n return null;\n }\n\n // Check if we need to coerce two-digit years to the four-digit equivalent\n if (year.length === 2) {\n const minYear = new Date().getFullYear() - (100 - FUTURE_YEAR_COERCION);\n const maxYear = new Date().getFullYear() + FUTURE_YEAR_COERCION;\n const minYearCentury = String(minYear).slice(0, 2);\n const maxYearCentury = String(maxYear).slice(0, 2);\n const normalizedMaxYear = +String(maxYear).slice(2);\n year = +year <= normalizedMaxYear ? `${maxYearCentury}${year}` : `${minYearCentury}${year}`;\n }\n\n let numMonth = +month;\n let numDay = +day;\n const numYear = +year;\n\n if (numMonth > 12) {\n numMonth = 12;\n }\n\n const maxDaysInMonth = new Date(numYear, numMonth, 0).getDate();\n\n if (numDay > maxDaysInMonth) {\n numDay = maxDaysInMonth;\n }\n\n const parsedDate = new Date(numYear, numMonth - 1, numDay, 0, 0, 0, 0);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Formats a `Date` to a specified format.\n * @param str The date string value.\n */\nexport function formatDate(date: Date): string {\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return [month, day, year].join('/');\n}\n\n/**\n * Determines if two date objects are equal.\n * \n * Note: Time values are ignored.\n * @param first The date to compare.\n * @param second The date to compare the first date to. \n * @returns A boolean whether the two dates are equivalent.\n */\nexport function isSameDate(first: Date | null, second: Date | null): boolean {\n if (!first && !second) {\n return true;\n } else if (!first || !second) {\n return false;\n } else if (!isValidDate(first) || !isValidDate(second)) {\n return false;\n }\n return first.setHours(0, 0, 0, 0) === second.setHours(0, 0, 0, 0);\n}\n\n/** \n * Returns the last date on a month.\n * \n * @param month The month.\n * @param year The year of the month, needed for February otherwise optional.\n * @returns The last date of the given month.\n */\nexport function getLastDateOfMonth(month: number, year?: number): Date {\n return new Date(year ?? 1970, month + 1, 0);\n}\n\n/**\n * Returns the number of days in a month.\n * \n * @param month The month to find the length of.\n * @param year The year to check within, needed for February otherwise optional.\n * @returns The number of days in the month.\n */\nexport function getMonthLength(month: number, year?: number): number {\n return getLastDateOfMonth(month, year).getDate();\n}\n", "/**\n * Creates an SVG element from a string.\n */\nexport function createSvgFromString(svgContent: string, defaultViewBox?: string): SVGSVGElement | null {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // Remove all non-svg child nodes\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n const svgElm = div.firstElementChild as SVGSVGElement;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg' && isSafeSvg(svgElm)) {\n // Check if a custom viewbox value was provided and use that if so\n if (defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Force a default viewBox if one doesn't exist (this ensures our icon is scalable)\n if (!svgElm.hasAttribute('viewBox') && defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Remove any height and width attributes to ensure that the icon is properly scalable\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n return svgElm;\n }\n\n return null;\n}\n\n/**\n * Determines if the provided element is a safe SVG to use.\n * @param el The element reference to test.\n */\nexport function isSafeSvg(el: Element): boolean {\n if (el.nodeType !== 1) {\n return true;\n }\n\n // Validate no <script> tags exist\n if (el.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n // Ensure there are no inline listeners\n const attributes = Array.from(el.attributes);\n for (const attr of attributes) {\n if (typeof attr.name === 'string' && attr.name.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n // Ensure all child nodes are valid\n const childNodes = Array.from(el.childNodes) as Element[];\n for (const node of childNodes) {\n if (!isSafeSvg(node)) {\n return false;\n }\n }\n\n return true;\n}\n", "export const TWENTY_FOUR_HOUR_TIME_REGEX = /^(0?[0-9]|1\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?$/;\nexport const TWELVE_HOUR_TIME_REGEX = /^(0?[1-9]|1[0-2]):([0-5]\\d)(:([0-5]\\d))?\\s*([AaPp][Mm])?$/;\nexport const PARSEABLE_TIME_FORMAT = /^(\\d\\d?):?(\\d\\d?)(:?(\\d?\\d?))?\\s*([AaPp][Mm]?)?$/;\n\nexport function tokenize24HourTimeString(value: string): { hours: string; minutes: string; seconds: string } {\n const matches = value.match(TWENTY_FOUR_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n return { hours, minutes, seconds };\n}\n\nexport function tokenize12HourTimeString(value: string): { hours: string; minutes: string; seconds: string; meridiem: string } {\n const matches = value.match(TWELVE_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0, 'AM'];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n const meridiem = matches[5];\n return { hours, minutes, seconds, meridiem };\n}\n\nexport function isSupportedTimeFormat(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value) ||\n TWELVE_HOUR_TIME_REGEX.test(value);\n}\n\nexport function tryCoerceTimeString(str: string, use24HourTime: boolean, allowSeconds: boolean): string {\n str = str && typeof str === 'string' ? str.replace(/_|\\s/g, '') : '';\n if (/^\\s*$/.test(str)) {\n return '';\n }\n\n const matches = str.match(PARSEABLE_TIME_FORMAT);\n if (!matches) {\n return '';\n }\n\n let hoursStr = matches[1];\n let minutesStr = matches[2];\n let secondsStr = matches[4];\n let meridiem = matches[5];\n\n // Normalize the meridiem string\n if (use24HourTime) {\n meridiem = '';\n } else if (/[AaPp][Mm]/.test(meridiem)) {\n meridiem = meridiem.toUpperCase();\n } else {\n if (/^[AaPp]/.test(meridiem)) {\n if (meridiem.toLowerCase().startsWith('a')) {\n meridiem = 'AM';\n } else if (meridiem.toLowerCase().startsWith('p')) {\n meridiem = 'PM';\n }\n } else {\n meridiem = '';\n }\n }\n\n const hoursNum = +hoursStr || 0;\n const minutesNum = +minutesStr || 0;\n\n // Clamp and normalize hours\n const maxHours = !meridiem || use24HourTime ? 23 : 12;\n if (hoursNum >= maxHours) {\n hoursStr = String(maxHours);\n } else if (hoursNum < 0) {\n hoursStr = '00';\n }\n\n // Clamp and normalize minutes\n if (minutesStr !== undefined) {\n if (minutesNum > 59) {\n minutesStr = '59';\n } else if (minutesNum < 0) {\n minutesStr = '00';\n } else {\n minutesStr = minutesStr.padStart(2, '0');\n }\n }\n\n // Clamp and normalize seconds (if applicable)\n if (secondsStr !== undefined) {\n const secondsNum = +secondsStr || 0;\n if (secondsNum > 59) {\n secondsStr = '59';\n } else if (secondsNum < 0) {\n secondsStr = '00';\n } else {\n secondsStr = secondsStr.padStart(2, '0');\n }\n }\n\n // Build resulting time string\n let timeStr = hoursStr;\n if (minutesStr !== undefined) {\n timeStr += `:${minutesStr}`;\n if (secondsStr === undefined && allowSeconds) {\n secondsStr = '00';\n }\n }\n if (secondsStr !== undefined) {\n timeStr += `:${secondsStr}`;\n }\n if (meridiem) {\n timeStr += ` ${meridiem}`;\n }\n\n return timeStr;\n}\n", "/**\n * Highlights text in the given label by converting it to HTML and using a `<span>` tag to show the highlighted text within the original label.\n * @param label The full text.\n * @param highlightText The text to highlight.\n */\nexport function highlightTextHTML(label: string, highlightText: string): HTMLElement | undefined {\n const text = label.toLowerCase();\n const startIndex = text.indexOf(highlightText.toLowerCase());\n\n if (startIndex !== -1) {\n const endIndex = startIndex + highlightText.length;\n const wrapperSpan = document.createElement('span');\n const highlightSpan = document.createElement('span');\n\n highlightSpan.style.fontWeight = 'bold';\n highlightSpan.textContent = label.substring(startIndex, endIndex);\n \n wrapperSpan.appendChild(document.createTextNode(label.substring(0, startIndex)));\n wrapperSpan.appendChild(highlightSpan);\n wrapperSpan.appendChild(document.createTextNode(label.substring(endIndex)));\n \n return wrapperSpan;\n }\n\n return undefined;\n}\n\n\n/**\n * Awaits user interaction on an element in the form of `pointerenter` or `focusin` to let a listener know\n * when the user has attempted to interact with the provided element.\n * \n * The listeners are only called once, and the other is removed after one of the listeners is called.\n * @param element The element to listen to.\n * @param capture Whether to use capturing listeners or not.\n * @returns A `Promise` that will be resolved when either of the listeners has executed.\n */\nexport function userInteractionListener(element: HTMLElement, { capture = true, pointerenter = true, focusin = true } = {}): Promise<'pointerenter' | 'focusin'> {\n return new Promise<'pointerenter' | 'focusin'>(resolve => {\n const listenerOpts: EventListenerOptions & { once: boolean } = { once: true, capture };\n \n const handlePointerenter = (): void => {\n if (focusin) {\n element.removeEventListener('focusin', handleFocusin, listenerOpts);\n }\n resolve('pointerenter');\n };\n \n const handleFocusin = (): void => {\n if (pointerenter) {\n element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n resolve('focusin');\n };\n\n if (pointerenter) {\n element.addEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n if (focusin) {\n element.addEventListener('focusin', handleFocusin, listenerOpts);\n }\n });\n}\n\n/**\n * Converts a percent value to pixels.\n * @param amount A percent value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A pixel value.\n */\nexport function percentToPixels(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount / 100 * containerSize;\n}\n\n/**\n * Converts a pixel value to a percentage.\n * @param amount A pixel value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A percent value.\n */\nexport function pixelsToPercent(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount * 100 / containerSize;\n}\n\n/**\n * Scales a value from one range to another.\n * @param value The original number value.\n * @param fromMin The lower bound of the input range.\n * @param fromMax The upper bound of the input range.\n * @param toMin The lower bound of the output range (defaults to 0).\n * @param toMax The lower bound of the output range (defaults to 100).\n * @returns A value mapped to the output range.\n */\nexport function scaleValue(value: number, fromMin: number, fromMax: number, toMin = 0, toMax = 100): number {\n const range = fromMax - fromMin;\n const adjustedValue = value - fromMin;\n if (!range || !adjustedValue) {\n return toMin;\n }\n return adjustedValue * toMax / range + toMin;\n}\n\n/**\n * Returns the min of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The min value or `Number.POSITIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMin(...args: (number | undefined)[]): number {\n return Math.min(...args.map(arg => arg ?? Number.POSITIVE_INFINITY));\n}\n\n/**\n * Returns the max of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The max value or `Number.NEGATIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMax(...args: (number | undefined)[]): number {\n return Math.max(...args.map(arg => arg ?? Number.NEGATIVE_INFINITY));\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=chunk.AJJILT3A.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }