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

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 (206) hide show
  1. package/custom-elements.json +673 -87
  2. package/dist/esm/app-bar/help-button/index.js +1 -1
  3. package/dist/esm/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/menu-button/index.js +1 -1
  5. package/dist/esm/app-bar/notification-button/index.js +1 -1
  6. package/dist/esm/app-bar/profile-button/index.js +1 -1
  7. package/dist/esm/autocomplete/index.js +1 -1
  8. package/dist/esm/banner/index.js +1 -1
  9. package/dist/esm/bottom-sheet/index.js +1 -1
  10. package/dist/esm/busy-indicator/index.js +1 -1
  11. package/dist/esm/button/index.js +1 -1
  12. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  13. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  14. package/dist/esm/button-toggle/index.js +1 -1
  15. package/dist/esm/calendar/index.js +1 -1
  16. package/dist/esm/checkbox/index.js +1 -1
  17. package/dist/esm/chip-field/index.js +1 -1
  18. package/dist/esm/chips/chip/index.js +1 -1
  19. package/dist/esm/chips/chip-set/index.js +1 -1
  20. package/dist/esm/chips/index.js +1 -1
  21. package/dist/esm/chunks/{chunk.T7KUZYQ3.js → chunk.2TVYAW7Q.js} +2 -2
  22. package/dist/esm/chunks/chunk.3SBF7CUU.js +201 -0
  23. package/dist/esm/chunks/{chunk.UHTQGET5.js.map → chunk.3SBF7CUU.js.map} +1 -1
  24. package/dist/esm/chunks/{chunk.N2XJHAD4.js → chunk.3W2ERIMT.js} +2 -2
  25. package/dist/esm/chunks/{chunk.H5MJBEK5.js → chunk.3XZRUXG7.js} +2 -2
  26. package/dist/esm/chunks/{chunk.HNSUYOCY.js → chunk.4NV7AHF2.js} +2 -2
  27. package/dist/esm/chunks/{chunk.3QD73Z4F.js → chunk.64F24XMH.js} +2 -2
  28. package/dist/esm/chunks/{chunk.56D6S5XJ.js → chunk.7BNQYL2F.js} +2 -2
  29. package/dist/esm/chunks/{chunk.3GZF7UI2.js → chunk.7JBR7GWZ.js} +2 -2
  30. package/dist/esm/chunks/{chunk.NRXPO3SY.js → chunk.7UN5EYUE.js} +2 -2
  31. package/dist/esm/chunks/{chunk.BBNRKEP4.js → chunk.7X7A74SI.js} +2 -2
  32. package/dist/esm/chunks/{chunk.BSKIHRND.js → chunk.A5D7XSBD.js} +2 -2
  33. package/dist/esm/chunks/{chunk.YM6VAIY2.js → chunk.ABN3DL7G.js} +2 -2
  34. package/dist/esm/chunks/chunk.AY46N5Y7.js +129 -0
  35. package/dist/esm/chunks/{chunk.ADXALX5F.js.map → chunk.AY46N5Y7.js.map} +1 -1
  36. package/dist/esm/chunks/{chunk.SCQVDO5I.js → chunk.BPEGGZOR.js} +2 -2
  37. package/dist/esm/chunks/{chunk.7IP3XTE3.js → chunk.C4YKXXKM.js} +2 -2
  38. package/dist/esm/chunks/{chunk.465MOF4A.js → chunk.DX32NTD3.js} +2 -2
  39. package/dist/esm/chunks/{chunk.PJOH4JKH.js → chunk.ELY4YCON.js} +2 -2
  40. package/dist/esm/chunks/{chunk.CY7UCG25.js → chunk.EUNKM7XR.js} +2 -2
  41. package/dist/esm/chunks/{chunk.FXUXL3D2.js → chunk.EWEX3PHR.js} +2 -2
  42. package/dist/esm/chunks/{chunk.FXUXL3D2.js.map → chunk.EWEX3PHR.js.map} +1 -1
  43. package/dist/esm/chunks/{chunk.A2BJ47Q6.js → chunk.FF5DED5D.js} +2 -2
  44. package/dist/esm/chunks/{chunk.A2BJ47Q6.js.map → chunk.FF5DED5D.js.map} +3 -3
  45. package/dist/esm/chunks/{chunk.6TTJYO62.js → chunk.FPMQAUL3.js} +2 -2
  46. package/dist/esm/chunks/{chunk.QWKDOAOE.js → chunk.FZ43DC2H.js} +2 -2
  47. package/dist/esm/chunks/{chunk.BSNL353K.js → chunk.GOZVC3ZT.js} +2 -2
  48. package/dist/esm/chunks/{chunk.LHFZFVHB.js → chunk.HSXUQFHK.js} +2 -2
  49. package/dist/esm/chunks/{chunk.G3ZS3UHM.js → chunk.IGOGRMRW.js} +1 -1
  50. package/dist/esm/chunks/chunk.IGOGRMRW.js.map +7 -0
  51. package/dist/esm/chunks/{chunk.TLRRYVSN.js → chunk.IMRPJU4M.js} +2 -2
  52. package/dist/esm/chunks/{chunk.ELENDYRJ.js → chunk.JKEIP657.js} +2 -2
  53. package/dist/esm/chunks/{chunk.423SNVSH.js → chunk.KI5FPZOX.js} +2 -2
  54. package/dist/esm/chunks/{chunk.6IWW463U.js → chunk.KTPSDP4C.js} +2 -2
  55. package/dist/esm/chunks/{chunk.QA3Z44IQ.js → chunk.P4TIMZKU.js} +2 -2
  56. package/dist/esm/chunks/{chunk.4B3BP62N.js → chunk.P64BBB3U.js} +2 -2
  57. package/dist/esm/chunks/{chunk.GZ2QNJ5E.js → chunk.P6ZUHPI6.js} +2 -2
  58. package/dist/esm/chunks/{chunk.QMYJCNVD.js → chunk.PNDQ3LAB.js} +2 -2
  59. package/dist/esm/chunks/{chunk.6BBI2QGA.js → chunk.RHPJRCIC.js} +2 -2
  60. package/dist/esm/chunks/chunk.RPKVFFQ6.js +12 -0
  61. package/dist/esm/chunks/chunk.RPKVFFQ6.js.map +7 -0
  62. package/dist/esm/chunks/{chunk.L3N7P4YQ.js → chunk.RVUMHJMM.js} +2 -2
  63. package/dist/esm/chunks/chunk.SKEI7ZSK.js +153 -0
  64. package/dist/esm/chunks/chunk.SKEI7ZSK.js.map +7 -0
  65. package/dist/esm/chunks/{chunk.YYXEUR4Y.js → chunk.SOMT6F6S.js} +2 -2
  66. package/dist/esm/chunks/{chunk.JUIFPTRV.js → chunk.SSJYPH4U.js} +2 -2
  67. package/dist/esm/chunks/{chunk.HHC5NEUF.js → chunk.TFMOLR6W.js} +2 -2
  68. package/dist/esm/chunks/{chunk.N64ASFPE.js → chunk.U4CFRHOW.js} +2 -2
  69. package/dist/esm/chunks/{chunk.4UHXQAOT.js → chunk.UEN7B7Q4.js} +2 -2
  70. package/dist/esm/chunks/chunk.UETV4PTS.js +12 -0
  71. package/dist/esm/chunks/{chunk.RHZ35R2V.js → chunk.VJ2SSV5X.js} +2 -2
  72. package/dist/esm/chunks/{chunk.KFERUCAD.js → chunk.VMQZA47V.js} +2 -2
  73. package/dist/esm/chunks/{chunk.SA7OL5US.js → chunk.VUGNSK4K.js} +2 -2
  74. package/dist/esm/chunks/{chunk.3VZGVF2G.js → chunk.WQL55O4A.js} +2 -2
  75. package/dist/esm/chunks/{chunk.6HMCSEKV.js → chunk.X63F5NVD.js} +2 -2
  76. package/dist/esm/chunks/{chunk.4DJEZHRT.js → chunk.XARGY3WT.js} +2 -2
  77. package/dist/esm/chunks/{chunk.Q6ELPSPD.js → chunk.XBW6KSW3.js} +2 -2
  78. package/dist/esm/chunks/{chunk.TG4ZRHKV.js → chunk.Y4OET6II.js} +2 -2
  79. package/dist/esm/chunks/{chunk.XCNL2LI6.js → chunk.YNE75HFH.js} +2 -2
  80. package/dist/esm/chunks/chunk.YSFUL5AD.js +177 -0
  81. package/dist/esm/chunks/chunk.YSFUL5AD.js.map +7 -0
  82. package/dist/esm/chunks/{chunk.4RNNHXMU.js → chunk.ZOV2BUZG.js} +2 -2
  83. package/dist/esm/chunks/{chunk.VXOI3G7C.js → chunk.ZXPAXZCF.js} +2 -2
  84. package/dist/esm/circular-progress/index.js +1 -1
  85. package/dist/esm/color-picker/index.js +1 -1
  86. package/dist/esm/date-picker/index.js +1 -1
  87. package/dist/esm/date-range-picker/index.js +1 -1
  88. package/dist/esm/file-picker/index.js +1 -1
  89. package/dist/esm/floating-action-button/index.js +1 -1
  90. package/dist/esm/icon-button/index.js +1 -1
  91. package/dist/esm/index.js +1 -1
  92. package/dist/esm/linear-progress/index.js +1 -1
  93. package/dist/esm/list/index.js +1 -1
  94. package/dist/esm/list/list/index.js +1 -1
  95. package/dist/esm/list/list-item/index.js +1 -1
  96. package/dist/esm/list-dropdown/index.js +1 -1
  97. package/dist/esm/menu/index.js +1 -1
  98. package/dist/esm/paginator/index.js +1 -1
  99. package/dist/esm/profile-card/index.js +1 -1
  100. package/dist/esm/quantity-field/index.js +1 -1
  101. package/dist/esm/radio/index.js +1 -1
  102. package/dist/esm/ripple/index.js +1 -1
  103. package/dist/esm/select/core/index.js +1 -1
  104. package/dist/esm/select/index.js +1 -1
  105. package/dist/esm/select/select/index.js +1 -1
  106. package/dist/esm/select/select-dropdown/index.js +1 -1
  107. package/dist/esm/slider/index.js +1 -1
  108. package/dist/esm/split-view/index.js +1 -1
  109. package/dist/esm/split-view/split-view/index.js +1 -1
  110. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  111. package/dist/esm/stepper/index.js +1 -1
  112. package/dist/esm/stepper/step/index.js +1 -1
  113. package/dist/esm/stepper/stepper/index.js +1 -1
  114. package/dist/esm/switch/index.js +1 -1
  115. package/dist/esm/table/index.js +1 -1
  116. package/dist/esm/tabs/index.js +1 -1
  117. package/dist/esm/tabs/tab/index.js +1 -1
  118. package/dist/esm/tabs/tab-bar/index.js +1 -1
  119. package/dist/esm/time-picker/index.js +1 -1
  120. package/dist/esm/toast/index.js +1 -1
  121. package/dist/forge-dark.css +1 -1
  122. package/esm/circular-progress/circular-progress-adapter.d.ts +1 -1
  123. package/esm/linear-progress/linear-progress-adapter.d.ts +23 -0
  124. package/esm/linear-progress/linear-progress-adapter.js +34 -0
  125. package/esm/linear-progress/linear-progress-constants.d.ts +6 -2
  126. package/esm/linear-progress/linear-progress-constants.js +8 -3
  127. package/esm/linear-progress/linear-progress-foundation.d.ts +26 -0
  128. package/esm/linear-progress/linear-progress-foundation.js +53 -0
  129. package/esm/linear-progress/linear-progress.d.ts +27 -25
  130. package/esm/linear-progress/linear-progress.js +41 -104
  131. package/esm/list-dropdown/list-dropdown-adapter.js +3 -4
  132. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  133. package/package.json +1 -2
  134. package/styles/circular-progress/_mixins.scss +13 -0
  135. package/styles/circular-progress/_variables.scss +12 -0
  136. package/styles/circular-progress/circular-progress.scss +1 -2
  137. package/styles/core/style-layer/circular-progress/_animations.scss +5 -0
  138. package/styles/core/style-layer/circular-progress/_core.scss +5 -0
  139. package/styles/core/style-layer/linear-progress/_animations.scss +131 -0
  140. package/styles/core/style-layer/linear-progress/_core.scss +125 -0
  141. package/styles/core/style-layer/linear-progress/_variables.scss +15 -0
  142. package/styles/core/style-layer/linear-progress/index.scss +145 -0
  143. package/styles/linear-progress/_mixins.scss +18 -1
  144. package/styles/linear-progress/_variables.scss +8 -7
  145. package/styles/linear-progress/linear-progress.scss +3 -27
  146. package/dist/esm/chunks/chunk.ADXALX5F.js +0 -129
  147. package/dist/esm/chunks/chunk.G3ZS3UHM.js.map +0 -7
  148. package/dist/esm/chunks/chunk.MLXGGGER.js +0 -129
  149. package/dist/esm/chunks/chunk.MLXGGGER.js.map +0 -7
  150. package/dist/esm/chunks/chunk.NVHTEFBA.js +0 -33
  151. package/dist/esm/chunks/chunk.NVHTEFBA.js.map +0 -7
  152. package/dist/esm/chunks/chunk.PTQTIY7L.js +0 -57
  153. package/dist/esm/chunks/chunk.PTQTIY7L.js.map +0 -7
  154. package/dist/esm/chunks/chunk.Q56WQPYG.js +0 -81
  155. package/dist/esm/chunks/chunk.Q56WQPYG.js.map +0 -7
  156. package/dist/esm/chunks/chunk.R2E6CGZE.js +0 -129
  157. package/dist/esm/chunks/chunk.R2E6CGZE.js.map +0 -7
  158. package/dist/esm/chunks/chunk.UHTQGET5.js +0 -201
  159. package/dist/esm/chunks/chunk.YHDUES7I.js +0 -12
  160. /package/dist/esm/chunks/{chunk.T7KUZYQ3.js.map → chunk.2TVYAW7Q.js.map} +0 -0
  161. /package/dist/esm/chunks/{chunk.N2XJHAD4.js.map → chunk.3W2ERIMT.js.map} +0 -0
  162. /package/dist/esm/chunks/{chunk.H5MJBEK5.js.map → chunk.3XZRUXG7.js.map} +0 -0
  163. /package/dist/esm/chunks/{chunk.HNSUYOCY.js.map → chunk.4NV7AHF2.js.map} +0 -0
  164. /package/dist/esm/chunks/{chunk.3QD73Z4F.js.map → chunk.64F24XMH.js.map} +0 -0
  165. /package/dist/esm/chunks/{chunk.56D6S5XJ.js.map → chunk.7BNQYL2F.js.map} +0 -0
  166. /package/dist/esm/chunks/{chunk.3GZF7UI2.js.map → chunk.7JBR7GWZ.js.map} +0 -0
  167. /package/dist/esm/chunks/{chunk.NRXPO3SY.js.map → chunk.7UN5EYUE.js.map} +0 -0
  168. /package/dist/esm/chunks/{chunk.BBNRKEP4.js.map → chunk.7X7A74SI.js.map} +0 -0
  169. /package/dist/esm/chunks/{chunk.BSKIHRND.js.map → chunk.A5D7XSBD.js.map} +0 -0
  170. /package/dist/esm/chunks/{chunk.YM6VAIY2.js.map → chunk.ABN3DL7G.js.map} +0 -0
  171. /package/dist/esm/chunks/{chunk.SCQVDO5I.js.map → chunk.BPEGGZOR.js.map} +0 -0
  172. /package/dist/esm/chunks/{chunk.7IP3XTE3.js.map → chunk.C4YKXXKM.js.map} +0 -0
  173. /package/dist/esm/chunks/{chunk.465MOF4A.js.map → chunk.DX32NTD3.js.map} +0 -0
  174. /package/dist/esm/chunks/{chunk.PJOH4JKH.js.map → chunk.ELY4YCON.js.map} +0 -0
  175. /package/dist/esm/chunks/{chunk.CY7UCG25.js.map → chunk.EUNKM7XR.js.map} +0 -0
  176. /package/dist/esm/chunks/{chunk.6TTJYO62.js.map → chunk.FPMQAUL3.js.map} +0 -0
  177. /package/dist/esm/chunks/{chunk.QWKDOAOE.js.map → chunk.FZ43DC2H.js.map} +0 -0
  178. /package/dist/esm/chunks/{chunk.BSNL353K.js.map → chunk.GOZVC3ZT.js.map} +0 -0
  179. /package/dist/esm/chunks/{chunk.LHFZFVHB.js.map → chunk.HSXUQFHK.js.map} +0 -0
  180. /package/dist/esm/chunks/{chunk.TLRRYVSN.js.map → chunk.IMRPJU4M.js.map} +0 -0
  181. /package/dist/esm/chunks/{chunk.ELENDYRJ.js.map → chunk.JKEIP657.js.map} +0 -0
  182. /package/dist/esm/chunks/{chunk.423SNVSH.js.map → chunk.KI5FPZOX.js.map} +0 -0
  183. /package/dist/esm/chunks/{chunk.6IWW463U.js.map → chunk.KTPSDP4C.js.map} +0 -0
  184. /package/dist/esm/chunks/{chunk.QA3Z44IQ.js.map → chunk.P4TIMZKU.js.map} +0 -0
  185. /package/dist/esm/chunks/{chunk.4B3BP62N.js.map → chunk.P64BBB3U.js.map} +0 -0
  186. /package/dist/esm/chunks/{chunk.GZ2QNJ5E.js.map → chunk.P6ZUHPI6.js.map} +0 -0
  187. /package/dist/esm/chunks/{chunk.QMYJCNVD.js.map → chunk.PNDQ3LAB.js.map} +0 -0
  188. /package/dist/esm/chunks/{chunk.6BBI2QGA.js.map → chunk.RHPJRCIC.js.map} +0 -0
  189. /package/dist/esm/chunks/{chunk.L3N7P4YQ.js.map → chunk.RVUMHJMM.js.map} +0 -0
  190. /package/dist/esm/chunks/{chunk.YYXEUR4Y.js.map → chunk.SOMT6F6S.js.map} +0 -0
  191. /package/dist/esm/chunks/{chunk.JUIFPTRV.js.map → chunk.SSJYPH4U.js.map} +0 -0
  192. /package/dist/esm/chunks/{chunk.HHC5NEUF.js.map → chunk.TFMOLR6W.js.map} +0 -0
  193. /package/dist/esm/chunks/{chunk.N64ASFPE.js.map → chunk.U4CFRHOW.js.map} +0 -0
  194. /package/dist/esm/chunks/{chunk.4UHXQAOT.js.map → chunk.UEN7B7Q4.js.map} +0 -0
  195. /package/dist/esm/chunks/{chunk.YHDUES7I.js.map → chunk.UETV4PTS.js.map} +0 -0
  196. /package/dist/esm/chunks/{chunk.RHZ35R2V.js.map → chunk.VJ2SSV5X.js.map} +0 -0
  197. /package/dist/esm/chunks/{chunk.KFERUCAD.js.map → chunk.VMQZA47V.js.map} +0 -0
  198. /package/dist/esm/chunks/{chunk.SA7OL5US.js.map → chunk.VUGNSK4K.js.map} +0 -0
  199. /package/dist/esm/chunks/{chunk.3VZGVF2G.js.map → chunk.WQL55O4A.js.map} +0 -0
  200. /package/dist/esm/chunks/{chunk.6HMCSEKV.js.map → chunk.X63F5NVD.js.map} +0 -0
  201. /package/dist/esm/chunks/{chunk.4DJEZHRT.js.map → chunk.XARGY3WT.js.map} +0 -0
  202. /package/dist/esm/chunks/{chunk.Q6ELPSPD.js.map → chunk.XBW6KSW3.js.map} +0 -0
  203. /package/dist/esm/chunks/{chunk.TG4ZRHKV.js.map → chunk.Y4OET6II.js.map} +0 -0
  204. /package/dist/esm/chunks/{chunk.XCNL2LI6.js.map → chunk.YNE75HFH.js.map} +0 -0
  205. /package/dist/esm/chunks/{chunk.4RNNHXMU.js.map → chunk.ZOV2BUZG.js.map} +0 -0
  206. /package/dist/esm/chunks/{chunk.VXOI3G7C.js.map → chunk.ZXPAXZCF.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/tab-bar/tab-bar-constants.ts", "../../src/tabs/tab-bar/tab-bar-foundation.ts", "../../../../../../node_modules/@material/tab-scroller/constants.ts", "../../../../../../node_modules/@material/tab-scroller/util.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-default-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-negative-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-reverse-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/foundation.ts", "../../../../../../node_modules/@material/tab-scroller/component.ts", "../../src/tabs/tab-bar/tab-bar-adapter.ts", "../../src/tabs/tab-bar/tab-bar.ts", "../../src/tabs/tab-bar/index.ts"],
4
4
  "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tab-bar`;\n\nconst attributes = {\n ACTIVE_TAB: 'active-tab',\n LAYOUT_MODE: 'layout-mode',\n LAYOUT_ALIGN: 'layout-align',\n UNDERLINE: 'underline',\n AUTO_ACTIVATE: 'auto-activate',\n STACKED: 'stacked',\n SCROLL_BUTTONS: 'scroll-buttons',\n FORCE_SCROLL_BUTTONS: 'force-scroll-buttons'\n};\n\nconst classes = {\n UNDERLINED: 'forge-tab-bar--underlined',\n ALIGN_CENTER: 'forge-tab-bar--align-center',\n ALIGN_END: 'forge-tab-bar--align-end',\n FIXED: 'forge-tab-bar--fixed',\n STACKED: 'forge-tab-bar--stacked'\n};\n\nconst selectors = {\n ROOT: '.forge-tab-bar',\n TAB_SCROLLER: '.mdc-tab-scroller',\n TAB_SCROLLER_AREA: '.mdc-tab-scroller__scroll-area',\n TAB_SCROLLER_CONTENT: '.mdc-tab-scroller__scroll-content',\n PREV_BUTTON_CONTAINER: '.forge-tab-bar__scroll-prev-container',\n PREV_BUTTON: '#scroll-prev-btn',\n NEXT_BUTTON_CONTAINER: '.forge-tab-bar__scroll-next-container',\n NEXT_BUTTON: '#scroll-next-btn'\n};\n\nconst events = {\n ACTIVATE: `${elementName}-activate`\n};\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space'\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\n\nexport const TAB_BAR_CONSTANTS = {\n attributes,\n elementName,\n classes,\n selectors,\n events,\n strings,\n numbers\n};\n\nexport interface ITabBarActivateEventData {\n index: number;\n}\n\nexport declare type TabBarLayoutMode = 'fixed' | 'clustered';\nexport declare type TabBarLayoutAlign = 'start' | 'center' | 'end';\n\nexport const ACCEPTABLE_KEYS = [\n strings.ARROW_LEFT_KEY,\n strings.ARROW_RIGHT_KEY,\n strings.END_KEY,\n strings.HOME_KEY,\n strings.ENTER_KEY,\n strings.SPACE_KEY\n];\n\nexport const KEYCODE_MAP = {\n [numbers.ARROW_LEFT_KEYCODE]: strings.ARROW_LEFT_KEY,\n [numbers.ARROW_RIGHT_KEYCODE]: strings.ARROW_RIGHT_KEY,\n [numbers.END_KEYCODE]: strings.END_KEY,\n [numbers.HOME_KEYCODE]: strings.HOME_KEY,\n [numbers.ENTER_KEYCODE]: strings.ENTER_KEY,\n [numbers.SPACE_KEYCODE]: strings.SPACE_KEY\n};\n", "import { ICustomElementFoundation, Platform, isNumber } from '@tylertech/forge-core';\n\nimport { ITabBarAdapter } from './tab-bar-adapter';\nimport { TabBarLayoutMode, TabBarLayoutAlign, TAB_BAR_CONSTANTS, ITabBarActivateEventData, ACCEPTABLE_KEYS, KEYCODE_MAP } from './tab-bar-constants';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\nimport { ITabComponent } from '../tab/tab';\n\nexport interface ITabBarFoundation extends ICustomElementFoundation {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollIntoView(index: number): void;\n}\n\nexport class TabBarFoundation implements ITabBarFoundation {\n private _isInitialized = false;\n private _activeTab = -1;\n private _layoutMode: TabBarLayoutMode = 'fixed';\n private _layoutAlign: TabBarLayoutAlign = 'start';\n private _underline = false;\n private _autoActivate = false;\n private _stacked = false;\n private _scrollButtons = true;\n private _forceScrollButtons = false;\n private _tabsChangedListener: (evt: Event) => void;\n private _tabInteractedListener: (evt: CustomEvent<void>) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _scrollPrevClickListener: (evt: MouseEvent) => void;\n private _scrollPrevMousedownListener: (evt: MouseEvent) => void;\n private _scrollNextClickListener: (evt: MouseEvent) => void;\n private _scrollNextMousedownListener: (evt: MouseEvent) => void;\n private _scrollListener: (evt: Event) => void;\n\n constructor(private _adapter: ITabBarAdapter) {\n this._tabsChangedListener = evt => this._onTabsChanged(evt);\n this._tabInteractedListener = evt => this._onTabInteracted(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._scrollPrevClickListener = evt => this._onScrollPrevious(evt);\n this._scrollPrevMousedownListener = evt => evt.preventDefault();\n this._scrollNextClickListener = evt => this._onScrollNext(evt);\n this._scrollNextMousedownListener = evt => evt.preventDefault();\n this._scrollListener = evt => this._onScroll(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.initializeTabScroller();\n this._adapter.initializeAccessibility();\n this._adapter.addTabChangeListener(this._tabsChangedListener);\n this._adapter.addScrollPreviousListener('click', this._scrollPrevClickListener);\n this._adapter.addScrollPreviousListener('mousedown', this._scrollPrevMousedownListener);\n this._adapter.addScrollNextListener('click', this._scrollNextClickListener);\n this._adapter.addScrollNextListener('mousedown', this._scrollNextMousedownListener);\n this._adapter.addHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addScrollListener(this._scrollListener);\n this._adapter.setUnderline(this._underline);\n this._adapter.setLayoutMode(this._layoutMode);\n this._adapter.setLayoutAlign(this._layoutAlign);\n window.requestAnimationFrame(() => {\n this._syncScrollButtons();\n this._adapter.ensureFocusableTab();\n });\n this._isInitialized = true;\n }\n \n public disconnect(): void {\n this._adapter.destroyTabScroller();\n this._adapter.removeTabChangeListener(this._tabsChangedListener);\n this._adapter.removeHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n this._isInitialized = false;\n }\n\n private _onTabsChanged(evt: Event): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.ensureFocusableTab();\n\n // We need to wait a full cycle to scroll the active tab into view\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n this.scrollIntoView(this._activeTab);\n this._syncScrollButtons();\n });\n });\n }\n\n private _onTabInteracted(evt: CustomEvent<void>): void {\n const activatedTab = evt.target as ITabComponent;\n const activatedTabIndex = this._adapter.getTabIndex(activatedTab);\n \n // Check if the event and requested tab index is valid\n const isTabEvent = activatedTab.tagName.toLowerCase() === TAB_CONSTANTS.elementName;\n const isValidTabIndex = activatedTabIndex !== this._activeTab && this._indexIsInRange(activatedTabIndex);\n if (!isTabEvent || !isValidTabIndex) {\n return;\n }\n\n // Emit the activate event\n const activateEventData: ITabBarActivateEventData = { index: activatedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n \n // Check if listener prevented default on the activate event, and stop now if so\n if (!canActivate) {\n return;\n }\n\n this.activateTab(activatedTabIndex);\n this._adapter.focusTabAtIndex(activatedTabIndex);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const key = this._getKeyFromEvent(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (!key) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this._isActivationKey(key)) {\n evt.preventDefault();\n }\n\n if (this._autoActivate) {\n if (this._isActivationKey(key)) {\n return;\n }\n\n const index = this._determineTargetFromKey(this._activeTab, key);\n if (this._activeTab === index) {\n return;\n }\n\n const activateEventData: ITabBarActivateEventData = { index };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n\n if (canActivate) {\n this.activateTab(index);\n this._adapter.focusTabAtIndex(index);\n }\n } else {\n const focusedTabIndex = this._adapter.getFocusedTabIndex();\n if (focusedTabIndex === -1) {\n return;\n }\n\n if (this._isActivationKey(key)) {\n const activateEventData: ITabBarActivateEventData = { index: focusedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n if (canActivate) {\n this.activateTab(focusedTabIndex);\n }\n } else {\n const index = this._determineTargetFromKey(focusedTabIndex, key);\n if (focusedTabIndex === index) {\n return;\n }\n this._adapter.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n private _onScrollPrevious(evt: MouseEvent): void {\n const scrollAmount = -this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n \n private _onScrollNext(evt: MouseEvent): void {\n const scrollAmount = this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n\n private _onScroll(evt: Event): void {\n this._syncScrollButtons();\n }\n\n private _syncScrollButtons(): void {\n const isScrollable = this._isScrollable();\n this._adapter.setPreviousButtonVisibility(isScrollable);\n this._adapter.setNextButtonVisibility(isScrollable);\n if (isScrollable) {\n this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled());\n this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd());\n }\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private _findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: ITabDimensions, scrollPosition: number, barWidth: number): number {\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab-bar\n */\n private _calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTabDimensions = this._adapter.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private _determineTargetFromKey(origin: number, key: string, nextIndex?: number): number {\n if (origin === nextIndex) {\n return origin;\n }\n\n const maxIndex = this._adapter.getTabCount() - 1;\n const shouldGoToEnd = key === TAB_BAR_CONSTANTS.strings.END_KEY;\n const shouldDecrement = key === TAB_BAR_CONSTANTS.strings.ARROW_LEFT_KEY;\n const shouldIncrement = key === TAB_BAR_CONSTANTS.strings.ARROW_RIGHT_KEY;\n let index = nextIndex !== undefined ? nextIndex : origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n // If this tab is disabled, then we'll try again...\n if (this._adapter.isTabDisabled(index)) {\n return this._determineTargetFromKey(origin, key, index);\n }\n\n return index;\n }\n\n private _isScrollable(): boolean {\n return this._forceScrollButtons ||\n (this._scrollButtons &&\n !Platform.isMobile &&\n !this._isFixed &&\n this._adapter.getScrollContentWidth() > this._adapter.getOffsetWidth());\n }\n\n private _getKeyFromEvent(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.includes(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP[evt.keyCode];\n }\n\n private _isActivationKey(key: string): boolean {\n return key === TAB_BAR_CONSTANTS.strings.SPACE_KEY || key === TAB_BAR_CONSTANTS.strings.ENTER_KEY;\n }\n\n private _indexIsInRange(index: number): boolean {\n return index >= 0 && index < this._adapter.getTabCount();\n }\n\n public activateTab(index: number): void {\n if (!isNumber(index)) {\n index = -1;\n }\n\n // If we have a currently selected tab we need to deactivate that now\n if (this._activeTab !== -1) {\n this._adapter.deactivateTab(this._activeTab);\n }\n\n // Activate the requested tab\n const previousTabBounds = this._adapter.getTabBounds(this._activeTab);\n this._adapter.activateTab(index, previousTabBounds);\n this._adapter.syncTabIndex(index);\n this._adapter.ensureFocusableTab();\n this.scrollIntoView(index);\n this._activeTab = index;\n this._syncScrollButtons();\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n }\n\n public scrollIntoView(index: number): void {\n if (!this._indexIsInRange(index)) {\n return;\n }\n\n if (index === 0) {\n return this._adapter.scrollTo(0);\n }\n\n if (index === this._adapter.getTabCount() - 1) {\n return this._adapter.scrollTo(this._adapter.getScrollContentWidth());\n }\n\n const scrollPosition = this._adapter.getScrollPosition();\n const barWidth = this._adapter.getOffsetWidth();\n const tabDimensions = this._adapter.getTabDimensionsAtIndex(index);\n const nextIndex = this._findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this._indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this._calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this._adapter.incrementScroll(scrollIncrement);\n }\n\n /** Gets and sets the active tab index. */\n public get activeTab(): number {\n return this._activeTab;\n }\n public set activeTab(value: number) {\n if (this._activeTab !== value) {\n if (!this._isInitialized) {\n this._activeTab = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n } else {\n this.activateTab(value);\n }\n }\n }\n\n private get _isFixed(): boolean {\n return this._layoutMode === 'fixed';\n }\n\n public get layoutMode(): TabBarLayoutMode {\n return this._layoutMode;\n }\n public set layoutMode(value: TabBarLayoutMode) {\n if (this._layoutMode !== value) {\n this._layoutMode = value;\n this._adapter.setLayoutMode(this._layoutMode);\n this._syncScrollButtons();\n }\n }\n\n public get layoutAlign(): TabBarLayoutAlign {\n return this._layoutAlign;\n }\n public set layoutAlign(value: TabBarLayoutAlign) {\n if (this._layoutAlign !== value) {\n this._layoutAlign = value;\n this._adapter.setLayoutAlign(this._layoutAlign);\n }\n }\n\n public get underline(): boolean {\n return this._underline;\n }\n public set underline(value: boolean) {\n if (this._underline !== value) {\n this._underline = value;\n this._adapter.setUnderline(this._underline);\n this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.UNDERLINE, this._underline);\n }\n }\n\n public get stacked(): boolean {\n return this._stacked;\n }\n public set stacked(value: boolean) {\n if (this._stacked !== value) {\n this._stacked = value;\n this._adapter.setStacked(this._stacked);\n if (this._stacked) {\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n } else {\n this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n }\n }\n }\n\n public get scrollButtons(): boolean {\n return this._scrollButtons;\n }\n public set scrollButtons(value: boolean) {\n if (this._scrollButtons !== value) {\n this._scrollButtons = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS, this._scrollButtons.toString());\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get forceScrollButtons(): boolean {\n return this._forceScrollButtons;\n }\n public set forceScrollButtons(value: boolean) {\n if (this._forceScrollButtons !== value) {\n this._forceScrollButtons = value;\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get autoActivate(): boolean {\n return this._autoActivate;\n }\n public set autoActivate(value: boolean) {\n if (this._autoActivate !== value) {\n this._autoActivate = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE, this._autoActivate.toString());\n }\n }\n}\n", null, null, null, null, null, null, null, null, "import { MDCTabScroller } from '@material/tab-scroller';\nimport { getShadowElement, removeClass, isFunction, getActiveElement, toggleClass } from '@tylertech/forge-core';\n\nimport { IBaseAdapter, BaseAdapter } from '../../core/base/base-adapter';\nimport { ITabBarComponent } from './tab-bar';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign } from './tab-bar-constants';\nimport { ITabComponent } from '../tab/tab';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\n\nexport interface ITabBarAdapter extends IBaseAdapter {\n initializeTabs(activeTabIndex: number, stretch: boolean): void;\n initializeTabScroller(): void;\n initializeAccessibility(): void;\n destroyTabScroller(): void;\n addTabChangeListener(listener: (evt: Event) => void): void;\n removeTabChangeListener(listener: (evt: Event) => void): void;\n addScrollListener(listener: (evt: Event) => void): void;\n getTabIndex(tab: ITabComponent): number;\n getTabCount(): number;\n activateTab(index: number, previousTabBounds?: DOMRect): void;\n deactivateTab(index: number): void;\n syncTabIndex(index: number): void;\n getTabBounds(index: number): DOMRect | undefined;\n setUnderline(value: boolean): void;\n setStacked(value: boolean): void;\n scrollTo(scrollX: number): void;\n getScrollContentWidth(): number;\n getScrollPosition(): number;\n getOffsetWidth(): number;\n getTabDimensionsAtIndex(index: number): ITabDimensions;\n incrementScroll(scrollXIncrement: number): void;\n isScrolled(): boolean;\n isScrolledEnd(): boolean;\n getFocusedTabIndex(): number;\n focusTabAtIndex(index: number): void;\n setLayoutMode(value: TabBarLayoutMode): void;\n setLayoutAlign(value: TabBarLayoutAlign): void;\n setPreviousButtonVisibility(value: boolean): void;\n setPreviousButtonEnabled(value: boolean): void;\n setNextButtonVisibility(value: boolean): void;\n setNextButtonEnabled(value: boolean): void;\n addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void;\n addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void;\n isTabDisabled(index: number): boolean;\n ensureFocusableTab(): void;\n}\n\nexport class TabBarAdapter extends BaseAdapter<ITabBarComponent> implements ITabBarAdapter {\n private _rootElement: HTMLElement;\n private _defaultSlotElement: HTMLSlotElement;\n private _tabScrollElement: HTMLElement;\n private _tabScrollAreaElement: HTMLElement;\n private _tabScrollContentElement: HTMLElement;\n private _tabScroller: MDCTabScroller | undefined;\n private _tabs: ITabComponent[] = [];\n private _prevButtonContainerElement: HTMLElement;\n private _nextButtonContainerElement: HTMLElement;\n private _prevButtonElement: HTMLButtonElement;\n private _nextButtonElement: HTMLButtonElement;\n\n constructor(component: ITabBarComponent) {\n super(component);\n this._rootElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.ROOT);\n this._tabScrollElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER);\n this._tabScrollAreaElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_AREA);\n this._tabScrollContentElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_CONTENT);\n this._defaultSlotElement = getShadowElement(this._component, TAB_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n this._prevButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON_CONTAINER);\n this._prevButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON) as HTMLButtonElement;\n this._nextButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON_CONTAINER);\n this._nextButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON) as HTMLButtonElement;\n }\n\n public initializeTabs(activeTabIndex: number, stretch: boolean): void {\n this._tabs = this._getTabs();\n\n if (!this._tabs.length) {\n return;\n }\n\n this._tabs.forEach(tab => {\n tab.active = false;\n tab.stretch = stretch;\n });\n\n // Set the initial active tab\n if (activeTabIndex >= 0 && activeTabIndex < this._tabs.length) {\n this._tabs[activeTabIndex].active = true;\n } else {\n this.ensureFocusableTab();\n }\n }\n\n public initializeTabScroller(): void {\n this._tabScroller = new MDCTabScroller(this._tabScrollElement);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'tablist');\n }\n }\n\n public destroyTabScroller(): void {\n if (this._tabScroller) {\n this._tabScroller.destroy();\n }\n }\n\n public addTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.addEventListener('slotchange', listener);\n }\n\n public removeTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.removeEventListener('slotchange', listener);\n }\n\n public addScrollListener(listener: (evt: Event) => void): void {\n this._tabScrollAreaElement.addEventListener('scroll', listener);\n }\n\n public getTabIndex(tab: ITabComponent): number {\n return this._tabs.indexOf(tab);\n }\n\n public getTabCount(): number {\n return this._tabs.length;\n }\n\n public activateTab(index: number, previousTabBounds?: DOMRect): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.activate(previousTabBounds);\n }\n }\n\n public deactivateTab(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.deactivate();\n }\n }\n\n public syncTabIndex(index: number): void {\n const tabs = this._getTabs();\n const activeTab = tabs[index];\n tabs.filter(t => t !== activeTab)\n .forEach(t => t.setTabIndex(-1));\n }\n\n public getTabBounds(index: number): DOMRect | undefined {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeIndicatorBounds();\n }\n return undefined;\n }\n\n public setUnderline(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.UNDERLINED);\n }\n \n public setStacked(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.STACKED);\n }\n\n public scrollTo(scrollX: number): void {\n if (this._tabScroller) {\n this._tabScroller.scrollTo(scrollX);\n }\n }\n\n public getScrollContentWidth(): number {\n return this._tabScroller ? this._tabScroller.getScrollContentWidth() : 0;\n }\n\n public getScrollPosition(): number {\n return this._tabScroller ? this._tabScroller.getScrollPosition() : 0;\n }\n\n public getOffsetWidth(): number {\n return this._tabScrollElement.offsetWidth;\n }\n\n public getTabDimensionsAtIndex(index: number): ITabDimensions {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeDimensions();\n }\n return {\n rootLeft: 0,\n rootRight: 0,\n contentLeft: 0,\n contentRight: 0\n };\n }\n\n public incrementScroll(scrollXIncrement: number): void {\n if (this._tabScroller) {\n this._tabScroller.incrementScroll(scrollXIncrement);\n }\n }\n\n public isScrolled(): boolean {\n const position = this._tabScrollAreaElement.scrollLeft;\n return position > 0;\n }\n\n public isScrolledEnd(): boolean {\n const position = Math.round(this._tabScrollAreaElement.scrollLeft);\n const scrollWidth = Math.round(this._tabScrollContentElement.scrollWidth - this._tabScrollElement.offsetWidth);\n return position >= scrollWidth;\n }\n\n public getFocusedTabIndex(): number {\n const activeElement = getActiveElement() as ITabComponent;\n return this._tabs.findIndex(tab => {\n if (tab === activeElement) {\n return true;\n }\n return !!(tab.shadowRoot as ShadowRoot).contains(activeElement);\n });\n }\n\n public focusTabAtIndex(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.focus();\n }\n }\n\n public setLayoutMode(value: TabBarLayoutMode): void {\n const isFixed = value === 'fixed';\n toggleClass(this._rootElement, isFixed, TAB_BAR_CONSTANTS.classes.FIXED);\n this._tabs.forEach(tab => tab.stretch = isFixed);\n }\n\n public setLayoutAlign(value: TabBarLayoutAlign): void {\n removeClass([\n TAB_BAR_CONSTANTS.classes.ALIGN_CENTER,\n TAB_BAR_CONSTANTS.classes.ALIGN_END\n ], this._rootElement);\n switch (value) {\n case 'center':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_CENTER);\n break;\n case 'end':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_END);\n break;\n }\n }\n\n public setPreviousButtonVisibility(value: boolean): void {\n if (value) {\n this._prevButtonContainerElement.style.removeProperty('display');\n } else {\n this._prevButtonContainerElement.style.display = 'none';\n }\n }\n\n public setPreviousButtonEnabled(value: boolean): void {\n this._prevButtonElement.disabled = !value;\n }\n\n public setNextButtonVisibility(value: boolean): void {\n if (value) {\n this._nextButtonContainerElement.style.removeProperty('display');\n } else {\n this._nextButtonContainerElement.style.display = 'none';\n }\n }\n\n public setNextButtonEnabled(value: boolean): void {\n this._nextButtonElement.disabled = !value;\n }\n\n public addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._prevButtonElement.addEventListener(type, listener);\n }\n \n public addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._nextButtonElement.addEventListener(type, listener);\n }\n\n public isTabDisabled(index: number): boolean {\n const tab = this._getTabByIndex(index);\n return tab ? tab.disabled : true;\n }\n\n public ensureFocusableTab(): void {\n const tabs = this._getTabs();\n const hasActiveTab = tabs.some(tab => tab.active);\n if (!hasActiveTab && tabs.length) {\n const firstTab = tabs[0];\n if (isFunction(firstTab.setTabIndex)) {\n tabs[0].setTabIndex(0);\n }\n }\n }\n\n private _getTabs(): ITabComponent[] {\n return Array.from(this._component.querySelectorAll(TAB_CONSTANTS.elementName));\n }\n\n private _getTabByIndex(index: number): ITabComponent {\n return this._tabs[index];\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight } from '@tylertech/tyler-icons/standard';\nimport { TabComponent } from '../tab/tab';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';\nimport { TabBarFoundation } from './tab-bar-foundation';\nimport { TabBarAdapter } from './tab-bar-adapter';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-tab-bar\\\" part=\\\"root\\\"><div class=\\\"forge-tab-bar__scroll-prev-container\\\" part=\\\"previous-container\\\"><forge-icon-button part=\\\"previous-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll left\\\" id=\\\"scroll-prev-btn\\\" part=\\\"previous-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-button-icon\\\"></forge-icon></button></forge-icon-button></div><div class=\\\"mdc-tab-scroller\\\" part=\\\"tab-scroller\\\"><div class=\\\"mdc-tab-scroller__scroll-area\\\" part=\\\"scroll-area\\\"><div class=\\\"mdc-tab-scroller__scroll-content\\\" part=\\\"scroll-content\\\"><slot></slot></div></div></div><div class=\\\"forge-tab-bar__scroll-next-container\\\" part=\\\"next-container\\\"><forge-icon-button part=\\\"next-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll right\\\" id=\\\"scroll-next-btn\\\" part=\\\"next-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-button-icon\\\"></forge-icon></button></forge-icon-button></div></div></template>';\nconst styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\\\"\\\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';\n\nexport interface ITabBarComponent extends IBaseComponent {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollTabIntoView(index: number): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-tab-bar': ITabBarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-tab-bar>` element.\n * \n * @tag forge-tab-bar\n */\n@CustomElement({\n name: TAB_BAR_CONSTANTS.elementName,\n dependencies: [\n TabComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class TabBarComponent extends BaseComponent implements ITabBarComponent {\n public static get observedAttributes(): string[] {\n return [\n TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN,\n TAB_BAR_CONSTANTS.attributes.UNDERLINE,\n TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,\n TAB_BAR_CONSTANTS.attributes.STACKED,\n TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS,\n TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS\n ];\n }\n\n private _foundation: TabBarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TabBarFoundation(new TabBarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:\n this.activeTab = coerceNumber(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE:\n this.layoutMode = newValue as TabBarLayoutMode;\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN:\n this.layoutAlign = newValue as TabBarLayoutAlign;\n break;\n case TAB_BAR_CONSTANTS.attributes.UNDERLINE:\n this.underline = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:\n this.autoActivate = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.STACKED:\n this.stacked = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:\n this.scrollButtons = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:\n this.forceScrollButtons = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the active tab index. */\n @FoundationProperty()\n public declare activeTab: number;\n\n /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */\n @FoundationProperty()\n public declare layoutMode: TabBarLayoutMode;\n\n /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */\n @FoundationProperty()\n public declare layoutAlign: TabBarLayoutAlign;\n\n /** Gets/sets whether the component displays an underline or not. Default is `false`. */\n @FoundationProperty()\n public declare underline: boolean;\n\n /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */\n @FoundationProperty()\n public declare autoActivate: boolean;\n\n /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */\n @FoundationProperty()\n public declare stacked: boolean;\n\n /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */\n @FoundationProperty()\n public declare scrollButtons: boolean;\n\n /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */\n @FoundationProperty()\n public declare forceScrollButtons: boolean;\n\n /**\n * Activates the tab at the given index.\n * @param index The index of the tab.\n */\n public activateTab(index: number): void {\n this._foundation.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view.\n * @param index The index of the tab.\n */\n public scrollTabIntoView(index: number): void {\n this._foundation.scrollIntoView(index);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TabBarComponent } from './tab-bar';\n\nexport * from './tab-bar-adapter';\nexport * from './tab-bar-constants';\nexport * from './tab-bar-foundation';\nexport * from './tab-bar';\n\nexport function defineTabBarComponent(): void {\n defineCustomElement(TabBarComponent);\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "strings", "numbers", "TAB_BAR_CONSTANTS", "ACCEPTABLE_KEYS", "KEYCODE_MAP", "TabBarFoundation", "_adapter", "evt", "TAB_CONSTANTS", "activatedTab", "activatedTabIndex", "isTabEvent", "isValidTabIndex", "activateEventData", "TAB_BAR_CONSTANTS", "key", "index", "focusedTabIndex", "scrollAmount", "isScrollable", "tabDimensions", "scrollPosition", "barWidth", "relativeRootLeft", "relativeRootRight", "relativeRootDelta", "leftEdgeIsCloser", "rightEdgeIsCloser", "nextIndex", "nextTabDimensions", "relativeContentLeft", "leftIncrement", "rightIncrement", "origin", "maxIndex", "shouldGoToEnd", "shouldDecrement", "shouldIncrement", "Platform", "ACCEPTABLE_KEYS", "KEYCODE_MAP", "isNumber", "previousTabBounds", "scrollIncrement", "value", "cssClasses", "strings", "horizontalScrollbarHeight_", "computeHorizontalScrollbarHeight", "documentObj", "shouldCacheResult", "el", "cssClasses", "horizontalScrollbarHeight", "MDCTabScrollerRTL", "adapter", "MDCTabScrollerRTLDefault", "_super", "__extends", "currentScrollLeft", "right", "scrollX", "edges", "clampedScrollLeft", "contentWidth", "rootWidth", "MDCTabScrollerRTL", "MDCTabScrollerRTLNegative", "_super", "__extends", "translateX", "currentScrollLeft", "scrollX", "clampedScrollLeft", "contentWidth", "rootWidth", "edges", "MDCTabScrollerRTL", "MDCTabScrollerRTLReverse", "_super", "__extends", "translateX", "currentScrollLeft", "scrollX", "clampedScrollLeft", "contentWidth", "rootWidth", "edges", "MDCTabScrollerRTL", "MDCTabScrollerFoundation", "_super", "__extends", "adapter", "_this", "__assign", "cssClasses", "strings", "horizontalScrollbarHeight", "currentTranslateX", "scrollLeft", "evt", "evtTarget", "scrollXIncrement", "operation", "scrollX", "transformValue", "match", "matrixParams", "_a", "__read", "a", "b", "c", "d", "tx", "ty", "edges", "translateX", "contentWidth", "rootWidth", "currentScrollX", "safeScrollX", "scrollDelta", "animation", "targetScrollX", "currentScrollPosition", "initialScrollLeft", "newScrollLeft", "MDCTabScrollerRTLNegative", "rootClientRect", "contentClientRect", "rightEdgeDelta", "MDCTabScrollerRTLReverse", "MDCTabScrollerRTLDefault", "MDCFoundation", "MDCTabScroller", "_super", "__extends", "root", "MDCTabScrollerFoundation", "_this", "evt", "applyPassive", "adapter", "evtTarget", "selector", "matches", "className", "prop", "value", "propName", "scrollX", "computeHorizontalScrollbarHeight", "scrollXIncrement", "MDCComponent", "TabBarAdapter", "BaseAdapter", "component", "getShadowElement", "TAB_BAR_CONSTANTS", "TAB_CONSTANTS", "activeTabIndex", "stretch", "tab", "MDCTabScroller", "listener", "index", "previousTabBounds", "tabs", "activeTab", "t", "value", "toggleClass", "scrollX", "scrollXIncrement", "position", "scrollWidth", "activeElement", "getActiveElement", "isFixed", "removeClass", "type", "firstTab", "isFunction", "template", "styles", "TabBarComponent", "BaseComponent", "IconRegistry", "tylIconKeyboardArrowLeft", "tylIconKeyboardArrowRight", "attachShadowTemplate", "TabBarFoundation", "TabBarAdapter", "TAB_BAR_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "coerceBoolean", "index", "__decorateClass", "FoundationProperty", "CustomElement", "TabComponent", "IconButtonComponent", "IconComponent", "defineTabBarComponent", "defineCustomElement", "TabBarComponent"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{d as at}from"./chunk.O4KZV4MX.js";import{h as st}from"./chunk.A2BJ47Q6.js";import{e as it}from"./chunk.FHW6LV4A.js";import{c as et}from"./chunk.LHFZFVHB.js";import{e as tt}from"./chunk.QWKDOAOE.js";import{a as f,b as nt}from"./chunk.YTOYNJMD.js";import{a as rt}from"./chunk.LIKJD4SK.js";import{a as F}from"./chunk.MGLWXAZO.js";import{a as C,b as ot}from"./chunk.NRXPO3SY.js";import{j as K}from"./chunk.MZLPUI6R.js";import{a as Q,d as Z,l as E}from"./chunk.T64UW37U.js";import{g as J}from"./chunk.XIQFHO5R.js";import{j as b,k as X,n as G,o as q,p as Y,q as j}from"./chunk.DMCBAYQX.js";import{a as $}from"./chunk.G4IN6Y46.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as W}from"./chunk.TKDMM2ZZ.js";import{a as R,b as z}from"./chunk.55FCNVG5.js";import{a as N,e as H,g as V,i as U,l as B}from"./chunk.QH2GB3PD.js";import{m as A,s as P,u as x}from"./chunk.CFDK4RCW.js";import{a as D,k as m,l as y,o as L}from"./chunk.J2M2MXP2.js";import{a as w,d as p}from"./chunk.M3QDAYD2.js";var h=`${z}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends W{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this.destroyMask(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){var e;(e=this._inputMask)==null||e.destroy(),this._inputMask=void 0}initializeAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${C.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let a=document.createElement(C.elementName);a.slot="trailing",a.dense=!0,a.densityLevel=3,a.style.marginRight="4px";let r=document.createElement("button");r.type="button",r.tabIndex=-1,r.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",r.appendChild(d),a.appendChild(r),e.appendChild(a),this._toggleElement=a}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P()===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}hasActiveOption(){var e,i;return((i=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?i:-1)>=0}activateOptionByIndex(e){var i;(i=this._listDropdown)==null||i.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function v(o,t,e){if(!o||/^\s*$/.test(o))return null;let i=0,n=0,a=0;if(b.test(o)){let r=G(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0}else if(X.test(o)){let r=q(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0,i===12&&r.meridiem==="AM"&&(i=0),i<12&&r.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+T(n)+(e?O(a):0)}function c(o,t,e){if(typeof o!="number"||o<0)return null;let i=Math.min(pt(o),23),n=Math.min(ut(o),59),r=o/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(o),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${r}`),d}function pt(o){return Math.abs(Math.floor(o/(1e3*60*60)))}function ut(o){return Math.abs(Math.floor(I(o)%60))}function I(o){return o/(1e3*60)}function M(o){return Math.abs(Math.floor(It(o)%60))}function It(o){return o/1e3}function dt(o){return o*60*60*1e3}function T(o){return o*60*1e3}function O(o){return o*1e3}function ct(o){return o-O(M(o))}function S(o){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+T(i)+(o?O(t.getSeconds()):0)}function Rt(o,t,e=!1){o||(o=new Date);let i=v(t,!0,e);if(!i)return o.setHours(0,0,0),o;let n=pt(i),a=828e5;n>a?n=a:n<0&&(n=0);let r=ut(i),d=e?M(i):0;return o.setHours(n,r,d),o}var k=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=D(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){var e,i;if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),t.stopPropagation(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption():(this._openDropdown(),typeof((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0?this._adapter.activateOptionByIndex((i=this._dropdownConfig)==null?void 0:i.visibleStartIndex):this._adapter.activateFirstOption()));break;case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&(this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption()));break;case"Enter":case"NumpadEnter":case"Home":case"End":this._open&&((t.code==="Enter"||t.code==="NumpadEnter")&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let n=S(this._allowSeconds);if(this._value!==n){let a=c(n,!0,this._allowSeconds);this._emitChangeEvent(a)&&(this._applyValue(n),this._selectInputText())}break}}_trySetActiveOption(){var t,e;!this._adapter.hasActiveOption()&&typeof((t=this._dropdownConfig)==null?void 0:t.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0&&this._adapter.activateOptionByIndex((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText(),this.masked&&this._showMaskFormat&&this._applyMask()}_onInputBlur(t){this.masked&&this._showMaskFormat&&this._applyMask(),this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){this._adapter.destroyMask();let t={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:L(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=c(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(ct(this._value)),this._isInitialized&&t!==this._value){let e=c(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=c(t,!0,this._allowSeconds);return this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=S(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=c(t.time,!0,this._allowSeconds);this._emitChangeEvent(e)&&(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(a=>!a.divider&&!a.disabled),i=[],n=0;if(t.length)if(this._value!=null){let a=this._findClosestOptionIndex(this._value,e);a>=0&&(e[a].value.time===this._value?i=[e[a].value]:n=a)}else if(typeof this._startTime=="number"){let a=this._findClosestOptionIndex(this._startTime,e);a>=0&&a<e.length&&(n=a)}else this._startTime==null&&(n=this._getOptionIndexClosestCurrent(e));this._dropdownConfig={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,visibleStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:a=>this._onSelect(a),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:a=>this._adapter.setActiveDescendant(a),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)},this._adapter.attachDropdown(this._dropdownConfig),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._dropdownConfig=void 0,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_getOptionIndexClosestCurrent(t){let e=new Date,i=`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`,n=v(i,!0,!1);return this._findClosestOptionIndex(n,t)}_findClosestOptionIndex(t,e){let i=e.reduce((n,a)=>Math.abs((a.value.time||0)-t)<Math.abs((n.value.time||0)-t)?a:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&(this._adapter.setInputValue(i,t),this._adapter.emitInputEvent(s.events.INPUT,i))}_generateTimeOptions(){let t=this._min!=null?Math.max(I(this._min),0):0,e=this._max!=null?Math.min(I(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],a=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=T(d),_t=this._restrictedTimes.includes(_),ht=c(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let r=n.findIndex(d=>d.value.time/1e3/60>=720);r>=0&&r<n.length-1&&n.splice(r,0,{label:"",value:null,divider:!0})}if(this._showNow){let r={time:null,metadata:"now"};a.push({label:"Now",value:r})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let r=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});a=[...a,...r]}return a.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),a.forEach((r,d)=>n.splice(d,0,r))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),v(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):c(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t)}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return c(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return c(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return c(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>c(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return c(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",l=class extends B{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new k(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=m(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=m(n);break;case s.attributes.MASKED:this.masked=m(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=m(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=m(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=m(n);break;case s.attributes.SHOW_NOW:this.showNow=m(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=m(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=y(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=m(n);break;case s.attributes.DISABLED:this.disabled=m(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=m(n);break}}};p([u()],l.prototype,"value",2),p([u()],l.prototype,"open",2),p([u()],l.prototype,"allowSeconds",2),p([u()],l.prototype,"masked",2),p([u()],l.prototype,"showMaskFormat",2),p([u()],l.prototype,"use24HourTime",2),p([u()],l.prototype,"allowInvalidTime",2),p([u()],l.prototype,"min",2),p([u()],l.prototype,"max",2),p([u()],l.prototype,"restrictedTimes",2),p([u()],l.prototype,"startTime",2),p([u()],l.prototype,"step",2),p([u()],l.prototype,"allowInput",2),p([u()],l.prototype,"showNow",2),p([u()],l.prototype,"showHourOptions",2),p([u()],l.prototype,"customOptions",2),p([u()],l.prototype,"validationCallback",2),p([u()],l.prototype,"parseCallback",2),p([u()],l.prototype,"formatCallback",2),p([u()],l.prototype,"coercionCallback",2),p([u()],l.prototype,"prepareMaskCallback",2),p([u()],l.prototype,"disabled",2),p([u()],l.prototype,"popupClasses",2),p([u()],l.prototype,"allowDropdown",2),p([u()],l.prototype,"popupTarget",2),l=p([R({name:s.elementName,dependencies:[et,tt,ot,E,it,E,at]})],l);var mt=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")})}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,a,r,d;let i={props:w({},(a=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:a.props),options:w({},(d=(r=this._config.options)==null?void 0:r.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function Ne(){N(l)}export{s as a,g as b,v as c,c as d,pt as e,ut as f,I as g,M as h,It as i,dt as j,T as k,O as l,ct as m,S as n,Rt as o,k as p,l as q,mt as r,Ne as s};
7
- //# sourceMappingURL=chunk.N2XJHAD4.js.map
6
+ import{d as at}from"./chunk.O4KZV4MX.js";import{h as st}from"./chunk.FF5DED5D.js";import{e as it}from"./chunk.FHW6LV4A.js";import{c as et}from"./chunk.HSXUQFHK.js";import{e as tt}from"./chunk.FZ43DC2H.js";import{a as f,b as nt}from"./chunk.YTOYNJMD.js";import{a as rt}from"./chunk.LIKJD4SK.js";import{a as F}from"./chunk.MGLWXAZO.js";import{a as C,b as ot}from"./chunk.7UN5EYUE.js";import{j as K}from"./chunk.MZLPUI6R.js";import{a as Q,d as Z,l as E}from"./chunk.T64UW37U.js";import{g as J}from"./chunk.XIQFHO5R.js";import{j as b,k as X,n as G,o as q,p as Y,q as j}from"./chunk.DMCBAYQX.js";import{a as $}from"./chunk.G4IN6Y46.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as W}from"./chunk.TKDMM2ZZ.js";import{a as R,b as z}from"./chunk.55FCNVG5.js";import{a as N,e as H,g as V,i as U,l as B}from"./chunk.QH2GB3PD.js";import{m as A,s as P,u as x}from"./chunk.CFDK4RCW.js";import{a as D,k as m,l as y,o as L}from"./chunk.J2M2MXP2.js";import{a as w,d as p}from"./chunk.M3QDAYD2.js";var h=`${z}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends W{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this.destroyMask(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){var e;(e=this._inputMask)==null||e.destroy(),this._inputMask=void 0}initializeAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${C.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let a=document.createElement(C.elementName);a.slot="trailing",a.dense=!0,a.densityLevel=3,a.style.marginRight="4px";let r=document.createElement("button");r.type="button",r.tabIndex=-1,r.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",r.appendChild(d),a.appendChild(r),e.appendChild(a),this._toggleElement=a}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P()===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}hasActiveOption(){var e,i;return((i=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?i:-1)>=0}activateOptionByIndex(e){var i;(i=this._listDropdown)==null||i.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function v(o,t,e){if(!o||/^\s*$/.test(o))return null;let i=0,n=0,a=0;if(b.test(o)){let r=G(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0}else if(X.test(o)){let r=q(o);i=+r.hours||0,n=+r.minutes||0,a=+r.seconds||0,i===12&&r.meridiem==="AM"&&(i=0),i<12&&r.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+T(n)+(e?O(a):0)}function c(o,t,e){if(typeof o!="number"||o<0)return null;let i=Math.min(pt(o),23),n=Math.min(ut(o),59),r=o/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(o),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${r}`),d}function pt(o){return Math.abs(Math.floor(o/(1e3*60*60)))}function ut(o){return Math.abs(Math.floor(I(o)%60))}function I(o){return o/(1e3*60)}function M(o){return Math.abs(Math.floor(It(o)%60))}function It(o){return o/1e3}function dt(o){return o*60*60*1e3}function T(o){return o*60*1e3}function O(o){return o*1e3}function ct(o){return o-O(M(o))}function S(o){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+T(i)+(o?O(t.getSeconds()):0)}function Rt(o,t,e=!1){o||(o=new Date);let i=v(t,!0,e);if(!i)return o.setHours(0,0,0),o;let n=pt(i),a=828e5;n>a?n=a:n<0&&(n=0);let r=ut(i),d=e?M(i):0;return o.setHours(n,r,d),o}var k=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=D(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){var e,i;if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),t.stopPropagation(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption():(this._openDropdown(),typeof((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0?this._adapter.activateOptionByIndex((i=this._dropdownConfig)==null?void 0:i.visibleStartIndex):this._adapter.activateFirstOption()));break;case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&(this._adapter.hasActiveOption()?this._adapter.propagateKey(t.code):this._trySetActiveOption()));break;case"Enter":case"NumpadEnter":case"Home":case"End":this._open&&((t.code==="Enter"||t.code==="NumpadEnter")&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let n=S(this._allowSeconds);if(this._value!==n){let a=c(n,!0,this._allowSeconds);this._emitChangeEvent(a)&&(this._applyValue(n),this._selectInputText())}break}}_trySetActiveOption(){var t,e;!this._adapter.hasActiveOption()&&typeof((t=this._dropdownConfig)==null?void 0:t.visibleStartIndex)=="number"&&this._dropdownConfig.visibleStartIndex>=0&&this._adapter.activateOptionByIndex((e=this._dropdownConfig)==null?void 0:e.visibleStartIndex)}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText(),this.masked&&this._showMaskFormat&&this._applyMask()}_onInputBlur(t){this.masked&&this._showMaskFormat&&this._applyMask(),this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){this._adapter.destroyMask();let t={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:L(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=c(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(ct(this._value)),this._isInitialized&&t!==this._value){let e=c(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=c(t,!0,this._allowSeconds);return this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=S(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=c(t.time,!0,this._allowSeconds);this._emitChangeEvent(e)&&(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(a=>!a.divider&&!a.disabled),i=[],n=0;if(t.length)if(this._value!=null){let a=this._findClosestOptionIndex(this._value,e);a>=0&&(e[a].value.time===this._value?i=[e[a].value]:n=a)}else if(typeof this._startTime=="number"){let a=this._findClosestOptionIndex(this._startTime,e);a>=0&&a<e.length&&(n=a)}else this._startTime==null&&(n=this._getOptionIndexClosestCurrent(e));this._dropdownConfig={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,visibleStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:a=>this._onSelect(a),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:a=>this._adapter.setActiveDescendant(a),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)},this._adapter.attachDropdown(this._dropdownConfig),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._dropdownConfig=void 0,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_getOptionIndexClosestCurrent(t){let e=new Date,i=`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`,n=v(i,!0,!1);return this._findClosestOptionIndex(n,t)}_findClosestOptionIndex(t,e){let i=e.reduce((n,a)=>Math.abs((a.value.time||0)-t)<Math.abs((n.value.time||0)-t)?a:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&(this._adapter.setInputValue(i,t),this._adapter.emitInputEvent(s.events.INPUT,i))}_generateTimeOptions(){let t=this._min!=null?Math.max(I(this._min),0):0,e=this._max!=null?Math.min(I(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],a=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=T(d),_t=this._restrictedTimes.includes(_),ht=c(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let r=n.findIndex(d=>d.value.time/1e3/60>=720);r>=0&&r<n.length-1&&n.splice(r,0,{label:"",value:null,divider:!0})}if(this._showNow){let r={time:null,metadata:"now"};a.push({label:"Now",value:r})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let r=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});a=[...a,...r]}return a.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),a.forEach((r,d)=>n.splice(d,0,r))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),v(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):c(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t)}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return c(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return c(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return c(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>c(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return c(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",l=class extends B{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new k(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=m(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=m(n);break;case s.attributes.MASKED:this.masked=m(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=m(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=m(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=m(n);break;case s.attributes.SHOW_NOW:this.showNow=m(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=m(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=y(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=m(n);break;case s.attributes.DISABLED:this.disabled=m(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=m(n);break}}};p([u()],l.prototype,"value",2),p([u()],l.prototype,"open",2),p([u()],l.prototype,"allowSeconds",2),p([u()],l.prototype,"masked",2),p([u()],l.prototype,"showMaskFormat",2),p([u()],l.prototype,"use24HourTime",2),p([u()],l.prototype,"allowInvalidTime",2),p([u()],l.prototype,"min",2),p([u()],l.prototype,"max",2),p([u()],l.prototype,"restrictedTimes",2),p([u()],l.prototype,"startTime",2),p([u()],l.prototype,"step",2),p([u()],l.prototype,"allowInput",2),p([u()],l.prototype,"showNow",2),p([u()],l.prototype,"showHourOptions",2),p([u()],l.prototype,"customOptions",2),p([u()],l.prototype,"validationCallback",2),p([u()],l.prototype,"parseCallback",2),p([u()],l.prototype,"formatCallback",2),p([u()],l.prototype,"coercionCallback",2),p([u()],l.prototype,"prepareMaskCallback",2),p([u()],l.prototype,"disabled",2),p([u()],l.prototype,"popupClasses",2),p([u()],l.prototype,"allowDropdown",2),p([u()],l.prototype,"popupTarget",2),l=p([R({name:s.elementName,dependencies:[et,tt,ot,E,it,E,at]})],l);var mt=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")})}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,a,r,d;let i={props:w({},(a=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:a.props),options:w({},(d=(r=this._config.options)==null?void 0:r.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function Ne(){N(l)}export{s as a,g as b,v as c,c as d,pt as e,ut as f,I as g,M as h,It as i,dt as j,T as k,O as l,ct as m,S as n,Rt as o,k as p,l as q,mt as r,Ne as s};
7
+ //# sourceMappingURL=chunk.3W2ERIMT.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{d as e}from"./chunk.TLRRYVSN.js";import{a as o}from"./chunk.QH2GB3PD.js";function t(){o(e)}export{t as a};
7
- //# sourceMappingURL=chunk.H5MJBEK5.js.map
6
+ import{d as e}from"./chunk.IMRPJU4M.js";import{a as o}from"./chunk.QH2GB3PD.js";function t(){o(e)}export{t as a};
7
+ //# sourceMappingURL=chunk.3XZRUXG7.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as L}from"./chunk.SCP23NBN.js";import{b as o}from"./chunk.H4H75YUA.js";import{a as G}from"./chunk.T7KUZYQ3.js";import{h as k,i as P}from"./chunk.A2BJ47Q6.js";import{a as V}from"./chunk.FHW6LV4A.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as B}from"./chunk.TKDMM2ZZ.js";import{i as S}from"./chunk.CFDK4RCW.js";import{a as T,b as c,j as I,k as y,n as x}from"./chunk.J2M2MXP2.js";import{a as b,d as a}from"./chunk.M3QDAYD2.js";var M={VALUE:"value",MULTIPLE:"multiple",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",SYNC_POPUP_WIDTH:"sync-popup-width",CONSTRAIN_POPUP_WIDTH:"constrain-popup-width",WRAP_OPTION_TEXT:"wrap-option-text"},U=b({},M),R={CHANGE:"change"},m={attributes:U,events:R};var N=(e=>(e[e.Option=0]="Option",e[e.Group=1]="Group",e))(N||{});function C(l,O){let e=l.some(i=>w(i)),t=l.some(i=>W(i));return e&&O===1||t&&O===0}function w(l){return c(l)&&I(l)&&l.hasOwnProperty("options")}function W(l){return c(l)&&I(l)&&l.hasOwnProperty("label")&&l.hasOwnProperty("value")}var H=class extends P{constructor(e){super();this._adapter=e;this._options=[];this._value=[];this._multiple=!1;this._open=!1;this._selectedValues=[];this._selectedLabels=[];this._selectedIndexes=[];this._filterString="";this._focusListener=t=>this._onFocus(t),this._blurListener=t=>this._onBlur(t),this._clickListener=t=>this._onClick(t),this._keydownListener=t=>this._onKeydown(t),this._optionsChangedListener=t=>this._onOptionsChanged(t),this._activeChangeListener=t=>this._onActiveOptionChanged(t),this._dropdownScrollEndListener=()=>this._onDropdownScrollEnd(),this._dismissListener=()=>this._onDismiss(),this._identifier=T()}_onFocus(e){}initialize(){this._optionListenerDestructor&&this._optionListenerDestructor(),this._optionListenerDestructor=this._adapter.setOptionsListener(this._optionsChangedListener),this._initializeValue()}initializeTarget(){this._adapter.initializeAccessibility(),this._adapter.setMultiple(this._multiple),this._adapter.addClickListener(this._clickListener),this._adapter.addTargetListener("blur",this._blurListener),this._adapter.addTargetListener("focus",this._focusListener),this._adapter.addTargetListener("keydown",this._keydownListener)}disconnect(){this._adapter.removeClickListener(this._clickListener),this._adapter.removeTargetListener("blur",this._blurListener),this._adapter.removeTargetListener("focus",this._focusListener),this._adapter.removeTargetListener("keydown",this._keydownListener),this._open&&this._closeDropdown(),this._optionListenerDestructor&&this._optionListenerDestructor()}appendOptions(e){this._adapter.setOptions(e,!1),this._open&&this._adapter.appendDropdownOptions(e)}selectAll(){this._multiple&&(this.value=this._flatOptions.map(e=>e.value))}deselectAll(){this._multiple&&(this.value=[])}get _flatOptions(){return C(this._options,1)?[].concat.apply([],this._options.map(e=>e.options)):this._options}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}_initializeValue(){let e=this._options.length&&this._options||this._adapter.getOptions();c(this._value)&&e.length&&this._applyValue(this._value)}_onClick(e){e.button===0&&(this._open?this._closeDropdown():this._openDropdown())}_onBlur(e){this._adapter.isFocusWithinPopup(e.relatedTarget)||this._open&&this._closeDropdown()}_openDropdown(){if(this._options=this._adapter.getOptions(),!this._flatOptions.length)return;this._open=!0;let e={options:this._options,multiple:this._multiple,selectedValues:[...this._selectedValues],id:this._identifier,optionBuilder:this._optionBuilder,syncWidth:this._syncPopupWidth,constrainViewportWidth:this._constrainPopupWidth,wrapOptionText:this._wrapOptionText,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,scrollEndListener:this._dropdownScrollEndListener,activeChangeCallback:this._activeChangeListener,targetWidthCallback:this._targetWidthCallback,popupClasses:this._popupClasses,optionLimit:this._optionLimit,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,closeCallback:()=>this._closeDropdown(),selectCallback:t=>{let i=this._flatOptions,n=i.find(r=>r.value===t);if(n){let r=i.indexOf(n);this._onSelect(n,r,!0)}}};this._adapter.open(e),this._adapter.setDismissListener(this._dismissListener)}_closeDropdown(){this._open=!1,this._adapter.close()}async _onSelect(e,t,i=!0){return new Promise(async n=>{if(this._valueChanging)return Promise.resolve(!1);let r=e?e.value:"",u=e?e.label:"",v=[...this._value],f=[...this._selectedValues],g=[...this._selectedLabels],D=[...this._selectedIndexes];if(this._multiple)if(this._selectedValues.includes(r)){let h=this._selectedValues.indexOf(r);this._selectedValues.splice(h,1),this._selectedLabels.splice(h,1),this._selectedIndexes.splice(h,1)}else this._selectedValues.push(r),this._selectedLabels.push(u),this._selectedIndexes.push(t);else c(r)?(this._selectedValues[0]=r,this._selectedLabels[0]=u,this._selectedIndexes[0]=t):(this._selectedValues=[],this._selectedLabels=[],this._selectedIndexes=[]);this._value=[...this._selectedValues];let s=()=>{this._selectedValues=[...f],this._selectedLabels=[...g],this._selectedIndexes=[...D],this._value=[...v]},_=()=>{if(this._multiple){let h=this._selectedIndexes.includes(t);this._adapter.toggleOptionMultiple(t,h)}this._applySelection()},E=this.multiple?[...this._selectedValues]:this._selectedValues[0];if(this._open&&i&&!this._multiple&&this._closeDropdown(),typeof this._beforeValueChange=="function"){this._valueChanging=Promise.resolve(this._beforeValueChange.call(null,E));let h=await this._valueChanging;if(this._valueChanging=void 0,!h)return s(),this._tryUpdateDropdownPosition(),n(!1)}let A=!this._adapter.emitHostEvent(m.events.CHANGE,E,!0,!0);A?s():_(),this._tryUpdateDropdownPosition(),n(!A)})}_selectActiveOption(){let e=this._adapter.getActiveOptionIndex();e>=0&&this._nonDividerOptions[e]&&this._onSelect(this._nonDividerOptions[e],e)}_tryUpdateDropdownPosition(){this._open&&this._adapter.queueDropdownPositionUpdate()}_reset(){this._selectedValues=[],this._selectedLabels=[],this._selectedIndexes=[]}_applyValue(e){this._selectedValues=[],this._selectedLabels=[],this._options=this._adapter.getOptions(),Array.isArray(e)||(e=[e]),this._value=[];for(let t of e){this._value.includes(t)||this._value.push(t);let i=this._flatOptions.find(n=>x(n.value,t));i&&(this._selectedValues.push(i.value),this._selectedLabels.push(i.label))}this._selectedIndexes=this._selectedValues.map(t=>this._flatOptions.findIndex(i=>i.value===t)),this._adapter.patchSelectedValues(this._selectedValues)}_onDismiss(){this._closeDropdown()}_getSelectedText(){if(typeof this._selectedTextBuilder=="function"){let e=this._flatOptions.filter(t=>this._selectedValues.includes(t.value));return this._selectedTextBuilder(e)}return this._multiple?this._selectedLabels.length?this._selectedLabels.length===1?this._selectedLabels[0]:`${this._selectedLabels.length} options selected`:"":this._selectedLabels.filter(e=>e&&e.length).join(" ").trim()}_onKeydown(e){let t=e.key==="Escape"||e.keyCode===27,i=e.key==="Enter"||e.keyCode===13,n=e.key==="Space"||e.keyCode===32,r=e.key==="ArrowDown"||e.keyCode===40,u=e.key==="ArrowUp"||e.keyCode===38,v=e.keyCode>=48&&e.keyCode<=90,f=e.key==="Home"||e.keyCode===36,g=e.key==="End"||e.keyCode===35;if(e.key==="Tab"&&this._open&&!this._multiple){this._selectActiveOption();return}if(!v&&this._filterTimeout&&(window.clearTimeout(this._filterTimeout),this._filterString="",this._filterTimeout=void 0),t&&(e.preventDefault(),e.stopPropagation(),this._open)){this._closeDropdown();return}if(n)e.preventDefault(),this._open?this._closeDropdown():this._openDropdown();else if(i)this._open&&(e.stopPropagation(),e.preventDefault(),this._options=this._adapter.getOptions(),this._selectActiveOption());else if(u||r){if(e.preventDefault(),!this._open){this._openDropdown(),this._adapter.activateFirstOption();return}if(this._flatOptions.length===0)return;let s=0;this._open?(s=this._adapter.getActiveOptionIndex(),s===-1&&(s=this._getFirstSelectedOptionIndex())):s=this._getFirstSelectedOptionIndex(),u?s=this._getPreviousHighlightableOptionIndex(s,this._nonDividerOptions):s=this._getNextHighlightableOptionIndex(s,this._nonDividerOptions),this._adapter.highlightActiveOption(s)}else if(f)this._open&&(e.preventDefault(),this._adapter.highlightActiveOption(this._nonDividerOptions.findIndex(s=>!s.disabled)));else if(g){if(this._open){e.preventDefault();let s=this._nonDividerOptions;for(let _=s.length-1;_>=0;_--)if(!s[_].disabled){this._adapter.highlightActiveOption(_);break}}}else v&&this._filter(e.key)}_getFirstSelectedOptionIndex(){return this._nonDividerOptions.findIndex(e=>this._selectedValues.includes(e.value))}_getPreviousHighlightableOptionIndex(e,t){let i=e;return i<=0?i=t.length-1:i--,t[i].disabled?this._getPreviousHighlightableOptionIndex(i,t):i}_getNextHighlightableOptionIndex(e,t){let i=e;return i===t.length-1?i=0:i++,t[i].disabled?this._getNextHighlightableOptionIndex(i,t):i}_filter(e){this._filterTimeout&&(window.clearTimeout(this._filterTimeout),this._filterTimeout=void 0),this._filterString+=e,this._filterTimeout=window.setTimeout(()=>{this._filterString="",this._filterTimeout=void 0},300),this._options=this._adapter.getOptions();let t=this._flatOptions.find(i=>!i.disabled&&i.label.toLowerCase().startsWith(this._filterString.toLowerCase()));if(t){let i=this._flatOptions.indexOf(t);this._open?this._adapter.highlightActiveOption(i):this._multiple||this._onSelect(t,i,!1)}}_onOptionsChanged(e){this._options=e,this._applyValue(this._value)}_onActiveOptionChanged(e){this._adapter.updateActiveDescendant(e)}get value(){return this._multiple?[...this._value]:this._value[0]}set value(e){let t;Array.isArray(e)?t=[...e]:t=e,this._applyValue(t)}get selectedIndex(){return this._multiple?[...this._selectedIndexes]:this._selectedIndexes[0]}set selectedIndex(e){this._options=this._adapter.getOptions();let t;if(Array.isArray(e)?t=[...e]:t=[e],t.sort(),this.multiple)this.value=t.map(i=>this._flatOptions[i]).filter(i=>i).map(i=>i.value);else{let i=this._flatOptions[t[t.length-1]];if(!i)return;this.value=i.value}}get options(){return this._adapter.getOptions()}set options(e){let t;C(e,1)?t=e.map(i=>b({},i)):t=e.map(i=>b({},i)),this._options=t,this._adapter.setOptions(t),this._initializeValue(),this._open&&this._adapter.setDropdownOptions(t)}get multiple(){return this._multiple}set multiple(e){this._multiple!==e&&(this._multiple=e,this._reset(),this._open&&this._closeDropdown(),this._adapter.setMultiple(this._multiple))}get open(){return this._open}set open(e){this._open!==e&&(e?this._openDropdown():this._closeDropdown())}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get selectedTextBuilder(){return this._selectedTextBuilder}set selectedTextBuilder(e){this._selectedTextBuilder=e}get optionLimit(){return this._optionLimit}set optionLimit(e){this._optionLimit=e}get popupClasses(){return this._popupClasses}set popupClasses(e){this._popupClasses=e}get popupHeaderBuilder(){return this._popupHeaderBuilder}set popupHeaderBuilder(e){this._popupHeaderBuilder=e}get popupFooterBuilder(){return this._popupFooterBuilder}set popupFooterBuilder(e){this._popupFooterBuilder=e}get popupElement(){return this._adapter.popupElement}get beforeValueChange(){return this._beforeValueChange}set beforeValueChange(e){this._beforeValueChange=e}};var p=class extends G{constructor(){super()}attributeChangedCallback(e,t,i){switch(super.attributeChangedCallback(e,t,i),e){case m.attributes.MULTIPLE:this.multiple=y(i);break;case m.attributes.VALUE:this.value=i;break}}appendOptions(e){this._foundation.appendOptions(e)}selectAll(){this._foundation.selectAll()}deselectAll(){this._foundation.deselectAll()}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}};a([d()],p.prototype,"value",2),a([d()],p.prototype,"selectedIndex",2),a([d()],p.prototype,"options",2),a([d()],p.prototype,"multiple",2),a([d()],p.prototype,"open",2),a([d()],p.prototype,"optionBuilder",2),a([d()],p.prototype,"selectedTextBuilder",2),a([d()],p.prototype,"beforeValueChange",2),a([d({set:!1})],p.prototype,"popupElement",2);var F=class extends B{constructor(e){super(e)}get popupElement(){var e;return(e=this._listDropdown)==null?void 0:e.dropdownElement}getOptions(){let e=Array.from(this._component.querySelectorAll(L.elementName));if(e.length)return e.map(t=>{let i=Array.from(t.querySelectorAll(o.elementName)),n=this._createOptionsFromElements(i);return{text:t.label,builder:t.builder,value:t.value,options:n}});{let t=Array.from(this._component.querySelectorAll(o.elementName));return this._createOptionsFromElements(t)}}_createOptionsFromElements(e){return e.map(t=>{let i=t.hasAttribute(o.attributes.OPTION_CLASS)?t.getAttribute(o.attributes.OPTION_CLASS):t.optionClass;return typeof i=="string"&&(i=i.split(" ")),{label:t.hasAttribute(o.attributes.LABEL)?t.getAttribute(o.attributes.LABEL):c(t.label)?t.label:t.innerText,value:t.hasAttribute(o.attributes.VALUE)?t.getAttribute(o.attributes.VALUE):t.value,disabled:t.hasAttribute(o.attributes.DISABLED),divider:t.hasAttribute(o.attributes.DIVIDER),optionClass:i,leadingIcon:t.hasAttribute(o.attributes.LEADING_ICON)?t.getAttribute(o.attributes.LEADING_ICON):t.leadingIcon,leadingIconClass:t.hasAttribute(o.attributes.LEADING_ICON_CLASS)?t.getAttribute(o.attributes.LEADING_ICON_CLASS):t.leadingIconClass,leadingIconType:t.hasAttribute(o.attributes.LEADING_ICON_TYPE)?t.getAttribute(o.attributes.LEADING_ICON_TYPE):t.leadingIconType,trailingIcon:t.hasAttribute(o.attributes.TRAILING_ICON)?t.getAttribute(o.attributes.TRAILING_ICON):t.trailingIcon,trailingIconClass:t.hasAttribute(o.attributes.TRAILING_ICON_CLASS)?t.getAttribute(o.attributes.TRAILING_ICON_CLASS):t.trailingIconClass,trailingIconType:t.hasAttribute(o.attributes.TRAILING_ICON_TYPE)?t.getAttribute(o.attributes.TRAILING_ICON_TYPE):t.trailingIconType,leadingBuilder:t.leadingBuilder,trailingBuilder:t.trailingBuilder}})}open(e){this._listDropdown=new k(this._targetElement,e),this._listDropdown.open()}close(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0)}setDismissListener(e){if(!this._listDropdown||!this._listDropdown.dropdownElement)return;let t=this._listDropdown.dropdownElement;t.targetElement&&t.targetElement.addEventListener(V.events.BLUR,e)}toggleOptionMultiple(e,t){var i;(i=this._listDropdown)==null||i.toggleOptionMultiple(e,t)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:-1}activateSelectedOption(){var e;(e=this._listDropdown)==null||e.activateSelectedOption()}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}highlightActiveOption(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}patchSelectedValues(e){var t;(t=this._listDropdown)==null||t.setSelectedValues(e)}setOptionsListener(e){let t=n=>{n.stopPropagation(),e(this.getOptions())};this._component.addEventListener(o.events.VALUE_CHANGE,t);let i=new MutationObserver(()=>e(this.getOptions()));return i.observe(this._component,{childList:!0,subtree:!0}),()=>{this._component.removeEventListener(o.events.VALUE_CHANGE,t),i.disconnect()}}setOptions(e,t=!0){t&&this._clearOptions();for(let i of e)if(w(i)){let n=this._createOptionGroupElement(i);for(let r of i.options){let u=this._createOptionElement(r);n.appendChild(u)}this._component.appendChild(n)}else{let n=this._createOptionElement(i);this._component.appendChild(n)}}appendDropdownOptions(e){var t;(t=this._listDropdown)==null||t.appendOptions(e)}setDropdownOptions(e){var t;(t=this._listDropdown)==null||t.setOptions(e)}scrollSelectedOptionIntoView(){var e;(e=this._listDropdown)==null||e.scrollSelectedOptionIntoView()}isFocusWithinPopup(e){return!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._listDropdown.dropdownElement.contains(e)}queueDropdownPositionUpdate(){this.popupElement&&window.requestAnimationFrame(()=>{let e=this.popupElement;e==null||e.position()})}_clearOptions(){Array.from(this._component.querySelectorAll(L.elementName)).forEach(i=>S(i)),Array.from(this._component.querySelectorAll(o.elementName)).forEach(i=>S(i))}_createOptionGroupElement(e){let t=document.createElement("forge-option-group");return Object.assign(t,e),t}_createOptionElement(e){let t=document.createElement("forge-option");return Object.assign(t,e),t.textContent=e.label,t}};export{m as a,N as b,C as c,w as d,W as e,H as f,p as g,F as h};
7
- //# sourceMappingURL=chunk.HNSUYOCY.js.map
6
+ import{a as L}from"./chunk.SCP23NBN.js";import{b as o}from"./chunk.H4H75YUA.js";import{a as G}from"./chunk.2TVYAW7Q.js";import{h as k,i as P}from"./chunk.FF5DED5D.js";import{a as V}from"./chunk.FHW6LV4A.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as B}from"./chunk.TKDMM2ZZ.js";import{i as S}from"./chunk.CFDK4RCW.js";import{a as T,b as c,j as I,k as y,n as x}from"./chunk.J2M2MXP2.js";import{a as b,d as a}from"./chunk.M3QDAYD2.js";var M={VALUE:"value",MULTIPLE:"multiple",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",SYNC_POPUP_WIDTH:"sync-popup-width",CONSTRAIN_POPUP_WIDTH:"constrain-popup-width",WRAP_OPTION_TEXT:"wrap-option-text"},U=b({},M),R={CHANGE:"change"},m={attributes:U,events:R};var N=(e=>(e[e.Option=0]="Option",e[e.Group=1]="Group",e))(N||{});function C(l,O){let e=l.some(i=>w(i)),t=l.some(i=>W(i));return e&&O===1||t&&O===0}function w(l){return c(l)&&I(l)&&l.hasOwnProperty("options")}function W(l){return c(l)&&I(l)&&l.hasOwnProperty("label")&&l.hasOwnProperty("value")}var H=class extends P{constructor(e){super();this._adapter=e;this._options=[];this._value=[];this._multiple=!1;this._open=!1;this._selectedValues=[];this._selectedLabels=[];this._selectedIndexes=[];this._filterString="";this._focusListener=t=>this._onFocus(t),this._blurListener=t=>this._onBlur(t),this._clickListener=t=>this._onClick(t),this._keydownListener=t=>this._onKeydown(t),this._optionsChangedListener=t=>this._onOptionsChanged(t),this._activeChangeListener=t=>this._onActiveOptionChanged(t),this._dropdownScrollEndListener=()=>this._onDropdownScrollEnd(),this._dismissListener=()=>this._onDismiss(),this._identifier=T()}_onFocus(e){}initialize(){this._optionListenerDestructor&&this._optionListenerDestructor(),this._optionListenerDestructor=this._adapter.setOptionsListener(this._optionsChangedListener),this._initializeValue()}initializeTarget(){this._adapter.initializeAccessibility(),this._adapter.setMultiple(this._multiple),this._adapter.addClickListener(this._clickListener),this._adapter.addTargetListener("blur",this._blurListener),this._adapter.addTargetListener("focus",this._focusListener),this._adapter.addTargetListener("keydown",this._keydownListener)}disconnect(){this._adapter.removeClickListener(this._clickListener),this._adapter.removeTargetListener("blur",this._blurListener),this._adapter.removeTargetListener("focus",this._focusListener),this._adapter.removeTargetListener("keydown",this._keydownListener),this._open&&this._closeDropdown(),this._optionListenerDestructor&&this._optionListenerDestructor()}appendOptions(e){this._adapter.setOptions(e,!1),this._open&&this._adapter.appendDropdownOptions(e)}selectAll(){this._multiple&&(this.value=this._flatOptions.map(e=>e.value))}deselectAll(){this._multiple&&(this.value=[])}get _flatOptions(){return C(this._options,1)?[].concat.apply([],this._options.map(e=>e.options)):this._options}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}_initializeValue(){let e=this._options.length&&this._options||this._adapter.getOptions();c(this._value)&&e.length&&this._applyValue(this._value)}_onClick(e){e.button===0&&(this._open?this._closeDropdown():this._openDropdown())}_onBlur(e){this._adapter.isFocusWithinPopup(e.relatedTarget)||this._open&&this._closeDropdown()}_openDropdown(){if(this._options=this._adapter.getOptions(),!this._flatOptions.length)return;this._open=!0;let e={options:this._options,multiple:this._multiple,selectedValues:[...this._selectedValues],id:this._identifier,optionBuilder:this._optionBuilder,syncWidth:this._syncPopupWidth,constrainViewportWidth:this._constrainPopupWidth,wrapOptionText:this._wrapOptionText,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,scrollEndListener:this._dropdownScrollEndListener,activeChangeCallback:this._activeChangeListener,targetWidthCallback:this._targetWidthCallback,popupClasses:this._popupClasses,optionLimit:this._optionLimit,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,closeCallback:()=>this._closeDropdown(),selectCallback:t=>{let i=this._flatOptions,n=i.find(r=>r.value===t);if(n){let r=i.indexOf(n);this._onSelect(n,r,!0)}}};this._adapter.open(e),this._adapter.setDismissListener(this._dismissListener)}_closeDropdown(){this._open=!1,this._adapter.close()}async _onSelect(e,t,i=!0){return new Promise(async n=>{if(this._valueChanging)return Promise.resolve(!1);let r=e?e.value:"",u=e?e.label:"",v=[...this._value],f=[...this._selectedValues],g=[...this._selectedLabels],D=[...this._selectedIndexes];if(this._multiple)if(this._selectedValues.includes(r)){let h=this._selectedValues.indexOf(r);this._selectedValues.splice(h,1),this._selectedLabels.splice(h,1),this._selectedIndexes.splice(h,1)}else this._selectedValues.push(r),this._selectedLabels.push(u),this._selectedIndexes.push(t);else c(r)?(this._selectedValues[0]=r,this._selectedLabels[0]=u,this._selectedIndexes[0]=t):(this._selectedValues=[],this._selectedLabels=[],this._selectedIndexes=[]);this._value=[...this._selectedValues];let s=()=>{this._selectedValues=[...f],this._selectedLabels=[...g],this._selectedIndexes=[...D],this._value=[...v]},_=()=>{if(this._multiple){let h=this._selectedIndexes.includes(t);this._adapter.toggleOptionMultiple(t,h)}this._applySelection()},E=this.multiple?[...this._selectedValues]:this._selectedValues[0];if(this._open&&i&&!this._multiple&&this._closeDropdown(),typeof this._beforeValueChange=="function"){this._valueChanging=Promise.resolve(this._beforeValueChange.call(null,E));let h=await this._valueChanging;if(this._valueChanging=void 0,!h)return s(),this._tryUpdateDropdownPosition(),n(!1)}let A=!this._adapter.emitHostEvent(m.events.CHANGE,E,!0,!0);A?s():_(),this._tryUpdateDropdownPosition(),n(!A)})}_selectActiveOption(){let e=this._adapter.getActiveOptionIndex();e>=0&&this._nonDividerOptions[e]&&this._onSelect(this._nonDividerOptions[e],e)}_tryUpdateDropdownPosition(){this._open&&this._adapter.queueDropdownPositionUpdate()}_reset(){this._selectedValues=[],this._selectedLabels=[],this._selectedIndexes=[]}_applyValue(e){this._selectedValues=[],this._selectedLabels=[],this._options=this._adapter.getOptions(),Array.isArray(e)||(e=[e]),this._value=[];for(let t of e){this._value.includes(t)||this._value.push(t);let i=this._flatOptions.find(n=>x(n.value,t));i&&(this._selectedValues.push(i.value),this._selectedLabels.push(i.label))}this._selectedIndexes=this._selectedValues.map(t=>this._flatOptions.findIndex(i=>i.value===t)),this._adapter.patchSelectedValues(this._selectedValues)}_onDismiss(){this._closeDropdown()}_getSelectedText(){if(typeof this._selectedTextBuilder=="function"){let e=this._flatOptions.filter(t=>this._selectedValues.includes(t.value));return this._selectedTextBuilder(e)}return this._multiple?this._selectedLabels.length?this._selectedLabels.length===1?this._selectedLabels[0]:`${this._selectedLabels.length} options selected`:"":this._selectedLabels.filter(e=>e&&e.length).join(" ").trim()}_onKeydown(e){let t=e.key==="Escape"||e.keyCode===27,i=e.key==="Enter"||e.keyCode===13,n=e.key==="Space"||e.keyCode===32,r=e.key==="ArrowDown"||e.keyCode===40,u=e.key==="ArrowUp"||e.keyCode===38,v=e.keyCode>=48&&e.keyCode<=90,f=e.key==="Home"||e.keyCode===36,g=e.key==="End"||e.keyCode===35;if(e.key==="Tab"&&this._open&&!this._multiple){this._selectActiveOption();return}if(!v&&this._filterTimeout&&(window.clearTimeout(this._filterTimeout),this._filterString="",this._filterTimeout=void 0),t&&(e.preventDefault(),e.stopPropagation(),this._open)){this._closeDropdown();return}if(n)e.preventDefault(),this._open?this._closeDropdown():this._openDropdown();else if(i)this._open&&(e.stopPropagation(),e.preventDefault(),this._options=this._adapter.getOptions(),this._selectActiveOption());else if(u||r){if(e.preventDefault(),!this._open){this._openDropdown(),this._adapter.activateFirstOption();return}if(this._flatOptions.length===0)return;let s=0;this._open?(s=this._adapter.getActiveOptionIndex(),s===-1&&(s=this._getFirstSelectedOptionIndex())):s=this._getFirstSelectedOptionIndex(),u?s=this._getPreviousHighlightableOptionIndex(s,this._nonDividerOptions):s=this._getNextHighlightableOptionIndex(s,this._nonDividerOptions),this._adapter.highlightActiveOption(s)}else if(f)this._open&&(e.preventDefault(),this._adapter.highlightActiveOption(this._nonDividerOptions.findIndex(s=>!s.disabled)));else if(g){if(this._open){e.preventDefault();let s=this._nonDividerOptions;for(let _=s.length-1;_>=0;_--)if(!s[_].disabled){this._adapter.highlightActiveOption(_);break}}}else v&&this._filter(e.key)}_getFirstSelectedOptionIndex(){return this._nonDividerOptions.findIndex(e=>this._selectedValues.includes(e.value))}_getPreviousHighlightableOptionIndex(e,t){let i=e;return i<=0?i=t.length-1:i--,t[i].disabled?this._getPreviousHighlightableOptionIndex(i,t):i}_getNextHighlightableOptionIndex(e,t){let i=e;return i===t.length-1?i=0:i++,t[i].disabled?this._getNextHighlightableOptionIndex(i,t):i}_filter(e){this._filterTimeout&&(window.clearTimeout(this._filterTimeout),this._filterTimeout=void 0),this._filterString+=e,this._filterTimeout=window.setTimeout(()=>{this._filterString="",this._filterTimeout=void 0},300),this._options=this._adapter.getOptions();let t=this._flatOptions.find(i=>!i.disabled&&i.label.toLowerCase().startsWith(this._filterString.toLowerCase()));if(t){let i=this._flatOptions.indexOf(t);this._open?this._adapter.highlightActiveOption(i):this._multiple||this._onSelect(t,i,!1)}}_onOptionsChanged(e){this._options=e,this._applyValue(this._value)}_onActiveOptionChanged(e){this._adapter.updateActiveDescendant(e)}get value(){return this._multiple?[...this._value]:this._value[0]}set value(e){let t;Array.isArray(e)?t=[...e]:t=e,this._applyValue(t)}get selectedIndex(){return this._multiple?[...this._selectedIndexes]:this._selectedIndexes[0]}set selectedIndex(e){this._options=this._adapter.getOptions();let t;if(Array.isArray(e)?t=[...e]:t=[e],t.sort(),this.multiple)this.value=t.map(i=>this._flatOptions[i]).filter(i=>i).map(i=>i.value);else{let i=this._flatOptions[t[t.length-1]];if(!i)return;this.value=i.value}}get options(){return this._adapter.getOptions()}set options(e){let t;C(e,1)?t=e.map(i=>b({},i)):t=e.map(i=>b({},i)),this._options=t,this._adapter.setOptions(t),this._initializeValue(),this._open&&this._adapter.setDropdownOptions(t)}get multiple(){return this._multiple}set multiple(e){this._multiple!==e&&(this._multiple=e,this._reset(),this._open&&this._closeDropdown(),this._adapter.setMultiple(this._multiple))}get open(){return this._open}set open(e){this._open!==e&&(e?this._openDropdown():this._closeDropdown())}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get selectedTextBuilder(){return this._selectedTextBuilder}set selectedTextBuilder(e){this._selectedTextBuilder=e}get optionLimit(){return this._optionLimit}set optionLimit(e){this._optionLimit=e}get popupClasses(){return this._popupClasses}set popupClasses(e){this._popupClasses=e}get popupHeaderBuilder(){return this._popupHeaderBuilder}set popupHeaderBuilder(e){this._popupHeaderBuilder=e}get popupFooterBuilder(){return this._popupFooterBuilder}set popupFooterBuilder(e){this._popupFooterBuilder=e}get popupElement(){return this._adapter.popupElement}get beforeValueChange(){return this._beforeValueChange}set beforeValueChange(e){this._beforeValueChange=e}};var p=class extends G{constructor(){super()}attributeChangedCallback(e,t,i){switch(super.attributeChangedCallback(e,t,i),e){case m.attributes.MULTIPLE:this.multiple=y(i);break;case m.attributes.VALUE:this.value=i;break}}appendOptions(e){this._foundation.appendOptions(e)}selectAll(){this._foundation.selectAll()}deselectAll(){this._foundation.deselectAll()}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}};a([d()],p.prototype,"value",2),a([d()],p.prototype,"selectedIndex",2),a([d()],p.prototype,"options",2),a([d()],p.prototype,"multiple",2),a([d()],p.prototype,"open",2),a([d()],p.prototype,"optionBuilder",2),a([d()],p.prototype,"selectedTextBuilder",2),a([d()],p.prototype,"beforeValueChange",2),a([d({set:!1})],p.prototype,"popupElement",2);var F=class extends B{constructor(e){super(e)}get popupElement(){var e;return(e=this._listDropdown)==null?void 0:e.dropdownElement}getOptions(){let e=Array.from(this._component.querySelectorAll(L.elementName));if(e.length)return e.map(t=>{let i=Array.from(t.querySelectorAll(o.elementName)),n=this._createOptionsFromElements(i);return{text:t.label,builder:t.builder,value:t.value,options:n}});{let t=Array.from(this._component.querySelectorAll(o.elementName));return this._createOptionsFromElements(t)}}_createOptionsFromElements(e){return e.map(t=>{let i=t.hasAttribute(o.attributes.OPTION_CLASS)?t.getAttribute(o.attributes.OPTION_CLASS):t.optionClass;return typeof i=="string"&&(i=i.split(" ")),{label:t.hasAttribute(o.attributes.LABEL)?t.getAttribute(o.attributes.LABEL):c(t.label)?t.label:t.innerText,value:t.hasAttribute(o.attributes.VALUE)?t.getAttribute(o.attributes.VALUE):t.value,disabled:t.hasAttribute(o.attributes.DISABLED),divider:t.hasAttribute(o.attributes.DIVIDER),optionClass:i,leadingIcon:t.hasAttribute(o.attributes.LEADING_ICON)?t.getAttribute(o.attributes.LEADING_ICON):t.leadingIcon,leadingIconClass:t.hasAttribute(o.attributes.LEADING_ICON_CLASS)?t.getAttribute(o.attributes.LEADING_ICON_CLASS):t.leadingIconClass,leadingIconType:t.hasAttribute(o.attributes.LEADING_ICON_TYPE)?t.getAttribute(o.attributes.LEADING_ICON_TYPE):t.leadingIconType,trailingIcon:t.hasAttribute(o.attributes.TRAILING_ICON)?t.getAttribute(o.attributes.TRAILING_ICON):t.trailingIcon,trailingIconClass:t.hasAttribute(o.attributes.TRAILING_ICON_CLASS)?t.getAttribute(o.attributes.TRAILING_ICON_CLASS):t.trailingIconClass,trailingIconType:t.hasAttribute(o.attributes.TRAILING_ICON_TYPE)?t.getAttribute(o.attributes.TRAILING_ICON_TYPE):t.trailingIconType,leadingBuilder:t.leadingBuilder,trailingBuilder:t.trailingBuilder}})}open(e){this._listDropdown=new k(this._targetElement,e),this._listDropdown.open()}close(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0)}setDismissListener(e){if(!this._listDropdown||!this._listDropdown.dropdownElement)return;let t=this._listDropdown.dropdownElement;t.targetElement&&t.targetElement.addEventListener(V.events.BLUR,e)}toggleOptionMultiple(e,t){var i;(i=this._listDropdown)==null||i.toggleOptionMultiple(e,t)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:-1}activateSelectedOption(){var e;(e=this._listDropdown)==null||e.activateSelectedOption()}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}highlightActiveOption(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}patchSelectedValues(e){var t;(t=this._listDropdown)==null||t.setSelectedValues(e)}setOptionsListener(e){let t=n=>{n.stopPropagation(),e(this.getOptions())};this._component.addEventListener(o.events.VALUE_CHANGE,t);let i=new MutationObserver(()=>e(this.getOptions()));return i.observe(this._component,{childList:!0,subtree:!0}),()=>{this._component.removeEventListener(o.events.VALUE_CHANGE,t),i.disconnect()}}setOptions(e,t=!0){t&&this._clearOptions();for(let i of e)if(w(i)){let n=this._createOptionGroupElement(i);for(let r of i.options){let u=this._createOptionElement(r);n.appendChild(u)}this._component.appendChild(n)}else{let n=this._createOptionElement(i);this._component.appendChild(n)}}appendDropdownOptions(e){var t;(t=this._listDropdown)==null||t.appendOptions(e)}setDropdownOptions(e){var t;(t=this._listDropdown)==null||t.setOptions(e)}scrollSelectedOptionIntoView(){var e;(e=this._listDropdown)==null||e.scrollSelectedOptionIntoView()}isFocusWithinPopup(e){return!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._listDropdown.dropdownElement.contains(e)}queueDropdownPositionUpdate(){this.popupElement&&window.requestAnimationFrame(()=>{let e=this.popupElement;e==null||e.position()})}_clearOptions(){Array.from(this._component.querySelectorAll(L.elementName)).forEach(i=>S(i)),Array.from(this._component.querySelectorAll(o.elementName)).forEach(i=>S(i))}_createOptionGroupElement(e){let t=document.createElement("forge-option-group");return Object.assign(t,e),t}_createOptionElement(e){let t=document.createElement("forge-option");return Object.assign(t,e),t.textContent=e.label,t}};export{m as a,N as b,C as c,w as d,W as e,H as f,p as g,F as h};
7
+ //# sourceMappingURL=chunk.4NV7AHF2.js.map