@tylertech/forge 2.2.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +5 -5
  2. package/dist/esm/accordion/index.js +6 -5
  3. package/dist/esm/app-bar/help-button/index.js +9 -8
  4. package/dist/esm/app-bar/index.js +15 -14
  5. package/dist/esm/app-bar/menu-button/index.js +5 -4
  6. package/dist/esm/app-bar/notification-button/index.js +5 -4
  7. package/dist/esm/app-bar/profile-button/index.js +7 -6
  8. package/dist/esm/app-bar/search/index.js +4 -3
  9. package/dist/esm/autocomplete/index.js +10 -9
  10. package/dist/esm/banner/index.js +5 -4
  11. package/dist/esm/bottom-sheet/index.js +5 -4
  12. package/dist/esm/busy-indicator/index.js +5 -4
  13. package/dist/esm/button/index.js +3 -2
  14. package/dist/esm/calendar/calendar-dropdown/index.js +2 -1
  15. package/dist/esm/calendar/calendar-menu/index.js +2 -1
  16. package/dist/esm/calendar/index.js +6 -5
  17. package/dist/esm/checkbox/index.js +2 -1
  18. package/dist/esm/chip-field/index.js +7 -6
  19. package/dist/esm/chips/chip/index.js +5 -4
  20. package/dist/esm/chips/chip-set/index.js +5 -4
  21. package/dist/esm/chips/index.js +6 -5
  22. package/dist/esm/chunks/{chunk.DVYPTR7X.js → chunk.2TEHKM2X.js} +3 -3
  23. package/dist/esm/chunks/{chunk.DVYPTR7X.js.map → chunk.2TEHKM2X.js.map} +0 -0
  24. package/dist/esm/chunks/{chunk.3AK3VGRT.js → chunk.3GRDFAFV.js} +2 -2
  25. package/dist/esm/chunks/{chunk.3AK3VGRT.js.map → chunk.3GRDFAFV.js.map} +0 -0
  26. package/dist/esm/chunks/{chunk.V6TRG2CM.js → chunk.3MO6XU44.js} +2 -2
  27. package/dist/esm/chunks/{chunk.V6TRG2CM.js.map → chunk.3MO6XU44.js.map} +0 -0
  28. package/dist/esm/chunks/{chunk.47D77ELY.js → chunk.4FHBJXB7.js} +2 -2
  29. package/dist/esm/chunks/{chunk.47D77ELY.js.map → chunk.4FHBJXB7.js.map} +0 -0
  30. package/dist/esm/chunks/{chunk.DWURTRGM.js → chunk.5E6UZZKY.js} +6 -6
  31. package/dist/esm/chunks/{chunk.DWURTRGM.js.map → chunk.5E6UZZKY.js.map} +0 -0
  32. package/dist/esm/chunks/chunk.6EGTLHJS.js +16 -0
  33. package/dist/esm/chunks/chunk.6EGTLHJS.js.map +7 -0
  34. package/dist/esm/chunks/{chunk.VEC77KBM.js → chunk.AHBDISRG.js} +2 -2
  35. package/dist/esm/chunks/{chunk.VEC77KBM.js.map → chunk.AHBDISRG.js.map} +0 -0
  36. package/dist/esm/chunks/{chunk.I5JCM7RT.js → chunk.AHMBGV4N.js} +2 -2
  37. package/dist/esm/chunks/{chunk.I5JCM7RT.js.map → chunk.AHMBGV4N.js.map} +0 -0
  38. package/dist/esm/chunks/{chunk.3NOZRZ7R.js → chunk.ANNBOFGK.js} +2 -2
  39. package/dist/esm/chunks/{chunk.3NOZRZ7R.js.map → chunk.ANNBOFGK.js.map} +0 -0
  40. package/dist/esm/chunks/{chunk.4ZBBOR4H.js → chunk.APUL33GR.js} +2 -2
  41. package/dist/esm/chunks/{chunk.4ZBBOR4H.js.map → chunk.APUL33GR.js.map} +0 -0
  42. package/dist/esm/chunks/{chunk.Y2ORADJS.js → chunk.BVGIWAUP.js} +6 -6
  43. package/dist/esm/chunks/{chunk.Y2ORADJS.js.map → chunk.BVGIWAUP.js.map} +0 -0
  44. package/dist/esm/chunks/{chunk.JPARYEE4.js → chunk.CKVCNPLI.js} +23 -22
  45. package/dist/esm/chunks/chunk.CKVCNPLI.js.map +7 -0
  46. package/dist/esm/chunks/{chunk.5VNEDRVC.js → chunk.CLQS7CFC.js} +3 -3
  47. package/dist/esm/chunks/{chunk.5VNEDRVC.js.map → chunk.CLQS7CFC.js.map} +0 -0
  48. package/dist/esm/chunks/{chunk.IOKXLJST.js → chunk.DJX5CEYP.js} +4 -4
  49. package/dist/esm/chunks/{chunk.IOKXLJST.js.map → chunk.DJX5CEYP.js.map} +0 -0
  50. package/dist/esm/chunks/{chunk.YKNYR3NX.js → chunk.EJHMX24S.js} +2 -2
  51. package/dist/esm/chunks/{chunk.YKNYR3NX.js.map → chunk.EJHMX24S.js.map} +0 -0
  52. package/dist/esm/chunks/{chunk.X6O5VLTN.js → chunk.EKIW7VYG.js} +2 -2
  53. package/dist/esm/chunks/{chunk.X6O5VLTN.js.map → chunk.EKIW7VYG.js.map} +1 -1
  54. package/dist/esm/chunks/{chunk.V6Z2W3QQ.js → chunk.EL74HZRY.js} +5 -5
  55. package/dist/esm/chunks/{chunk.V6Z2W3QQ.js.map → chunk.EL74HZRY.js.map} +0 -0
  56. package/dist/esm/chunks/{chunk.LCAG7643.js → chunk.EXKNFD5S.js} +4 -4
  57. package/dist/esm/chunks/{chunk.LCAG7643.js.map → chunk.EXKNFD5S.js.map} +0 -0
  58. package/dist/esm/chunks/{chunk.W7XXZJPD.js → chunk.F2TZX24O.js} +42 -42
  59. package/dist/esm/chunks/{chunk.W7XXZJPD.js.map → chunk.F2TZX24O.js.map} +0 -0
  60. package/dist/esm/chunks/{chunk.IWXT6VVJ.js → chunk.GOWHXADJ.js} +15 -1
  61. package/dist/esm/chunks/chunk.GOWHXADJ.js.map +7 -0
  62. package/dist/esm/chunks/{chunk.B425FZOZ.js → chunk.HRZBANYY.js} +2 -2
  63. package/dist/esm/chunks/{chunk.B425FZOZ.js.map → chunk.HRZBANYY.js.map} +0 -0
  64. package/dist/esm/chunks/{chunk.VWSGCG2H.js → chunk.HZML57TK.js} +3 -3
  65. package/dist/esm/chunks/{chunk.VWSGCG2H.js.map → chunk.HZML57TK.js.map} +0 -0
  66. package/dist/esm/chunks/{chunk.5CZWANU6.js → chunk.ID2ITG5T.js} +3 -3
  67. package/dist/esm/chunks/{chunk.5CZWANU6.js.map → chunk.ID2ITG5T.js.map} +0 -0
  68. package/dist/esm/chunks/{chunk.NL6CT7BU.js → chunk.ISR3SND2.js} +2 -2
  69. package/dist/esm/chunks/{chunk.NL6CT7BU.js.map → chunk.ISR3SND2.js.map} +0 -0
  70. package/dist/esm/chunks/{chunk.XJVLHRVJ.js → chunk.JB2PM7FT.js} +2 -2
  71. package/dist/esm/chunks/{chunk.XJVLHRVJ.js.map → chunk.JB2PM7FT.js.map} +0 -0
  72. package/dist/esm/chunks/{chunk.PZ25GQD2.js → chunk.K7P3WRAY.js} +3 -3
  73. package/dist/esm/chunks/{chunk.PZ25GQD2.js.map → chunk.K7P3WRAY.js.map} +0 -0
  74. package/dist/esm/chunks/{chunk.7M3P4QES.js → chunk.L4N2DKAS.js} +6 -6
  75. package/dist/esm/chunks/{chunk.7M3P4QES.js.map → chunk.L4N2DKAS.js.map} +0 -0
  76. package/dist/esm/chunks/{chunk.C44LSSHS.js → chunk.LCVWXB3K.js} +2 -2
  77. package/dist/esm/chunks/{chunk.C44LSSHS.js.map → chunk.LCVWXB3K.js.map} +0 -0
  78. package/dist/esm/chunks/{chunk.HVD3BBQG.js → chunk.MIGASQA3.js} +2 -2
  79. package/dist/esm/chunks/{chunk.HVD3BBQG.js.map → chunk.MIGASQA3.js.map} +0 -0
  80. package/dist/esm/chunks/{chunk.RF5UPII7.js → chunk.N3ZPWKJ5.js} +6 -6
  81. package/dist/esm/chunks/{chunk.RF5UPII7.js.map → chunk.N3ZPWKJ5.js.map} +0 -0
  82. package/dist/esm/chunks/{chunk.H3WRHPWA.js → chunk.NF2CS4ZM.js} +3 -3
  83. package/dist/esm/chunks/{chunk.H3WRHPWA.js.map → chunk.NF2CS4ZM.js.map} +0 -0
  84. package/dist/esm/chunks/{chunk.ZIFMMVW6.js → chunk.NFUWLTHW.js} +3 -3
  85. package/dist/esm/chunks/{chunk.ZIFMMVW6.js.map → chunk.NFUWLTHW.js.map} +0 -0
  86. package/dist/esm/chunks/{chunk.D5HPOHQX.js → chunk.O62N7AHR.js} +2 -2
  87. package/dist/esm/chunks/{chunk.D5HPOHQX.js.map → chunk.O62N7AHR.js.map} +0 -0
  88. package/dist/esm/chunks/{chunk.IYOZSEZ3.js → chunk.P7SAJ6M7.js} +2 -2
  89. package/dist/esm/chunks/{chunk.IYOZSEZ3.js.map → chunk.P7SAJ6M7.js.map} +0 -0
  90. package/dist/esm/chunks/{chunk.3VR7VHL5.js → chunk.PM7D2SUE.js} +1 -1
  91. package/dist/esm/chunks/{chunk.3VR7VHL5.js.map → chunk.PM7D2SUE.js.map} +0 -0
  92. package/dist/esm/chunks/{chunk.KQB2BYBK.js → chunk.PQ5LOH7W.js} +3 -3
  93. package/dist/esm/chunks/{chunk.KQB2BYBK.js.map → chunk.PQ5LOH7W.js.map} +0 -0
  94. package/dist/esm/chunks/{chunk.ZPABBQEA.js → chunk.PSHHY3ER.js} +4 -4
  95. package/dist/esm/chunks/{chunk.ZPABBQEA.js.map → chunk.PSHHY3ER.js.map} +0 -0
  96. package/dist/esm/chunks/{chunk.EQCPRLUV.js → chunk.PXXLO4HJ.js} +2 -2
  97. package/dist/esm/chunks/{chunk.EQCPRLUV.js.map → chunk.PXXLO4HJ.js.map} +0 -0
  98. package/dist/esm/chunks/{chunk.MSCWHFJZ.js → chunk.QFPOG3VH.js} +5 -5
  99. package/dist/esm/chunks/{chunk.MSCWHFJZ.js.map → chunk.QFPOG3VH.js.map} +0 -0
  100. package/dist/esm/chunks/{chunk.L65L5VJ6.js → chunk.R4UKTXEK.js} +3 -3
  101. package/dist/esm/chunks/{chunk.L65L5VJ6.js.map → chunk.R4UKTXEK.js.map} +0 -0
  102. package/dist/esm/chunks/{chunk.LKUKESRQ.js → chunk.R5RVCPM2.js} +2 -2
  103. package/dist/esm/chunks/{chunk.LKUKESRQ.js.map → chunk.R5RVCPM2.js.map} +0 -0
  104. package/dist/esm/chunks/{chunk.C64YUJHS.js → chunk.S6QD4UJN.js} +2 -2
  105. package/dist/esm/chunks/{chunk.C64YUJHS.js.map → chunk.S6QD4UJN.js.map} +0 -0
  106. package/dist/esm/chunks/{chunk.P477KUJ4.js → chunk.SSFSLBBM.js} +2 -2
  107. package/dist/esm/chunks/{chunk.P477KUJ4.js.map → chunk.SSFSLBBM.js.map} +0 -0
  108. package/dist/esm/chunks/{chunk.D47KCZF7.js → chunk.SSXNS4NR.js} +4 -4
  109. package/dist/esm/chunks/{chunk.D47KCZF7.js.map → chunk.SSXNS4NR.js.map} +0 -0
  110. package/dist/esm/chunks/{chunk.RMVJBNCY.js → chunk.U2X7YAXC.js} +2 -2
  111. package/dist/esm/chunks/{chunk.RMVJBNCY.js.map → chunk.U2X7YAXC.js.map} +0 -0
  112. package/dist/esm/chunks/{chunk.BORNGK7Q.js → chunk.VDKKTHAJ.js} +2 -2
  113. package/dist/esm/chunks/{chunk.BORNGK7Q.js.map → chunk.VDKKTHAJ.js.map} +1 -1
  114. package/dist/esm/chunks/{chunk.U7HKGOBR.js → chunk.WVVWDQLQ.js} +3 -3
  115. package/dist/esm/chunks/{chunk.U7HKGOBR.js.map → chunk.WVVWDQLQ.js.map} +0 -0
  116. package/dist/esm/chunks/{chunk.UM3J4AZ7.js → chunk.XN65LPA3.js} +3 -3
  117. package/dist/esm/chunks/{chunk.UM3J4AZ7.js.map → chunk.XN65LPA3.js.map} +0 -0
  118. package/dist/esm/chunks/{chunk.D4VIYWFB.js → chunk.XPC7GINT.js} +2 -2
  119. package/dist/esm/chunks/{chunk.D4VIYWFB.js.map → chunk.XPC7GINT.js.map} +0 -0
  120. package/dist/esm/chunks/{chunk.DKHOY6QU.js → chunk.YMWBTMB6.js} +2 -2
  121. package/dist/esm/chunks/{chunk.DKHOY6QU.js.map → chunk.YMWBTMB6.js.map} +0 -0
  122. package/dist/esm/chunks/{chunk.HWWCD755.js → chunk.ZAAM3GTQ.js} +3 -3
  123. package/dist/esm/chunks/{chunk.HWWCD755.js.map → chunk.ZAAM3GTQ.js.map} +0 -0
  124. package/dist/esm/circular-progress/index.js +1 -1
  125. package/dist/esm/color-picker/index.js +5 -4
  126. package/dist/esm/core/index.js +5 -1
  127. package/dist/esm/core/utils/index.js +5 -1
  128. package/dist/esm/date-picker/index.js +8 -7
  129. package/dist/esm/date-range-picker/index.js +8 -7
  130. package/dist/esm/dialog/index.js +5 -4
  131. package/dist/esm/drawer/base/index.js +2 -1
  132. package/dist/esm/drawer/drawer/index.js +3 -2
  133. package/dist/esm/drawer/index.js +5 -4
  134. package/dist/esm/drawer/mini-drawer/index.js +3 -2
  135. package/dist/esm/drawer/modal-drawer/index.js +3 -2
  136. package/dist/esm/expansion-panel/index.js +5 -4
  137. package/dist/esm/file-picker/index.js +4 -3
  138. package/dist/esm/icon/index.js +3 -2
  139. package/dist/esm/icon-button/index.js +4 -3
  140. package/dist/esm/index.js +54 -50
  141. package/dist/esm/label-value/index.js +1 -1
  142. package/dist/esm/list-dropdown/index.js +4 -3
  143. package/dist/esm/menu/index.js +7 -6
  144. package/dist/esm/open-icon/index.js +4 -3
  145. package/dist/esm/paginator/index.js +12 -11
  146. package/dist/esm/profile-card/index.js +4 -3
  147. package/dist/esm/quantity-field/index.js +5 -4
  148. package/dist/esm/select/core/index.js +6 -5
  149. package/dist/esm/select/index.js +11 -10
  150. package/dist/esm/select/select/index.js +9 -8
  151. package/dist/esm/select/select-dropdown/index.js +9 -8
  152. package/dist/esm/slider/index.js +2 -1
  153. package/dist/esm/stepper/index.js +5 -4
  154. package/dist/esm/stepper/step/index.js +4 -3
  155. package/dist/esm/stepper/stepper/index.js +5 -4
  156. package/dist/esm/switch/index.js +2 -1
  157. package/dist/esm/table/index.js +6 -5
  158. package/dist/esm/tabs/index.js +5 -4
  159. package/dist/esm/tabs/tab-bar/index.js +5 -4
  160. package/dist/esm/time-picker/index.js +7 -6
  161. package/dist/esm/toast/index.js +6 -5
  162. package/dist/forge-dark.css +1 -1
  163. package/esm/circular-progress/circular-progress.js +1 -1
  164. package/esm/core/utils/event-utils.d.ts +12 -0
  165. package/esm/core/utils/event-utils.js +16 -0
  166. package/esm/core/utils/index.d.ts +1 -0
  167. package/esm/core/utils/index.js +1 -0
  168. package/esm/drawer/base/base-drawer-adapter.d.ts +5 -0
  169. package/esm/drawer/base/base-drawer-adapter.js +13 -0
  170. package/esm/drawer/base/base-drawer-foundation.js +2 -0
  171. package/esm/label-value/label-value.js +1 -1
  172. package/esm/select/select/select-adapter.js +12 -10
  173. package/esm/select/select/select-foundation.d.ts +2 -0
  174. package/esm/select/select/select-foundation.js +6 -2
  175. package/esm/select/select/select.d.ts +0 -2
  176. package/esm/select/select/select.js +2 -6
  177. package/package.json +1 -1
  178. package/styles/circular-progress/_mixins.scss +0 -1
  179. package/styles/circular-progress/_variables.scss +0 -1
  180. package/styles/label-value/_mixins.scss +10 -7
  181. package/styles/label-value/_variables.scss +1 -0
  182. package/styles/select/select/_selector.scss +4 -2
  183. package/styles/select/select/select.scss +4 -0
  184. package/styles/theme/_theme-values.scss +1 -1
  185. package/styles/theme/_theme.scss +2 -1
  186. package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +0 -7
  187. package/dist/esm/chunks/chunk.JPARYEE4.js.map +0 -7
  188. package/styles/label-value/_base.scss +0 -252
  189. package/styles/label-value/_core.scss +0 -15
  190. package/styles/label-value/_selector.scss +0 -167
@@ -12,6 +12,10 @@
12
12
  @include mixins.host;
13
13
  }
14
14
 
15
+ :host(:focus) {
16
+ outline: none;
17
+ }
18
+
15
19
  :host([hidden]) {
16
20
  display: none;
17
21
  }
@@ -228,7 +228,7 @@ $property-values-dark: (
228
228
 
229
229
  // forge-specific theme properties
230
230
  tertiary: #{mdc-color-palette.$amber-200},
231
- border-color: rgba(255, 255, 255, 0.12),
231
+ border-color: #464646,
232
232
  form-field-icon-disabled-on-background: rgba(255, 255, 255, 0.26),
233
233
  form-field-disabled-on-background: #353535,
234
234
  form-field-text-disabled-on-background: rgba(255, 255, 255, 0.6),
@@ -9,6 +9,7 @@
9
9
  @use '@material/theme/theme-color' as mdc-theme-color;
10
10
  @use '@material/theme/replace';
11
11
  @use '@material/theme/keys' as mdc-keys;
12
+ @use '@material/elevation/elevation-theme' as elevation-theme;
12
13
  @use './custom-properties';
13
14
  @use './keys';
14
15
  @use './theme-values';
@@ -256,7 +257,7 @@
256
257
  @return #{$umbra-z-value} #{$umbra-color}, #{$penumbra-z-value} #{$penumbra-color}, #{$ambient-z-value} #{$ambient-color};
257
258
  }
258
259
 
259
- @mixin shadow($z-value, $color: $mdc-elevation-baseline-color, $opacity-boost: 0) {
260
+ @mixin shadow($z-value, $color: elevation-theme.$baseline-color, $opacity-boost: 0) {
260
261
  box-shadow: elevation($z-value, $color, $opacity-boost);
261
262
  }
262
263
 
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/drawer/base/base-drawer-constants.ts", "../../src/drawer/base/base-drawer-adapter.ts", "../../src/drawer/base/base-drawer-foundation.ts", "../../src/drawer/base/base-drawer.ts"],
4
- "sourcesContent": ["const attributes = {\n OPEN: 'open',\n DIRECTION: 'direction'\n};\n\nconst classes = {\n DRAWER: 'forge-drawer',\n LEFT: 'forge-drawer--left',\n RIGHT: 'forge-drawer--right',\n CLOSING: 'forge-drawer--closing',\n CLOSED: 'forge-drawer--closed',\n NO_TRANSITION: 'forge-drawer--no-transition'\n};\n\nconst selectors = {\n DRAWER: `.${classes.DRAWER}`\n};\n\nconst events = {\n AFTER_OPEN: `forge-drawer-after-open`,\n AFTER_CLOSE: `forge-drawer-after-close`\n};\n\nexport const BASE_DRAWER_CONSTANTS = {\n attributes,\n classes,\n selectors,\n events\n};\n\nexport type DrawerDirection = 'left' | 'right';\n", "import { addClass, getShadowElement, removeClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IBaseDrawerComponent } from './base-drawer';\nimport { DrawerDirection, BASE_DRAWER_CONSTANTS } from './base-drawer-constants';\n\nexport interface IBaseDrawerAdapter extends IBaseAdapter {\n setDirection(direction: DrawerDirection): void;\n removeDrawerClass(className: string | string[]): void;\n setDrawerClass(className: string | string[]): void;\n listenTransitionComplete(listener: () => void): void;\n}\n\nexport class BaseDrawerAdapter extends BaseAdapter<IBaseDrawerComponent> implements IBaseDrawerAdapter {\n protected _drawerElement: HTMLElement;\n private _activeTransitionListener: ((evt: TransitionEvent) => void) | undefined;\n\n constructor(protected _component: IBaseDrawerComponent) {\n super(_component);\n this._drawerElement = getShadowElement(this._component, BASE_DRAWER_CONSTANTS.selectors.DRAWER);\n }\n\n public setDirection(direction: DrawerDirection): void {\n switch (direction) {\n case 'left':\n this._drawerElement.classList.remove(BASE_DRAWER_CONSTANTS.classes.RIGHT);\n this._drawerElement.classList.add(BASE_DRAWER_CONSTANTS.classes.LEFT);\n break;\n case 'right':\n this._drawerElement.classList.remove(BASE_DRAWER_CONSTANTS.classes.LEFT);\n this._drawerElement.classList.add(BASE_DRAWER_CONSTANTS.classes.RIGHT);\n break;\n }\n }\n\n public removeDrawerClass(className: string | string[]): void {\n removeClass(className, this._drawerElement);\n }\n\n public setDrawerClass(className: string | string[]): void {\n addClass(className, this._drawerElement);\n }\n\n public listenTransitionComplete(listener: () => void): void {\n if (this._activeTransitionListener) {\n this._drawerElement.removeEventListener('transitionend', this._activeTransitionListener);\n }\n this._activeTransitionListener = (evt: TransitionEvent) => {\n if (evt.propertyName === 'transform') {\n if (this._activeTransitionListener) {\n this._drawerElement.removeEventListener('transitionend', this._activeTransitionListener);\n this._activeTransitionListener = undefined;\n }\n listener();\n }\n };\n this._drawerElement.addEventListener('transitionend', this._activeTransitionListener);\n }\n}\n", "import { ICustomElementFoundation, isDefined } from '@tylertech/forge-core';\nimport { IBaseDrawerAdapter } from './base-drawer-adapter';\nimport { DrawerDirection, BASE_DRAWER_CONSTANTS } from './base-drawer-constants';\n\nexport interface IBaseDrawerFoundation extends ICustomElementFoundation {\n direction: DrawerDirection;\n}\n\nexport class BaseDrawerFoundation implements IBaseDrawerFoundation {\n protected _open = true;\n protected _direction: DrawerDirection = 'left';\n private _hasInitialized = false;\n private _openAnimationListener: () => void;\n private _closeAnimationListener: () => void;\n\n constructor(protected _adapter: IBaseDrawerAdapter) {\n this._openAnimationListener = () => this._onOpenComplete();\n this._closeAnimationListener = () => this._onCloseComplete();\n }\n\n public connect(): void {\n this._applyOpen();\n this._applyDirection();\n this._hasInitialized = true;\n }\n\n public disconnect(): void {\n this._hasInitialized = false;\n }\n\n private _applyDirection(): void {\n this._adapter.setDirection(this._direction);\n this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.DIRECTION, isDefined(this._direction) ? this._direction.toString() : '');\n }\n\n private _onOpenComplete(): void {\n if (!this._open) {\n return;\n }\n this._adapter.emitHostEvent(BASE_DRAWER_CONSTANTS.events.AFTER_OPEN);\n }\n \n private _onCloseComplete(): void {\n if (this._open) {\n return;\n }\n this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);\n this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.NO_TRANSITION);\n this._adapter.setDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSED);\n this._adapter.emitHostEvent(BASE_DRAWER_CONSTANTS.events.AFTER_CLOSE);\n }\n\n protected _applyOpen(): void {\n if (this._open) {\n this._setDrawerOpenState();\n } else {\n this._setDrawerClosedState();\n }\n \n if (this._open) {\n this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);\n } else {\n this._adapter.removeHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);\n }\n }\n\n protected _setDrawerOpenState(): void {\n this._adapter.listenTransitionComplete(this._openAnimationListener);\n this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSED);\n this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);\n }\n\n protected _setDrawerClosedState(): void {\n this._adapter.listenTransitionComplete(this._closeAnimationListener);\n this._adapter.setDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n this._open = value;\n if (this._hasInitialized) {\n this._applyOpen();\n }\n }\n }\n\n public get direction(): DrawerDirection {\n return this._direction;\n }\n public set direction(value: DrawerDirection) {\n if (this._direction !== value) {\n this._direction = value;\n if (this._hasInitialized) {\n this._applyDirection();\n }\n }\n }\n}\n", "import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { BASE_DRAWER_CONSTANTS, DrawerDirection } from './base-drawer-constants';\nimport { BaseDrawerFoundation } from './base-drawer-foundation';\n\nexport interface IBaseDrawerComponent extends IBaseComponent {\n open: boolean;\n direction: DrawerDirection;\n}\n\ndeclare global {\n interface HTMLElementEventMap {\n 'forge-drawer-after-open': CustomEvent<void>;\n 'forge-drawer-after-close': CustomEvent<void>;\n }\n}\n\nexport abstract class BaseDrawerComponent<T extends BaseDrawerFoundation> extends BaseComponent implements IBaseDrawerComponent {\n public static get observedAttributes(): string[] {\n return [\n BASE_DRAWER_CONSTANTS.attributes.OPEN,\n BASE_DRAWER_CONSTANTS.attributes.DIRECTION\n ];\n }\n\n protected abstract _foundation: T;\n\n constructor() {\n super();\n }\n\n public connectedCallback(): void {\n this._foundation.connect();\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 BASE_DRAWER_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case BASE_DRAWER_CONSTANTS.attributes.DIRECTION:\n this.direction = newValue as DrawerDirection;\n break;\n }\n }\n\n /** Toggles whether a `dismissible` or `modal` drawer is open or not. Has no effect on `permanent` drawers. */\n @FoundationProperty()\n public open: boolean;\n\n /** Controls the laytout direction of the drawer for positioning on the left vs. right side of the screen. */\n @FoundationProperty()\n public direction: DrawerDirection;\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/select/select/select-constants.ts", "../../src/select/select/select-adapter.ts", "../../src/select/select/select-foundation.ts", "../../src/select/select/select.ts", "../../src/select/select/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}select`;\n\nconst classes = {\n ROOT: 'forge-select',\n OPENED: 'forge-select--opened',\n SELECTED_TEXT: 'forge-select__selected-text',\n DROPDOWN: 'forge-select__dropdown',\n LABEL_FLOAT: 'forge-select--label-float',\n GROUP_WRAPPER: 'forge-select__group-wrapper'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n SELECTED_TEXT: `.${classes.SELECTED_TEXT}`,\n LABEL: 'label#select-label',\n LEADING_SLOT: 'slot[name=leading]',\n ADDON_END_SLOT: 'slot[name=addon-end]'\n};\n\nconst attributes = {\n TYPE: 'type',\n VALUE: 'value',\n LABEL: 'label',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n PLACEHOLDER: 'placeholder',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SCROLLED_BOTTOM: `${elementName}-scrolled-bottom`\n};\n\nexport const SELECT_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events\n};\n\nexport {\n FieldDensityType as SelectDensityType,\n FieldFloatLabelType as SelectFloatLabelType,\n FieldShapeType as SelectShapeType\n} from '../../field/field-constants';\n", "import { calculateFontWidth, getShadowElement, IFontInfo, toggleClass, toggleAttribute } from '@tylertech/forge-core';\nimport { FloatingLabel, IFloatingLabel } from '../../floating-label/floating-label';\nimport { ISelectComponent } from './select';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { IBaseSelectAdapter, BaseSelectAdapter } from '../core';\nimport { IListDropdownConfig } from '../../list-dropdown/list-dropdown-constants';\nimport { FIELD_CONSTANTS } from '../../field/field-constants';\n\nexport type OptionListenerDestructor = () => void;\n\nexport interface ISelectAdapter extends IBaseSelectAdapter {\n initializeFloatingLabel(): IFloatingLabel;\n initializeLabel(): void;\n hasLabel(): boolean;\n setLabel(value: string): void;\n addRootClass(name: string): void;\n removeRootClass(name: string): void;\n setPlaceholderText(value: string): void;\n setSelectedText(value: string): void;\n addMouseDownListener(listener: (evt: MouseEvent) => void): void;\n removeMouseDownListener(listener: (evt: MouseEvent) => void): void;\n setLeadingListener(listener: (evt: Event) => void): void;\n removeLeadingListener(listener: (evt: Event) => void): void;\n setAddonEndListener(listener: (evt: Event) => void): void;\n removeAddonEndListener(listener: (evt: Event) => void): void;\n hasLeadingElement(): boolean;\n setDisabled(isDisabled: boolean): void;\n setInvalid(isInvalid: boolean): void;\n setRequired(isRequired: boolean): void;\n setRoomy(isRoomy: boolean): void;\n setDense(isDense: boolean): void;\n getLabelWidth(fontSize: number, fontFamily: string): number;\n getLabelFontMetrics(): IFontInfo;\n getTargetWidth(): number;\n hasAddonEndNodes(): boolean;\n setFocus(): void;\n isWithinSelf(element: HTMLElement): boolean;\n}\n\n/**\n * The DOM adapter behind the `<forge-select>` component.\n */\nexport class SelectAdapter extends BaseSelectAdapter implements ISelectAdapter {\n private _selectElement: HTMLElement;\n private _labelElement: HTMLLabelElement;\n private _selectedTextElement: HTMLElement;\n private _leadingSlot: HTMLSlotElement;\n private _addonEndSlot: HTMLSlotElement;\n\n constructor(component: ISelectComponent) {\n super(component);\n this._selectElement = getShadowElement(component, SELECT_CONSTANTS.selectors.ROOT);\n this._leadingSlot = getShadowElement(component, SELECT_CONSTANTS.selectors.LEADING_SLOT) as HTMLSlotElement;\n this._addonEndSlot = getShadowElement(this._component, SELECT_CONSTANTS.selectors.ADDON_END_SLOT) as HTMLSlotElement;\n this._selectedTextElement = getShadowElement(component, SELECT_CONSTANTS.selectors.SELECTED_TEXT) as HTMLElement;\n this._targetElement = this._selectElement;\n }\n\n public initializeLabel(): void {\n this._labelElement = getShadowElement(this._component, SELECT_CONSTANTS.selectors.LABEL) as HTMLLabelElement;\n }\n\n public hasLabel(): boolean {\n return !!this._labelElement;\n }\n\n public initializeAccessibility(): void {\n this._component.setAttribute('role', 'combobox');\n this._component.setAttribute('aria-live', 'assertive');\n this._component.setAttribute('aria-atomic', 'true');\n this._component.setAttribute('aria-haspopup', 'true');\n this._component.setAttribute('aria-expanded', 'false');\n }\n\n public initializeFloatingLabel(): IFloatingLabel {\n return new FloatingLabel(this._labelElement);\n }\n\n public setLabel(value: string): void {\n if (!this._component.hasAttribute('aria-label') || this._component.getAttribute('aria-label') === this._labelElement.textContent) {\n this._component.setAttribute('aria-label', value);\n }\n this._labelElement.textContent = value;\n }\n\n public addRootClass(name: string): void {\n this._selectElement.classList.add(name);\n }\n\n public removeRootClass(name: string): void {\n this._selectElement.classList.remove(name);\n }\n\n public setPlaceholderText(value: string): void {\n toggleAttribute(this._selectedTextElement, !!value, 'placeholder', value);\n }\n\n public addClickListener(listener: (evt: Event) => void): void {\n this._selectElement.addEventListener('click', listener);\n }\n\n public removeClickListener(listener: (evt: Event) => void): void {\n this._selectElement.removeEventListener('click', listener);\n }\n\n public addMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._selectElement.addEventListener('mousedown', listener);\n }\n\n public removeMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._selectElement.removeEventListener('mousedown', listener);\n }\n\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\n this._selectedTextElement.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\n this._selectedTextElement.removeEventListener(type, listener);\n }\n\n public open(config: IListDropdownConfig): void {\n super.open(config);\n this._component.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n this._component.setAttribute('aria-expanded', 'true');\n toggleClass(this._selectElement, true, SELECT_CONSTANTS.classes.OPENED);\n }\n\n public close(): void {\n this._component.setAttribute('aria-expanded', 'false');\n this._component.removeAttribute('aria-activedescendant');\n this._component.removeAttribute('aria-controls');\n toggleClass(this._selectElement, false, SELECT_CONSTANTS.classes.OPENED);\n super.close();\n }\n\n public updateActiveDescendant(id: string): void {\n toggleAttribute(this._component, !!id, 'aria-activedescendant', id);\n }\n\n public setSelectedText(value: string): void {\n this._selectedTextElement.textContent = value;\n }\n\n public setLeadingListener(listener: (evt: Event) => void): void {\n this._leadingSlot.addEventListener('slotchange', listener);\n }\n\n public removeLeadingListener(listener: (evt: Event) => void): void {\n this._leadingSlot.removeEventListener('slotchange', listener);\n }\n\n public setAddonEndListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.addEventListener('slotchange', listener);\n }\n\n public removeAddonEndListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.removeEventListener('slotchange', listener);\n }\n\n public hasLeadingElement(): boolean {\n return this._leadingSlot.assignedNodes().length > 0;\n }\n\n public setDisabled(isDisabled: boolean): void {\n toggleClass(this._selectElement, isDisabled, FIELD_CONSTANTS.classes.DISABLED);\n toggleAttribute(this._component, isDisabled, 'aria-disabled', 'true');\n this._selectedTextElement.tabIndex = isDisabled ? -1 : 0;\n }\n\n public setInvalid(isInvalid: boolean): void {\n toggleClass(this._selectElement, isInvalid, FIELD_CONSTANTS.classes.INVALID);\n toggleAttribute(this._component, isInvalid, 'aria-invalid', 'true');\n }\n\n public setRequired(isRequired: boolean): void {\n toggleClass(this._selectElement, isRequired, FIELD_CONSTANTS.classes.REQUIRED);\n toggleAttribute(this._component, isRequired, 'aria-required', 'true');\n }\n\n public setRoomy(isRoomy: boolean): void {\n toggleClass(this._selectElement, isRoomy, FIELD_CONSTANTS.classes.ROOMY);\n }\n\n public setDense(isDense: boolean): void {\n toggleClass(this._selectElement, isDense, FIELD_CONSTANTS.classes.DENSE);\n }\n\n public setMultiple(multiple: boolean): void {\n if (multiple) {\n this.setHostAttribute('aria-multiselectable', 'true');\n } else {\n this.removeHostAttribute('aria-multiselectable');\n }\n }\n\n public getLabelWidth(fontSize: number, fontFamily: string): number {\n return calculateFontWidth(this._labelElement.innerText, { fontSize, fontFamily });\n }\n\n public getLabelFontMetrics(): IFontInfo {\n const style = getComputedStyle(this._labelElement);\n return {\n fontSize: parseInt(style.fontSize || '16', 10),\n fontFamily: style.fontFamily || 'Roboto'\n };\n }\n\n public getTargetWidth(): number {\n return this._selectElement.getBoundingClientRect().width;\n }\n\n public hasAddonEndNodes(): boolean {\n if (!this._addonEndSlot) {\n return false;\n }\n return this._addonEndSlot.assignedNodes().length > 0;\n }\n\n public setFocus(): void {\n this._selectedTextElement.focus();\n }\n\n public isWithinSelf(element: HTMLElement): boolean {\n const isShadowChild = !!this._component.shadowRoot && this._component.shadowRoot.contains(element);\n return isShadowChild || this._component.contains(element);\n }\n}\n", "import { isDefined, getEventPath } from '@tylertech/forge-core';\nimport { IBaseSelectFoundation, ISelectOption, BaseSelectFoundation } from '../core';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { IFloatingLabel } from '../../floating-label';\nimport { ISelectAdapter } from './select-adapter';\nimport { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from '../../field/field-constants';\n\nexport interface ISelectFoundation extends IBaseSelectFoundation {\n label: string;\n disabled: boolean;\n density: FieldDensityType;\n invalid: boolean;\n required: boolean;\n floatLabelType: FieldFloatLabelType;\n placeholder: string;\n}\n\n/**\n * The foundation class behind the `<forge-select>` component.\n */\nexport class SelectFoundation extends BaseSelectFoundation<ISelectAdapter> implements ISelectFoundation {\n private _floatingLabelInstance: IFloatingLabel | undefined;\n private _shape: FieldShapeType = 'default';\n private _label = '';\n private _disabled = false;\n private _invalid = false;\n private _required = false;\n private _floatLabelType: FieldFloatLabelType = 'auto';\n private _placeholder: string;\n private _density: FieldDensityType = 'default';\n private _isInitialized = false;\n private _leadingChangeListener: (evt: Event) => void;\n private _addonEndChangeListener: (evt: Event) => void;\n private _mousedownListener: (evt: MouseEvent) => void;\n\n constructor(adapter: ISelectAdapter) {\n super(adapter);\n this._leadingChangeListener = evt => this._onLeadingSlotChanged(evt);\n this._addonEndChangeListener = evt => this._onAddonEndSlotChanged(evt);\n this._targetWidthCallback = () => this._adapter.getTargetWidth();\n this._mousedownListener = evt => this._onMouseDown(evt);\n }\n\n public initialize(): void {\n super.initialize();\n super.initializeTarget();\n this._initializeLabel();\n this._initializeAccessibility();\n\n this._adapter.setPlaceholderText(this._placeholder);\n this._applyDensity();\n this._setShapeType();\n\n this._detectLeadingElement();\n this._detectAddonEndContent();\n this._adapter.addMouseDownListener(this._mousedownListener);\n this._adapter.setLeadingListener(this._leadingChangeListener);\n this._adapter.setAddonEndListener(this._addonEndChangeListener);\n\n if (this._disabled) {\n this._adapter.setDisabled(true);\n }\n\n if (this._invalid) {\n this._adapter.setInvalid(true);\n }\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n super.disconnect();\n this._adapter.removeMouseDownListener(this._mousedownListener);\n this._adapter.removeLeadingListener(this._leadingChangeListener);\n this._adapter.removeAddonEndListener(this._leadingChangeListener);\n\n if (this._floatingLabelInstance) {\n this._floatingLabelInstance.destroy();\n this._floatingLabelInstance = undefined;\n }\n }\n\n private _initializeLabel(): void {\n this._adapter.initializeLabel();\n this._updateLabel();\n this._floatingLabelInstance = this._adapter.initializeFloatingLabel();\n if (this._floatLabelType === 'always') {\n this._floatLabel(true);\n } else {\n const hasText = !!this._getSelectedText();\n const hasPlaceholder = !!this._placeholder;\n this._floatLabel(hasText || hasPlaceholder);\n }\n }\n\n private _destroyLabel(): void {\n if (this._floatingLabelInstance) {\n this._floatingLabelInstance.destroy();\n this._floatingLabelInstance = undefined;\n }\n }\n\n protected _initializeValue(): void {\n super._initializeValue();\n if (this._selectedValues.length) {\n this._floatLabel(true);\n }\n }\n\n private _initializeAccessibility(): void {\n this._adapter.setMultiple(this._multiple);\n if (this._required) {\n this._adapter.setHostAttribute('aria-required', 'true');\n }\n if (this._disabled) {\n this._adapter.setHostAttribute('aria-disabled', 'true');\n }\n if (this._invalid) {\n this._adapter.setHostAttribute('aria-invalid', 'true');\n }\n }\n\n private _onMouseDown(evt: MouseEvent): void {\n const isElementWithinSelf = this._adapter.isWithinSelf(evt.target as HTMLElement);\n if (isElementWithinSelf) {\n evt.preventDefault();\n }\n }\n\n /** Called when the `slotchange` event fires on the \"leading\" slot element. */\n private _onLeadingSlotChanged(evt: Event): void {\n this._detectLeadingElement();\n }\n\n /** Called when the `slotchange` event fires on the \"addon-end\" slot element. */\n private _onAddonEndSlotChanged(evt: Event): void {\n this._detectAddonEndContent();\n }\n\n /** Updates the component state based on the existance of elements within the \"leading\" slot. */\n private _detectLeadingElement(): void {\n if (this._adapter.hasLeadingElement()) {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.LEADING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LEADING);\n }\n }\n\n private _detectAddonEndContent(): void {\n if (this._adapter.hasAddonEndNodes()) {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n }\n }\n\n protected _onClick(evt: MouseEvent): void {\n if (this._disabled) {\n return;\n }\n\n // We ignore clicks events that originate from without our addon-end container\n const composedPath = getEventPath(evt);\n if (composedPath.find(el => el.classList && el.classList.contains(FIELD_CONSTANTS.classes.ADDON_END_CONTAINER))) {\n return;\n }\n\n this.setFocus();\n super._onClick(evt);\n }\n\n /** Handles receiving focus on the selected text element. */\n protected _onFocus(evt: Event): void {\n if (this._disabled) {\n return;\n }\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._floatLabel(true);\n super._onFocus(evt);\n }\n\n protected _floatLabel(value: boolean): void {\n if (!this._floatingLabelInstance) {\n return;\n }\n\n if (value) {\n this._adapter.addRootClass(SELECT_CONSTANTS.classes.LABEL_FLOAT);\n } else {\n this._adapter.removeRootClass(SELECT_CONSTANTS.classes.LABEL_FLOAT);\n }\n\n if (this._floatLabelType === 'always') {\n value = true;\n }\n\n this._floatingLabelInstance.float(value, this._floatLabelType === 'always');\n }\n\n /** Handles losing focus on the selected text element. */\n protected _onBlur(evt: FocusEvent): void {\n super._onBlur(evt);\n this._setBlurred();\n }\n\n protected _onDismiss(): void {\n super._onDismiss();\n this._setBlurred();\n }\n\n protected _onDropdownScrollEnd(): void {\n this._adapter.emitHostEvent(SELECT_CONSTANTS.events.SCROLLED_BOTTOM);\n }\n\n /**\n * Handles selecting an item in the dropdown.\n * @param {ISelectOption} option The selected option.\n * @param {number} optionIndex The index of the selected option.\n */\n protected async _onSelect(option: ISelectOption, optionIndex: number, closeDropdown = true): Promise<boolean> {\n const result = await super._onSelect(option, optionIndex, closeDropdown);\n if (result) {\n this._adapter.setSelectedText(this._getSelectedText());\n if (closeDropdown && !this._multiple) {\n this._adapter.setFocus();\n }\n }\n return result;\n }\n\n /** Updates the state of the component to not contain focus. */\n private _setBlurred(): void {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n if (!this._selectedValues.length && !this._placeholder?.length) {\n this._floatLabel(false);\n }\n }\n\n /** Resets the state of the component to original values. */\n protected _reset(): void {\n super._reset();\n this._adapter.setSelectedText('');\n this._floatLabel(!this._placeholder?.length);\n }\n\n private _updateLabel(): void {\n if (this._adapter.hasLabel()) {\n this._adapter.setLabel(this._label);\n }\n if (this._label && this._density !== 'dense') {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.LABEL);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LABEL);\n }\n }\n\n protected _applyValue(value: string | string[]): void {\n super._applyValue(value);\n\n // Update the state of the component based on the existence of a selected value\n const text = this._getSelectedText();\n this._adapter.setSelectedText(text);\n if (!this._open) {\n this._floatLabel(!!text || !!this._placeholder);\n }\n }\n\n private _applyDensity(): void {\n this._adapter.setRoomy(this._density === 'roomy');\n this._adapter.setDense(this._density === 'dense');\n }\n\n protected _setShapeType(): void {\n if (this._shape === 'rounded') {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n }\n }\n\n public setFocus(): void {\n this._adapter.setFocus();\n }\n\n /** Gets/sets the label text. */\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (this._label !== value) {\n this._label = value;\n this._updateLabel();\n if (this._label) {\n this._initializeLabel();\n this._adapter.setHostAttribute(SELECT_CONSTANTS.attributes.LABEL, this._label);\n } else {\n this._destroyLabel();\n this.required = false;\n this._adapter.removeHostAttribute(SELECT_CONSTANTS.attributes.LABEL);\n }\n }\n }\n\n public get shape(): FieldShapeType {\n return this._shape;\n }\n public set shape(value: FieldShapeType) {\n if (this._shape !== value) {\n this._shape = value;\n\n if (this._isInitialized) {\n this._setShapeType();\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.SHAPE, this._shape);\n }\n }\n\n /** Gets/sets the disabled state. */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n this._initializeLabel();\n }\n }\n\n /** Gets/sets the invalid state. */\n public get invalid(): boolean {\n return this._invalid;\n }\n public set invalid(value: boolean) {\n if (this._invalid !== value) {\n this._invalid = value;\n this._adapter.setInvalid(this._invalid);\n }\n }\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required !== value) {\n this._required = value;\n this._adapter.setRequired(this._required);\n this._adapter.toggleHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED, this._required);\n }\n }\n\n /** Gets/sets the dense state. */\n public get density(): FieldDensityType {\n return this._density;\n }\n public set density(value: FieldDensityType) {\n if (this._density !== value) {\n this._density = value;\n this._applyDensity();\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.DENSITY, this._density.toString());\n this._initializeLabel(); // This ensures label is removed while dense\n }\n }\n\n /** Gets/sets the floating label type. */\n public get floatLabelType(): FieldFloatLabelType {\n return this._floatLabelType;\n }\n public set floatLabelType(value: FieldFloatLabelType) {\n if (this._floatLabelType !== value) {\n this._floatLabelType = value;\n this._floatLabel(this._floatLabelType === 'always' || !!this._placeholder);\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE, isDefined(this._floatLabelType) ? this._floatLabelType.toString() : '');\n }\n }\n\n /** Gets/sets the placeholder text. */\n public get placeholder(): string {\n return this._placeholder;\n }\n public set placeholder(value: string) {\n if (this._placeholder !== value) {\n this._placeholder = value;\n this._adapter.setPlaceholderText(this._placeholder);\n this._initializeLabel();\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { tylIconArrowDropDown, tylIconCheckBoxOutlineBlank, tylIconCheckBox } from '@tylertech/tyler-icons/standard';\nimport { SelectAdapter } from './select-adapter';\nimport { SelectFoundation } from './select-foundation';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { OptionComponent } from '../option';\nimport { PopupComponent } from '../../popup';\nimport { ListComponent, ListItemComponent } from '../../list';\nimport { OptionGroupComponent } from '../option-group';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseSelectComponent, BASE_SELECT_CONSTANTS } from '../core';\nimport { CircularProgressComponent } from '../../circular-progress';\nimport { ScaffoldComponent } from '../../scaffold';\nimport { ToolbarComponent } from '../../toolbar';\nimport { IconButtonComponent } from '../../icon-button';\nimport { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from '../../field/field-constants';\nimport { IBaseSelectComponent } from '../core/base-select';\n\nconst template = '<template><div class=\\\"forge-select__wrapper\\\" part=\\\"root\\\"><div class=\\\"forge-select forge-field\\\" part=\\\"container\\\"><div class=\\\"forge-select__leading-container\\\" part=\\\"leading-container\\\"><slot name=\\\"leading\\\"></slot></div><div class=\\\"forge-field__label-input-container\\\" part=\\\"label-input-container\\\"><div id=\\\"selected-text\\\" class=\\\"forge-select__selected-text\\\" tabindex=\\\"0\\\" part=\\\"text\\\"></div><label id=\\\"select-label\\\" part=\\\"label\\\"></label></div><forge-icon class=\\\"forge-select__dropdown-icon\\\" name=\\\"arrow_drop_down\\\" part=\\\"icon\\\"></forge-icon><div class=\\\"forge-field__addon-end-container\\\" part=\\\"addon-end-container\\\"><slot name=\\\"addon-end\\\"></slot></div></div><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-select{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;z-index:1;z-index:var(--forge-z-index-surface,1);margin-top:0;margin-top:var(--forge-select-margin-top,0)}.forge-select.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-select:not(.forge-field--dense):not(.forge-field--roomy){height:3rem;height:var(--forge-select-height,3rem)}.forge-select.forge-field--roomy:not(.forge-field--dense){height:3.5rem;height:var(--forge-select-height,3.5rem)}.forge-select.forge-field--dense:not(.forge-field--roomy){height:1.5rem;height:var(--forge-select-height,1.5rem)}.forge-field::before{content:\\\"\\\";display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;z-index:-1;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;height:100%;pointer-events:none;border-style:solid;border-width:1px;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);background-color:transparent;background-color:var(--forge-select-theme-background,transparent);text-align:left}.forge-field[dir=rtl]::before,[dir=rtl] .forge-field::before{text-align:right}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused)::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-icon-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused):hover::before{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled)::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-field--invalid:not(.forge-field--disabled)::before{border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-field--invalid:not(.forge-field--disabled):not(.forge-field--focused):hover::before{border-color:#db8a98;border-color:var(--forge-theme-error-hover,#db8a98)}.forge-field--disabled::before{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--shape-rounded){border-radius:4px}.forge-field:not(.forge-field--shape-rounded)::before{border-radius:4px}.forge-field--shape-rounded{border-radius:28px}.forge-field--shape-rounded::before{border-radius:28px}.forge-field--disabled::before{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5)}.forge-field--focused::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);border-width:2px}.forge-field__label-input-container{position:relative;-webkit-box-flex:1;flex:1 1 0.0001px;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;min-width:0}.forge-field~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto}.forge-field~::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field--roomy:not(.forge-field--dense)~::slotted([slot=helper-text]){font-size:.875rem}.forge-field--dense:not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field~::slotted([slot=helper-text]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled)~::slotted([slot=helper-text]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field:not(.forge-field--shape-rounded)~::slotted([slot=helper-text]){margin-left:12px}.forge-field--shape-rounded~::slotted([slot=helper-text]){margin-left:32px}.forge-field ::slotted([slot=leading]){display:-webkit-box;display:flex;align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=leading]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=leading]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=leading]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=leading]){margin:0 4px}.forge-field ::slotted([slot=leading]:not(forge-icon-button)){padding:6px}.forge-field__addon-end-container{display:none}.forge-field--addon-end .forge-field__addon-end-container{height:100%;width:auto;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;padding:0 4px;border-left-width:1px;border-left-style:solid;-webkit-transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.54);border-left-color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container:hover{border-left-color:rgba(0,0,0,.87);border-left-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#3f51b5;border-left-color:var(--mdc-theme-primary,#3f51b5)}.forge-field.forge-field--invalid:not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#b00020;border-left-color:var(--mdc-theme-error,#b00020)}.forge-field.forge-field--invalid:not(.forge-field--focused):not(.forge-field--disabled) .forge-field__addon-end-container:hover{border-left-color:#db8a98;border-left-color:var(--forge-theme-error-hover,#db8a98)}.forge-field.forge-field--disabled .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.12);border-left-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=addon-end]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=addon-end]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=addon-end]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-select__leading-container{display:-webkit-box;display:flex;align-self:center}.forge-field label{color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65));pointer-events:none;right:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);font-size:var(--mdc-typography-subtitle1-font-size, 1rem);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.1rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;-webkit-transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field label[dir=rtl],[dir=rtl] .forge-field label{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) label{display:none}.forge-field--required label::after{content:none}.forge-field--required label::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\\\"*\\\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label{font-size:1rem}.forge-field--roomy:not(.forge-field--dense) label{font-size:1rem}.forge-field--disabled label{color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-field--invalid:not(.forge-field--disabled) label{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) label{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label{top:1rem}.forge-field--roomy:not(.forge-field--dense) label{top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) label{left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) label{left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) label{padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded label{padding-right:32px}.forge-field label.forge-floating-label--float-above{color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65))}.forge-field--disabled label.forge-floating-label--float-above{color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6))}.forge-field--invalid:not(.forge-field--disabled) label.forge-floating-label--float-above{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) label.forge-floating-label--float-above{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--float-above{-webkit-transform:translateY(-.54rem) scale(.8125);transform:translateY(-.54rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--float-above{-webkit-transform:translateY(-.72rem) scale(.8125);transform:translateY(-.72rem) scale(.8125);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe{-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.62rem) scale(1);transform:translateY(-.62rem) scale(1);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe{-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.8rem) scale(1);transform:translateY(-.8rem) scale(1);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--unfloat-above-start-keyframe{-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.62rem) scale(.8125);transform:translateY(-.62rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--unfloat-above-start-keyframe{-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.8rem) scale(.8125);transform:translateY(-.8rem) scale(.8125);cursor:auto}.forge-field .forge-select__selected-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));display:block;overflow:hidden;text-overflow:ellipsis;align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;white-space:nowrap;-webkit-transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);border:none;background:0 0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0;font-size:var(--forge-select-font-size, 1rem);padding:0 12px;padding-right:0}.forge-field:not(.forge-field--disabled) .forge-select__selected-text{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled .forge-select__selected-text{color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6));cursor:not-allowed}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) .forge-select__selected-text{font-size:1rem}.forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{font-size:1rem}.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{font-size:.875rem}.forge-field .forge-select__selected-text{padding:0 12px}.forge-field--label .forge-select__selected-text{padding-top:24px}.forge-field--roomy.forge-field--label .forge-select__selected-text{padding-top:29px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-select__selected-text{padding-left:32px}.forge-field--leading .forge-select__selected-text{padding-left:0}.forge-field--label .forge-select__selected-text{padding-bottom:3px}.forge-field--roomy.forge-field--label .forge-select__selected-text{padding-bottom:8px}.forge-field:not(.forge-field--label):not(.forge-field--dense):not(.forge-field--roomy) .forge-select__selected-text{line-height:var(--forge-select-height, 3rem)}.forge-field:not(.forge-field--label).forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{line-height:var(--forge-select-height-roomy, 3.5rem)}.forge-field:not(.forge-field--label).forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{line-height:var(--forge-select-height-dense, 1.5rem)}.forge-field.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{padding:0 8px}.forge-field .forge-select__selected-text:empty::before{content:attr(placeholder);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field .forge-select__selected-text{padding-top:25px}.forge-field .forge-select__dropdown-icon{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;width:24px;height:100%;-webkit-box-flex:0;flex:none;-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);pointer-events:none;margin-right:8px}.forge-select--opened .forge-field .forge-select__dropdown-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-select--opened .forge-field .forge-select__dropdown-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) .forge-select__dropdown-icon{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) .forge-select__dropdown-icon{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled .forge-select__dropdown-icon{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field.forge-field--dense:not(.forge-field--roomy) .forge-select__dropdown-icon{margin-right:4px}:host{display:block;contain:layout}:host([hidden]){display:none}';\n\nexport interface ISelectComponent extends IBaseSelectComponent {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n label: string;\n disabled: boolean;\n placeholder: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-select': ISelectComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-select-scrolled-bottom': CustomEvent<void>;\n 'change': CustomEvent<any>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-select>` component.\n */\n@CustomElement({\n name: SELECT_CONSTANTS.elementName,\n dependencies: [\n OptionComponent,\n OptionGroupComponent,\n PopupComponent,\n ListComponent,\n ListItemComponent,\n CircularProgressComponent,\n IconComponent,\n ScaffoldComponent,\n ToolbarComponent,\n IconButtonComponent\n ]\n})\nexport class SelectComponent extends BaseSelectComponent<SelectFoundation> implements ISelectComponent {\n public static get observedAttributes(): string[] {\n return [\n FIELD_CONSTANTS.attributes.DENSITY,\n FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE,\n FIELD_CONSTANTS.attributes.SHAPE,\n FIELD_CONSTANTS.attributes.INVALID,\n FIELD_CONSTANTS.attributes.REQUIRED,\n SELECT_CONSTANTS.attributes.LABEL,\n SELECT_CONSTANTS.attributes.MULTIPLE,\n SELECT_CONSTANTS.attributes.VALUE,\n SELECT_CONSTANTS.attributes.DISABLED,\n SELECT_CONSTANTS.attributes.PLACEHOLDER,\n SELECT_CONSTANTS.attributes.OBSERVE_SCROLL,\n SELECT_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,\n BASE_SELECT_CONSTANTS.attributes.POPUP_CLASSES,\n BASE_SELECT_CONSTANTS.attributes.OPTION_LIMIT,\n BASE_SELECT_CONSTANTS.attributes.SYNC_POPUP_WIDTH\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define([tylIconArrowDropDown, tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new SelectFoundation(new SelectAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FIELD_CONSTANTS.attributes.DENSITY:\n this.density = newValue as FieldDensityType;\n return;\n case FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE:\n this.floatLabelType = newValue as FieldFloatLabelType;\n return;\n case FIELD_CONSTANTS.attributes.SHAPE:\n this.shape = newValue as FieldShapeType;\n break;\n case FIELD_CONSTANTS.attributes.INVALID:\n this.invalid = coerceBoolean(newValue);\n return;\n case FIELD_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n return;\n case SELECT_CONSTANTS.attributes.LABEL:\n this.label = newValue;\n return;\n case SELECT_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n return;\n case SELECT_CONSTANTS.attributes.PLACEHOLDER:\n this.placeholder = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the label text. */\n @FoundationProperty()\n public label: string;\n\n /** Gets/sets the disabled state. */\n @FoundationProperty()\n public disabled: boolean;\n\n /** Gets/sets the invalid state. */\n @FoundationProperty()\n public invalid: boolean;\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n @FoundationProperty()\n public required: boolean;\n\n /** Controls the density type. */\n @FoundationProperty()\n public density: FieldDensityType;\n\n /** Whether the label should always float, never float or float as the user types. */\n @FoundationProperty()\n public floatLabelType: FieldFloatLabelType;\n\n /** The shape type to use. */\n @FoundationProperty()\n public shape: FieldShapeType;\n\n /** Gets/sets the placeholder text. */\n @FoundationProperty()\n public placeholder: string;\n\n /** Sets focus to the internal button element. */\n public override focus(): void {\n this._foundation.setFocus();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { SelectComponent } from './select';\n\nexport * from './select-adapter';\nexport * from './select-constants';\nexport * from './select-foundation';\nexport * from './select';\n\nexport function defineSelectComponent(): void {\n defineCustomElement(SelectComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,252 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- @use 'sass:map';
7
- @use '@material/theme/theme' as mdc-theme;
8
- @use '@material/typography/typography' as mdc-typography;
9
- @use '../field/variables' as field-variables;
10
- @use './variables';
11
-
12
- // Root
13
- @mixin root-core {
14
- display: flex;
15
- box-sizing: border-box;
16
- }
17
-
18
- @mixin root-min-height($layout-state, $orientation-state) {
19
- // Single Line
20
- @if $orientation-state == single-line {
21
- min-height: map.get(field-variables.$field, height, dense);
22
- }
23
- @else if $orientation-state == default {
24
- // Default
25
- @if $layout-state == default {
26
- min-height: map.get(field-variables.$field, height, default);
27
- }
28
- // Roomy
29
- @else if $layout-state == roomy {
30
- min-height: map.get(field-variables.$field, height, roomy);
31
- }
32
- // Dense
33
- @else if $layout-state == dense {
34
- // Field doesn't use label when dense so we use default height when dense for default orientation.
35
- min-height: map.get(field-variables.$field, height, default);
36
- }
37
- }
38
- @include _error-orientation-state(root-min-height, $orientation-state);
39
- @include _error-layout-state(root-min-height, $layout-state);
40
- }
41
-
42
- @mixin root-padding-top($layout-state) {
43
- // Default
44
- @if $layout-state == default {
45
- padding-top: map.get(variables.$root, padding, top, default);
46
- }
47
- // Roomy
48
- @else if $layout-state == roomy {
49
- padding-top: map.get(variables.$root, padding, top, roomy);
50
- }
51
- @include _error-layout-state(root-padding-top, $layout-state);
52
- }
53
-
54
- // Icon Container
55
-
56
- @mixin icon-container-core {
57
- display: flex;
58
- align-items: flex-start;
59
- }
60
-
61
- // Container
62
-
63
- @mixin container-orientation($orientation-state) {
64
- // Default
65
- @if $orientation-state == default {
66
- display: flex;
67
- flex-direction: column;
68
- align-items: flex-start;
69
- }
70
- // Single Line
71
- @else if $orientation-state == single-line {
72
- display: flex;
73
- flex-direction: row;
74
- align-items: center;
75
- }
76
- @include _error-orientation-state(container-orientation, $orientation-state);
77
- }
78
-
79
- @mixin container-align($align-state) {
80
- // Left
81
- @if $align-state == left {
82
- align-items: flex-start;
83
- }
84
- // Center
85
- @else if $align-state == center {
86
- align-items: center;
87
- }
88
- // Right
89
- @else if $align-state == right {
90
- align-items: flex-end;
91
- }
92
- @include _error-align-state(root-align, $align-state);
93
- }
94
-
95
- @mixin container-ellipsis {
96
- overflow: hidden;
97
- }
98
-
99
- // Icon
100
- @mixin icon-core {
101
- @include mdc-theme.property(color, text-primary-on-background);
102
-
103
- font-size: 1.25rem !important;
104
- margin-right: 8px;
105
- }
106
-
107
- // Label
108
- @mixin label-core {
109
- @include mdc-typography.typography(subtitle1, $exclude-props: (line-height, font-size));
110
- line-height: 1rem;
111
- @include mdc-theme.property(color, text-secondary-on-background);
112
- }
113
-
114
- @mixin label-font-size($layout-state, $orientation-state) {
115
- // Default, Dense or Single Line
116
- @if $orientation-state == single-line or $layout-state == default or $layout-state == dense {
117
- font-size: map.get(field-variables.$label, font-size, default);
118
- }
119
- // Roomy
120
- @else if $layout-state == roomy and $orientation-state != single-line {
121
- font-size: map.get(field-variables.$label, font-size, roomy);
122
- }
123
- @include _error-layout-state(label-font-size, $layout-state);
124
- @include _error-orientation-state(label-margin-right, $orientation-state);
125
- }
126
-
127
- @mixin label-transform($layout-state) {
128
- // Default
129
- @if $layout-state == default or $layout-state == dense {
130
- transform:
131
- translateX(map.get(variables.$label, transform, translate, x, default))
132
- translateY(map.get(variables.$label, transform, translate, y, default))
133
- scale(map.get(field-variables.$label, float-scale, default));
134
- }
135
- // Roomy
136
- @else if $layout-state == roomy {
137
- transform:
138
- translateX(map.get(variables.$label, transform, translate, x, roomy))
139
- translateY(map.get(variables.$label, transform, translate, y, roomy))
140
- scale(map.get(field-variables.$label, float-scale, default));
141
- }
142
- @include _error-layout-state(label-transform, $layout-state);
143
- }
144
-
145
- @mixin label-margin-bottom($layout-state) {
146
- // Default
147
- @if $layout-state == default or $layout-state == dense {
148
- margin-bottom: map.get(variables.$label, margin, bottom, default);
149
- }
150
- // Roomy
151
- @else if $layout-state == roomy {
152
- margin-bottom: map.get(variables.$label, margin, bottom, roomy);
153
- }
154
- @include _error-layout-state(label-margin-bottom, $layout-state);
155
- }
156
-
157
- @mixin label-margin-right($orientation-state) {
158
- // Single Line
159
- @if $orientation-state == single-line {
160
- margin-right: map.get(variables.$label, margin, right, single-line);
161
- }
162
- @include _error-orientation-state(label-margin-right, $orientation-state);
163
- }
164
-
165
- @mixin label-width($orientation-state) {
166
- // Default
167
- @if $orientation-state == default {
168
- max-width: 100%;
169
- }
170
- // Single Line
171
- @else if $orientation-state == single-line {
172
- flex: none;
173
- }
174
- @include _error-orientation-state(label-width, $orientation-state);
175
- }
176
-
177
- @mixin label-ellipsis {
178
- @include _ellipsis;
179
- }
180
-
181
- // Value
182
-
183
- @mixin value-core {
184
- @include mdc-typography.typography(body1, $exclude-props: (font-size, line-height));
185
- line-height: 1.25rem;
186
- }
187
-
188
- @mixin value-font-size($layout-state) {
189
- // Default
190
- @if $layout-state == default {
191
- font-size: map.get(field-variables.$input, font-size, default);
192
- }
193
- // Roomy
194
- @else if $layout-state == roomy {
195
- font-size: map.get(field-variables.$input, font-size, roomy);
196
- }
197
- // Dense
198
- @else if $layout-state == dense {
199
- font-size: map.get(field-variables.$input, font-size, dense);
200
- }
201
- @include _error-layout-state(value-font-size, $layout-state);
202
- }
203
-
204
- @mixin value-width($orientation-state) {
205
- // Default
206
- @if $orientation-state == default {
207
- max-width: 100%;
208
- }
209
- // Single line
210
- @else if $orientation-state == single-line {
211
- flex: none;
212
- }
213
- @include _error-orientation-state(value-width, $orientation-state);
214
- }
215
-
216
- @mixin value-empty {
217
- @include mdc-theme.property(color, text-secondary-on-background);
218
- font-style: italic;
219
- }
220
-
221
- @mixin value-ellipsis {
222
- @include _ellipsis;
223
- }
224
-
225
- @mixin _ellipsis {
226
- overflow: hidden;
227
- text-overflow: ellipsis;
228
- white-space: nowrap;
229
- }
230
-
231
- @mixin _error-layout-state($mixin-name, $layout-state) {
232
- @if $layout-state != default
233
- and $layout-state != roomy
234
- and $layout-state != dense {
235
- @error 'mixin #{$mixin-name} must take a $layout-state arguement of [default, roomy, dense]. Got #{$layout-state}.';
236
- }
237
- }
238
-
239
- @mixin _error-align-state($mixin-name, $align-state) {
240
- @if $align-state != left
241
- and $align-state != center
242
- and $align-state != right {
243
- @error 'mixin #{$mixin-name} must take a $align-state arguement of [left, center, right]. Got #{$align-state}.';
244
- }
245
- }
246
-
247
- @mixin _error-orientation-state($mixin-name, $orientation-state) {
248
- @if $orientation-state != default
249
- and $orientation-state != single-line {
250
- @error 'mixin #{$mixin-name} must take a $orientation-state arguement of [default, single]. Got #{$orientation-state}.';
251
- }
252
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- @use './selector';
7
-
8
- @mixin core-styles {
9
- @include selector.root;
10
- @include selector.icon-container;
11
- @include selector.container;
12
- @include selector.icon;
13
- @include selector.label;
14
- @include selector.value;
15
- }
@@ -1,167 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- @use './base';
7
-
8
- @mixin root {
9
- // Core
10
- .forge-label-value {
11
- @include base.root-core;
12
- }
13
- // Min Height
14
- :host(:not([single-line])) .forge-label-value {
15
- &:not(.forge-label-value--dense):not(.forge-label-value--roomy) {
16
- @include base.root-min-height(default, default);
17
- }
18
- &--roomy:not(.forge-label-value--dense) {
19
- @include base.root-min-height(roomy, default);
20
- }
21
- &--dense:not(.forge-label-value--roomy) {
22
- @include base.root-min-height(dense, default);
23
- }
24
- }
25
- :host([single-line]) .forge-label-value {
26
- @include base.root-min-height(default, single-line);
27
- }
28
- // Padding Top
29
- :host(:not([single-line])) .forge-label-value {
30
- &:not(.forge-label-value--roomy) {
31
- @include base.root-padding-top(default);
32
- }
33
- &--roomy {
34
- @include base.root-padding-top(roomy);
35
- }
36
- }
37
- }
38
-
39
- @mixin icon-container {
40
- // Core
41
- .forge-label-value__icon-container {
42
- @include base.icon-container-core;
43
- }
44
- }
45
-
46
- @mixin container {
47
- // Orientation
48
- :host(:not([single-line])) .forge-label-value__container {
49
- @include base.container-orientation(default);
50
- }
51
- :host([single-line]) .forge-label-value__container {
52
- @include base.container-orientation(single-line);
53
- }
54
- // Align
55
- :host(:not([single-line])) .forge-label-value {
56
- &--align-center {
57
- .forge-label-value__container {
58
- @include base.container-align(center);
59
- }
60
- }
61
- &--align-right {
62
- .forge-label-value__container {
63
- @include base.container-align(right);
64
- }
65
- }
66
- }
67
- // Ellipsis
68
- .forge-label-value--ellipsis .forge-label-value__container {
69
- @include base.container-ellipsis;
70
- }
71
- }
72
-
73
- @mixin icon {
74
- // Core
75
- ::slotted([slot='icon']) {
76
- @include base.icon-core;
77
- }
78
- }
79
-
80
- @mixin label {
81
- // Core
82
- .forge-label-value__label {
83
- @include base.label-core;
84
- }
85
- // Font Size
86
- :host(:not([single-line])) .forge-label-value {
87
- &:not(.forge-label-value--roomy):not(.forge-label-value--dense) .forge-label-value__label {
88
- @include base.label-font-size(default, default);
89
- }
90
- &--roomy:not(.forge-label-value--dense) .forge-label-value__label {
91
- @include base.label-font-size(roomy, default);
92
- }
93
- &--dense:not(.forge-label-value--roomy) .forge-label-value__label {
94
- @include base.label-font-size(dense, default);
95
- }
96
- }
97
- :host([single-line]) .forge-label-value__label {
98
- @include base.label-font-size(default, single-line);
99
- }
100
- // Transform
101
- :host(:not([single-line])) .forge-label-value {
102
- &:not(.forge-label-value--roomy) .forge-label-value__label {
103
- @include base.label-transform(default);
104
- }
105
- &--roomy .forge-label-value__label {
106
- @include base.label-transform(roomy);
107
- }
108
- }
109
- // Margin Right
110
- :host([single-line]) .forge-label-value__label {
111
- @include base.label-margin-right(single-line);
112
- }
113
- // Margin Bottom
114
- :host(:not([single-line])) .forge-label-value {
115
- &:not(.forge-label-value--roomy) .forge-label-value__label {
116
- @include base.label-margin-bottom(default);
117
- }
118
- &--roomy .forge-label-value__label {
119
- @include base.label-margin-bottom(roomy);
120
- }
121
- }
122
- // Width
123
- :host(:not([single-line])) .forge-label-value__label {
124
- @include base.label-width(default);
125
- }
126
- :host([single-line]) .forge-label-value__label {
127
- @include base.label-width(single-line);
128
- }
129
- // Ellipsis
130
- .forge-label-value--ellipsis .forge-label-value__label {
131
- @include base.label-ellipsis;
132
- }
133
- }
134
-
135
- @mixin value {
136
- // Core
137
- .forge-label-value__value {
138
- @include base.value-core;
139
- }
140
- // Font Size
141
- :host(:not([single-line])) .forge-label-value {
142
- &:not(.forge-label-value--dense):not(.forge-label-value--roomy) .forge-label-value__value {
143
- @include base.value-font-size(default);
144
- }
145
- &--roomy:not(.forge-label-value--dense) .forge-label-value__value {
146
- @include base.value-font-size(roomy);
147
- }
148
- &--dense:not(.forge-label-value--roomy) .forge-label-value__value {
149
- @include base.value-font-size(dense);
150
- }
151
- }
152
- // Width
153
- :host(:not([single-line])) .forge-label-value__value {
154
- @include base.value-width(default);
155
- }
156
- :host([single-line]) .forge-label-value__value {
157
- @include base.value-width(single-line);
158
- }
159
- // Empty
160
- .forge-label-value--empty .forge-label-value__value {
161
- @include base.value-empty;
162
- }
163
- // Ellipsis
164
- .forge-label-value--ellipsis .forge-label-value__value {
165
- @include base.value-ellipsis;
166
- }
167
- }