{"version":3,"file":"selectOption.mjs","names":[],"sources":["../../../../src/components/select/src/selectOption.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, reactive, resolveComponent } from \"vue\";\nimport { ElOption, ElOptionGroup } from \"element-plus\";\nimport { definePropType, makeSlots, useRender } from \"../../../utils\";\nimport type { ElSelectorOutput, ElSelectorValue } from \"./select.type\";\n\nexport default defineComponent({\n\tname: \"FaSelectOption\",\n\tprops: {\n\t\t/** 绑定值，优先级比 data 高 */\n\t\tvalue: {\n\t\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 显示值，优先级比 data 高 */\n\t\tlabel: String,\n\t\t/** 禁用值，优先级比 data 高 */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 子节点，优先级比 data 高 */\n\t\tchildren: {\n\t\t\ttype: definePropType<ElSelectorOutput[]>(Array),\n\t\t},\n\t\t/** 下拉框数据 */\n\t\tdata: {\n\t\t\ttype: definePropType<ElSelectorOutput>(Object),\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\t/** 插槽使用的附加状态 */\n\t\tmoreDetail: Boolean,\n\t},\n\tslots: makeSlots<{\n\t\t/** 默认内容插槽 */\n\t\tdefault: ElSelectorOutput;\n\t}>(),\n\tsetup(props, { slots }) {\n\t\tconst state = reactive({\n\t\t\tvalue: computed<ElSelectorValue>(() => props.value ?? props.data.value ?? \"\"),\n\t\t\tlabel: computed(() => props.label ?? props.data.label),\n\t\t\tdisabled: computed(() => props.disabled ?? props.data.disabled ?? false),\n\t\t\tchildren: computed(() => props.children ?? props.data.children ?? []),\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{state.children.length > 0 ? (\n\t\t\t\t\t<ElOptionGroup label={state.label} disabled={state.disabled}>\n\t\t\t\t\t\t{state.children.map((item) =>\n\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\tresolveComponent(\"FaSelectOption\"),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmoreDetail: props.moreDetail,\n\t\t\t\t\t\t\t\t\tdata: item,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ElOptionGroup>\n\t\t\t\t) : (\n\t\t\t\t\t<ElOption\n\t\t\t\t\t\tclass={{ \"fa-select-dropdown__selector__more-detail\": props.moreDetail && slots.default }}\n\t\t\t\t\t\tvalue={state.value}\n\t\t\t\t\t\tlabel={state.label}\n\t\t\t\t\t\tdisabled={state.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{slots.default?.(props.data)}\n\t\t\t\t\t</ElOption>\n\t\t\t\t)}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"mappings":";;;;;;AAGuE,SAAA,QAAA,GAAA;CAAA,OAAA,OAAA,MAAA,cAAA,OAAA,UAAA,SAAA,KAAA,CAAA,MAAA,qBAAA,CAAA,QAAA,CAAA;AAAA;AAEvE,IAAA,uBAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;;EAEN,OAAO;GACN,MAAM,eAAmD;IAAC;IAAQ;IAAQ;IAAS;GAAM,CAAC;GAC1F,SAAS,KAAA;EACV;;EAEA,OAAO;;EAEP,UAAU;GACT,MAAM;GACN,SAAS,KAAA;EACV;;EAEA,UAAU,EACT,MAAM,eAAmC,KAAK,EAC/C;;EAEA,MAAM;GACL,MAAM,eAAiC,MAAM;GAC7C,gBAAgB,CAAC;EAClB;;EAEA,YAAY;CACb;CACA,OAAO,UAGJ;CACH,MAAM,OAAO,EAAE,SAAS;EACvB,MAAM,QAAQ,SAAS;GACtB,OAAO,eAAgC,MAAM,SAAS,MAAM,KAAK,SAAS,EAAE;GAC5E,OAAO,eAAe,MAAM,SAAS,MAAM,KAAK,KAAK;GACrD,UAAU,eAAe,MAAM,YAAY,MAAM,KAAK,YAAY,KAAK;GACvE,UAAU,eAAe,MAAM,YAAY,MAAM,KAAK,YAAY,CAAA,CAAE;EACrE,CAAC;EAED,gBAAU;GAAA,IAAA;GAAA,OAAA,YAAA,UAAA,MAAA,CAEP,MAAM,SAAS,SAAS,IAAC,YAAA,eAAA;IAAA,SACH,MAAM;IAAK,YAAY,MAAM;GAAQ,GAAA,QAAA,QACzD,MAAM,SAAS,KAAK,SACpB,EACC,iBAAiB,gBAAgB,GACjC;IACC,YAAY,MAAM;IAClB,MAAM;GACP,GACA,KACD,CACD,CAAC,IAAA,QAAA,EAAA,eAAA,CAAA,KAAA,EAAA,CAAA,IAAA,YAAA,UAAA;IAAA,SAIM,EAAE,6CAA6C,MAAM,cAAc,MAAM,QAAQ;IAAC,SAClF,MAAM;IAAK,SACX,MAAM;IAAK,YACR,MAAM;GAAQ,GAAA,EAAA,eAAA,CAEvB,MAAM,UAAU,MAAM,IAAI,CAAC,EAAA,CAAA,CAE7B,CAAA;EAAA,CAEF;CACF;AACD,CAAC"}