@tylertech/forge 2.13.0-next.0 → 2.13.1

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 (128) hide show
  1. package/README.md +1 -1
  2. package/custom-elements.json +117 -108
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/autocomplete/index.js +1 -1
  6. package/dist/esm/bottom-sheet/index.js +1 -1
  7. package/dist/esm/chip-field/index.js +1 -1
  8. package/dist/esm/chunks/{chunk.32SMESZX.js → chunk.4RNKUXN3.js} +2 -2
  9. package/dist/esm/chunks/{chunk.32SMESZX.js.map → chunk.4RNKUXN3.js.map} +0 -0
  10. package/dist/esm/chunks/{chunk.Z5P6EA5L.js → chunk.6QMDYUVT.js} +2 -2
  11. package/dist/esm/chunks/{chunk.Z5P6EA5L.js.map → chunk.6QMDYUVT.js.map} +0 -0
  12. package/dist/esm/chunks/{chunk.WUIIZZQD.js → chunk.6VYFW76H.js} +2 -2
  13. package/dist/esm/chunks/{chunk.WUIIZZQD.js.map → chunk.6VYFW76H.js.map} +0 -0
  14. package/dist/esm/chunks/{chunk.D3DLVPPE.js → chunk.73G2CH2D.js} +2 -2
  15. package/dist/esm/chunks/{chunk.D3DLVPPE.js.map → chunk.73G2CH2D.js.map} +0 -0
  16. package/dist/esm/chunks/chunk.75LTLEZ7.js +7 -0
  17. package/dist/esm/chunks/chunk.75LTLEZ7.js.map +7 -0
  18. package/dist/esm/chunks/{chunk.G5Q2CUUE.js → chunk.AVIF5W7A.js} +2 -2
  19. package/dist/esm/chunks/{chunk.G5Q2CUUE.js.map → chunk.AVIF5W7A.js.map} +0 -0
  20. package/dist/esm/chunks/{chunk.KGW63HJX.js → chunk.CNL6EUCO.js} +2 -2
  21. package/dist/esm/chunks/{chunk.KGW63HJX.js.map → chunk.CNL6EUCO.js.map} +0 -0
  22. package/dist/esm/chunks/{chunk.K32ME33N.js → chunk.D3LMXSX6.js} +2 -2
  23. package/dist/esm/chunks/{chunk.K32ME33N.js.map → chunk.D3LMXSX6.js.map} +0 -0
  24. package/dist/esm/chunks/{chunk.E4ZTNVXI.js → chunk.DPCNIOLL.js} +2 -2
  25. package/dist/esm/chunks/{chunk.E4ZTNVXI.js.map → chunk.DPCNIOLL.js.map} +0 -0
  26. package/dist/esm/chunks/chunk.EJ4ASQET.js +7 -0
  27. package/dist/esm/chunks/chunk.EJ4ASQET.js.map +7 -0
  28. package/dist/esm/chunks/{chunk.F3W3XMGT.js → chunk.ELS7SQAV.js} +2 -2
  29. package/dist/esm/chunks/{chunk.F3W3XMGT.js.map → chunk.ELS7SQAV.js.map} +0 -0
  30. package/dist/esm/chunks/{chunk.DML4YNQF.js → chunk.HSJQA42U.js} +2 -2
  31. package/dist/esm/chunks/{chunk.DML4YNQF.js.map → chunk.HSJQA42U.js.map} +2 -2
  32. package/dist/esm/chunks/{chunk.DGOV5RDW.js → chunk.HUWXZ4ZN.js} +2 -2
  33. package/dist/esm/chunks/{chunk.DGOV5RDW.js.map → chunk.HUWXZ4ZN.js.map} +2 -2
  34. package/dist/esm/chunks/chunk.KLK2FBDP.js +7 -0
  35. package/dist/esm/chunks/chunk.KLK2FBDP.js.map +7 -0
  36. package/dist/esm/chunks/{chunk.NTFA7FCB.js → chunk.LV7GGIUI.js} +2 -2
  37. package/dist/esm/chunks/{chunk.NTFA7FCB.js.map → chunk.LV7GGIUI.js.map} +0 -0
  38. package/dist/esm/chunks/{chunk.VH3PVW2V.js → chunk.NLZKJ53B.js} +2 -2
  39. package/dist/esm/chunks/{chunk.VH3PVW2V.js.map → chunk.NLZKJ53B.js.map} +0 -0
  40. package/dist/esm/chunks/chunk.NNGE722W.js +7 -0
  41. package/dist/esm/chunks/chunk.NNGE722W.js.map +7 -0
  42. package/dist/esm/chunks/{chunk.2ZSAAJDN.js → chunk.O4Y6QT46.js} +2 -2
  43. package/dist/esm/chunks/{chunk.2ZSAAJDN.js.map → chunk.O4Y6QT46.js.map} +0 -0
  44. package/dist/esm/chunks/chunk.QOZLQPKE.js +7 -0
  45. package/dist/esm/chunks/chunk.QOZLQPKE.js.map +7 -0
  46. package/dist/esm/chunks/{chunk.SZL74RTY.js → chunk.VWSC3NDJ.js} +2 -2
  47. package/dist/esm/chunks/{chunk.SZL74RTY.js.map → chunk.VWSC3NDJ.js.map} +0 -0
  48. package/dist/esm/chunks/chunk.WQE6OCJR.js +7 -0
  49. package/dist/esm/chunks/chunk.WQE6OCJR.js.map +7 -0
  50. package/dist/esm/chunks/{chunk.V7P3QPNM.js → chunk.Y7Q6QI5V.js} +2 -2
  51. package/dist/esm/chunks/{chunk.V7P3QPNM.js.map → chunk.Y7Q6QI5V.js.map} +2 -2
  52. package/dist/esm/chunks/chunk.YPUWII7L.js +7 -0
  53. package/dist/esm/chunks/{chunk.5PQTSZ7G.js.map → chunk.YPUWII7L.js.map} +2 -2
  54. package/dist/esm/chunks/chunk.ZMH4OL2E.js +7 -0
  55. package/dist/esm/chunks/{chunk.CYJBOJMX.js.map → chunk.ZMH4OL2E.js.map} +2 -2
  56. package/dist/esm/date-picker/index.js +1 -1
  57. package/dist/esm/date-range-picker/index.js +1 -1
  58. package/dist/esm/dialog/index.js +1 -1
  59. package/dist/esm/file-picker/index.js +1 -1
  60. package/dist/esm/index.js +1 -1
  61. package/dist/esm/list/index.js +1 -1
  62. package/dist/esm/list/list/index.js +1 -1
  63. package/dist/esm/list/list-item/index.js +1 -1
  64. package/dist/esm/list-dropdown/index.js +1 -1
  65. package/dist/esm/menu/index.js +1 -1
  66. package/dist/esm/paginator/index.js +1 -1
  67. package/dist/esm/select/core/index.js +1 -1
  68. package/dist/esm/select/index.js +1 -1
  69. package/dist/esm/select/option/index.js +1 -1
  70. package/dist/esm/select/select/index.js +1 -1
  71. package/dist/esm/select/select-dropdown/index.js +1 -1
  72. package/dist/esm/split-view/index.js +1 -1
  73. package/dist/esm/split-view/split-view/index.js +1 -1
  74. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  75. package/dist/esm/switch/index.js +1 -1
  76. package/dist/esm/text-field/index.js +1 -1
  77. package/dist/esm/time-picker/index.js +1 -1
  78. package/esm/chip-field/chip-field.js +1 -1
  79. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  80. package/esm/date-range-picker/date-range-picker-foundation.js +13 -1
  81. package/esm/dialog/dialog-adapter.d.ts +5 -5
  82. package/esm/dialog/dialog-adapter.js +31 -30
  83. package/esm/dialog/dialog-foundation.d.ts +2 -4
  84. package/esm/dialog/dialog-foundation.js +38 -55
  85. package/esm/dialog/dialog.d.ts +0 -4
  86. package/esm/dialog/dialog.js +1 -7
  87. package/esm/file-picker/file-picker.js +1 -1
  88. package/esm/list/list-item/list-item-adapter.d.ts +10 -2
  89. package/esm/list/list-item/list-item-adapter.js +14 -4
  90. package/esm/list/list-item/list-item-foundation.js +17 -4
  91. package/esm/list/list-item/list-item.d.ts +1 -1
  92. package/esm/list/list-item/list-item.js +1 -1
  93. package/esm/select/core/base-select-adapter.js +11 -1
  94. package/esm/select/core/base-select-foundation.js +7 -3
  95. package/esm/select/option/option-constants.d.ts +3 -0
  96. package/esm/select/option/option-constants.js +5 -1
  97. package/esm/select/option/option-foundation.d.ts +2 -2
  98. package/esm/select/option/option-foundation.js +1 -0
  99. package/esm/select/select/select.js +1 -1
  100. package/esm/split-view/split-view/split-view-constants.d.ts +0 -1
  101. package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +4 -1
  102. package/esm/split-view/split-view-panel/split-view-panel-adapter.js +17 -6
  103. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +1 -0
  104. package/esm/split-view/split-view-panel/split-view-panel-constants.js +2 -1
  105. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +1 -4
  106. package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +6 -0
  107. package/esm/split-view/split-view-panel/split-view-panel-utils.js +17 -0
  108. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  109. package/esm/switch/switch.d.ts +1 -0
  110. package/esm/switch/switch.js +13 -9
  111. package/esm/text-field/text-field.js +1 -1
  112. package/package.json +1 -1
  113. package/styles/field/_base.scss +4 -2
  114. package/styles/field/_variables.scss +0 -3
  115. package/dist/esm/chunks/chunk.5D6UB4DL.js +0 -7
  116. package/dist/esm/chunks/chunk.5D6UB4DL.js.map +0 -7
  117. package/dist/esm/chunks/chunk.5PQTSZ7G.js +0 -7
  118. package/dist/esm/chunks/chunk.7JTKKFL4.js +0 -7
  119. package/dist/esm/chunks/chunk.7JTKKFL4.js.map +0 -7
  120. package/dist/esm/chunks/chunk.CYJBOJMX.js +0 -7
  121. package/dist/esm/chunks/chunk.IGMTMR3D.js +0 -7
  122. package/dist/esm/chunks/chunk.IGMTMR3D.js.map +0 -7
  123. package/dist/esm/chunks/chunk.TCCPCDJK.js +0 -7
  124. package/dist/esm/chunks/chunk.TCCPCDJK.js.map +0 -7
  125. package/dist/esm/chunks/chunk.VQKRN5IQ.js +0 -7
  126. package/dist/esm/chunks/chunk.VQKRN5IQ.js.map +0 -7
  127. package/dist/esm/chunks/chunk.YK2PXI6D.js +0 -7
  128. package/dist/esm/chunks/chunk.YK2PXI6D.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/chip-field/chip-field-constants.ts", "../../src/chip-field/chip-field-adapter.ts", "../../src/chip-field/chip-field-foundation.ts", "../../src/chip-field/chip-field.ts", "../../src/chip-field/chip-field-component-delegate.ts", "../../src/chip-field/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip-field`;\n\nconst classes = {\n ROOT: 'forge-chip-field'\n};\n\nconst slots = {\n LABEL: 'label',\n HELPER_TEXT: 'helper-text',\n MEMBER: 'member'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n INPUT_CONTAINER: '.forge-field__input-container',\n INPUT: 'input',\n LABEL: `[slot=${slots.LABEL}]`,\n HELPER_TEXT: `[slot=${slots.HELPER_TEXT}]`,\n MEMBER: `[slot=${slots.MEMBER}]`,\n LABEL_SLOT: `slot[name=${slots.LABEL}]`,\n MEMBER_SLOT: `slot[name=${slots.MEMBER}]`\n};\n\nconst events = {\n MEMBER_ADDED: `${elementName}-member-added`,\n MEMBER_REMOVED: `${elementName}-member-removed`\n};\n\nexport const CHIP_FIELD_CONSTANTS = {\n elementName,\n classes,\n slots,\n selectors,\n events\n};\n\nexport {\n FieldDensityType as ChipFieldDensityType,\n FieldFloatLabelType as ChipFieldFloatLabelType,\n FieldShapeType as ChipFieldShapeType\n} from '../field/field-constants';\n", "import { IChipFieldComponent } from './chip-field';\nimport { getShadowElement } from '@tylertech/forge-core';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { FieldAdapter, IFieldAdapter } from '../field/field-adapter';\n\nexport interface IChipFieldAdapter extends IFieldAdapter {\n // root\n addRootListener(type: string, callback: (event: Event) => void): void;\n removeRootListener(type: string, callback: (event: Event) => void): void;\n\n // member\n addMemberSlotListener(listener: (evt: Event) => void): void;\n removeMemberSlotListener(listener: (evt: Event) => void): void;\n\n addInputContainerListener(type: string, callback: (event: Event) => void): void;\n removeInputContainerListener(type: string, callback: (event: Event) => void): void;\n\n // state selectors\n getSlottedMemberElements(): NodeListOf<HTMLElement>;\n\n // state actions\n focusInput(): void;\n}\n\nexport class ChipFieldAdapter extends FieldAdapter implements IChipFieldAdapter {\n protected _memberSlot: HTMLSlotElement;\n protected _inputContainerElement: HTMLElement;\n\n constructor(component: IChipFieldComponent) {\n super(component);\n }\n\n public initialize(): void {\n super.initialize(CHIP_FIELD_CONSTANTS.selectors.ROOT);\n this._memberSlot = getShadowElement(this._component, CHIP_FIELD_CONSTANTS.selectors.MEMBER_SLOT) as HTMLSlotElement;\n this._inputContainerElement = getShadowElement(this._component, CHIP_FIELD_CONSTANTS.selectors.INPUT_CONTAINER) as HTMLElement;\n }\n\n public addRootListener(type: string, callback: (event: Event) => void): void {\n this._rootElement.addEventListener(type, callback);\n }\n\n public removeRootListener(type: string, callback: (event: Event) => void): void {\n this._rootElement.removeEventListener(type, callback);\n }\n\n public addMemberSlotListener(listener: (evt: Event) => void): void {\n this._memberSlot.addEventListener('slotchange', listener);\n }\n\n public removeMemberSlotListener(listener: (evt: Event) => void): void {\n if (this._memberSlot) {\n this._memberSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addInputContainerListener(type: string, callback: (event: Event) => void): void {\n this._inputContainerElement.addEventListener(type, callback);\n }\n\n public removeInputContainerListener(type: string, callback: (event: Event) => void): void {\n this._inputContainerElement.removeEventListener(type, callback);\n }\n\n public override fieldHasValue(): boolean {\n const aMemberExists = !!this._component.querySelector(CHIP_FIELD_CONSTANTS.selectors.MEMBER);\n return aMemberExists || super.inputHasValue();\n }\n\n public focusInput(): void {\n if (!this._inputElement) {\n return;\n }\n\n this._inputElement.focus();\n }\n\n public getSlottedMemberElements(): NodeListOf<HTMLElement> {\n return this._component.querySelectorAll<HTMLElement>(CHIP_FIELD_CONSTANTS.selectors.MEMBER);\n }\n}\n", "import { getActiveElement } from '@tylertech/forge-core';\nimport { IChipFieldAdapter } from './chip-field-adapter';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { IFieldFoundation, FieldFoundation } from '../field/field-foundation';\n\nexport interface IChipFieldFoundation extends IFieldFoundation {}\n\nexport class ChipFieldFoundation extends FieldFoundation implements IChipFieldFoundation {\n private _memberSlotListener: () => void;\n private _inputContainerMouseDownListener: (evt: MouseEvent) => void;\n private _handleRootKeyDown: (event: KeyboardEvent) => void;\n private _handleKeyDown: (event: KeyboardEvent) => void;\n\n constructor(protected _adapter: IChipFieldAdapter) {\n super(_adapter);\n this._memberSlotListener = () => this._onMemberSlotChanged();\n this._inputContainerMouseDownListener = evt => this._onInputContainerMouseDown(evt);\n this._handleRootKeyDown = evt => this._onRootKeyDown(evt);\n this._handleKeyDown = evt => this._onKeyDown(evt);\n }\n\n public initialize(): void {\n super.initialize();\n this._adapter.addMemberSlotListener(this._memberSlotListener);\n this._adapter.addInputContainerListener('mousedown', this._inputContainerMouseDownListener);\n this._adapter.addRootListener('keydown', this._handleRootKeyDown);\n this._adapter.addInputListener('keydown', this._handleKeyDown);\n }\n\n public disconnect(): void {\n super.disconnect();\n this._adapter.removeMemberSlotListener(this._memberSlotListener);\n this._adapter.removeInputContainerListener('mousedown', this._inputContainerMouseDownListener);\n this._adapter.removeRootListener('keydown', this._handleRootKeyDown);\n this._adapter.removeInputListener('keydown', this._handleKeyDown);\n }\n\n private _onInputContainerMouseDown(evt: MouseEvent): void {\n evt.preventDefault();\n this._adapter.focusInput();\n }\n\n protected _onBlur(event: Event): void {\n const input = event.target as HTMLInputElement;\n input.value = '';\n super._onBlur(event);\n }\n\n private _onRootKeyDown(event: KeyboardEvent): void {\n if (this._adapter.inputHasValue()) {\n return;\n }\n\n switch (event.key) {\n case 'Right':\n case 'ArrowRight':\n this._focusNextMember();\n break;\n case 'Left':\n case 'ArrowLeft':\n this._focusPreviousMember();\n break;\n case 'Backspace':\n case 'Delete':\n case 'Del':\n this._removeMember();\n break;\n default:\n break;\n }\n }\n\n private _onKeyDown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n switch (event.key) {\n case 'Enter':\n this._addMember(input);\n break;\n case 'Esc':\n case 'Escape':\n case 'Tab':\n input.value = '';\n break;\n default:\n break;\n }\n }\n\n private _focusNextMember(): void {\n const members = this._adapter.getSlottedMemberElements();\n if (members.length < 1 || this._adapter.inputHasFocus()) {\n return;\n }\n\n for (let i = 0; i < members.length; i++) {\n const member = members.item(i);\n const nextMember = members.item(i + 1);\n\n if (this._memberIsActive(member)) {\n if (nextMember) {\n nextMember.focus();\n break;\n } else {\n this._adapter.focusInput();\n }\n }\n }\n }\n\n private _focusPreviousMember(): void {\n const members = this._adapter.getSlottedMemberElements();\n if (members.length < 1) {\n return;\n }\n\n if (this._adapter.inputHasFocus()) {\n members[members.length - 1].focus();\n return;\n }\n\n for (let i = 0; i < members.length; i++) {\n const previousMember = members.item(i - 1);\n const member = members.item(i);\n\n if (this._memberIsActive(member) && previousMember) {\n previousMember.focus();\n break;\n }\n }\n }\n\n private _memberIsActive(ele: HTMLElement): boolean {\n return getActiveElement() === ele || ele.hasAttribute('focused');\n }\n\n private _getActiveMember(): HTMLElement | null {\n const members = this._adapter.getSlottedMemberElements();\n\n for (let i = 0; i < members.length; i++) {\n const member = members.item(i);\n if (this._memberIsActive(member)) {\n return member;\n }\n }\n\n return null;\n }\n\n private _addMember(input: HTMLInputElement): void {\n const cleanInputValue = input.value.trim();\n if (cleanInputValue && cleanInputValue.length > 0) {\n this._adapter.emitHostEvent(CHIP_FIELD_CONSTANTS.events.MEMBER_ADDED, cleanInputValue);\n }\n\n input.value = '';\n }\n\n private _removeMember(): void {\n let memberToRemove = this._getActiveMember();\n if (!memberToRemove) {\n const members = this._adapter.getSlottedMemberElements();\n memberToRemove = members.item(members.length - 1);\n }\n\n if (!memberToRemove) {\n return;\n }\n\n this._focusNextMember();\n this._adapter.emitHostEvent(CHIP_FIELD_CONSTANTS.events.MEMBER_REMOVED, memberToRemove);\n }\n\n private _onMemberSlotChanged(): void {\n this.floatLabel(this._adapter.fieldHasValue() || this._adapter.inputHasFocus());\n this._adapter.getSlottedMemberElements().forEach(x => x.tabIndex = -1);\n }\n}\n", "import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';\nimport { ChipFieldAdapter } from './chip-field-adapter';\nimport { ChipFieldFoundation } from './chip-field-foundation';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { ChipComponent } from '../chips';\nimport { FieldComponent, IFieldComponent } from '../field/field';\n\nconst template = '<template><div class=\\\"forge-chip-field__wrapper\\\" part=\\\"root\\\"><div class=\\\"forge-chip-field forge-field\\\" part=\\\"container\\\"><slot name=\\\"leading\\\"></slot><div class=\\\"forge-field__label-input-container\\\" part=\\\"label-input-container\\\"><slot name=\\\"label\\\"></slot><div class=\\\"forge-field__input-container\\\" part=\\\"input-container\\\"><slot name=\\\"member\\\"></slot><slot></slot></div></div><slot name=\\\"trailing\\\"></slot><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-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-chip-field-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(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 ::slotted(label[dir=rtl]),[dir=rtl] .forge-field ::slotted(label){right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) ::slotted(label){display:none}.forge-field--required ::slotted(label)::after{content:none}.forge-field--required ::slotted(label)::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\\\"*\\\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){font-size:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){font-size:1rem}.forge-field--disabled ::slotted(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) ::slotted(label){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){top:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) ::slotted(label){left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) ::slotted(label){left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) ::slotted(label){padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded ::slotted(label){padding-right:32px}.forge-field ::slotted(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 ::slotted(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) ::slotted(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) ::slotted(label.forge-floating-label--float-above){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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~::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 ::slotted([slot=trailing]){align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=trailing]){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=trailing]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=trailing]){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=trailing]){margin:0 4px}.forge-field ::slotted([slot=trailing]: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-chip-field{-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-chip-field-margin-top,0)}.forge-chip-field.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-chip-field .forge-chip-field{display:grid;grid-template-columns:[leading] -webkit-min-content [input] 1fr [trailing] -webkit-min-content [addon-end] -webkit-min-content [end];grid-template-columns:[leading] min-content [input] 1fr [trailing] min-content [addon-end] min-content [end]}.forge-chip-field .forge-chip-field:not(.forge-field--dense):not(.forge-field--roomy){height:auto;min-height:46px;min-height:var(--forge-chip-field-height,46px)}.forge-chip-field .forge-chip-field.forge-field--roomy:not(.forge-field--dense){height:auto;min-height:3.5rem;min-height:var(--forge-chip-field-height,3.5rem)}.forge-chip-field .forge-chip-field.forge-field--dense:not(.forge-field--roomy){height:auto;min-height:1.5rem;min-height:var(--forge-chip-field-height,1.5rem)}.forge-field__label-input-container{grid-column-start:input;grid-column-end:trailing}.forge-field__input-container{-webkit-box-flex:1;flex:1 1 0.0001px;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field__input-container{padding:2px 12px}.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-field__input-container{padding-left:32px}.forge-field--leading:not(.forge-field--shape-rounded) .forge-field__input-container{padding-left:0}.forge-field--shape-rounded.forge-field--leading .forge-field__input-container{padding-left:0}.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--shape-rounded:not(.forge-field--trailing):not(.forge-field--addon-end) .forge-field__input-container{padding-right:32px}.forge-field--addon-end:not(.forge-field--shape-rounded) .forge-field__input-container,.forge-field--trailing:not(.forge-field--shape-rounded) .forge-field__input-container{padding-right:0}.forge-field--shape-rounded.forge-field--addon-end .forge-field__input-container,.forge-field--shape-rounded.forge-field--trailing .forge-field__input-container{padding-right:0}.forge-field ::slotted([slot=member]){display:block}.forge-field--disabled ::slotted([slot=member]){--mdc-theme-primary:rgba(0, 0, 0, 0.38);--mdc-theme-primary:var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));cursor:not-allowed;pointer-events:none}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 8px 2px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=member]){margin:6px 12px 6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 6px 2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:20px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:16px}.forge-field ::slotted(input){-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);align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0}.forge-field ::slotted(input)::-webkit-input-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 ::slotted(input)::-moz-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 ::slotted(input):-ms-input-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 ::slotted(input)::-ms-input-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 ::slotted(input)::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 ::slotted(input):invalid{-webkit-box-shadow:none;box-shadow:none}.forge-field ::slotted(input):-webkit-autofill{z-index:auto!important}.forge-field:not(.forge-field--disabled) ::slotted(input){color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled ::slotted(input){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) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){font-size:.875rem;font-size:var(--forge-chip-field-font-size, .875rem)}.forge-field ::slotted(input){-webkit-box-flex:1;flex:1 1 0.0001px;min-width:40px;display:block;align-self:flex-start;padding:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){margin:4px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){margin:6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){margin:2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){height:1.25rem;line-height:1.25rem}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field ::slotted([slot=leading]){grid-column-start:leading;grid-column-end:input;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=leading]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){padding-top:0;padding-bottom:0}.forge-field ::slotted([slot=trailing]){grid-column-start:trailing;grid-column-end:addon-end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=trailing]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){padding-top:0;padding-bottom:0}.forge-field--addon-end .forge-field__addon-end-container{grid-column-start:addon-end;grid-column-end:end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=addon-end]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:0;margin-bottom:0}.forge-field ::slotted(forge-icon-button){display:-webkit-inline-box!important;display:inline-flex!important}:host{display:block;contain:layout}:host([hidden]){display:none}';\n\nexport interface IChipFieldComponent extends IFieldComponent { }\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-chip-field': IChipFieldComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-chip-field-member-added': CustomEvent<string>;\n 'forge-chip-field-member-removed': CustomEvent<HTMLElement>;\n }\n}\n\n/**\n * The web component class behind the `<forge-chip-field>` custom element.\n * \n * @tag forge-chip-field\n */\n@CustomElement({\n name: CHIP_FIELD_CONSTANTS.elementName,\n dependencies: [ChipComponent]\n})\nexport class ChipFieldComponent extends FieldComponent<ChipFieldFoundation> implements IChipFieldComponent {\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ChipFieldFoundation(new ChipFieldAdapter(this));\n }\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { IChipFieldComponent } from './chip-field';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\n\nexport type ChipFieldComponentDelegateProps = Partial<IChipFieldComponent>;\nexport interface IChipFieldComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n id?: string;\n label?: string;\n type?: string;\n value?: string;\n helperText?: string;\n placeholder?: string;\n leadingElement?: HTMLElement;\n trailingElement?: HTMLElement;\n}\nexport interface IChipFieldComponentDelegateConfig extends IBaseComponentDelegateConfig<IChipFieldComponent, IChipFieldComponentDelegateOptions> {}\n\nexport class ChipFieldComponentDelegate extends FormFieldComponentDelegate<IChipFieldComponent, IChipFieldComponentDelegateOptions> {\n private _inputElement: HTMLInputElement;\n private _labelElement: HTMLLabelElement | undefined;\n private _helperTextElement: HTMLSpanElement | undefined;\n\n constructor(config?: IChipFieldComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IChipFieldComponent {\n const chipField = document.createElement(CHIP_FIELD_CONSTANTS.elementName);\n\n this._inputElement = this._buildInputElement(chipField);\n\n if (this._config.options?.leadingElement) {\n this._config.options.leadingElement.slot = 'leading';\n chipField.appendChild(this._config.options.leadingElement);\n }\n if (this._config.options?.trailingElement) {\n this._config.options.trailingElement.slot = 'trailing';\n chipField.appendChild(this._config.options.trailingElement);\n }\n\n chipField.appendChild(this._inputElement);\n return chipField;\n }\n\n protected override _configure(): void {\n if (this._config.options?.helperText) {\n this.setHelperText(this._config.options.helperText);\n }\n if (typeof this._config.options?.label === 'string') {\n this._createLabel(this._config.options.label);\n }\n }\n\n public get value(): string {\n return this._inputElement.value;\n }\n public set value(value: string) {\n this._inputElement.value = value;\n }\n\n public get disabled(): boolean {\n return this._inputElement.disabled;\n }\n public set disabled(value: boolean) {\n this._inputElement.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._element.invalid || false;\n }\n public set invalid(value: boolean) {\n this._element.invalid = value;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._inputElement;\n }\n\n public get labelElement(): HTMLLabelElement | undefined {\n return this._labelElement;\n }\n\n public onChange(listener: (value: string) => void): void {\n this._inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('blur', evt => listener(evt));\n }\n\n public setLabel(text: string | null): void {\n if (text) {\n if (this._labelElement) {\n this._labelElement.textContent = text;\n } else {\n this._createLabel(text);\n }\n } else if (this._labelElement) {\n this._element.removeChild(this._labelElement);\n this._labelElement = undefined;\n }\n }\n\n public setHelperText(text: string | null): void {\n if (text) {\n if (!this._helperTextElement) {\n this._helperTextElement = document.createElement('span');\n this._helperTextElement.slot = 'helper-text';\n this._element.appendChild(this._helperTextElement);\n }\n this._helperTextElement.textContent = text;\n } else if (this._helperTextElement) {\n this._element.removeChild(this._helperTextElement);\n this._helperTextElement = undefined;\n }\n }\n\n public floatLabel(value: boolean): void {\n this._element.floatLabel(value);\n }\n\n private _createLabel(text: string): void {\n this._labelElement = document.createElement('label');\n this._labelElement.textContent = text;\n if (this._config.options?.id) {\n this._labelElement.setAttribute('for', this._config.options.id);\n }\n this._element.appendChild(this._labelElement);\n }\n\n private _buildInputElement(chipField: IChipFieldComponent): HTMLInputElement {\n const inputElement = document.createElement('input');\n inputElement.type = this._config.options?.type || 'text';\n\n if (this._config.options?.value !== undefined) {\n inputElement.value = this._config.options.value;\n }\n if (this._config.options?.id) {\n inputElement.id = this._config.options.id;\n }\n if (typeof this._config.options?.placeholder === 'string') {\n inputElement.placeholder = this._config.options?.placeholder;\n }\n\n chipField.appendChild(inputElement);\n return inputElement;\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ChipFieldComponent } from './chip-field';\n\nexport * from './chip-field-adapter';\nexport * from './chip-field-component-delegate';\nexport * from './chip-field-constants';\nexport * from './chip-field-foundation';\nexport * from './chip-field';\n\nexport function defineChipFieldComponent(): void {\n defineCustomElement(ChipFieldComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip-field`;\n\nconst classes = {\n ROOT: 'forge-chip-field'\n};\n\nconst slots = {\n LABEL: 'label',\n HELPER_TEXT: 'helper-text',\n MEMBER: 'member'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n INPUT_CONTAINER: '.forge-field__input-container',\n INPUT: 'input',\n LABEL: `[slot=${slots.LABEL}]`,\n HELPER_TEXT: `[slot=${slots.HELPER_TEXT}]`,\n MEMBER: `[slot=${slots.MEMBER}]`,\n LABEL_SLOT: `slot[name=${slots.LABEL}]`,\n MEMBER_SLOT: `slot[name=${slots.MEMBER}]`\n};\n\nconst events = {\n MEMBER_ADDED: `${elementName}-member-added`,\n MEMBER_REMOVED: `${elementName}-member-removed`\n};\n\nexport const CHIP_FIELD_CONSTANTS = {\n elementName,\n classes,\n slots,\n selectors,\n events\n};\n\nexport {\n FieldDensityType as ChipFieldDensityType,\n FieldFloatLabelType as ChipFieldFloatLabelType,\n FieldShapeType as ChipFieldShapeType\n} from '../field/field-constants';\n", "import { IChipFieldComponent } from './chip-field';\nimport { getShadowElement } from '@tylertech/forge-core';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { FieldAdapter, IFieldAdapter } from '../field/field-adapter';\n\nexport interface IChipFieldAdapter extends IFieldAdapter {\n // root\n addRootListener(type: string, callback: (event: Event) => void): void;\n removeRootListener(type: string, callback: (event: Event) => void): void;\n\n // member\n addMemberSlotListener(listener: (evt: Event) => void): void;\n removeMemberSlotListener(listener: (evt: Event) => void): void;\n\n addInputContainerListener(type: string, callback: (event: Event) => void): void;\n removeInputContainerListener(type: string, callback: (event: Event) => void): void;\n\n // state selectors\n getSlottedMemberElements(): NodeListOf<HTMLElement>;\n\n // state actions\n focusInput(): void;\n}\n\nexport class ChipFieldAdapter extends FieldAdapter implements IChipFieldAdapter {\n protected _memberSlot: HTMLSlotElement;\n protected _inputContainerElement: HTMLElement;\n\n constructor(component: IChipFieldComponent) {\n super(component);\n }\n\n public initialize(): void {\n super.initialize(CHIP_FIELD_CONSTANTS.selectors.ROOT);\n this._memberSlot = getShadowElement(this._component, CHIP_FIELD_CONSTANTS.selectors.MEMBER_SLOT) as HTMLSlotElement;\n this._inputContainerElement = getShadowElement(this._component, CHIP_FIELD_CONSTANTS.selectors.INPUT_CONTAINER) as HTMLElement;\n }\n\n public addRootListener(type: string, callback: (event: Event) => void): void {\n this._rootElement.addEventListener(type, callback);\n }\n\n public removeRootListener(type: string, callback: (event: Event) => void): void {\n this._rootElement.removeEventListener(type, callback);\n }\n\n public addMemberSlotListener(listener: (evt: Event) => void): void {\n this._memberSlot.addEventListener('slotchange', listener);\n }\n\n public removeMemberSlotListener(listener: (evt: Event) => void): void {\n if (this._memberSlot) {\n this._memberSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addInputContainerListener(type: string, callback: (event: Event) => void): void {\n this._inputContainerElement.addEventListener(type, callback);\n }\n\n public removeInputContainerListener(type: string, callback: (event: Event) => void): void {\n this._inputContainerElement.removeEventListener(type, callback);\n }\n\n public override fieldHasValue(): boolean {\n const aMemberExists = !!this._component.querySelector(CHIP_FIELD_CONSTANTS.selectors.MEMBER);\n return aMemberExists || super.inputHasValue();\n }\n\n public focusInput(): void {\n if (!this._inputElement) {\n return;\n }\n\n this._inputElement.focus();\n }\n\n public getSlottedMemberElements(): NodeListOf<HTMLElement> {\n return this._component.querySelectorAll<HTMLElement>(CHIP_FIELD_CONSTANTS.selectors.MEMBER);\n }\n}\n", "import { getActiveElement } from '@tylertech/forge-core';\nimport { IChipFieldAdapter } from './chip-field-adapter';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { IFieldFoundation, FieldFoundation } from '../field/field-foundation';\n\nexport interface IChipFieldFoundation extends IFieldFoundation {}\n\nexport class ChipFieldFoundation extends FieldFoundation implements IChipFieldFoundation {\n private _memberSlotListener: () => void;\n private _inputContainerMouseDownListener: (evt: MouseEvent) => void;\n private _handleRootKeyDown: (event: KeyboardEvent) => void;\n private _handleKeyDown: (event: KeyboardEvent) => void;\n\n constructor(protected _adapter: IChipFieldAdapter) {\n super(_adapter);\n this._memberSlotListener = () => this._onMemberSlotChanged();\n this._inputContainerMouseDownListener = evt => this._onInputContainerMouseDown(evt);\n this._handleRootKeyDown = evt => this._onRootKeyDown(evt);\n this._handleKeyDown = evt => this._onKeyDown(evt);\n }\n\n public initialize(): void {\n super.initialize();\n this._adapter.addMemberSlotListener(this._memberSlotListener);\n this._adapter.addInputContainerListener('mousedown', this._inputContainerMouseDownListener);\n this._adapter.addRootListener('keydown', this._handleRootKeyDown);\n this._adapter.addInputListener('keydown', this._handleKeyDown);\n }\n\n public disconnect(): void {\n super.disconnect();\n this._adapter.removeMemberSlotListener(this._memberSlotListener);\n this._adapter.removeInputContainerListener('mousedown', this._inputContainerMouseDownListener);\n this._adapter.removeRootListener('keydown', this._handleRootKeyDown);\n this._adapter.removeInputListener('keydown', this._handleKeyDown);\n }\n\n private _onInputContainerMouseDown(evt: MouseEvent): void {\n evt.preventDefault();\n this._adapter.focusInput();\n }\n\n protected _onBlur(event: Event): void {\n const input = event.target as HTMLInputElement;\n input.value = '';\n super._onBlur(event);\n }\n\n private _onRootKeyDown(event: KeyboardEvent): void {\n if (this._adapter.inputHasValue()) {\n return;\n }\n\n switch (event.key) {\n case 'Right':\n case 'ArrowRight':\n this._focusNextMember();\n break;\n case 'Left':\n case 'ArrowLeft':\n this._focusPreviousMember();\n break;\n case 'Backspace':\n case 'Delete':\n case 'Del':\n this._removeMember();\n break;\n default:\n break;\n }\n }\n\n private _onKeyDown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n switch (event.key) {\n case 'Enter':\n this._addMember(input);\n break;\n case 'Esc':\n case 'Escape':\n case 'Tab':\n input.value = '';\n break;\n default:\n break;\n }\n }\n\n private _focusNextMember(): void {\n const members = this._adapter.getSlottedMemberElements();\n if (members.length < 1 || this._adapter.inputHasFocus()) {\n return;\n }\n\n for (let i = 0; i < members.length; i++) {\n const member = members.item(i);\n const nextMember = members.item(i + 1);\n\n if (this._memberIsActive(member)) {\n if (nextMember) {\n nextMember.focus();\n break;\n } else {\n this._adapter.focusInput();\n }\n }\n }\n }\n\n private _focusPreviousMember(): void {\n const members = this._adapter.getSlottedMemberElements();\n if (members.length < 1) {\n return;\n }\n\n if (this._adapter.inputHasFocus()) {\n members[members.length - 1].focus();\n return;\n }\n\n for (let i = 0; i < members.length; i++) {\n const previousMember = members.item(i - 1);\n const member = members.item(i);\n\n if (this._memberIsActive(member) && previousMember) {\n previousMember.focus();\n break;\n }\n }\n }\n\n private _memberIsActive(ele: HTMLElement): boolean {\n return getActiveElement() === ele || ele.hasAttribute('focused');\n }\n\n private _getActiveMember(): HTMLElement | null {\n const members = this._adapter.getSlottedMemberElements();\n\n for (let i = 0; i < members.length; i++) {\n const member = members.item(i);\n if (this._memberIsActive(member)) {\n return member;\n }\n }\n\n return null;\n }\n\n private _addMember(input: HTMLInputElement): void {\n const cleanInputValue = input.value.trim();\n if (cleanInputValue && cleanInputValue.length > 0) {\n this._adapter.emitHostEvent(CHIP_FIELD_CONSTANTS.events.MEMBER_ADDED, cleanInputValue);\n }\n\n input.value = '';\n }\n\n private _removeMember(): void {\n let memberToRemove = this._getActiveMember();\n if (!memberToRemove) {\n const members = this._adapter.getSlottedMemberElements();\n memberToRemove = members.item(members.length - 1);\n }\n\n if (!memberToRemove) {\n return;\n }\n\n this._focusNextMember();\n this._adapter.emitHostEvent(CHIP_FIELD_CONSTANTS.events.MEMBER_REMOVED, memberToRemove);\n }\n\n private _onMemberSlotChanged(): void {\n this.floatLabel(this._adapter.fieldHasValue() || this._adapter.inputHasFocus());\n this._adapter.getSlottedMemberElements().forEach(x => x.tabIndex = -1);\n }\n}\n", "import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';\nimport { ChipFieldAdapter } from './chip-field-adapter';\nimport { ChipFieldFoundation } from './chip-field-foundation';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\nimport { ChipComponent } from '../chips';\nimport { FieldComponent, IFieldComponent } from '../field/field';\n\nconst template = '<template><div class=\\\"forge-chip-field__wrapper\\\" part=\\\"root\\\"><div class=\\\"forge-chip-field forge-field\\\" part=\\\"container\\\"><slot name=\\\"leading\\\"></slot><div class=\\\"forge-field__label-input-container\\\" part=\\\"label-input-container\\\"><slot name=\\\"label\\\"></slot><div class=\\\"forge-field__input-container\\\" part=\\\"input-container\\\"><slot name=\\\"member\\\"></slot><slot></slot></div></div><slot name=\\\"trailing\\\"></slot><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-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-chip-field-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(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 ::slotted(label[dir=rtl]),[dir=rtl] .forge-field ::slotted(label){right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) ::slotted(label){display:none}.forge-field--required ::slotted(label)::after{content:none}.forge-field--required ::slotted(label)::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\\\"*\\\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){font-size:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){font-size:1rem}.forge-field--disabled ::slotted(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) ::slotted(label){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){top:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) ::slotted(label){left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) ::slotted(label){left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) ::slotted(label){padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded ::slotted(label){padding-right:32px}.forge-field ::slotted(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 ::slotted(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) ::slotted(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) ::slotted(label.forge-floating-label--float-above){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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) ::slotted(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~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.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 ::slotted([slot=trailing]){align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=trailing]){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=trailing]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=trailing]){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=trailing]){margin:0 4px}.forge-field ::slotted([slot=trailing]: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-chip-field{-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-chip-field-margin-top,0)}.forge-chip-field.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-chip-field .forge-chip-field{display:grid;grid-template-columns:[leading] -webkit-min-content [input] 1fr [trailing] -webkit-min-content [addon-end] -webkit-min-content [end];grid-template-columns:[leading] min-content [input] 1fr [trailing] min-content [addon-end] min-content [end]}.forge-chip-field .forge-chip-field:not(.forge-field--dense):not(.forge-field--roomy){height:auto;min-height:46px;min-height:var(--forge-chip-field-height,46px)}.forge-chip-field .forge-chip-field.forge-field--roomy:not(.forge-field--dense){height:auto;min-height:3.5rem;min-height:var(--forge-chip-field-height,3.5rem)}.forge-chip-field .forge-chip-field.forge-field--dense:not(.forge-field--roomy){height:auto;min-height:1.5rem;min-height:var(--forge-chip-field-height,1.5rem)}.forge-field__label-input-container{grid-column-start:input;grid-column-end:trailing}.forge-field__input-container{-webkit-box-flex:1;flex:1 1 0.0001px;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field__input-container{padding:2px 12px}.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-field__input-container{padding-left:32px}.forge-field--leading:not(.forge-field--shape-rounded) .forge-field__input-container{padding-left:0}.forge-field--shape-rounded.forge-field--leading .forge-field__input-container{padding-left:0}.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--shape-rounded:not(.forge-field--trailing):not(.forge-field--addon-end) .forge-field__input-container{padding-right:32px}.forge-field--addon-end:not(.forge-field--shape-rounded) .forge-field__input-container,.forge-field--trailing:not(.forge-field--shape-rounded) .forge-field__input-container{padding-right:0}.forge-field--shape-rounded.forge-field--addon-end .forge-field__input-container,.forge-field--shape-rounded.forge-field--trailing .forge-field__input-container{padding-right:0}.forge-field ::slotted([slot=member]){display:block}.forge-field--disabled ::slotted([slot=member]){--mdc-theme-primary:rgba(0, 0, 0, 0.38);--mdc-theme-primary:var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));cursor:not-allowed;pointer-events:none}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 8px 2px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=member]){margin:6px 12px 6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 6px 2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:20px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:16px}.forge-field ::slotted(input){-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);align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0}.forge-field ::slotted(input)::-webkit-input-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 ::slotted(input)::-moz-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 ::slotted(input):-ms-input-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 ::slotted(input)::-ms-input-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 ::slotted(input)::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 ::slotted(input):invalid{-webkit-box-shadow:none;box-shadow:none}.forge-field ::slotted(input):-webkit-autofill{z-index:auto!important}.forge-field:not(.forge-field--disabled) ::slotted(input){color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled ::slotted(input){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) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){font-size:.875rem;font-size:var(--forge-chip-field-font-size, .875rem)}.forge-field ::slotted(input){-webkit-box-flex:1;flex:1 1 0.0001px;min-width:40px;display:block;align-self:flex-start;padding:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){margin:4px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){margin:6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){margin:2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){height:1.25rem;line-height:1.25rem}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field ::slotted([slot=leading]){grid-column-start:leading;grid-column-end:input;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=leading]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){padding-top:0;padding-bottom:0}.forge-field ::slotted([slot=trailing]){grid-column-start:trailing;grid-column-end:addon-end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=trailing]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){padding-top:0;padding-bottom:0}.forge-field--addon-end .forge-field__addon-end-container{grid-column-start:addon-end;grid-column-end:end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=addon-end]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:0;margin-bottom:0}.forge-field ::slotted(forge-icon-button){display:-webkit-inline-box!important;display:inline-flex!important}:host{display:block;contain:layout}:host([hidden]){display:none}';\n\nexport interface IChipFieldComponent extends IFieldComponent { }\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-chip-field': IChipFieldComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-chip-field-member-added': CustomEvent<string>;\n 'forge-chip-field-member-removed': CustomEvent<HTMLElement>;\n }\n}\n\n/**\n * The web component class behind the `<forge-chip-field>` custom element.\n * \n * @tag forge-chip-field\n */\n@CustomElement({\n name: CHIP_FIELD_CONSTANTS.elementName,\n dependencies: [ChipComponent]\n})\nexport class ChipFieldComponent extends FieldComponent<ChipFieldFoundation> implements IChipFieldComponent {\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ChipFieldFoundation(new ChipFieldAdapter(this));\n }\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { IChipFieldComponent } from './chip-field';\nimport { CHIP_FIELD_CONSTANTS } from './chip-field-constants';\n\nexport type ChipFieldComponentDelegateProps = Partial<IChipFieldComponent>;\nexport interface IChipFieldComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n id?: string;\n label?: string;\n type?: string;\n value?: string;\n helperText?: string;\n placeholder?: string;\n leadingElement?: HTMLElement;\n trailingElement?: HTMLElement;\n}\nexport interface IChipFieldComponentDelegateConfig extends IBaseComponentDelegateConfig<IChipFieldComponent, IChipFieldComponentDelegateOptions> {}\n\nexport class ChipFieldComponentDelegate extends FormFieldComponentDelegate<IChipFieldComponent, IChipFieldComponentDelegateOptions> {\n private _inputElement: HTMLInputElement;\n private _labelElement: HTMLLabelElement | undefined;\n private _helperTextElement: HTMLSpanElement | undefined;\n\n constructor(config?: IChipFieldComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IChipFieldComponent {\n const chipField = document.createElement(CHIP_FIELD_CONSTANTS.elementName);\n\n this._inputElement = this._buildInputElement(chipField);\n\n if (this._config.options?.leadingElement) {\n this._config.options.leadingElement.slot = 'leading';\n chipField.appendChild(this._config.options.leadingElement);\n }\n if (this._config.options?.trailingElement) {\n this._config.options.trailingElement.slot = 'trailing';\n chipField.appendChild(this._config.options.trailingElement);\n }\n\n chipField.appendChild(this._inputElement);\n return chipField;\n }\n\n protected override _configure(): void {\n if (this._config.options?.helperText) {\n this.setHelperText(this._config.options.helperText);\n }\n if (typeof this._config.options?.label === 'string') {\n this._createLabel(this._config.options.label);\n }\n }\n\n public get value(): string {\n return this._inputElement.value;\n }\n public set value(value: string) {\n this._inputElement.value = value;\n }\n\n public get disabled(): boolean {\n return this._inputElement.disabled;\n }\n public set disabled(value: boolean) {\n this._inputElement.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._element.invalid || false;\n }\n public set invalid(value: boolean) {\n this._element.invalid = value;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._inputElement;\n }\n\n public get labelElement(): HTMLLabelElement | undefined {\n return this._labelElement;\n }\n\n public onChange(listener: (value: string) => void): void {\n this._inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._inputElement.addEventListener('blur', evt => listener(evt));\n }\n\n public setLabel(text: string | null): void {\n if (text) {\n if (this._labelElement) {\n this._labelElement.textContent = text;\n } else {\n this._createLabel(text);\n }\n } else if (this._labelElement) {\n this._element.removeChild(this._labelElement);\n this._labelElement = undefined;\n }\n }\n\n public setHelperText(text: string | null): void {\n if (text) {\n if (!this._helperTextElement) {\n this._helperTextElement = document.createElement('span');\n this._helperTextElement.slot = 'helper-text';\n this._element.appendChild(this._helperTextElement);\n }\n this._helperTextElement.textContent = text;\n } else if (this._helperTextElement) {\n this._element.removeChild(this._helperTextElement);\n this._helperTextElement = undefined;\n }\n }\n\n public floatLabel(value: boolean): void {\n this._element.floatLabel(value);\n }\n\n private _createLabel(text: string): void {\n this._labelElement = document.createElement('label');\n this._labelElement.textContent = text;\n if (this._config.options?.id) {\n this._labelElement.setAttribute('for', this._config.options.id);\n }\n this._element.appendChild(this._labelElement);\n }\n\n private _buildInputElement(chipField: IChipFieldComponent): HTMLInputElement {\n const inputElement = document.createElement('input');\n inputElement.type = this._config.options?.type || 'text';\n\n if (this._config.options?.value !== undefined) {\n inputElement.value = this._config.options.value;\n }\n if (this._config.options?.id) {\n inputElement.id = this._config.options.id;\n }\n if (typeof this._config.options?.placeholder === 'string') {\n inputElement.placeholder = this._config.options?.placeholder;\n }\n\n chipField.appendChild(inputElement);\n return inputElement;\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ChipFieldComponent } from './chip-field';\n\nexport * from './chip-field-adapter';\nexport * from './chip-field-component-delegate';\nexport * from './chip-field-constants';\nexport * from './chip-field-foundation';\nexport * from './chip-field';\n\nexport function defineChipFieldComponent(): void {\n defineCustomElement(ChipFieldComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as U}from"./chunk.BCUBTR5O.js";import{a as b,f as M,g as P,h as Y}from"./chunk.WQE6OCJR.js";import{b as q}from"./chunk.B5ABD4CZ.js";import{d as H}from"./chunk.EJ4ASQET.js";import{d as O}from"./chunk.F5I55MXD.js";import{a as t}from"./chunk.Y6FFG7XO.js";import{c as I}from"./chunk.73G2CH2D.js";import{e as z}from"./chunk.KLK2FBDP.js";import{a as L}from"./chunk.EC6JSIQW.js";import{d as N}from"./chunk.K753A3KI.js";import{b as B}from"./chunk.JNOCXQVB.js";import{e as F}from"./chunk.3UMBCR4P.js";import{b as R}from"./chunk.BOENNFXE.js";import{c as w,g as k,h as A}from"./chunk.LZMYHIO2.js";import{d as D,l as C}from"./chunk.YAJT3P6V.js";import{a as n}from"./chunk.B3IJU6XJ.js";import{a as T,b as S}from"./chunk.BSZ2LBJX.js";import{a as E,e as x,g as f}from"./chunk.HN4PXH3D.js";import{o as y,t as s,u as d}from"./chunk.R4NDFXVA.js";import{b as v,k as c}from"./chunk.G76HB2FK.js";import{f as a}from"./chunk.MCIQXNKY.js";var W=`${S}select`,h={ROOT:"forge-select",OPENED:"forge-select--opened",SELECTED_TEXT:"forge-select__selected-text",DROPDOWN:"forge-select__dropdown",LABEL_FLOAT:"forge-select--label-float",GROUP_WRAPPER:"forge-select__group-wrapper"},V={ROOT:`.${h.ROOT}`,SELECTED_TEXT:`.${h.SELECTED_TEXT}`,LABEL:"label#select-label",LEADING_SLOT:"slot[name=leading]",ADDON_END_SLOT:"slot[name=addon-end]"},G={TYPE:"type",VALUE:"value",LABEL:"label",MULTIPLE:"multiple",DISABLED:"disabled",PLACEHOLDER:"placeholder",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold"},X={SCROLLED_BOTTOM:`${W}-scrolled-bottom`},o={elementName:W,classes:h,selectors:V,attributes:G,events:X};var g=class extends Y{constructor(e){super(e);this._selectElement=f(e,o.selectors.ROOT),this._leadingSlot=f(e,o.selectors.LEADING_SLOT),this._addonEndSlot=f(this._component,o.selectors.ADDON_END_SLOT),this._selectedTextElement=f(e,o.selectors.SELECTED_TEXT),this._targetElement=this._selectElement}initializeLabel(){this._labelElement=f(this._component,o.selectors.LABEL)}hasLabel(){return!!this._labelElement}initializeAccessibility(){this._component.setAttribute("role","combobox"),this._component.setAttribute("aria-haspopup","true"),this._component.setAttribute("aria-expanded","false"),(!this._component.hasAttribute("tabindex")||this._component.tabIndex===-1)&&(this._component.tabIndex=0)}initializeFloatingLabel(){return new O(this._labelElement)}setLabel(e){(!this._component.hasAttribute("aria-label")||this._component.getAttribute("aria-label")===this._labelElement.textContent)&&this._component.setAttribute("aria-label",e),this._labelElement.textContent=e}addRootClass(e){this._selectElement.classList.add(e)}removeRootClass(e){this._selectElement.classList.remove(e)}setPlaceholderText(e){d(this._selectedTextElement,!!e,"placeholder",e)}addClickListener(e){this._component.addEventListener("click",e)}removeClickListener(e){this._component.removeEventListener("click",e)}addMouseDownListener(e){this._component.addEventListener("mousedown",e)}removeMouseDownListener(e){this._component.removeEventListener("mousedown",e)}addTargetListener(e,i){this._component.addEventListener(e,i)}removeTargetListener(e,i){this._component.removeEventListener(e,i)}open(e){super.open(e),this._component.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`),this._component.setAttribute("aria-expanded","true"),s(this._selectElement,!0,o.classes.OPENED)}close(){this._component.setAttribute("aria-expanded","false"),this._component.removeAttribute("aria-activedescendant"),this._component.removeAttribute("aria-controls"),s(this._selectElement,!1,o.classes.OPENED),super.close()}updateActiveDescendant(e){d(this._component,!!e,"aria-activedescendant",e)}setSelectedText(e){this._selectedTextElement.textContent=e}setLeadingListener(e){this._leadingSlot.addEventListener("slotchange",e)}removeLeadingListener(e){this._leadingSlot.removeEventListener("slotchange",e)}setAddonEndListener(e){this._addonEndSlot.addEventListener("slotchange",e)}removeAddonEndListener(e){this._addonEndSlot.removeEventListener("slotchange",e)}hasLeadingElement(){return this._leadingSlot.assignedNodes().length>0}setDisabled(e){s(this._selectElement,e,t.classes.DISABLED),d(this._component,e,"aria-disabled","true"),this._component.tabIndex=e?-1:0}setInvalid(e){s(this._selectElement,e,t.classes.INVALID),d(this._component,e,"aria-invalid","true")}setRequired(e){s(this._selectElement,e,t.classes.REQUIRED),d(this._component,e,"aria-required","true")}setRoomy(e){s(this._selectElement,e,t.classes.ROOMY)}setDense(e){s(this._selectElement,e,t.classes.DENSE)}setMultiple(e){e?this.setHostAttribute("aria-multiselectable","true"):this.removeHostAttribute("aria-multiselectable")}getLabelWidth(e,i){return y(this._labelElement.innerText,{fontSize:e,fontFamily:i})}getLabelFontMetrics(){let e=getComputedStyle(this._labelElement);return{fontSize:parseInt(e.fontSize||"16",10),fontFamily:e.fontFamily||"Roboto"}}getTargetWidth(){return this._selectElement.getBoundingClientRect().width}hasAddonEndNodes(){return this._addonEndSlot?this._addonEndSlot.assignedNodes().length>0:!1}setFocus(){this._component.focus()}isWithinSelf(e){return!!this._component.shadowRoot&&this._component.shadowRoot.contains(e)||this._component.contains(e)}};var p=class extends M{constructor(e){super(e);this._shape="default";this._label="";this._disabled=!1;this._invalid=!1;this._required=!1;this._floatLabelType="auto";this._density="default";this._isInitialized=!1;this._leadingChangeListener=i=>this._onLeadingSlotChanged(i),this._addonEndChangeListener=i=>this._onAddonEndSlotChanged(i),this._targetWidthCallback=()=>this._adapter.getTargetWidth(),this._mousedownListener=i=>this._onMouseDown(i)}initialize(){super.initialize(),super.initializeTarget(),this._initializeLabel(),this._initializeAccessibility(),this._adapter.setPlaceholderText(this._placeholder),this._applyDensity(),this._setShapeType(),this._detectLeadingElement(),this._detectAddonEndContent(),this._adapter.addMouseDownListener(this._mousedownListener),this._adapter.setLeadingListener(this._leadingChangeListener),this._adapter.setAddonEndListener(this._addonEndChangeListener),this._disabled&&this._adapter.setDisabled(!0),this._invalid&&this._adapter.setInvalid(!0),this._isInitialized=!0}disconnect(){super.disconnect(),this._adapter.removeMouseDownListener(this._mousedownListener),this._adapter.removeLeadingListener(this._leadingChangeListener),this._adapter.removeAddonEndListener(this._leadingChangeListener),this._floatingLabelInstance&&(this._floatingLabelInstance.destroy(),this._floatingLabelInstance=void 0)}_initializeLabel(){if(this._adapter.initializeLabel(),this._updateLabel(),this._floatingLabelInstance=this._adapter.initializeFloatingLabel(),this._floatLabelType==="always")this._floatLabel(!0);else{let e=!!this._getSelectedText(),i=!!this._placeholder;this._floatLabel(e||i)}}_destroyLabel(){this._floatingLabelInstance&&(this._floatingLabelInstance.destroy(),this._floatingLabelInstance=void 0)}_initializeValue(){super._initializeValue(),this._selectedValues.length&&this._floatLabel(!0)}_initializeAccessibility(){this._adapter.setMultiple(this._multiple),this._required&&this._adapter.setHostAttribute("aria-required","true"),this._disabled&&this._adapter.setHostAttribute("aria-disabled","true"),this._invalid&&this._adapter.setHostAttribute("aria-invalid","true")}_onMouseDown(e){this._adapter.isWithinSelf(e.target)&&e.preventDefault()}_onLeadingSlotChanged(e){this._detectLeadingElement()}_onAddonEndSlotChanged(e){this._detectAddonEndContent()}_detectLeadingElement(){this._adapter.hasLeadingElement()?this._adapter.addRootClass(t.classes.LEADING):this._adapter.removeRootClass(t.classes.LEADING)}_detectAddonEndContent(){this._adapter.hasAddonEndNodes()?this._adapter.addRootClass(t.classes.ADDON_END):this._adapter.removeRootClass(t.classes.ADDON_END)}_onClick(e){this._disabled||L(e).find(r=>r.classList&&r.classList.contains(t.classes.ADDON_END_CONTAINER))||(this.setFocus(),super._onClick(e))}_onFocus(e){this._disabled||(this._setFocused(),super._onFocus(e))}_floatLabel(e){!this._floatingLabelInstance||(e?this._adapter.addRootClass(o.classes.LABEL_FLOAT):this._adapter.removeRootClass(o.classes.LABEL_FLOAT),this._floatLabelType==="always"&&(e=!0),this._floatingLabelInstance.float(e,this._floatLabelType==="always"))}_onBlur(e){super._onBlur(e),this._setBlurred()}_onDismiss(){super._onDismiss(),this._setBlurred()}_onDropdownScrollEnd(){this._adapter.emitHostEvent(o.events.SCROLLED_BOTTOM)}async _onSelect(e,i,r=!0){let u=await super._onSelect(e,i,r);return u&&(this._adapter.setSelectedText(this._getSelectedText()),r&&!this._multiple&&this._adapter.setFocus()),u}_setFocused(){this._adapter.addRootClass(t.classes.FOCUSED),this._floatLabel(!0)}_setBlurred(){var e;this._adapter.removeRootClass(t.classes.FOCUSED),!this._selectedValues.length&&!((e=this._placeholder)!=null&&e.length)&&this._floatLabel(!1)}_reset(){var e;super._reset(),this._adapter.setSelectedText(""),this._floatLabel(!((e=this._placeholder)!=null&&e.length))}_updateLabel(){this._adapter.hasLabel()&&this._adapter.setLabel(this._label),this._label&&this._density!=="dense"?this._adapter.addRootClass(t.classes.LABEL):this._adapter.removeRootClass(t.classes.LABEL)}_applyValue(e){super._applyValue(e);let i=this._getSelectedText();this._adapter.setSelectedText(i),this._open||this._floatLabel(!!i||!!this._placeholder)}_applyDensity(){this._adapter.setRoomy(this._density==="roomy"),this._adapter.setDense(this._density==="dense")}_setShapeType(){this._shape==="rounded"?this._adapter.addRootClass(t.classes.SHAPE_ROUNDED):this._adapter.removeRootClass(t.classes.SHAPE_ROUNDED)}setFocus(){this._adapter.setFocus()}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._updateLabel(),this._label?(this._initializeLabel(),this._adapter.setHostAttribute(o.attributes.LABEL,this._label)):(this._destroyLabel(),this.required=!1,this._adapter.removeHostAttribute(o.attributes.LABEL)))}get shape(){return this._shape}set shape(e){this._shape!==e&&(this._shape=e,this._isInitialized&&this._setShapeType(),this._adapter.setHostAttribute(t.attributes.SHAPE,this._shape))}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._adapter.setDisabled(this._disabled),this._initializeLabel())}get invalid(){return this._invalid}set invalid(e){this._invalid!==e&&(this._invalid=e,this._adapter.setInvalid(this._invalid))}get required(){return this._required}set required(e){this._required!==e&&(this._required=e,this._adapter.setRequired(this._required),this._adapter.toggleHostAttribute(t.attributes.REQUIRED,this._required))}get density(){return this._density}set density(e){this._density!==e&&(this._density=e,this._applyDensity(),this._adapter.setHostAttribute(t.attributes.DENSITY,this._density.toString()),this._initializeLabel())}get floatLabelType(){return this._floatLabelType}set floatLabelType(e){this._floatLabelType!==e&&(this._floatLabelType=e,this._floatLabel(this._floatLabelType==="always"||!!this._placeholder),this._adapter.setHostAttribute(t.attributes.FLOAT_LABEL_TYPE,v(this._floatLabelType)?this._floatLabelType.toString():""))}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder!==e&&(this._placeholder=e,this._adapter.setPlaceholderText(this._placeholder),this._initializeLabel())}};var $='<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" part="text"></div><label id="select-label" aria-hidden="true" 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>',Q='.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;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.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;font-size:var(--forge-select-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{font-size:1rem;font-size:var(--forge-select-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{font-size:.875rem;font-size:var(--forge-select-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--label .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(:focus){outline:0}:host([hidden]){display:none}',l=class extends P{constructor(){super();D.define([w,A,k]),x(this,$,Q),this._foundation=new p(new g(this))}static get observedAttributes(){return[t.attributes.DENSITY,t.attributes.FLOAT_LABEL_TYPE,t.attributes.SHAPE,t.attributes.INVALID,t.attributes.REQUIRED,o.attributes.LABEL,o.attributes.MULTIPLE,o.attributes.VALUE,o.attributes.DISABLED,o.attributes.PLACEHOLDER,o.attributes.OBSERVE_SCROLL,o.attributes.OBSERVE_SCROLL_THRESHOLD,b.attributes.POPUP_CLASSES,b.attributes.OPTION_LIMIT,b.attributes.SYNC_POPUP_WIDTH]}attributeChangedCallback(e,i,r){switch(e){case t.attributes.DENSITY:this.density=r;return;case t.attributes.FLOAT_LABEL_TYPE:this.floatLabelType=r;return;case t.attributes.SHAPE:this.shape=r;break;case t.attributes.INVALID:this.invalid=c(r);return;case t.attributes.REQUIRED:this.required=c(r);return;case o.attributes.LABEL:this.label=r;return;case o.attributes.DISABLED:this.disabled=c(r);return;case o.attributes.PLACEHOLDER:this.placeholder=r;return}super.attributeChangedCallback(e,i,r)}};a([n()],l.prototype,"label",2),a([n()],l.prototype,"disabled",2),a([n()],l.prototype,"invalid",2),a([n()],l.prototype,"required",2),a([n()],l.prototype,"density",2),a([n()],l.prototype,"floatLabelType",2),a([n()],l.prototype,"shape",2),a([n()],l.prototype,"placeholder",2),l=a([T({name:o.elementName,dependencies:[H,q,F,I,z,N,C,U,B,R]})],l);function Ue(){E(l)}export{o as a,g as b,p as c,l as d,Ue as e};
7
+ //# sourceMappingURL=chunk.ZMH4OL2E.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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-haspopup', 'true');\n this._component.setAttribute('aria-expanded', 'false');\n\n // We need to ensure the host element receives a non-negative tabindex for our interactions to work properly\n if (!this._component.hasAttribute('tabindex') || this._component.tabIndex === -1) {\n this._component.tabIndex = 0;\n }\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._component.addEventListener('click', listener);\n }\n\n public removeClickListener(listener: (evt: Event) => void): void {\n this._component.removeEventListener('click', listener);\n }\n\n public addMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._component.addEventListener('mousedown', listener);\n }\n\n public removeMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._component.removeEventListener('mousedown', listener);\n }\n\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\n this._component.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\n this._component.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._component.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._component.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._setFocused();\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 contain focus. */\n private _setFocused(): void {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._floatLabel(true);\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\\\" part=\\\"text\\\"></div><label id=\\\"select-label\\\" aria-hidden=\\\"true\\\" 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;font-size:var(--forge-select-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{font-size:1rem;font-size:var(--forge-select-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{font-size:.875rem;font-size:var(--forge-select-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--label .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(:focus){outline:0}: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 * @tag forge-select\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", "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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",
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-haspopup', 'true');\n this._component.setAttribute('aria-expanded', 'false');\n\n // We need to ensure the host element receives a non-negative tabindex for our interactions to work properly\n if (!this._component.hasAttribute('tabindex') || this._component.tabIndex === -1) {\n this._component.tabIndex = 0;\n }\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._component.addEventListener('click', listener);\n }\n\n public removeClickListener(listener: (evt: Event) => void): void {\n this._component.removeEventListener('click', listener);\n }\n\n public addMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._component.addEventListener('mousedown', listener);\n }\n\n public removeMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._component.removeEventListener('mousedown', listener);\n }\n\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\n this._component.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\n this._component.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._component.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._component.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._setFocused();\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 contain focus. */\n private _setFocused(): void {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._floatLabel(true);\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\\\" part=\\\"text\\\"></div><label id=\\\"select-label\\\" aria-hidden=\\\"true\\\" 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;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.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;font-size:var(--forge-select-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{font-size:1rem;font-size:var(--forge-select-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{font-size:.875rem;font-size:var(--forge-select-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--label .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(:focus){outline:0}: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 * @tag forge-select\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", "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
6
  "names": []
7
7
  }