calcite-option_3.entry.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. /*!
  2. * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
  4. * v1.0.0-beta.82
  5. */
  6. import { r as registerInstance, c as createEvent, h, g as getElement, F as Fragment } from './index-8ece2564.js';
  7. import { c as createObserver } from './observers-b198f831.js';
  8. import { f as focusElement } from './dom-da697a3f.js';
  9. import { c as connectLabel, d as disconnectLabel } from './label-50132b90.js';
  10. import { c as connectForm, d as disconnectForm, a as afterConnectDefaultValueSet, H as HiddenFormInputSlot } from './form-bca481e1.js';
  11. import { u as updateHostInteraction } from './interactive-cb5bf285.js';
  12. import './guid-b4461004.js';
  13. const optionCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{display:block}";
  14. const Option = class {
  15. constructor(hostRef) {
  16. registerInstance(this, hostRef);
  17. this.calciteOptionChange = createEvent(this, "calciteOptionChange", 7);
  18. //--------------------------------------------------------------------------
  19. //
  20. // Properties
  21. //
  22. //--------------------------------------------------------------------------
  23. /**
  24. * When true, it prevents the option from being selected.
  25. */
  26. this.disabled = false;
  27. this.mutationObserver = createObserver("mutation", () => {
  28. this.ensureTextContentDependentProps();
  29. this.calciteOptionChange.emit();
  30. });
  31. }
  32. handlePropChange(_newValue, _oldValue, propName) {
  33. if (propName === "label" || propName === "value") {
  34. this.ensureTextContentDependentProps();
  35. }
  36. this.calciteOptionChange.emit();
  37. }
  38. //--------------------------------------------------------------------------
  39. //
  40. // Private Methods
  41. //
  42. //--------------------------------------------------------------------------
  43. ensureTextContentDependentProps() {
  44. const { el: { textContent } } = this;
  45. if (!this.label || this.label === this.internallySetLabel) {
  46. this.label = textContent;
  47. this.internallySetLabel = textContent;
  48. }
  49. if (!this.value || this.value === this.internallySetValue) {
  50. this.value = textContent;
  51. this.internallySetValue = textContent;
  52. }
  53. }
  54. //--------------------------------------------------------------------------
  55. //
  56. // Lifecycle
  57. //
  58. //--------------------------------------------------------------------------
  59. connectedCallback() {
  60. var _a;
  61. this.ensureTextContentDependentProps();
  62. (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, {
  63. attributeFilter: ["label", "value"],
  64. characterData: true,
  65. childList: true,
  66. subtree: true
  67. });
  68. }
  69. disconnectedCallback() {
  70. var _a;
  71. (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
  72. }
  73. //--------------------------------------------------------------------------
  74. //
  75. // Render Methods
  76. //
  77. //--------------------------------------------------------------------------
  78. render() {
  79. return h("slot", null, this.label);
  80. }
  81. get el() { return getElement(this); }
  82. static get watchers() { return {
  83. "disabled": ["handlePropChange"],
  84. "label": ["handlePropChange"],
  85. "selected": ["handlePropChange"],
  86. "value": ["handlePropChange"]
  87. }; }
  88. };
  89. Option.style = optionCss;
  90. const optionGroupCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{display:block}";
  91. const OptionGroup = class {
  92. constructor(hostRef) {
  93. registerInstance(this, hostRef);
  94. this.calciteOptionGroupChange = createEvent(this, "calciteOptionGroupChange", 7);
  95. //--------------------------------------------------------------------------
  96. //
  97. // Properties
  98. //
  99. //--------------------------------------------------------------------------
  100. /**
  101. * When true, it prevents selection from any of its associated options.
  102. */
  103. this.disabled = false;
  104. }
  105. handlePropChange() {
  106. this.calciteOptionGroupChange.emit();
  107. }
  108. //--------------------------------------------------------------------------
  109. //
  110. // Render Methods
  111. //
  112. //--------------------------------------------------------------------------
  113. render() {
  114. return (h(Fragment, null, h("div", null, this.label), h("slot", null)));
  115. }
  116. static get watchers() { return {
  117. "disabled": ["handlePropChange"],
  118. "label": ["handlePropChange"]
  119. }; }
  120. };
  121. OptionGroup.style = optionGroupCss;
  122. const CSS = {
  123. icon: "icon",
  124. iconContainer: "icon-container",
  125. select: "select"
  126. };
  127. const selectCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:host{--calcite-icon-size:1rem;--calcite-spacing-eighth:0.125rem;--calcite-spacing-quarter:0.25rem;--calcite-spacing-half:0.5rem;--calcite-spacing-three-quarters:0.75rem;--calcite-spacing:1rem;--calcite-spacing-plus-quarter:1.25rem;--calcite-spacing-plus-half:1.5rem;--calcite-spacing-double:2rem;--calcite-menu-min-width:10rem;--calcite-header-min-height:3rem;--calcite-footer-min-height:3rem}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;width:var(--select-width)}:host([disabled]){pointer-events:none;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host([scale=s]){height:1.5rem;--calcite-select-font-size:var(--calcite-font-size--2);--calcite-select-spacing-inline:0.5rem 2rem}:host([scale=s]) .icon-container{padding-left:0.5rem;padding-right:0.5rem}:host([scale=m]){height:2rem;--calcite-select-font-size:var(--calcite-font-size--1);--calcite-select-spacing-inline:0.75rem 2.5rem}:host([scale=m]) .icon-container{padding-left:0.75rem;padding-right:0.75rem}:host([scale=l]){height:44px;--calcite-select-font-size:var(--calcite-font-size-0);--calcite-select-spacing-inline:1rem 3rem}:host([scale=l]) .icon-container{padding-left:1rem;padding-right:1rem}:host([width=auto]){width:auto}:host([width=half]){width:50%}:host([width=full]){width:100%}.select{margin:0px;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:0px;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);font-family:inherit;color:var(--calcite-ui-text-2);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;font-size:var(--calcite-select-font-size);padding-inline:var(--calcite-select-spacing-inline);border-inline-end-width:0px}.select:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.select:hover{background-color:var(--calcite-ui-foreground-2)}select:disabled{border-color:var(--calcite-ui-border-input);--tw-bg-opacity:1}.icon-container{pointer-events:none;position:absolute;top:0px;bottom:0px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;border-width:0px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:transparent;color:var(--calcite-ui-text-2);inset-inline-end:0px;border-inline-width:0px 1px}.select:focus~.icon-container{border-color:transparent}::slotted(input[slot=hidden-form-input]){bottom:0 !important;left:0 !important;margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;right:0 !important;top:0 !important;-webkit-transform:none !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}";
  128. function isOption(optionOrGroup) {
  129. return optionOrGroup.tagName === "CALCITE-OPTION";
  130. }
  131. function isOptionGroup(optionOrGroup) {
  132. return optionOrGroup.tagName === "CALCITE-OPTION-GROUP";
  133. }
  134. const Select = class {
  135. constructor(hostRef) {
  136. registerInstance(this, hostRef);
  137. this.calciteSelectChange = createEvent(this, "calciteSelectChange", 7);
  138. //--------------------------------------------------------------------------
  139. //
  140. // Properties
  141. //
  142. //--------------------------------------------------------------------------
  143. /**
  144. * When true, it prevents the option from being selected.
  145. */
  146. this.disabled = false;
  147. /**
  148. * When true, makes the component required for form-submission.
  149. *
  150. * @internal
  151. */
  152. this.required = false;
  153. /**
  154. * The component scale.
  155. */
  156. this.scale = "m";
  157. /** The value of the selectedOption */
  158. this.value = null;
  159. /**
  160. * The component width.
  161. */
  162. this.width = "auto";
  163. this.componentToNativeEl = new Map();
  164. this.mutationObserver = createObserver("mutation", () => this.populateInternalSelect());
  165. this.handleInternalSelectChange = () => {
  166. const selected = this.selectEl.selectedOptions[0];
  167. this.selectFromNativeOption(selected);
  168. requestAnimationFrame(() => this.emitChangeEvent());
  169. };
  170. this.populateInternalSelect = () => {
  171. const optionsAndGroups = Array.from(this.el.children).filter((child) => child.tagName === "CALCITE-OPTION" || child.tagName === "CALCITE-OPTION-GROUP");
  172. this.clearInternalSelect();
  173. optionsAndGroups.forEach((optionOrGroup) => { var _a; return (_a = this.selectEl) === null || _a === void 0 ? void 0 : _a.append(this.toNativeElement(optionOrGroup)); });
  174. };
  175. this.storeSelectRef = (node) => {
  176. this.selectEl = node;
  177. this.populateInternalSelect();
  178. const selected = this.selectEl.selectedOptions[0];
  179. this.selectFromNativeOption(selected);
  180. };
  181. this.emitChangeEvent = () => {
  182. this.calciteSelectChange.emit();
  183. };
  184. }
  185. valueHandler(value) {
  186. const items = this.el.querySelectorAll("calcite-option");
  187. items.forEach((item) => (item.selected = item.value === value));
  188. }
  189. selectedOptionHandler(selectedOption) {
  190. this.value = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value;
  191. }
  192. //--------------------------------------------------------------------------
  193. //
  194. // Lifecycle
  195. //
  196. //--------------------------------------------------------------------------
  197. connectedCallback() {
  198. var _a;
  199. const { el } = this;
  200. (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(el, {
  201. subtree: true,
  202. childList: true
  203. });
  204. connectLabel(this);
  205. connectForm(this);
  206. }
  207. disconnectedCallback() {
  208. var _a;
  209. (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
  210. disconnectLabel(this);
  211. disconnectForm(this);
  212. }
  213. componentDidLoad() {
  214. var _a, _b;
  215. afterConnectDefaultValueSet(this, (_b = (_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "");
  216. }
  217. componentDidRender() {
  218. updateHostInteraction(this);
  219. }
  220. //--------------------------------------------------------------------------
  221. //
  222. // Public Methods
  223. //
  224. //--------------------------------------------------------------------------
  225. /** Sets focus on the component. */
  226. async setFocus() {
  227. focusElement(this.selectEl);
  228. }
  229. handleOptionOrGroupChange(event) {
  230. event.stopPropagation();
  231. const optionOrGroup = event.target;
  232. const nativeEl = this.componentToNativeEl.get(optionOrGroup);
  233. if (!nativeEl) {
  234. return;
  235. }
  236. this.updateNativeElement(optionOrGroup, nativeEl);
  237. if (isOption(optionOrGroup) && optionOrGroup.selected) {
  238. this.deselectAllExcept(optionOrGroup);
  239. this.selectedOption = optionOrGroup;
  240. }
  241. }
  242. //--------------------------------------------------------------------------
  243. //
  244. // Private Methods
  245. //
  246. //--------------------------------------------------------------------------
  247. onLabelClick() {
  248. this.setFocus();
  249. }
  250. updateNativeElement(optionOrGroup, nativeOptionOrGroup) {
  251. nativeOptionOrGroup.disabled = optionOrGroup.disabled;
  252. nativeOptionOrGroup.label = optionOrGroup.label;
  253. if (isOption(optionOrGroup)) {
  254. const option = nativeOptionOrGroup;
  255. option.selected = optionOrGroup.selected;
  256. option.value = optionOrGroup.value;
  257. // need to set innerText for mobile
  258. // see https://stackoverflow.com/questions/35021620/ios-safari-not-showing-all-options-for-select-menu/41749701
  259. option.innerText = optionOrGroup.label;
  260. }
  261. }
  262. clearInternalSelect() {
  263. this.componentToNativeEl.forEach((value) => value.remove());
  264. this.componentToNativeEl.clear();
  265. }
  266. selectFromNativeOption(nativeOption) {
  267. if (!nativeOption) {
  268. return;
  269. }
  270. let futureSelected;
  271. this.componentToNativeEl.forEach((nativeOptionOrGroup, optionOrGroup) => {
  272. if (isOption(optionOrGroup) && nativeOptionOrGroup === nativeOption) {
  273. optionOrGroup.selected = true;
  274. futureSelected = optionOrGroup;
  275. this.deselectAllExcept(optionOrGroup);
  276. }
  277. });
  278. if (futureSelected) {
  279. this.selectedOption = futureSelected;
  280. }
  281. }
  282. toNativeElement(optionOrGroup) {
  283. if (isOption(optionOrGroup)) {
  284. const option = document.createElement("option");
  285. this.updateNativeElement(optionOrGroup, option);
  286. this.componentToNativeEl.set(optionOrGroup, option);
  287. return option;
  288. }
  289. if (isOptionGroup(optionOrGroup)) {
  290. const group = document.createElement("optgroup");
  291. this.updateNativeElement(optionOrGroup, group);
  292. Array.from(optionOrGroup.children).forEach((option) => {
  293. const nativeOption = this.toNativeElement(option);
  294. group.append(nativeOption);
  295. this.componentToNativeEl.set(optionOrGroup, nativeOption);
  296. });
  297. this.componentToNativeEl.set(optionOrGroup, group);
  298. return group;
  299. }
  300. throw new Error("unsupported element child provided");
  301. }
  302. deselectAllExcept(except) {
  303. this.el.querySelectorAll("calcite-option").forEach((option) => {
  304. if (option === except) {
  305. return;
  306. }
  307. option.selected = false;
  308. });
  309. }
  310. //--------------------------------------------------------------------------
  311. //
  312. // Render Methods
  313. //
  314. //--------------------------------------------------------------------------
  315. renderChevron() {
  316. return (h("div", { class: CSS.iconContainer }, h("calcite-icon", { class: CSS.icon, icon: "chevron-down", scale: "s" })));
  317. }
  318. render() {
  319. return (h(Fragment, null, h("select", { "aria-label": this.label, class: CSS.select, disabled: this.disabled, onChange: this.handleInternalSelectChange, ref: this.storeSelectRef }, h("slot", null)), this.renderChevron(), h(HiddenFormInputSlot, { component: this })));
  320. }
  321. get el() { return getElement(this); }
  322. static get watchers() { return {
  323. "value": ["valueHandler"],
  324. "selectedOption": ["selectedOptionHandler"]
  325. }; }
  326. };
  327. Select.style = selectCss;
  328. export { Option as calcite_option, OptionGroup as calcite_option_group, Select as calcite_select };