import { __decorate } from "tslib"; import { html, nothing } from 'lit'; import { customElement, property, queryAssignedElements, state, } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { map } from 'lit/directives/map.js'; import { createRef, ref } from 'lit/directives/ref.js'; import { when } from 'lit/directives/when.js'; import { isString } from '@mdui/jq/shared/helper.js'; import { MduiElement } from '@mdui/shared/base/mdui-element.js'; import { DefinedController } from '@mdui/shared/controllers/defined.js'; import { FormController, formResets } from '@mdui/shared/controllers/form.js'; import { HasSlotController } from '@mdui/shared/controllers/has-slot.js'; import { defaultValue } from '@mdui/shared/decorators/default-value.js'; import { booleanConverter } from '@mdui/shared/helpers/decorator.js'; import { observeResize } from '@mdui/shared/helpers/observeResize.js'; import { componentStyle } from '@mdui/shared/lit-styles/component-style.js'; import { FocusableMixin } from '@mdui/shared/mixins/focusable.js'; import '../chip.js'; import '../dropdown.js'; import '../menu.js'; import '../text-field.js'; import { style } from './style.js'; /** * @summary 选择框组件。需配合 `` 组件使用 * * ```html * * ..Item 1 * ..Item 2 * * ``` * * @event focus - 获得焦点时触发 * @event blur - 失去焦点时触发 * @event change - 选中的值变更时触发 * @event invalid - 表单字段验证未通过时触发 * @event clear - 在点击由 `clearable` 属性生成的清空按钮时触发。可以通过调用 `event.preventDefault()` 阻止清空选择框 * * @slot - `` 元素 * @slot icon - 左侧图标 * @slot end-icon - 右侧图标 * @slot error-icon - 验证失败状态的右侧图标 * @slot prefix - 左侧文本 * @slot suffix - 右侧文本 * @slot clear-button - 清空按钮 * @slot clear-icon - 清空按钮中的图标 * @slot helper - 底部的帮助文本 * * @csspart chips - 多选时,放置选中值对应的 chip 的容器 * @csspart chip - 多选时,每一个选中的值对应的 chip * @csspart chip__button - chip 内部的 `