@tylertech/forge 2.7.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 (296) hide show
  1. package/custom-elements.json +4428 -86
  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.GL72QT42.js → chunk.35BJJH5E.js} +2 -2
  27. package/dist/esm/chunks/{chunk.GL72QT42.js.map → chunk.35BJJH5E.js.map} +1 -1
  28. package/dist/esm/chunks/{chunk.BEAJZPWS.js → chunk.3TFBNPQF.js} +2 -2
  29. package/dist/esm/chunks/{chunk.BEAJZPWS.js.map → chunk.3TFBNPQF.js.map} +0 -0
  30. package/dist/esm/chunks/{chunk.2MBI5DLT.js → chunk.3ULPDQ2I.js} +71 -15
  31. package/dist/esm/chunks/chunk.3ULPDQ2I.js.map +7 -0
  32. package/dist/esm/chunks/{chunk.JC2PZ4TS.js → chunk.5DJS3K7V.js} +10 -8
  33. package/dist/esm/chunks/chunk.5DJS3K7V.js.map +7 -0
  34. package/dist/esm/chunks/{chunk.GHZ75UPO.js → chunk.5EBM357P.js} +3 -3
  35. package/dist/esm/chunks/{chunk.GHZ75UPO.js.map → chunk.5EBM357P.js.map} +0 -0
  36. package/dist/esm/chunks/{chunk.J5NUYQ4D.js → chunk.5XUOWRCK.js} +3 -3
  37. package/dist/esm/chunks/{chunk.J5NUYQ4D.js.map → chunk.5XUOWRCK.js.map} +0 -0
  38. package/dist/esm/chunks/{chunk.6EGTLHJS.js → chunk.65ZCTZEM.js} +6 -2
  39. package/dist/esm/chunks/{chunk.6EGTLHJS.js.map → chunk.65ZCTZEM.js.map} +2 -2
  40. package/dist/esm/chunks/chunk.A5GIQB6E.js +20 -0
  41. package/dist/esm/chunks/{chunk.JUXKYUD4.js.map → chunk.A5GIQB6E.js.map} +3 -3
  42. package/dist/esm/chunks/{chunk.PM7D2SUE.js → chunk.A6YZB7UK.js} +33 -2
  43. package/dist/esm/chunks/{chunk.PM7D2SUE.js.map → chunk.A6YZB7UK.js.map} +2 -2
  44. package/dist/esm/chunks/chunk.AJJILT3A.js +6 -0
  45. package/dist/esm/chunks/chunk.AJJILT3A.js.map +7 -0
  46. package/dist/esm/chunks/chunk.CGKWQIL3.js +1236 -0
  47. package/dist/esm/chunks/chunk.CGKWQIL3.js.map +7 -0
  48. package/dist/esm/chunks/chunk.CGOYP37Z.js +345 -0
  49. package/dist/esm/chunks/chunk.CGOYP37Z.js.map +7 -0
  50. package/dist/esm/chunks/{chunk.QYWAZCBX.js → chunk.CTMCTMRO.js} +2 -2
  51. package/dist/esm/chunks/{chunk.QYWAZCBX.js.map → chunk.CTMCTMRO.js.map} +0 -0
  52. package/dist/esm/chunks/{chunk.JUXKYUD4.js → chunk.D2AL6QLF.js} +60 -40
  53. package/dist/esm/chunks/chunk.D2AL6QLF.js.map +7 -0
  54. package/dist/esm/chunks/{chunk.U5ECVIX5.js → chunk.D3MXPNTL.js} +2 -2
  55. package/dist/esm/chunks/{chunk.U5ECVIX5.js.map → chunk.D3MXPNTL.js.map} +0 -0
  56. package/dist/esm/chunks/{chunk.HAWYW54W.js → chunk.D45QN7JA.js} +5 -5
  57. package/dist/esm/chunks/{chunk.HAWYW54W.js.map → chunk.D45QN7JA.js.map} +0 -0
  58. package/dist/esm/chunks/{chunk.2WBHHTUM.js → chunk.EFQZGAM5.js} +2 -2
  59. package/dist/esm/chunks/{chunk.2WBHHTUM.js.map → chunk.EFQZGAM5.js.map} +0 -0
  60. package/dist/esm/chunks/{chunk.L344BPCW.js → chunk.F5O63UF4.js} +2 -2
  61. package/dist/esm/chunks/{chunk.L344BPCW.js.map → chunk.F5O63UF4.js.map} +0 -0
  62. package/dist/esm/chunks/{chunk.RL7ZFLMG.js → chunk.FRT7RD5L.js} +2 -2
  63. package/dist/esm/chunks/{chunk.RL7ZFLMG.js.map → chunk.FRT7RD5L.js.map} +0 -0
  64. package/dist/esm/chunks/{chunk.LK2DN5KX.js → chunk.GG3O42UP.js} +4 -4
  65. package/dist/esm/chunks/{chunk.LK2DN5KX.js.map → chunk.GG3O42UP.js.map} +0 -0
  66. package/dist/esm/chunks/{chunk.WSH4S3GM.js → chunk.GVR5LXMJ.js} +2 -2
  67. package/dist/esm/chunks/{chunk.WSH4S3GM.js.map → chunk.GVR5LXMJ.js.map} +0 -0
  68. package/dist/esm/chunks/{chunk.LHWZ4KZU.js → chunk.HL2ORG3A.js} +4 -4
  69. package/dist/esm/chunks/{chunk.LHWZ4KZU.js.map → chunk.HL2ORG3A.js.map} +1 -1
  70. package/dist/esm/chunks/{chunk.65GHMPX2.js → chunk.J2FCOFOE.js} +6 -6
  71. package/dist/esm/chunks/chunk.J2FCOFOE.js.map +7 -0
  72. package/dist/esm/chunks/{chunk.PKZ43JNW.js → chunk.JM6SZSUI.js} +50 -4
  73. package/dist/esm/chunks/{chunk.PKZ43JNW.js.map → chunk.JM6SZSUI.js.map} +2 -2
  74. package/dist/esm/chunks/{chunk.VXAPRFMK.js → chunk.K4B7NJ2G.js} +4 -4
  75. package/dist/esm/chunks/{chunk.VXAPRFMK.js.map → chunk.K4B7NJ2G.js.map} +0 -0
  76. package/dist/esm/chunks/{chunk.67B6JDOJ.js → chunk.KVOXJKCU.js} +3 -3
  77. package/dist/esm/chunks/{chunk.67B6JDOJ.js.map → chunk.KVOXJKCU.js.map} +0 -0
  78. package/dist/esm/chunks/{chunk.ITQ55IPH.js → chunk.LTN47GWQ.js} +4 -4
  79. package/dist/esm/chunks/{chunk.ITQ55IPH.js.map → chunk.LTN47GWQ.js.map} +0 -0
  80. package/dist/esm/chunks/{chunk.UPW5HUKB.js → chunk.NU3XRT37.js} +5 -5
  81. package/dist/esm/chunks/{chunk.UPW5HUKB.js.map → chunk.NU3XRT37.js.map} +0 -0
  82. package/dist/esm/chunks/{chunk.I6PJGNJS.js → chunk.NWPH4FRE.js} +6 -6
  83. package/dist/esm/chunks/chunk.NWPH4FRE.js.map +7 -0
  84. package/dist/esm/chunks/{chunk.KNR5DXE4.js → chunk.OTJJU35B.js} +2 -2
  85. package/dist/esm/chunks/{chunk.KNR5DXE4.js.map → chunk.OTJJU35B.js.map} +0 -0
  86. package/dist/esm/chunks/{chunk.BVGJFMEG.js → chunk.PRRL5C6Z.js} +7 -7
  87. package/dist/esm/chunks/{chunk.BVGJFMEG.js.map → chunk.PRRL5C6Z.js.map} +0 -0
  88. package/dist/esm/chunks/{chunk.TIUNGGBF.js → chunk.QFG7SPQV.js} +3 -3
  89. package/dist/esm/chunks/{chunk.TIUNGGBF.js.map → chunk.QFG7SPQV.js.map} +0 -0
  90. package/dist/esm/chunks/{chunk.C73AZRT4.js → chunk.QKCIMRRG.js} +36 -19
  91. package/dist/esm/chunks/chunk.QKCIMRRG.js.map +7 -0
  92. package/dist/esm/chunks/{chunk.IGBDDH3J.js → chunk.QRGWP6Z2.js} +3 -3
  93. package/dist/esm/chunks/chunk.QRGWP6Z2.js.map +7 -0
  94. package/dist/esm/chunks/{chunk.MUP3NY6M.js → chunk.QSFE3J74.js} +5 -5
  95. package/dist/esm/chunks/{chunk.MUP3NY6M.js.map → chunk.QSFE3J74.js.map} +0 -0
  96. package/dist/esm/chunks/{chunk.ZXMJB7OW.js → chunk.R357QRWX.js} +54 -50
  97. package/dist/esm/chunks/chunk.R357QRWX.js.map +7 -0
  98. package/dist/esm/chunks/{chunk.46BED43J.js → chunk.SVS3G6Y7.js} +5 -19
  99. package/dist/esm/chunks/chunk.SVS3G6Y7.js.map +7 -0
  100. package/dist/esm/chunks/{chunk.S3UVF647.js → chunk.TBQ72CBS.js} +3 -3
  101. package/dist/esm/chunks/{chunk.S3UVF647.js.map → chunk.TBQ72CBS.js.map} +0 -0
  102. package/dist/esm/chunks/{chunk.MF3IZXQG.js → chunk.TSHHEAIC.js} +2 -2
  103. package/dist/esm/chunks/{chunk.MF3IZXQG.js.map → chunk.TSHHEAIC.js.map} +0 -0
  104. package/dist/esm/chunks/{chunk.EBC2HGO3.js → chunk.UAW46BWM.js} +3 -3
  105. package/dist/esm/chunks/{chunk.EBC2HGO3.js.map → chunk.UAW46BWM.js.map} +0 -0
  106. package/dist/esm/chunks/{chunk.FJJVIMZ2.js → chunk.V6ESTGWD.js} +5 -5
  107. package/dist/esm/chunks/chunk.V6ESTGWD.js.map +7 -0
  108. package/dist/esm/chunks/{chunk.5OYAJ36F.js → chunk.VLAUYV76.js} +2 -2
  109. package/dist/esm/chunks/{chunk.5OYAJ36F.js.map → chunk.VLAUYV76.js.map} +0 -0
  110. package/dist/esm/chunks/{chunk.L4OUV7W6.js → chunk.VSKPHQZE.js} +4 -4
  111. package/dist/esm/chunks/{chunk.L4OUV7W6.js.map → chunk.VSKPHQZE.js.map} +0 -0
  112. package/dist/esm/chunks/{chunk.GS2AXUCN.js → chunk.WOL4KRZK.js} +6 -1
  113. package/dist/esm/chunks/{chunk.GS2AXUCN.js.map → chunk.WOL4KRZK.js.map} +1 -1
  114. package/dist/esm/chunks/{chunk.TM46MNYN.js → chunk.WQRR5OGK.js} +5 -5
  115. package/dist/esm/chunks/{chunk.TM46MNYN.js.map → chunk.WQRR5OGK.js.map} +0 -0
  116. package/dist/esm/chunks/chunk.X2RP4QW3.js +6 -0
  117. package/dist/esm/chunks/chunk.X2RP4QW3.js.map +7 -0
  118. package/dist/esm/chunks/{chunk.GOWHXADJ.js → chunk.X3TV6IHS.js} +23 -15
  119. package/dist/esm/chunks/chunk.X3TV6IHS.js.map +7 -0
  120. package/dist/esm/chunks/{chunk.U37G47LH.js → chunk.XC56O73Q.js} +6 -6
  121. package/dist/esm/chunks/{chunk.U37G47LH.js.map → chunk.XC56O73Q.js.map} +0 -0
  122. package/dist/esm/chunks/{chunk.QWW6A7AF.js → chunk.XRK62M5E.js} +2 -2
  123. package/dist/esm/chunks/{chunk.QWW6A7AF.js.map → chunk.XRK62M5E.js.map} +0 -0
  124. package/dist/esm/chunks/{chunk.ZLF2G3YT.js → chunk.XSS7BYJS.js} +3 -3
  125. package/dist/esm/chunks/{chunk.ZLF2G3YT.js.map → chunk.XSS7BYJS.js.map} +0 -0
  126. package/dist/esm/chunks/{chunk.XHMNHBZD.js → chunk.YCHKXJLN.js} +3 -3
  127. package/dist/esm/chunks/{chunk.XHMNHBZD.js.map → chunk.YCHKXJLN.js.map} +1 -1
  128. package/dist/esm/chunks/{chunk.UQ3QTUUB.js → chunk.YMP3JQQQ.js} +2 -2
  129. package/dist/esm/chunks/{chunk.UQ3QTUUB.js.map → chunk.YMP3JQQQ.js.map} +0 -0
  130. package/dist/esm/chunks/{chunk.7I2XNJBL.js → chunk.YTFOQNFU.js} +6 -16
  131. package/dist/esm/chunks/chunk.YTFOQNFU.js.map +7 -0
  132. package/dist/esm/chunks/{chunk.IJW2YKP3.js → chunk.Z5KLXKMB.js} +21 -15
  133. package/dist/esm/chunks/chunk.Z5KLXKMB.js.map +7 -0
  134. package/dist/esm/chunks/{chunk.MBZLA635.js → chunk.ZIZGRSAX.js} +6 -6
  135. package/dist/esm/chunks/{chunk.MBZLA635.js.map → chunk.ZIZGRSAX.js.map} +1 -1
  136. package/dist/esm/chunks/{chunk.CLEUHAZ6.js → chunk.ZLX3L6KW.js} +2 -2
  137. package/dist/esm/chunks/{chunk.CLEUHAZ6.js.map → chunk.ZLX3L6KW.js.map} +0 -0
  138. package/dist/esm/color-picker/index.js +6 -6
  139. package/dist/esm/core/index.js +14 -2
  140. package/dist/esm/core/utils/index.js +14 -2
  141. package/dist/esm/date-picker/index.js +11 -11
  142. package/dist/esm/date-range-picker/index.js +11 -11
  143. package/dist/esm/dialog/index.js +5 -5
  144. package/dist/esm/drawer/base/index.js +2 -2
  145. package/dist/esm/drawer/drawer/index.js +3 -3
  146. package/dist/esm/drawer/index.js +5 -5
  147. package/dist/esm/drawer/mini-drawer/index.js +3 -3
  148. package/dist/esm/drawer/modal-drawer/index.js +3 -3
  149. package/dist/esm/expansion-panel/index.js +6 -6
  150. package/dist/esm/file-picker/index.js +4 -4
  151. package/dist/esm/icon/index.js +3 -3
  152. package/dist/esm/icon-button/index.js +4 -4
  153. package/dist/esm/index.js +169 -94
  154. package/dist/esm/inline-message/index.js +1 -1
  155. package/dist/esm/list-dropdown/index.js +5 -5
  156. package/dist/esm/menu/index.js +7 -7
  157. package/dist/esm/open-icon/index.js +5 -5
  158. package/dist/esm/paginator/index.js +12 -12
  159. package/dist/esm/profile-card/index.js +4 -4
  160. package/dist/esm/quantity-field/index.js +6 -7
  161. package/dist/esm/select/core/index.js +7 -7
  162. package/dist/esm/select/index.js +11 -11
  163. package/dist/esm/select/select/index.js +9 -9
  164. package/dist/esm/select/select-dropdown/index.js +9 -9
  165. package/dist/esm/slider/index.js +2 -2
  166. package/dist/esm/split-view/core/index.js +7 -0
  167. package/dist/esm/split-view/core/index.js.map +7 -0
  168. package/dist/esm/split-view/index.js +92 -0
  169. package/dist/esm/split-view/index.js.map +7 -0
  170. package/dist/esm/split-view/split-view/index.js +44 -0
  171. package/dist/esm/split-view/split-view/index.js.map +7 -0
  172. package/dist/esm/split-view/split-view-panel/index.js +78 -0
  173. package/dist/esm/split-view/split-view-panel/index.js.map +7 -0
  174. package/dist/esm/stepper/index.js +6 -6
  175. package/dist/esm/stepper/step/index.js +5 -5
  176. package/dist/esm/stepper/stepper/index.js +6 -6
  177. package/dist/esm/switch/index.js +2 -2
  178. package/dist/esm/table/index.js +7 -7
  179. package/dist/esm/tabs/index.js +6 -6
  180. package/dist/esm/tabs/tab-bar/index.js +6 -6
  181. package/dist/esm/text-field/index.js +2 -2
  182. package/dist/esm/time-picker/index.js +11 -10
  183. package/dist/esm/toast/index.js +7 -7
  184. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +6 -1
  185. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +30 -12
  186. package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +4 -0
  187. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +2 -0
  188. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +8 -0
  189. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +22 -0
  190. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +4 -0
  191. package/esm/app-bar/profile-button/app-bar-profile-button.js +14 -0
  192. package/esm/autocomplete/autocomplete-adapter.d.ts +2 -0
  193. package/esm/autocomplete/autocomplete-adapter.js +4 -0
  194. package/esm/autocomplete/autocomplete-foundation.js +10 -7
  195. package/esm/chip-field/chip-field-adapter.d.ts +1 -1
  196. package/esm/chip-field/chip-field-adapter.js +2 -2
  197. package/esm/chip-field/chip-field.js +1 -1
  198. package/esm/chips/chip/chip.js +1 -1
  199. package/esm/core/utils/event-utils.d.ts +1 -0
  200. package/esm/core/utils/event-utils.js +3 -0
  201. package/esm/core/utils/utils.d.ts +36 -0
  202. package/esm/core/utils/utils.js +57 -0
  203. package/esm/date-picker/date-picker-foundation.js +3 -1
  204. package/esm/drawer/base/base-drawer-foundation.d.ts +4 -2
  205. package/esm/drawer/base/base-drawer-foundation.js +22 -14
  206. package/esm/drawer/modal-drawer/modal-drawer-foundation.d.ts +2 -2
  207. package/esm/drawer/modal-drawer/modal-drawer-foundation.js +4 -4
  208. package/esm/field/field-adapter.d.ts +4 -4
  209. package/esm/field/field-adapter.js +4 -13
  210. package/esm/field/field-foundation.js +2 -2
  211. package/esm/file-picker/file-picker.js +1 -1
  212. package/esm/index.d.ts +1 -0
  213. package/esm/index.js +3 -0
  214. package/esm/inline-message/inline-message.js +1 -1
  215. package/esm/profile-card/profile-card-adapter.d.ts +4 -0
  216. package/esm/profile-card/profile-card-adapter.js +6 -0
  217. package/esm/profile-card/profile-card-constants.d.ts +4 -0
  218. package/esm/profile-card/profile-card-constants.js +5 -1
  219. package/esm/profile-card/profile-card-foundation.d.ts +6 -0
  220. package/esm/profile-card/profile-card-foundation.js +22 -0
  221. package/esm/profile-card/profile-card.d.ts +4 -0
  222. package/esm/profile-card/profile-card.js +15 -1
  223. package/esm/quantity-field/quantity-field-adapter.d.ts +0 -2
  224. package/esm/quantity-field/quantity-field-adapter.js +1 -13
  225. package/esm/quantity-field/quantity-field-foundation.js +0 -1
  226. package/esm/quantity-field/quantity-field.js +1 -1
  227. package/esm/select/select/select.js +1 -1
  228. package/esm/split-view/core/index.d.ts +6 -0
  229. package/esm/split-view/core/index.js +6 -0
  230. package/esm/split-view/core/split-view-base.d.ts +14 -0
  231. package/esm/split-view/core/split-view-base.js +6 -0
  232. package/esm/split-view/index.d.ts +8 -0
  233. package/esm/split-view/index.js +8 -0
  234. package/esm/split-view/split-view/index.d.ts +10 -0
  235. package/esm/split-view/split-view/index.js +14 -0
  236. package/esm/split-view/split-view/split-view-adapter.d.ts +29 -0
  237. package/esm/split-view/split-view/split-view-adapter.js +62 -0
  238. package/esm/split-view/split-view/split-view-constants.d.ts +41 -0
  239. package/esm/split-view/split-view/split-view-constants.js +40 -0
  240. package/esm/split-view/split-view/split-view-foundation.d.ts +86 -0
  241. package/esm/split-view/split-view/split-view-foundation.js +179 -0
  242. package/esm/split-view/split-view/split-view.d.ts +67 -0
  243. package/esm/split-view/split-view/split-view.js +103 -0
  244. package/esm/split-view/split-view-panel/index.d.ts +11 -0
  245. package/esm/split-view/split-view-panel/index.js +15 -0
  246. package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +171 -0
  247. package/esm/split-view/split-view-panel/split-view-panel-adapter.js +295 -0
  248. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +97 -0
  249. package/esm/split-view/split-view-panel/split-view-panel-constants.js +78 -0
  250. package/esm/split-view/split-view-panel/split-view-panel-foundation.d.ts +235 -0
  251. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +667 -0
  252. package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +130 -0
  253. package/esm/split-view/split-view-panel/split-view-panel-utils.js +300 -0
  254. package/esm/split-view/split-view-panel/split-view-panel.d.ts +105 -0
  255. package/esm/split-view/split-view-panel/split-view-panel.js +173 -0
  256. package/esm/table/table-utils.d.ts +2 -2
  257. package/esm/table/table-utils.js +30 -14
  258. package/esm/table/table.js +3 -1
  259. package/esm/text-field/text-field-adapter.d.ts +1 -1
  260. package/esm/text-field/text-field-adapter.js +2 -2
  261. package/esm/text-field/text-field.js +1 -1
  262. package/esm/time-picker/time-picker-constants.d.ts +1 -0
  263. package/esm/time-picker/time-picker-constants.js +1 -0
  264. package/esm/time-picker/time-picker-foundation.d.ts +4 -0
  265. package/esm/time-picker/time-picker-foundation.js +44 -29
  266. package/esm/time-picker/time-picker.d.ts +3 -0
  267. package/esm/time-picker/time-picker.js +7 -0
  268. package/package.json +2 -2
  269. package/styles/chip-field/_base.scss +2 -2
  270. package/styles/chip-field/_selector.scss +1 -1
  271. package/styles/chip-field/_variables.scss +1 -1
  272. package/styles/chips/chip/_mixins.scss +4 -3
  273. package/styles/chips/chip/_variables.scss +3 -2
  274. package/styles/field/_base.scss +16 -4
  275. package/styles/field/_selector.scss +4 -4
  276. package/styles/file-picker/_mixins.scss +3 -1
  277. package/styles/inline-message/inline-message.scss +4 -0
  278. package/styles/quantity-field/_mixins.scss +1 -1
  279. package/styles/select/select/_selector.scss +1 -1
  280. package/styles/split-view/split-view/_mixins.scss +48 -0
  281. package/styles/split-view/split-view/split-view.scss +25 -0
  282. package/styles/split-view/split-view-panel/_mixins.scss +260 -0
  283. package/styles/split-view/split-view-panel/_variables.scss +7 -0
  284. package/styles/split-view/split-view-panel/split-view-panel.scss +23 -0
  285. package/dist/esm/chunks/chunk.2MBI5DLT.js.map +0 -7
  286. package/dist/esm/chunks/chunk.46BED43J.js.map +0 -7
  287. package/dist/esm/chunks/chunk.65GHMPX2.js.map +0 -7
  288. package/dist/esm/chunks/chunk.7I2XNJBL.js.map +0 -7
  289. package/dist/esm/chunks/chunk.C73AZRT4.js.map +0 -7
  290. package/dist/esm/chunks/chunk.FJJVIMZ2.js.map +0 -7
  291. package/dist/esm/chunks/chunk.GOWHXADJ.js.map +0 -7
  292. package/dist/esm/chunks/chunk.I6PJGNJS.js.map +0 -7
  293. package/dist/esm/chunks/chunk.IGBDDH3J.js.map +0 -7
  294. package/dist/esm/chunks/chunk.IJW2YKP3.js.map +0 -7
  295. package/dist/esm/chunks/chunk.JC2PZ4TS.js.map +0 -7
  296. package/dist/esm/chunks/chunk.ZXMJB7OW.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/quantity-field/quantity-field-constants.ts", "../../src/quantity-field/quantity-field-adapter.ts", "../../src/quantity-field/quantity-field-foundation.ts", "../../src/quantity-field/quantity-field.ts", "../../src/quantity-field/quantity-field-component-delegate.ts", "../../src/quantity-field/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}quantity-field`;\n\nconst attributes = {\n INVALID: 'invalid',\n REQUIRED: 'required',\n DISABLED: 'disabled'\n};\n\nconst classes = {\n ROOT: 'forge-quantity-field',\n INVALID: 'forge-quantity-field--invalid',\n REQUIRED: 'forge-quantity-field--required'\n};\n\nconst slots = {\n INCREMENT_BUTTON: 'increment-button',\n DECREMENT_BUTTON: 'decrement-button',\n LABEL: 'label',\n HELPER_TEXT: 'helper-text'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n INCREMENT_BUTTON_SLOT: `slot[name=${slots.INCREMENT_BUTTON}]`,\n DECREMENT_BUTTON_SLOT: `slot[name=${slots.DECREMENT_BUTTON}]`,\n INCREMENT_BUTTON: `[slot=${slots.INCREMENT_BUTTON}] button, button[slot=${slots.INCREMENT_BUTTON}]`,\n DECREMENT_BUTTON: `[slot=${slots.DECREMENT_BUTTON}] button, button[slot=${slots.DECREMENT_BUTTON}]`,\n TEXT_FIELD: 'forge-text-field',\n INPUT: 'input[type=number]',\n LABEL: `[slot=${slots.LABEL}]`,\n HELPER_TEXT: `[slot=${slots.HELPER_TEXT}]`\n};\n\nexport const QUANTITY_FIELD_CONSTANTS = {\n elementName,\n classes,\n slots,\n selectors,\n attributes\n};\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IQuantityFieldComponent } from './quantity-field';\nimport { getShadowElement, Platform } from '@tylertech/forge-core';\nimport { QUANTITY_FIELD_CONSTANTS } from './quantity-field-constants';\nimport { TextFieldComponent } from '../text-field';\n\nexport interface IQuantityFieldAdapter extends IBaseAdapter {\n addRootClass(name: string): void;\n removeRootClass(name: string): void;\n inputHasAttribute(name: string): boolean;\n addIncrementButtonSlotListener(listener: () => void): void;\n removeIncrementButtonSlotListener(listener: () => void): void;\n addDecrementButtonSlotListener(listener: (evt: Event) => void): void;\n removeDecrementButtonSlotListener(listener: (evt: Event) => void): void;\n addIncrementEventListener(event: string, callback: (event: Event) => void): void;\n addDecrementEventListener(event: string, callback: (event: Event) => void): void;\n removeIncrementEventListener(event: string, callback: (event: Event) => void): void;\n removeDecrementEventListener(event: string, callback: (event: Event) => void): void;\n addIncrementButtonAttribute(name: string, value?: string): void;\n removeIncrementButtonAttribute(name: string): void;\n addDecrementButtonAttribute(name: string, value?: string): void;\n removeDecrementButtonAttribute(name: string): void;\n addInputDisabledAttributeChangeListener(callback: () => void): void;\n addTextFieldAttribute(name: string, value?: string): void;\n removeTextFieldAttribute(name: string): void;\n removeInputDisabledAttributeChangeListener(): void;\n setLabelAsRequired(required: boolean): void;\n increment(): void;\n decrement(): void;\n}\n\nexport class QuantityFieldAdapter extends BaseAdapter<IQuantityFieldComponent> implements IQuantityFieldAdapter {\n private _rootElement: HTMLElement;\n private _incrementButtonSlot: HTMLSlotElement;\n private _decrementButtonSlot: HTMLSlotElement;\n private _incrementButton: HTMLButtonElement;\n private _decrementButton: HTMLButtonElement;\n private _textField: TextFieldComponent;\n private _inputElement: HTMLInputElement | null;\n private _inputAttributeMutationObserver: MutationObserver | undefined;\n\n constructor(component: IQuantityFieldComponent) {\n super(component);\n this._rootElement = getShadowElement(component, QUANTITY_FIELD_CONSTANTS.selectors.ROOT);\n this._incrementButtonSlot = getShadowElement(this._component, QUANTITY_FIELD_CONSTANTS.selectors.INCREMENT_BUTTON_SLOT) as HTMLSlotElement;\n this._decrementButtonSlot = getShadowElement(this._component, QUANTITY_FIELD_CONSTANTS.selectors.DECREMENT_BUTTON_SLOT) as HTMLSlotElement;\n }\n\n public addRootClass(name: string): void {\n this._rootElement.classList.add(name);\n }\n\n public removeRootClass(name: string): void {\n this._rootElement.classList.remove(name);\n }\n\n public inputHasAttribute(name: string): boolean {\n if (!this.inputElement) {\n return false;\n }\n\n return this.inputElement.hasAttribute(name);\n }\n\n public addIncrementButtonSlotListener(listener: () => void): void {\n this._incrementButtonSlot.addEventListener('slotchange', listener);\n }\n\n public removeIncrementButtonSlotListener(listener: () => void): void {\n if (this._incrementButtonSlot) {\n this._incrementButtonSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addDecrementButtonSlotListener(listener: (evt: Event) => void): void {\n this._decrementButtonSlot.addEventListener('slotchange', listener);\n }\n\n public removeDecrementButtonSlotListener(listener: (evt: Event) => void): void {\n if (this._decrementButtonSlot) {\n this._decrementButtonSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addTextFieldAttribute(name: string, value = ''): void {\n if (this._textFieldComponent) {\n this._textFieldComponent.setAttribute(name, value);\n }\n }\n\n public removeTextFieldAttribute(name: string): void {\n if (this._textFieldComponent) {\n this._textFieldComponent.removeAttribute(name);\n }\n }\n\n public addIncrementEventListener(event: string, callback: (event: Event) => void): void {\n this._incrementButtonElement.addEventListener(event, callback);\n }\n\n public removeIncrementEventListener(event: string, callback: (event: Event) => void): void {\n if (this._incrementButtonElement) {\n this._incrementButtonElement.removeEventListener(event, callback);\n }\n }\n\n public addDecrementEventListener(event: string, callback: (event: Event) => void): void {\n this._decrementButtonElement.addEventListener(event, callback);\n }\n\n public removeDecrementEventListener(event: string, callback: (event: Event) => void): void {\n if (this._decrementButtonElement) {\n this._decrementButtonElement.removeEventListener(event, callback);\n }\n }\n\n public addIncrementButtonAttribute(name: string, value = ''): void {\n this._incrementButtonElement.setAttribute(name, value);\n }\n\n public removeIncrementButtonAttribute(name: string): void {\n this._incrementButtonElement.removeAttribute(name);\n }\n\n public addDecrementButtonAttribute(name: string, value = ''): void {\n this._decrementButtonElement.setAttribute(name, value);\n }\n\n public removeDecrementButtonAttribute(name: string): void {\n this._decrementButtonElement.removeAttribute(name);\n }\n\n public setLabelAsRequired(required: boolean): void {\n const labelElement = this._component.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.LABEL) as HTMLLabelElement;\n\n // Due to a Safari bug with ::slotted::after selectors, we need to manually append the required \"asterisk\" to the label text\n // https://bugs.webkit.org/show_bug.cgi?id=178237\n if (required && Platform.WEBKIT && labelElement && !labelElement.innerText.endsWith('*')) {\n const asterisk = document.createElement('span');\n asterisk.style.color = 'var(--mdc-theme-error)';\n asterisk.style.marginLeft = '1px';\n asterisk.textContent = '*';\n labelElement.appendChild(asterisk);\n }\n }\n\n public increment(): void {\n const input = this.inputElement;\n if (!input) {\n return;\n }\n\n const curValue = +input.value;\n const precision = this._calcPrecision(this._inputStep);\n let newValue = parseFloat((curValue + this._inputStep).toFixed(precision));\n if (!!this._inputMax && this._inputMax < newValue) {\n newValue = this._inputMax;\n }\n\n this._setInputValue(newValue);\n }\n\n public decrement(): void {\n const input = this.inputElement;\n if (!input) {\n return;\n }\n\n const curValue = +input.value;\n const precision = this._calcPrecision(this._inputStep);\n let newValue = parseFloat((curValue - this._inputStep).toFixed(precision));\n if (!!this._inputMin && this._inputMin > newValue) {\n newValue = this._inputMin;\n }\n\n this._setInputValue(newValue);\n }\n\n public addInputDisabledAttributeChangeListener(callback: () => void): void {\n this._setupInputDisabledAttributeMutationObserver(callback);\n }\n\n public removeInputDisabledAttributeChangeListener(): void {\n this._cleanupInputDisabledAttributeMutationObserver();\n }\n\n private _setInputValue(value: string | number): void {\n if (!this.inputElement) {\n return;\n }\n\n this.inputElement.value = `${value}`;\n this.inputElement.dispatchEvent(new Event('input'));\n this.inputElement.dispatchEvent(new Event('change'));\n }\n\n private _isNullOrUndefinedOrEmpty(value: any): value is null | undefined {\n return value === null || value === undefined || value === '';\n }\n\n private _setupInputDisabledAttributeMutationObserver(callback: () => void): void {\n if (!this.inputElement) {\n return;\n }\n\n this._cleanupInputDisabledAttributeMutationObserver();\n const mutationCallback = (mutationRecords: MutationRecord[]): void => this._inputDisabledAttributeMutationCallback(mutationRecords, callback);\n this._inputAttributeMutationObserver = new MutationObserver(mutationCallback);\n const mutationOptions: MutationObserverInit = {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: [QUANTITY_FIELD_CONSTANTS.attributes.DISABLED]\n };\n this._inputAttributeMutationObserver.observe(this.inputElement, mutationOptions);\n }\n\n private _cleanupInputDisabledAttributeMutationObserver(): void {\n if (this._inputAttributeMutationObserver) {\n this._inputAttributeMutationObserver.disconnect();\n delete this._inputAttributeMutationObserver;\n }\n }\n\n private _inputDisabledAttributeMutationCallback(mutationRecords: MutationRecord[], callback: () => void): void {\n for (const mutationRecord of mutationRecords) {\n // Skip:\n // - Non-attribute mutations.\n // - Mutations without an attribute name.\n // - Mutations without a matching attribute name.\n // - Mutations that did not change the attribute value.\n if (mutationRecord.type !== 'attributes'\n || !mutationRecord.attributeName\n || mutationRecord.attributeName !== QUANTITY_FIELD_CONSTANTS.attributes.DISABLED\n || mutationRecord.target[mutationRecord.attributeName] === mutationRecord.oldValue) {\n continue;\n }\n\n callback();\n }\n }\n\n private get _incrementButtonElement(): HTMLButtonElement {\n if (!this._incrementButton) {\n this._incrementButton = this._component.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.INCREMENT_BUTTON) as HTMLButtonElement;\n }\n return this._incrementButton;\n }\n\n private get _decrementButtonElement(): HTMLButtonElement {\n if (!this._decrementButton) {\n this._decrementButton = this._component.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.DECREMENT_BUTTON) as HTMLButtonElement;\n }\n return this._decrementButton;\n }\n\n private get _textFieldComponent(): TextFieldComponent {\n if (!this._textField) {\n this._textField = this._component.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.TEXT_FIELD) as TextFieldComponent;\n }\n return this._textField;\n }\n\n public get inputElement(): HTMLInputElement | null {\n if (!this._inputElement) {\n this._inputElement = this._component.querySelector<HTMLInputElement>(QUANTITY_FIELD_CONSTANTS.selectors.INPUT);\n }\n return this._inputElement;\n }\n\n private get _inputStep(): number {\n const input = this.inputElement;\n if (!input || this._isNullOrUndefinedOrEmpty(input.step)) {\n return 1;\n }\n\n return +input.step;\n }\n\n private get _inputMax(): number | null {\n const input = this.inputElement;\n if (!input || this._isNullOrUndefinedOrEmpty(input.max)) {\n return null;\n }\n\n return +input.max;\n }\n\n private get _inputMin(): number | null {\n const input = this.inputElement;\n if (!input || this._isNullOrUndefinedOrEmpty(input.min)) {\n return null;\n }\n\n return +input.min;\n }\n\n private _calcPrecision(value: number): number {\n const strVal = String(value);\n if (strVal.includes('.')) {\n return strVal.split('.')[1].length;\n }\n return 0;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IQuantityFieldAdapter } from './quantity-field-adapter';\nimport { QUANTITY_FIELD_CONSTANTS } from './quantity-field-constants';\n\nexport interface IQuantityFieldFoundation extends ICustomElementFoundation {\n required: boolean;\n invalid: boolean;\n}\n\nexport class QuantityFieldFoundation implements IQuantityFieldFoundation {\n private _required: boolean;\n private _invalid: boolean;\n private _incrementButtonSlotChanged: () => void;\n private _decrementButtonSlotChanged: () => void;\n private _incrementValue: () => void;\n private _decrementValue: () => void;\n\n constructor(private _adapter: IQuantityFieldAdapter) {\n this._incrementValue = () => this._adapter.increment();\n this._decrementValue = () => this._adapter.decrement();\n this._incrementButtonSlotChanged = () => this._onIncrementButtonSlotChanged();\n this._decrementButtonSlotChanged = () => this._onDecrementButtonSlotChanged();\n\n this._adapter.addIncrementButtonSlotListener(this._incrementButtonSlotChanged);\n this._adapter.addDecrementButtonSlotListener(this._decrementButtonSlotChanged);\n }\n\n public connect(): void {\n this._adapter.addInputDisabledAttributeChangeListener(() => this._syncDisabledStateOfButtons());\n this._syncDisabledStateOfButtons();\n }\n\n public disconnect(): void {\n this._removeIncrementEventListener();\n this._removeDecrementEventListener();\n this._removeIncrementButtonSlotListener();\n this._removeDecrementButtonSlotListener();\n this._adapter.removeInputDisabledAttributeChangeListener();\n }\n\n private _onIncrementButtonSlotChanged(): void {\n this._addIncrementEventListener();\n }\n\n private _onDecrementButtonSlotChanged(): void {\n this._addDecrementEventListener();\n }\n\n private _addIncrementEventListener(): void {\n this._adapter.addIncrementEventListener('click', this._incrementValue);\n }\n\n private _addDecrementEventListener(): void {\n this._adapter.addDecrementEventListener('click', this._decrementValue);\n }\n\n private _removeIncrementEventListener(): void {\n this._adapter.removeIncrementEventListener('click', this._incrementValue);\n }\n\n private _removeDecrementEventListener(): void {\n this._adapter.removeDecrementEventListener('click', this._decrementValue);\n }\n\n private _removeIncrementButtonSlotListener(): void {\n this._adapter.removeIncrementButtonSlotListener(this._incrementButtonSlotChanged);\n }\n\n private _removeDecrementButtonSlotListener(): void {\n this._adapter.removeDecrementButtonSlotListener(this._decrementButtonSlotChanged);\n }\n\n private _syncDisabledStateOfButtons(): void {\n const isDisabled = this._adapter.inputHasAttribute(QUANTITY_FIELD_CONSTANTS.attributes.DISABLED);\n if (isDisabled) {\n this._adapter.addDecrementButtonAttribute(QUANTITY_FIELD_CONSTANTS.attributes.DISABLED);\n this._adapter.addIncrementButtonAttribute(QUANTITY_FIELD_CONSTANTS.attributes.DISABLED);\n } else {\n this._adapter.removeIncrementButtonAttribute(QUANTITY_FIELD_CONSTANTS.attributes.DISABLED);\n this._adapter.removeDecrementButtonAttribute(QUANTITY_FIELD_CONSTANTS.attributes.DISABLED);\n }\n }\n\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required === value) {\n return;\n }\n\n this._required = value;\n\n if (this._required) {\n this._adapter.setHostAttribute(QUANTITY_FIELD_CONSTANTS.attributes.REQUIRED);\n this._adapter.addRootClass(QUANTITY_FIELD_CONSTANTS.classes.REQUIRED);\n } else {\n this._adapter.removeHostAttribute(QUANTITY_FIELD_CONSTANTS.attributes.REQUIRED);\n this._adapter.removeRootClass(QUANTITY_FIELD_CONSTANTS.classes.REQUIRED);\n }\n\n this._adapter.setLabelAsRequired(this._required);\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n public set invalid(value: boolean) {\n if (this._invalid === value) {\n return;\n }\n\n this._invalid = value;\n\n if (this._invalid) {\n this._adapter.setHostAttribute(QUANTITY_FIELD_CONSTANTS.attributes.INVALID);\n this._adapter.addRootClass(QUANTITY_FIELD_CONSTANTS.classes.INVALID);\n this._adapter.addTextFieldAttribute(QUANTITY_FIELD_CONSTANTS.attributes.INVALID);\n } else {\n this._adapter.removeHostAttribute(QUANTITY_FIELD_CONSTANTS.attributes.INVALID);\n this._adapter.removeRootClass(QUANTITY_FIELD_CONSTANTS.classes.INVALID);\n this._adapter.removeTextFieldAttribute(QUANTITY_FIELD_CONSTANTS.attributes.INVALID);\n }\n }\n\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { QuantityFieldAdapter } from './quantity-field-adapter';\nimport { QuantityFieldFoundation } from './quantity-field-foundation';\nimport { QUANTITY_FIELD_CONSTANTS } from './quantity-field-constants';\nimport { IconButtonComponent } from '../icon-button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-quantity-field\\\" part=\\\"root\\\"><slot name=\\\"label\\\"></slot><div class=\\\"forge-quantity-field__row\\\" part=\\\"row\\\"><slot name=\\\"decrement-button\\\"></slot><slot></slot><slot name=\\\"increment-button\\\"></slot></div><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-quantity-field ::slotted([slot=label]){-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;-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);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-quantity-field ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));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;-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);height:1rem;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-quantity-field ::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}.forge-quantity-field__row{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center}.forge-quantity-field ::slotted(forge-icon-button:first-of-type){color:var(--mdc-theme-text-secondary-on-light);margin-right:4px}.forge-quantity-field ::slotted(forge-icon-button:last-of-type){color:var(--mdc-theme-text-secondary-on-light);margin-left:4px}.forge-quantity-field ::slotted(forge-text-field){--forge-text-field-margin-top:0;--forge-text-field-margin-bottom:0}.forge-quantity-field--required ::slotted([slot=label])::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\\\"*\\\";margin-right:1px}.forge-quantity-field--invalid ::slotted([slot=label]){-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;-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);color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-quantity-field--invalid ::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));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;-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);height:1rem;color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-quantity-field--invalid ::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}:host{display:inline-block}:host([hidden]){display:none}';\n\nexport interface IQuantityFieldComponent extends IBaseComponent {\n invalid: boolean;\n required: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-quantity-field': IQuantityFieldComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-quantity-field>` custom element.\n * \n * @tag forge-quantity-field\n */\n@CustomElement({\n name: QUANTITY_FIELD_CONSTANTS.elementName,\n dependencies: [\n IconButtonComponent\n ]\n})\nexport class QuantityFieldComponent extends BaseComponent implements IQuantityFieldComponent {\n public static get observedAttributes(): string[] {\n return [\n QUANTITY_FIELD_CONSTANTS.attributes.INVALID,\n QUANTITY_FIELD_CONSTANTS.attributes.REQUIRED\n ];\n }\n\n private _foundation: QuantityFieldFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new QuantityFieldFoundation(new QuantityFieldAdapter(this));\n }\n\n public connectedCallback(): void {\n if (this._requiredElementsPresent()) {\n this._foundation.connect();\n } else {\n this._ensureElementsPresent().then(() => {\n this._foundation.connect();\n });\n }\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 QUANTITY_FIELD_CONSTANTS.attributes.INVALID:\n this.invalid = coerceBoolean(newValue);\n break;\n case QUANTITY_FIELD_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n break;\n }\n }\n\n private _ensureElementsPresent(): Promise<void> {\n return new Promise<void>(resolve => {\n if (this._requiredElementsPresent()) {\n resolve();\n return;\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 if (this._requiredElementsPresent()) {\n observer.disconnect();\n resolve();\n }\n }\n });\n observer.observe(this, { childList: true, subtree: true });\n });\n }\n\n private _requiredElementsPresent(): boolean {\n const inputElement = this.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.INPUT);\n const decrementElement = this.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.DECREMENT_BUTTON);\n const incrementElement = this.querySelector(QUANTITY_FIELD_CONSTANTS.selectors.INCREMENT_BUTTON);\n return !!inputElement && !!decrementElement && !!incrementElement;\n }\n\n /** Gets/sets the invalid state. */\n @FoundationProperty()\n public invalid: boolean;\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n @FoundationProperty()\n public required: boolean;\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { IconButtonComponentDelegate } from '../icon-button';\nimport { ITextFieldComponentDelegateConfig, TextFieldComponentDelegate } from '../text-field/text-field-component-delegate';\nimport { IQuantityFieldComponent } from './quantity-field';\nimport { QUANTITY_FIELD_CONSTANTS } from './quantity-field-constants';\nimport { tylIconRemoveCircleOutline, tylIconControlPoint } from '@tylertech/tyler-icons/standard';\nimport { IconRegistry } from '../icon';\n\nexport type QuantityFieldComponentDelegateProps = Partial<IQuantityFieldComponent>;\nexport interface IQuantityFieldComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n id?: string;\n label?: string;\n value?: string;\n step?: string;\n helperText?: string;\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\nexport interface IQuantityFieldComponentDelegateConfig extends IBaseComponentDelegateConfig<IQuantityFieldComponent, IQuantityFieldComponentDelegateOptions> {}\n\nexport class QuantityFieldComponentDelegate extends FormFieldComponentDelegate<IQuantityFieldComponent, IQuantityFieldComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n private _labelElement: HTMLLabelElement | undefined;\n private _helperTextElement: HTMLSpanElement | undefined;\n\n constructor(config?: IQuantityFieldComponentDelegateConfig) {\n super(config);\n IconRegistry.define([tylIconRemoveCircleOutline, tylIconControlPoint]);\n }\n\n protected _build(): IQuantityFieldComponent {\n const quantityField = document.createElement(QUANTITY_FIELD_CONSTANTS.elementName);\n this._attachButton(quantityField, tylIconRemoveCircleOutline.name, 'decrement-button');\n this._attachTextField(quantityField);\n this._attachButton(quantityField, tylIconControlPoint.name, 'increment-button');\n return quantityField;\n }\n\n protected override _configure(): void {\n this.inputElement.value = this._config.options?.value ?? '0';\n this.inputElement.style.textAlign = 'center';\n this.inputElement.style.width = '64px';\n\n if (this._config.options?.helperText) {\n this.setHelperText(this._config.options.helperText);\n }\n if (typeof this._config.options?.label === 'string') {\n this._createLabel(this._config.options.label);\n }\n if (this._config.options?.step !== undefined) {\n this.inputElement.step = this._config.options.step;\n }\n }\n\n public get value(): string {\n return this._textFieldDelegate.inputElement.value;\n }\n public set value(value: string) {\n this._textFieldDelegate.inputElement.value = value;\n }\n\n public get disabled(): boolean {\n return this._textFieldDelegate.inputElement.disabled;\n }\n public set disabled(value: boolean) {\n this._textFieldDelegate.inputElement.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._element.invalid || false;\n }\n public set invalid(value: boolean) {\n this._element.invalid = value;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._textFieldDelegate.inputElement;\n }\n\n public get labelElement(): HTMLLabelElement | undefined {\n return this._labelElement;\n }\n\n public onChange(listener: (value: string) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('blur', evt => listener(evt));\n }\n\n private _attachTextField(quantityField: IQuantityFieldComponent): void {\n const textFieldConfig: ITextFieldComponentDelegateConfig = {\n props: { ...this._config.options?.textFieldDelegateConfig?.props },\n options: {\n ...this._config.options?.textFieldDelegateConfig?.options,\n id: this._config.options?.id,\n type: 'number'\n }\n };\n this._textFieldDelegate = new TextFieldComponentDelegate(textFieldConfig);\n quantityField.appendChild(this._textFieldDelegate.element);\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 public setHelperText(text: string | null): void {\n if (text) {\n if (!this._helperTextElement) {\n this._helperTextElement = document.createElement('span');\n this._helperTextElement.slot = 'helper-text';\n this._element.appendChild(this._helperTextElement);\n }\n this._helperTextElement.textContent = text;\n } else if (this._helperTextElement) {\n this._element.removeChild(this._helperTextElement);\n this._helperTextElement = undefined;\n }\n }\n\n private _createLabel(text: string): void {\n this._labelElement = document.createElement('label');\n this._labelElement.textContent = text;\n this._labelElement.slot = 'label';\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 _attachButton(parent: HTMLElement, iconName: string, slot: string): IconButtonComponentDelegate {\n const iconButtonDelegate = new IconButtonComponentDelegate({\n options: {\n iconName,\n parent,\n attributes: { slot }\n }\n });\n return iconButtonDelegate;\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { QuantityFieldComponent } from './quantity-field';\n\nexport * from './quantity-field-adapter';\nexport * from './quantity-field-constants';\nexport * from './quantity-field-foundation';\nexport * from './quantity-field';\nexport * from './quantity-field-component-delegate';\n\nexport function defineQuantityFieldComponent(): void {\n defineCustomElement(QuantityFieldComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/drawer/modal-drawer/modal-drawer-adapter.ts", "../../src/drawer/modal-drawer/modal-drawer-constants.ts", "../../src/drawer/modal-drawer/modal-drawer-foundation.ts", "../../src/drawer/modal-drawer/modal-drawer.ts", "../../src/drawer/modal-drawer/index.ts"],
4
- "sourcesContent": ["import { getShadowElement, toggleClass } from '@tylertech/forge-core';\nimport { BACKDROP_CONSTANTS, IBackdropComponent } from '../../backdrop';\nimport { BaseDrawerAdapter, IBaseDrawerAdapter } from '../base';\nimport { IModalDrawerComponent } from './modal-drawer';\n\nexport interface IModalDrawerAdapter extends IBaseDrawerAdapter {\n setBackdropCloseListener(listener: (evt: Event) => void): void;\n setBackdropVisibility(visible: boolean): Promise<void>;\n toggleBackdropClass(hasClass: boolean, className: string): void;\n}\n\nexport class ModalDrawerAdapter extends BaseDrawerAdapter implements IModalDrawerAdapter {\n private _backdropElement: IBackdropComponent;\n\n constructor(protected _component: IModalDrawerComponent) {\n super(_component);\n this._backdropElement = getShadowElement(this._component, BACKDROP_CONSTANTS.elementName) as IBackdropComponent;\n }\n\n public setBackdropCloseListener(listener: (evt: Event) => void): void {\n this._backdropElement.addEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, listener);\n }\n\n public setBackdropVisibility(visible: boolean): Promise<void> {\n if (this._backdropElement.hasAttribute('hidden')) {\n this._backdropElement.removeAttribute('hidden');\n }\n if (!this._backdropElement.fadeIn || !this._backdropElement.fadeOut) {\n return Promise.resolve();\n }\n return visible ? this._backdropElement.fadeIn() : this._backdropElement.fadeOut();\n }\n\n public toggleBackdropClass(hasClass: boolean, className: string): void {\n toggleClass(this._backdropElement, hasClass, className);\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}modal-drawer`;\n\nconst classes = {\n DISPLAY_NONE: 'forge-drawer--display-none',\n SCRIM_CLOSED: 'forge-drawer__scrim--closed'\n};\n\nconst events = {\n CLOSE: `${elementName}-close`\n};\n\nexport const MODAL_DRAWER_CONSTANTS = {\n elementName,\n classes,\n events\n};\n", "import { Platform } from '@tylertech/forge-core';\nimport { BaseDrawerFoundation, IBaseDrawerFoundation } from '../base';\n\nimport { IModalDrawerAdapter } from './modal-drawer-adapter';\nimport { MODAL_DRAWER_CONSTANTS } from './modal-drawer-constants';\n\nexport interface IModalDrawerFoundation extends IBaseDrawerFoundation {}\n\nexport class ModalDrawerFoundation extends BaseDrawerFoundation implements IModalDrawerFoundation {\n protected _open = false;\n private _backdropClickListener: (evt: Event) => void;\n private _isInitialized = false;\n\n constructor(protected _adapter: IModalDrawerAdapter) {\n super(_adapter);\n this._backdropClickListener = evt => this._onBackdropClick(evt);\n }\n\n public connect(): void {\n super.connect();\n this._adapter.setBackdropCloseListener(this._backdropClickListener);\n this._setBackdrop(this._open);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n }\n\n protected _setDrawerOpenState(): void {\n super._setDrawerOpenState();\n this._setBackdrop(true);\n }\n\n protected _setDrawerClosedState(): void {\n super._setDrawerClosedState();\n this._setBackdrop(false);\n }\n\n private _onBackdropClick(evt: Event): void {\n const canClose = this._adapter.emitHostEvent(MODAL_DRAWER_CONSTANTS.events.CLOSE, undefined, true, true);\n if (canClose) {\n this.open = false;\n }\n }\n\n private _setBackdrop(open: boolean): void {\n if (open) {\n this._adapter.toggleBackdropClass(false, MODAL_DRAWER_CONSTANTS.classes.SCRIM_CLOSED);\n this._adapter.setBackdropVisibility(true);\n } else if (this._isInitialized) {\n this._adapter.setBackdropVisibility(false).then(() => {\n if (!this._open) {\n this._adapter.toggleBackdropClass(true, MODAL_DRAWER_CONSTANTS.classes.SCRIM_CLOSED);\n }\n });\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement } from '@tylertech/forge-core';\nimport { BackdropComponent } from '../../backdrop';\nimport { BaseDrawerComponent, IBaseDrawerComponent } from '../base';\nimport { ModalDrawerAdapter } from './modal-drawer-adapter';\nimport { MODAL_DRAWER_CONSTANTS } from './modal-drawer-constants';\nimport { ModalDrawerFoundation } from './modal-drawer-foundation';\n\nconst template = '<template><forge-backdrop class=\\\"forge-drawer__scrim\\\" hidden part=\\\"scrim\\\"></forge-backdrop><div class=\\\"forge-drawer forge-drawer--modal\\\" part=\\\"root\\\"><slot name=\\\"header\\\"></slot><div class=\\\"forge-drawer__content\\\" part=\\\"content\\\"><slot></slot></div><slot name=\\\"footer\\\"></slot></div></template>';\nconst styles = '.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:\\\"touch\\\";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-drawer__content::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-drawer__content::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}.forge-drawer--modal{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);z-index:8;z-index:var(--forge-z-index-dialog,8);position:absolute;top:0;max-width:80%}.forge-drawer--modal+.mdc-drawer-scrim{background-color:rgba(0,0,0,.32)}.forge-drawer--modal.forge-drawer--closed,.forge-drawer--modal.forge-drawer--closing{-webkit-box-shadow:none;box-shadow:none}.forge-drawer--modal.forge-drawer--closing.forge-drawer--right{-webkit-transform:translateX(100%);transform:translateX(100%)}.forge-drawer__scrim{z-index:8;z-index:var(--forge-z-index-dialog,8)}.forge-drawer__scrim--closed{display:none}.forge-drawer.forge-drawer--right{right:0}.forge-drawer--display-none{display:none!important}';\n\nexport interface IModalDrawerComponent extends IBaseDrawerComponent {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-modal-drawer': IModalDrawerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-modal-drawer-close': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-modal-drawer>` custom element.\n * \n * @tag forge-modal-drawer\n */\n@CustomElement({\n name: MODAL_DRAWER_CONSTANTS.elementName,\n dependencies: [BackdropComponent]\n})\nexport class ModalDrawerComponent extends BaseDrawerComponent<ModalDrawerFoundation> implements IModalDrawerComponent {\n protected _foundation: ModalDrawerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ModalDrawerFoundation(new ModalDrawerAdapter(this));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ModalDrawerComponent } from './modal-drawer';\n\nexport * from './modal-drawer-adapter';\nexport * from './modal-drawer-constants';\nexport * from './modal-drawer-foundation';\nexport * from './modal-drawer';\n\nexport function defineModalDrawerComponent(): void {\n defineCustomElement(ModalDrawerComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/field/field-adapter.ts", "../../src/field/field-foundation.ts", "../../src/field/field.ts"],
4
- "sourcesContent": ["import { addClass, calculateFontWidth, getShadowElement, IFontInfo, listenOwnProperty, Platform, removeClass, getActiveElement, createElementAttributeObserver, toggleClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { FloatingLabel, IFloatingLabel } from '../floating-label/floating-label';\nimport { IFieldComponent } from './field';\nimport { FIELD_CONSTANTS } from './field-constants';\n\nexport interface IFieldAdapter extends IBaseAdapter {\n // root\n setRootClass(classes: string | string[]): void;\n removeRootClass(classes: string | string[]): void;\n\n // input\n addInputListener(type: string, listener: (evt: Event) => void): void;\n removeInputListener(type: string, listener: (evt: Event) => void): void;\n setInputClass(className: string): void;\n removeInputClass(className: string): void;\n\n // label\n addLabelSlotListener(listener: (evt: Event) => void): void;\n removeLabelSlotListener(listener: (evt: Event) => void): void;\n setLabelClass(name: string): void;\n removeLabelClass(name: string): void;\n\n // leading\n addLeadingSlotListener(listener: (evt: Event) => void): void;\n removeLeadingSlotListener(listener: (evt: Event) => void): void;\n\n // trailing\n addTrailingSlotListener(listener: (evt: Event) => void): void;\n removeTrailingSlotListener(listener: (evt: Event) => void): void;\n\n // add on end\n addAddonEndSlotListener(listener: (evt: Event) => void): void;\n removeAddonEndSlotListener(listener: (evt: Event) => void): void;\n\n // state selectors\n hasAddonEndNodes(): boolean;\n hasLabel(): boolean;\n hasLeadingNodes(): boolean;\n hasPlaceholder(): boolean;\n hasTrailingNodes(): boolean;\n inputHasFocus(): boolean;\n inputHasValue(): boolean;\n fieldHasValue(): boolean;\n isDisabled(): boolean;\n isReadonly(): boolean;\n getLabelFontMetrics(): IFontInfo;\n getLabelWidth(fontSize: number, fontFamily: string): number;\n\n // state actions\n initialize(required: boolean, rootSelector: string): void;\n initializeFloatingLabel(): IFloatingLabel;\n ensureLabelOrder(): void;\n ensureSlottedLabel(): void;\n destroy(): void;\n setValueChangedListener(context: any, listener: (value: any) => void): void;\n destroyValueChangeListener(): void;\n detectLabel(required: boolean): void;\n setRoomy(isRoomy: boolean): void;\n setDense(isDense: boolean): void;\n setInputAttributeObserver(listener: (name: string, value: string | null) => void): void;\n}\n\nexport class FieldAdapter extends BaseAdapter<IFieldComponent> implements IFieldAdapter {\n protected _rootElement: HTMLElement;\n protected _labelSlot: HTMLSlotElement;\n protected _leadingSlot: HTMLSlotElement;\n protected _trailingSlot: HTMLSlotElement;\n protected _addonEndSlot: HTMLSlotElement;\n protected _labelElement: HTMLLabelElement;\n protected _inputElement: HTMLInputElement;\n protected _inputMutationObserver: MutationObserver;\n protected _valueChangeListeners: Array<() => void> = [];\n\n constructor(component: IFieldComponent) {\n super(component);\n }\n\n public initialize(required: boolean, rootSelector: string): void {\n this._rootElement = getShadowElement(this._component, rootSelector);\n this._labelSlot = getShadowElement(this._component, 'slot[name=label]') as HTMLSlotElement;\n this._leadingSlot = getShadowElement(this._component, 'slot[name=leading]') as HTMLSlotElement;\n this._trailingSlot = getShadowElement(this._component, 'slot[name=trailing]') as HTMLSlotElement;\n this._addonEndSlot = getShadowElement(this._component, 'slot[name=addon-end]') as HTMLSlotElement;\n this._inputElement = this._component.querySelector('input:not([type=checkbox]):not([type=radio])') as HTMLInputElement;\n this.detectLabel(required);\n }\n\n public destroy(): void {\n if (this._inputMutationObserver) {\n this._inputMutationObserver.disconnect();\n }\n }\n\n public hasLabel(): boolean {\n return !!this._labelElement;\n }\n\n public ensureSlottedLabel(): void {\n this._labelElement.slot = 'label';\n }\n\n public ensureLabelOrder(): void {\n if (this._labelElement) {\n const children = Array.from(this._component.children);\n if (children.length > 1 && children.indexOf(this._labelElement) < children.indexOf(this._inputElement)) {\n this._component.appendChild(this._labelElement);\n }\n }\n }\n\n public addLabelSlotListener(listener: (evt: Event) => void): void {\n this._labelSlot.addEventListener('slotchange', listener);\n }\n\n public removeLabelSlotListener(listener: (evt: Event) => void): void {\n if (this._labelSlot) {\n this._labelSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addLeadingSlotListener(listener: (evt: Event) => void): void {\n this._leadingSlot.addEventListener('slotchange', listener);\n }\n\n public removeLeadingSlotListener(listener: (evt: Event) => void): void {\n if (this._leadingSlot) {\n this._leadingSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addTrailingSlotListener(listener: (evt: Event) => void): void {\n this._trailingSlot.addEventListener('slotchange', listener);\n }\n\n public removeTrailingSlotListener(listener: (evt: Event) => void): void {\n if (this._trailingSlot) {\n this._trailingSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addAddonEndSlotListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.addEventListener('slotchange', listener);\n }\n\n public removeAddonEndSlotListener(listener: (evt: Event) => void): void {\n if (this._addonEndSlot) {\n this._addonEndSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addInputListener(type: string, listener: (evt: Event) => void): void {\n this._inputElement.addEventListener(type, listener);\n }\n public removeInputListener(type: string, listener: (evt: Event) => void): void {\n if (this._inputElement) {\n this._inputElement.removeEventListener(type, listener);\n }\n }\n\n public setValueChangedListener(context: any, listener: (value: any) => void): void {\n this.destroyValueChangeListener();\n const destroyListener = listenOwnProperty(context, this._inputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListener);\n }\n\n public destroyValueChangeListener(): void {\n this._valueChangeListeners.forEach(cb => cb());\n }\n\n public detectLabel(required: boolean): void {\n this._labelElement = this._component.querySelector('label') as HTMLLabelElement;\n\n // Due to a Safari bug with ::slotted::after selectors, we need to manually append the required 'asterisk' to the label text\n // https://bugs.webkit.org/show_bug.cgi?id=178237\n if (required && Platform.WEBKIT && this._labelElement && !this._labelElement.innerText.endsWith('*')) {\n const asterisk = document.createElement('span');\n asterisk.style.color = 'var(--mdc-theme-error)';\n asterisk.style.marginLeft = '1px';\n asterisk.textContent = '*';\n this._labelElement.appendChild(asterisk);\n }\n }\n\n public initializeFloatingLabel(): IFloatingLabel {\n return new FloatingLabel(this._labelElement);\n }\n\n public inputHasValue(): boolean {\n return this._inputElement.value ? this._inputElement.value.trim().length > 0 : false;\n }\n\n // An overrideable method for more generic field values where input.value is not the value.\n public fieldHasValue(): boolean {\n return this.inputHasValue();\n }\n\n public hasPlaceholder(): boolean {\n return this._inputElement.placeholder ? this._inputElement.placeholder.trim().length > 0 : false;\n }\n\n public inputHasFocus(): boolean {\n return this._inputElement === getActiveElement();\n }\n\n public setLabelClass(name: string): void {\n if (this._labelElement) {\n this._labelElement.classList.add(name);\n }\n }\n\n public removeLabelClass(name: string): void {\n if (this._labelElement) {\n this._labelElement.classList.remove(name);\n }\n }\n\n public setRoomy(isRoomy: boolean): void {\n toggleClass(this._rootElement, isRoomy, FIELD_CONSTANTS.classes.ROOMY);\n }\n\n public setDense(isDense: boolean): void {\n toggleClass(this._rootElement, isDense, FIELD_CONSTANTS.classes.DENSE);\n }\n\n public hasLeadingNodes(): boolean {\n if (!this._leadingSlot) {\n return false;\n }\n return this._leadingSlot.assignedNodes().length > 0;\n }\n\n public hasTrailingNodes(): boolean {\n if (!this._trailingSlot) {\n return false;\n }\n return this._trailingSlot.assignedNodes().length > 0;\n }\n\n public hasAddonEndNodes(): boolean {\n if (!this._addonEndSlot) {\n return false;\n }\n return this._addonEndSlot.assignedNodes().length > 0;\n }\n\n public setInputClass(className: string): void {\n this._inputElement.classList.add(className);\n }\n\n public removeInputClass(className: string): void {\n this._inputElement.classList.remove(className);\n }\n\n public setRootClass(classes: string | string[]): void {\n addClass(classes, this._rootElement);\n }\n\n public removeRootClass(classes: string | string[]): void {\n removeClass(classes, this._rootElement);\n }\n\n public setInputAttributeObserver(listener: (name: string, value: string | null) => void): void {\n this._inputMutationObserver = createElementAttributeObserver(this._inputElement, listener, FIELD_CONSTANTS.observedInputAttributes);\n }\n\n public isDisabled(): boolean {\n return this._inputElement.hasAttribute('disabled');\n }\n\n public isReadonly(): boolean {\n return this._inputElement.hasAttribute('readonly');\n }\n\n public getLabelWidth(fontSize: number, fontFamily: string): number {\n return calculateFontWidth(this._labelElement.innerText, { fontSize, fontFamily });\n }\n\n public getLabelFontMetrics(): IFontInfo {\n const style = getComputedStyle(this._labelElement);\n return {\n fontSize: parseInt(style.fontSize || '16', 10),\n fontFamily: style.fontFamily || 'Roboto'\n };\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IFloatingLabel } from '../floating-label/floating-label';\nimport { IFieldAdapter } from './field-adapter';\nimport { FIELD_CONSTANTS, FieldFloatLabelType, FieldShapeType, FieldDensityType } from './field-constants';\n\nexport interface IFieldFoundation extends ICustomElementFoundation {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n floatLabel(value: boolean, alwaysFloat?: boolean): void;\n}\n\nexport class FieldFoundation {\n protected _density: FieldDensityType = 'default';\n protected _floatingLabel: IFloatingLabel | undefined;\n protected _shape: FieldShapeType = 'default';\n protected _invalid = false;\n protected _required = false;\n protected _floatLabelType: FieldFloatLabelType = 'auto';\n protected _isInitialized = false;\n protected _labelSlotListener: (evt: Event) => void;\n protected _leadingSlotListener: (evt: Event) => void;\n protected _trailingSlotListener: (evt: Event) => void;\n protected _addonEndSlotListener: (evt: Event) => void;\n protected _focusListener: (evt: Event) => void;\n protected _blurListener: (evt: Event) => void;\n protected _valueChangedListener: (value: any) => void;\n protected _inputAttributeChangedListener: (name: string, value: string) => void;\n\n constructor(protected _adapter: IFieldAdapter) {\n this._labelSlotListener = evt => this._onLabelSlotChanged(evt);\n this._leadingSlotListener = evt => this._onLeadingSlotChanged(evt);\n this._trailingSlotListener = evt => this._onTrailingSlotChanged(evt);\n this._addonEndSlotListener = evt => this._onAddonEndSlotChanged(evt);\n this._focusListener = (evt: Event) => this._onFocus(evt);\n this._blurListener = (evt: Event) => this._onBlur(evt);\n this._valueChangedListener = (value: any) => this._onValueChanged(value);\n this._inputAttributeChangedListener = (name, value) => this._onInputAttributeChanged(name, value);\n }\n\n //\n // Public\n //\n\n public initialize(): void {\n this._adapter.initialize(this._required, '');\n\n if (this._adapter.hasLabel()) {\n this._adapter.ensureSlottedLabel();\n }\n\n this._initializeLabel();\n\n if (this._adapter.hasPlaceholder()) {\n this._floatLabelType = 'always';\n }\n\n this._detectSlottedContent();\n this._adapter.addLabelSlotListener(this._labelSlotListener);\n this._adapter.addLeadingSlotListener(this._leadingSlotListener);\n this._adapter.addTrailingSlotListener(this._trailingSlotListener);\n this._adapter.addAddonEndSlotListener(this._addonEndSlotListener);\n this._adapter.setValueChangedListener(this, this._valueChangedListener);\n this._adapter.addInputListener('focus', this._focusListener);\n this._adapter.addInputListener('blur', this._blurListener);\n this._adapter.setInputAttributeObserver(this._inputAttributeChangedListener);\n this._applyDensity();\n this._setShapeType();\n this._setValidity();\n\n if (this._adapter.isDisabled()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.DISABLED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.DISABLED);\n }\n\n if (this._adapter.isReadonly()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.READONLY);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.READONLY);\n }\n\n if (this._floatLabelType === 'always') {\n this.floatLabel(true);\n }\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n this._adapter.destroy();\n\n if (this._floatingLabel) {\n this._floatingLabel.destroy();\n this._floatingLabel = undefined;\n }\n\n this._adapter.removeLabelSlotListener(this._labelSlotListener);\n this._adapter.removeLeadingSlotListener(this._leadingSlotListener);\n this._adapter.removeTrailingSlotListener(this._trailingSlotListener);\n this._adapter.removeAddonEndSlotListener(this._addonEndSlotListener);\n this._adapter.removeInputListener('focus', this._focusListener);\n this._adapter.removeInputListener('blur', this._blurListener);\n this._adapter.destroyValueChangeListener();\n }\n\n public get density(): FieldDensityType {\n return this._density;\n }\n public set density(value: FieldDensityType) {\n if (this._density !== value) {\n this._density = value;\n\n if (this._isInitialized) {\n this._applyDensity();\n this._initializeLabel();\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.DENSITY, this._density.toString());\n }\n }\n\n public get floatLabelType(): FieldFloatLabelType {\n return this._floatLabelType;\n }\n public set floatLabelType(value: FieldFloatLabelType) {\n if (this._floatLabelType !== value) {\n this._floatLabelType = value;\n\n if (this._isInitialized) {\n this.floatLabel(this._floatLabelType === 'always');\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE, this._floatLabelType);\n }\n }\n\n public get shape(): FieldShapeType {\n return this._shape;\n }\n public set shape(value: FieldShapeType) {\n if (this._shape !== value) {\n this._shape = value;\n\n if (this._isInitialized) {\n this._setShapeType();\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.SHAPE, this._shape);\n }\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n public set invalid(value: boolean) {\n if (this._invalid !== value) {\n this._invalid = value;\n\n if (this._isInitialized) {\n this._setValidity();\n }\n }\n }\n\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required !== value) {\n this._required = value;\n\n if (this._isInitialized) {\n this._setValidity();\n }\n\n if (this._required) {\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED);\n } else {\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED);\n }\n }\n }\n\n public floatLabel(value: boolean): void {\n if (this._floatingLabel?.isFloating === value) {\n return;\n }\n\n if (!value && this._floatLabelType === 'always') {\n if (this._floatingLabel) {\n this._floatingLabel.float(true, true);\n }\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING, '');\n return;\n }\n\n if (this._floatingLabel) {\n this._floatingLabel.float(value, this._floatLabelType === 'always');\n\n if (value) {\n this._adapter.setInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING, '');\n } else {\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n }\n }\n }\n\n //\n // Protected\n //\n\n protected _onLabelSlotChanged(evt: Event): void {\n this._initializeLabel();\n }\n\n protected _onLeadingSlotChanged(evt: Event): void {\n this._detectLeadingContent();\n }\n\n protected _onTrailingSlotChanged(evt: Event): void {\n this._detectTrailingContent();\n }\n\n protected _onAddonEndSlotChanged(evt: Event): void {\n this._detectAddonEndContent();\n }\n\n protected _initializeLabel(): void {\n if (this._floatingLabel) {\n this._floatingLabel.destroy();\n }\n this._adapter.detectLabel(this._required);\n if (this._adapter.hasLabel() && this._density !== 'dense') {\n this._floatingLabel = this._adapter.initializeFloatingLabel();\n this._adapter.ensureLabelOrder();\n this.floatLabel(this._floatLabelType === 'always' || this._adapter.fieldHasValue() || this._adapter.hasPlaceholder());\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.LABEL);\n } else {\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LABEL);\n this._floatingLabel = undefined;\n }\n }\n\n protected _detectLeadingContent(): void {\n if (this._adapter.hasLeadingNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.LEADING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LEADING);\n }\n }\n\n protected _detectTrailingContent(): void {\n if (this._adapter.hasTrailingNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.TRAILING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.TRAILING);\n }\n }\n\n protected _detectAddonEndContent(): void {\n if (this._adapter.hasAddonEndNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n }\n }\n\n protected _detectSlottedContent(): void {\n this._detectLeadingContent();\n this._detectTrailingContent();\n this._detectAddonEndContent();\n }\n\n protected _onFocus(event: Event): void {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.setLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n this.floatLabel(true);\n }\n\n protected _onBlur(event: Event): void {\n if (this._adapter.inputHasFocus()) {\n return;\n }\n\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n\n if (!this._adapter.fieldHasValue() && !this._adapter.hasPlaceholder()) {\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n this.floatLabel(false);\n }\n }\n\n protected _onValueChanged(value: any): void {\n if (this._adapter.fieldHasValue()) {\n this.floatLabel(true);\n } else if (!this._adapter.inputHasFocus() && !this._adapter.hasPlaceholder()) {\n this.floatLabel(false);\n }\n }\n\n protected _onInputAttributeChanged(name: string, value: string | null): void {\n if (this._adapter.isDisabled()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.DISABLED);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.removeLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n\n if (!this._adapter.fieldHasValue() && !this._adapter.hasPlaceholder() && this._floatingLabel) {\n this.floatLabel(false);\n }\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.DISABLED);\n }\n\n if (this._adapter.isReadonly()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.READONLY);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.READONLY);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n }\n\n switch (name) {\n case 'readonly':\n case 'disabled':\n // If we are changing the readonly or disabled attribute, we want to make sure that we apply\n // the focus state properly if the input element also now has focus\n if (this._adapter.inputHasFocus()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.setInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.setLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n }\n break;\n case 'value':\n if (this._floatingLabel) {\n this.floatLabel(this._adapter.fieldHasValue());\n }\n break;\n case 'placeholder':\n if (this._floatingLabel) {\n const float = (!!value && !!value.trim()) || this._adapter.fieldHasValue();\n if (float !== this._floatingLabel.isFloating) {\n this.floatLabel(float);\n }\n }\n break;\n }\n }\n\n protected _setShapeType(): void {\n if (this._shape === 'rounded') {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n }\n }\n\n protected _setValidity(): void {\n if (this._invalid) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.INVALID);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.INVALID);\n }\n\n if (this._required) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.REQUIRED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.REQUIRED);\n }\n }\n\n protected _applyDensity(): void {\n this._adapter.setRoomy(this._density === 'roomy');\n this._adapter.setDense(this._density === 'dense');\n }\n}\n", "import { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from './field-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FieldFoundation } from './field-foundation';\nimport { coerceBoolean, ensureChildren, FoundationProperty } from '@tylertech/forge-core';\n\nexport interface IFieldComponent extends IBaseComponent {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n floatLabel(value: boolean): void;\n}\n\nexport abstract class FieldComponent<T extends FieldFoundation> extends BaseComponent implements IFieldComponent {\n public static get observedAttributes(): string[] {\n return [\n FIELD_CONSTANTS.attributes.DENSITY,\n FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE,\n FIELD_CONSTANTS.attributes.SHAPE,\n FIELD_CONSTANTS.attributes.INVALID,\n FIELD_CONSTANTS.attributes.REQUIRED\n ];\n }\n\n protected _foundation: T;\n\n constructor() {\n super();\n }\n\n public connectedCallback(): void {\n if (this.children.length) {\n this._initialize();\n } else {\n ensureChildren(this).then(() => this._initialize());\n }\n }\n\n private _initialize(): 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 FIELD_CONSTANTS.attributes.DENSITY:\n this.density = newValue as FieldDensityType;\n break;\n case FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE:\n this.floatLabelType = newValue as FieldFloatLabelType;\n break;\n case FIELD_CONSTANTS.attributes.SHAPE:\n this.shape = newValue as FieldShapeType;\n break;\n case FIELD_CONSTANTS.attributes.INVALID:\n this.invalid = coerceBoolean(newValue);\n break;\n case FIELD_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Controls the density type. */\n @FoundationProperty()\n public density: FieldDensityType;\n\n /** Whether the label should always float, never float or float as the user types. */\n @FoundationProperty()\n public floatLabelType: FieldFloatLabelType;\n\n /** The shape type to use. */\n @FoundationProperty()\n public shape: FieldShapeType;\n\n /** Gets/sets the invalid state. */\n @FoundationProperty()\n public invalid: boolean;\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n @FoundationProperty()\n public required: boolean;\n\n /**\n * Controls whether the label should be floating or not.\n * @param {boolean} value\n */\n public floatLabel(value: boolean): void {\n this._foundation.floatLabel(value);\n }\n}\n\n"],
5
- "mappings": "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",
6
- "names": []
7
- }