yuyeon 0.1.0-rc.7 → 0.1.0-rc.9
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.
- package/dist/style.css +1 -1
- package/dist/yuyeon.js +636 -619
- package/dist/yuyeon.umd.cjs +10 -10
- package/lib/components/field-input/YFieldInput.mjs +4 -0
- package/lib/components/field-input/YFieldInput.mjs.map +1 -1
- package/lib/components/input/YInput.mjs +6 -6
- package/lib/components/input/YInput.mjs.map +1 -1
- package/lib/components/input/YInput.scss +2 -3
- package/lib/components/select/YSelect.mjs +3 -2
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/package.json +1 -1
- package/types/components/field-input/YFieldInput.d.ts +2 -0
- package/types/components/input/YInput.d.ts +2 -0
- package/types/components/textarea/YTextarea.d.ts +2 -0
|
@@ -206,6 +206,10 @@ export const YFieldInput = defineComponent({
|
|
|
206
206
|
"class": ['y-input__trailing']
|
|
207
207
|
}, [slots.trailing()])]) : undefined,
|
|
208
208
|
label: slots.label ? () => slots.label?.() : undefined,
|
|
209
|
+
prepend: slots.prepend ? () => slots.prepend?.() : undefined,
|
|
210
|
+
append: slots.append ? () => slots.append?.() : undefined,
|
|
211
|
+
'leading-out': slots['leading-out'] ? () => slots['leading-out']?.() : undefined,
|
|
212
|
+
'trailing-out': slots['trailing-out'] ? () => slots['trailing-out']?.() : undefined,
|
|
209
213
|
'helper-text': slots['helper-text'] ? _ref2 => {
|
|
210
214
|
let {
|
|
211
215
|
error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YFieldInput.mjs","names":["computed","defineComponent","getCurrentInstance","nextTick","ref","toRef","watch","useRender","useFocus","chooseProps","propsFactory","YIconClear","YInput","pressYInputPropsOptions","NAME","pressYFieldInputPropsOptions","enableClear","Boolean","inputAlign","String","displayText","Function","whenInputValid","Number","tabindex","type","default","variation","YFieldInput","name","props","emits","slots","Object","setup","_ref","attrs","expose","emit","yInput$","input$","focused","whenFocus","whenBlur","inValue","displayValue","inputType","classes","onClick","event","onFocus","value","onBlur","changeDisplay","onInput","target","onChange","onKeydown","onKeyup","onClickClear","clear","onKeydownClear","code","focus","select","vm","undefined","text","call","modelValue","neo","immediate","extended","validate","invokeValidators","onUpdateModel","_createVNode","_mergeProps","$event","leading","args","leadingChildren","slot","push","defaultProps","attrId","floating","createLabel","readonly","loading","placeholder","disabled","autocomplete","maxlength","min","max","style","textAlign","trailing","_Fragment","label","_ref2","error","errorResult"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import type { PropType, SlotsType } from 'vue';\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n nextTick,\n ref,\n toRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YIconClear } from '../icons/YIconClear';\nimport {\n YInput,\n YInputDefaultSlotProps,\n pressYInputPropsOptions,\n} from '../input';\n\nimport './YFieldInput.scss';\n\nconst NAME = 'y-field-input';\n\nexport const pressYFieldInputPropsOptions = propsFactory(\n {\n enableClear: Boolean as PropType<boolean>,\n inputAlign: String as PropType<string>,\n displayText: [String, Function] as PropType<\n string | ((value: any) => string)\n >,\n whenInputValid: [Boolean, Number] as PropType<boolean | number>,\n tabindex: {\n type: String as PropType<string>,\n default: '0',\n },\n type: {\n type: String as PropType<string>,\n default: 'text',\n },\n ...pressYInputPropsOptions({\n variation: 'filled',\n }),\n },\n 'YFieldInput',\n);\n\nexport const YFieldInput = defineComponent({\n name: 'YFieldInput',\n props: {\n ...pressYFieldInputPropsOptions(),\n },\n emits: [\n 'update:modelValue',\n 'update:focused',\n 'input',\n 'change',\n 'click',\n 'mousedown',\n 'mouseup',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n 'mousedown:display',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'helper-text': { error: boolean; errorResult: string | undefined };\n }>,\n setup(props, { attrs, expose, emit, slots }) {\n const yInput$ = ref<YInput>();\n const input$ = ref<HTMLInputElement>();\n const { focused, whenFocus, whenBlur } = useFocus(props, 'y-field-input');\n const inValue = ref<any>('');\n const displayValue = ref('');\n const inputType = toRef(props, 'type');\n\n const classes = computed(() => {\n return {\n [NAME]: true,\n };\n });\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n displayValue.value = inValue.value as string;\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n emit('blur', event);\n changeDisplay();\n }\n\n function onInput(event: Event) {\n emit('input', event);\n const target = event.target as HTMLInputElement | null;\n inValue.value = target?.value;\n displayValue.value = target?.value as string;\n }\n\n function onChange(event: Event) {\n emit('change', inValue.value);\n }\n\n function onKeydown(event: KeyboardEvent) {\n emit('keydown', event);\n }\n\n function onKeyup(event: KeyboardEvent) {\n emit('keyup', event);\n }\n\n function onClickClear(event: MouseEvent) {\n clear();\n }\n\n function onKeydownClear(event: KeyboardEvent) {\n if (event.code === 'Space' || event.code === 'Enter') {\n clear();\n }\n }\n\n function focus() {\n input$.value?.focus();\n }\n\n function select() {\n input$.value?.select();\n }\n\n function clear() {\n inValue.value = '';\n displayValue.value = '';\n emit('update:modelValue', inValue.value);\n }\n\n function changeDisplay() {\n const vm = getCurrentInstance();\n const { displayText } = props;\n if (displayText !== undefined) {\n let text = inValue.value;\n if (typeof displayText === 'string') {\n text = displayText;\n }\n if (displayText && typeof displayText === 'function') {\n text = (displayText as any).call(vm, text);\n }\n nextTick(() => {\n displayValue.value = text as string;\n });\n }\n }\n\n watch(\n () => props.modelValue,\n (neo: any) => {\n inValue.value = neo;\n displayValue.value = neo;\n },\n {\n immediate: true,\n },\n );\n\n watch(\n inValue,\n (neo: string) => {\n if (!focused.value) {\n changeDisplay();\n } else {\n displayValue.value = neo;\n }\n },\n { immediate: true },\n );\n\n const extended = {\n focus,\n select,\n clear,\n };\n\n expose({\n ...extended,\n input$,\n validate: () => yInput$.value?.invokeValidators(),\n });\n\n function onUpdateModel(value: any) {\n emit('update:modelValue', value);\n }\n\n useRender(() => (\n <YInput\n class={classes.value}\n ref={yInput$}\n {...chooseProps(props, YInput.props)}\n modelValue={inValue.value}\n focused={focused.value}\n extended={extended}\n onUpdate:modelValue={onUpdateModel}\n onClick={onClick}\n onMousedown:display={($event) => emit('mousedown:display', $event)}\n >\n {{\n leading: slots.leading\n ? (args: any) => {\n const leadingChildren = [];\n const slot = slots.leading?.(args);\n if (slot) {\n leadingChildren.push(slot);\n } else {\n return undefined;\n }\n return leadingChildren;\n }\n : undefined,\n default: (defaultProps: YInputDefaultSlotProps) => (\n <div\n class={[`${NAME}__field`]}\n data-id={defaultProps.attrId}\n ref={'field'}\n >\n {props.floating ? yInput$.value?.createLabel?.() : undefined}\n {slots.default?.(defaultProps)}\n {\n <input\n ref={input$}\n value={displayValue.value}\n name={props.name}\n id={defaultProps.attrId}\n type={inputType.value}\n readonly={\n props.readonly || props.loading || defaultProps.loading\n }\n placeholder={props.placeholder}\n disabled={props.disabled}\n tabindex={props.tabindex || '0'}\n autocomplete={attrs.autocomplete as string}\n maxlength={attrs.maxlength as number | string}\n min={attrs.min as number | string}\n max={attrs.max as number | string}\n style={[attrs?.style, { textAlign: props.inputAlign } as any]}\n onInput={onInput}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n onKeydown={onKeydown}\n onKeyup={onKeyup}\n />\n }\n </div>\n ),\n trailing:\n slots.trailing || (props.enableClear && inValue.value)\n ? () => (\n <>\n {props.enableClear && inValue.value && (\n <div\n class={[\n 'y-input__trailing',\n 'y-input__trailing--clear',\n ]}\n >\n <button\n class={[`${NAME}__clear`]}\n onClick={onClickClear}\n onKeydown={onKeydownClear}\n tabindex={2}\n >\n <YIconClear></YIconClear>\n </button>\n </div>\n )}\n {slots.trailing && (\n <div class={['y-input__trailing']}>\n {slots.trailing()}\n </div>\n )}\n </>\n )\n : undefined,\n label: slots.label ? () => slots.label?.() : undefined,\n 'helper-text': slots['helper-text']\n ? ({ error, errorResult }: any) =>\n slots['helper-text']?.({ error, errorResult })\n : undefined,\n }}\n </YInput>\n ));\n\n return {\n focused,\n inValue,\n };\n },\n});\n\nexport type YFieldInput = InstanceType<typeof YFieldInput>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YFieldInput.mjs","names":["computed","defineComponent","getCurrentInstance","nextTick","ref","toRef","watch","useRender","useFocus","chooseProps","propsFactory","YIconClear","YInput","pressYInputPropsOptions","NAME","pressYFieldInputPropsOptions","enableClear","Boolean","inputAlign","String","displayText","Function","whenInputValid","Number","tabindex","type","default","variation","YFieldInput","name","props","emits","slots","Object","setup","_ref","attrs","expose","emit","yInput$","input$","focused","whenFocus","whenBlur","inValue","displayValue","inputType","classes","onClick","event","onFocus","value","onBlur","changeDisplay","onInput","target","onChange","onKeydown","onKeyup","onClickClear","clear","onKeydownClear","code","focus","select","vm","undefined","text","call","modelValue","neo","immediate","extended","validate","invokeValidators","onUpdateModel","_createVNode","_mergeProps","$event","leading","args","leadingChildren","slot","push","defaultProps","attrId","floating","createLabel","readonly","loading","placeholder","disabled","autocomplete","maxlength","min","max","style","textAlign","trailing","_Fragment","label","prepend","append","_ref2","error","errorResult"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import type { PropType, SlotsType } from 'vue';\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n nextTick,\n ref,\n toRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YIconClear } from '../icons/YIconClear';\nimport {\n YInput,\n YInputDefaultSlotProps,\n pressYInputPropsOptions,\n} from '../input';\n\nimport './YFieldInput.scss';\n\nconst NAME = 'y-field-input';\n\nexport const pressYFieldInputPropsOptions = propsFactory(\n {\n enableClear: Boolean as PropType<boolean>,\n inputAlign: String as PropType<string>,\n displayText: [String, Function] as PropType<\n string | ((value: any) => string)\n >,\n whenInputValid: [Boolean, Number] as PropType<boolean | number>,\n tabindex: {\n type: String as PropType<string>,\n default: '0',\n },\n type: {\n type: String as PropType<string>,\n default: 'text',\n },\n ...pressYInputPropsOptions({\n variation: 'filled',\n }),\n },\n 'YFieldInput',\n);\n\nexport const YFieldInput = defineComponent({\n name: 'YFieldInput',\n props: {\n ...pressYFieldInputPropsOptions(),\n },\n emits: [\n 'update:modelValue',\n 'update:focused',\n 'input',\n 'change',\n 'click',\n 'mousedown',\n 'mouseup',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n 'mousedown:display',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'leading-out': any;\n 'trailing-out': any;\n 'helper-text': { error: boolean; errorResult: string | undefined };\n }>,\n setup(props, { attrs, expose, emit, slots }) {\n const yInput$ = ref<YInput>();\n const input$ = ref<HTMLInputElement>();\n const { focused, whenFocus, whenBlur } = useFocus(props, 'y-field-input');\n const inValue = ref<any>('');\n const displayValue = ref('');\n const inputType = toRef(props, 'type');\n\n const classes = computed(() => {\n return {\n [NAME]: true,\n };\n });\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n displayValue.value = inValue.value as string;\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n emit('blur', event);\n changeDisplay();\n }\n\n function onInput(event: Event) {\n emit('input', event);\n const target = event.target as HTMLInputElement | null;\n inValue.value = target?.value;\n displayValue.value = target?.value as string;\n }\n\n function onChange(event: Event) {\n emit('change', inValue.value);\n }\n\n function onKeydown(event: KeyboardEvent) {\n emit('keydown', event);\n }\n\n function onKeyup(event: KeyboardEvent) {\n emit('keyup', event);\n }\n\n function onClickClear(event: MouseEvent) {\n clear();\n }\n\n function onKeydownClear(event: KeyboardEvent) {\n if (event.code === 'Space' || event.code === 'Enter') {\n clear();\n }\n }\n\n function focus() {\n input$.value?.focus();\n }\n\n function select() {\n input$.value?.select();\n }\n\n function clear() {\n inValue.value = '';\n displayValue.value = '';\n emit('update:modelValue', inValue.value);\n }\n\n function changeDisplay() {\n const vm = getCurrentInstance();\n const { displayText } = props;\n if (displayText !== undefined) {\n let text = inValue.value;\n if (typeof displayText === 'string') {\n text = displayText;\n }\n if (displayText && typeof displayText === 'function') {\n text = (displayText as any).call(vm, text);\n }\n nextTick(() => {\n displayValue.value = text as string;\n });\n }\n }\n\n watch(\n () => props.modelValue,\n (neo: any) => {\n inValue.value = neo;\n displayValue.value = neo;\n },\n {\n immediate: true,\n },\n );\n\n watch(\n inValue,\n (neo: string) => {\n if (!focused.value) {\n changeDisplay();\n } else {\n displayValue.value = neo;\n }\n },\n { immediate: true },\n );\n\n const extended = {\n focus,\n select,\n clear,\n };\n\n expose({\n ...extended,\n input$,\n validate: () => yInput$.value?.invokeValidators(),\n });\n\n function onUpdateModel(value: any) {\n emit('update:modelValue', value);\n }\n\n useRender(() => (\n <YInput\n class={classes.value}\n ref={yInput$}\n {...chooseProps(props, YInput.props)}\n modelValue={inValue.value}\n focused={focused.value}\n extended={extended}\n onUpdate:modelValue={onUpdateModel}\n onClick={onClick}\n onMousedown:display={($event) => emit('mousedown:display', $event)}\n >\n {{\n leading: slots.leading\n ? (args: any) => {\n const leadingChildren = [];\n const slot = slots.leading?.(args);\n if (slot) {\n leadingChildren.push(slot);\n } else {\n return undefined;\n }\n return leadingChildren;\n }\n : undefined,\n default: (defaultProps: YInputDefaultSlotProps) => (\n <div\n class={[`${NAME}__field`]}\n data-id={defaultProps.attrId}\n ref={'field'}\n >\n {props.floating ? yInput$.value?.createLabel?.() : undefined}\n {slots.default?.(defaultProps)}\n {\n <input\n ref={input$}\n value={displayValue.value}\n name={props.name}\n id={defaultProps.attrId}\n type={inputType.value}\n readonly={\n props.readonly || props.loading || defaultProps.loading\n }\n placeholder={props.placeholder}\n disabled={props.disabled}\n tabindex={props.tabindex || '0'}\n autocomplete={attrs.autocomplete as string}\n maxlength={attrs.maxlength as number | string}\n min={attrs.min as number | string}\n max={attrs.max as number | string}\n style={[attrs?.style, { textAlign: props.inputAlign } as any]}\n onInput={onInput}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n onKeydown={onKeydown}\n onKeyup={onKeyup}\n />\n }\n </div>\n ),\n trailing:\n slots.trailing || (props.enableClear && inValue.value)\n ? () => (\n <>\n {props.enableClear && inValue.value && (\n <div\n class={[\n 'y-input__trailing',\n 'y-input__trailing--clear',\n ]}\n >\n <button\n class={[`${NAME}__clear`]}\n onClick={onClickClear}\n onKeydown={onKeydownClear}\n tabindex={2}\n >\n <YIconClear></YIconClear>\n </button>\n </div>\n )}\n {slots.trailing && (\n <div class={['y-input__trailing']}>\n {slots.trailing()}\n </div>\n )}\n </>\n )\n : undefined,\n label: slots.label ? () => slots.label?.() : undefined,\n prepend: slots.prepend ? () => slots.prepend?.() : undefined,\n append: slots.append ? () => slots.append?.() : undefined,\n 'leading-out': slots['leading-out'] ? () => slots['leading-out']?.() : undefined,\n 'trailing-out': slots['trailing-out'] ? () => slots['trailing-out']?.() : undefined,\n 'helper-text': slots['helper-text']\n ? ({ error, errorResult }: any) =>\n slots['helper-text']?.({ error, errorResult })\n : undefined,\n }}\n </YInput>\n ));\n\n return {\n focused,\n inValue,\n };\n },\n});\n\nexport type YFieldInput = InstanceType<typeof YFieldInput>;\n"],"mappings":"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"}
|
|
@@ -196,12 +196,12 @@ export const YInput = defineComponent({
|
|
|
196
196
|
"class": [`${NAME}`, {
|
|
197
197
|
...classes.value
|
|
198
198
|
}]
|
|
199
|
-
}, [slots.prepend
|
|
199
|
+
}, [slots.prepend && _createVNode("div", {
|
|
200
200
|
"class": `${NAME}__prepend`
|
|
201
|
-
}, [
|
|
201
|
+
}, [slots.prepend()]), _createVNode("div", {
|
|
202
202
|
"ref": stack$,
|
|
203
203
|
"class": [`${NAME}__stack`]
|
|
204
|
-
}, [!props.floating && createLabel(), _createVNode("div", {
|
|
204
|
+
}, [!props.floating && createLabel(), slots['leading-out'] && slots['leading-out'](), _createVNode("div", {
|
|
205
205
|
"ref": display$,
|
|
206
206
|
"class": `${NAME}__display`,
|
|
207
207
|
"style": [{
|
|
@@ -227,15 +227,15 @@ export const YInput = defineComponent({
|
|
|
227
227
|
"tabindex": 0,
|
|
228
228
|
"onFocus": onFocus,
|
|
229
229
|
"onBlur": onBlur
|
|
230
|
-
}, [props.floating && createLabel(), props.modelValue?.toString()]), slots.trailing?.()]), _createVNode("div", {
|
|
230
|
+
}, [props.floating && createLabel(), props.modelValue?.toString()]), slots.trailing?.()]), slots['trailing-out'] && slots['trailing-out'](), _createVNode("div", {
|
|
231
231
|
"class": `${NAME}__helper-text`
|
|
232
232
|
}, [slots['helper-text'] ? _createVNode("span", null, [slots['helper-text']({
|
|
233
233
|
error: isError.value,
|
|
234
234
|
errors: errors.value,
|
|
235
235
|
errorResult: errorResult.value
|
|
236
|
-
})]) : props.helperText ?? errorResult.value])]), slots.append
|
|
236
|
+
})]) : props.helperText ?? errorResult.value])]), slots.append && _createVNode("div", {
|
|
237
237
|
"class": `${NAME}__append`
|
|
238
|
-
}, [
|
|
238
|
+
}, [slots.append()])]);
|
|
239
239
|
});
|
|
240
240
|
return {
|
|
241
241
|
...(props.extended ?? {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YInput.mjs","names":["computed","defineComponent","ref","shallowRef","watch","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","getUid","toStyleSizeValue","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","_createVNode","_Fragment","_createTextVNode","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n PropType,\n SlotsType,\n VNode,\n computed,\n defineComponent,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '../../composables/validation';\nimport { getUid, toStyleSizeValue } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n extended: Object as PropType<any>,\n },\n 'YInput',\n);\n\nexport interface YInputDefaultSlotProps {\n value: any;\n loading: boolean;\n attrId: string;\n}\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'helper-text': {\n error: boolean;\n errorResult: string | undefined;\n errors: any[];\n };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const {\n isDisabled,\n isReadonly,\n isLoading,\n invokeValidators,\n isError,\n isSuccess,\n errors,\n errorResult,\n } = useValidation(props, NAME, UID);\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n // Style\n [themeClasses.value as string]: true,\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n // Value\n 'y-input--loading': isLoading.value,\n 'y-input--has-value': !!inValue.value,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': isReadonly.value,\n 'y-input--disabled': isDisabled.value,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!isReadonly.value && !isLoading.value) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo, errors.value);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n ...(props.extended ?? {}),\n createLabel,\n invokeValidators,\n validate: invokeValidators,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend\n ? () => <div class={`${NAME}__prepend`}>slots.prepend()</div>\n : undefined}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n loading: isLoading.value,\n attrId: `y-input--${UID}`,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errors: errors.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n props.helperText ?? errorResult.value\n )}\n </div>\n </div>\n {slots.append\n ? () => <div class={`${NAME}__append`}>slots.append()</div>\n : undefined}\n </div>\n );\n });\n\n return {\n ...(props.extended ?? {}),\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YInput.mjs","names":["computed","defineComponent","ref","shallowRef","watch","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","getUid","toStyleSizeValue","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","_createVNode","_Fragment","_createTextVNode","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n PropType,\n SlotsType,\n VNode,\n computed,\n defineComponent,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '../../composables/validation';\nimport { getUid, toStyleSizeValue } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n extended: Object as PropType<any>,\n },\n 'YInput',\n);\n\nexport interface YInputDefaultSlotProps {\n value: any;\n loading: boolean;\n attrId: string;\n}\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'leading-out': any;\n 'trailing-out': any;\n 'helper-text': {\n error: boolean;\n errorResult: string | undefined;\n errors: any[];\n };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const {\n isDisabled,\n isReadonly,\n isLoading,\n invokeValidators,\n isError,\n isSuccess,\n errors,\n errorResult,\n } = useValidation(props, NAME, UID);\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n // Style\n [themeClasses.value as string]: true,\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n // Value\n 'y-input--loading': isLoading.value,\n 'y-input--has-value': !!inValue.value,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': isReadonly.value,\n 'y-input--disabled': isDisabled.value,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!isReadonly.value && !isLoading.value) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo, errors.value);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n ...(props.extended ?? {}),\n createLabel,\n invokeValidators,\n validate: invokeValidators,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend && (\n <div class={`${NAME}__prepend`}>{slots.prepend()}</div>\n )}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n {slots['leading-out'] && slots['leading-out']()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n loading: isLoading.value,\n attrId: `y-input--${UID}`,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n {slots['trailing-out'] && slots['trailing-out']()}\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errors: errors.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n props.helperText ?? errorResult.value\n )}\n </div>\n </div>\n {slots.append && (\n <div class={`${NAME}__append`}>{slots.append()}</div>\n )}\n </div>\n );\n });\n\n return {\n ...(props.extended ?? {}),\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
|
|
@@ -21,8 +21,6 @@ $input-border-radius: variables.$border-radius-root !default;
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
&__stack {
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
24
|
height: 100%; // auto
|
|
27
25
|
flex: 1;
|
|
28
26
|
flex-wrap: wrap;
|
|
@@ -31,7 +29,7 @@ $input-border-radius: variables.$border-radius-root !default;
|
|
|
31
29
|
}
|
|
32
30
|
|
|
33
31
|
&__display {
|
|
34
|
-
display: flex;
|
|
32
|
+
display: inline-flex;
|
|
35
33
|
position: relative;
|
|
36
34
|
cursor: text;
|
|
37
35
|
flex: 1 1 auto;
|
|
@@ -93,6 +91,7 @@ $input-border-radius: variables.$border-radius-root !default;
|
|
|
93
91
|
}
|
|
94
92
|
|
|
95
93
|
&__label {
|
|
94
|
+
display: block;
|
|
96
95
|
color: var(--y-input-label-color);
|
|
97
96
|
padding-bottom: 4px;
|
|
98
97
|
font-weight: 500;
|
|
@@ -194,9 +194,10 @@ export const YSelect = defineComponent({
|
|
|
194
194
|
const listEl = getHtmlElement(listRef.value);
|
|
195
195
|
if (listEl) {
|
|
196
196
|
const activeEl = listEl?.querySelector('.y-list-item--active');
|
|
197
|
-
|
|
197
|
+
const contentEl = menuRef.value?.layer$?.content$;
|
|
198
|
+
if (activeEl && contentEl) {
|
|
198
199
|
const scrollEl = getScrollParent(activeEl);
|
|
199
|
-
if (scrollEl) {
|
|
200
|
+
if (scrollEl && (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))) {
|
|
200
201
|
scrollEl.scrollTo({
|
|
201
202
|
top: activeEl.offsetTop,
|
|
202
203
|
behavior: 'smooth'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YSelect.mjs","names":["shallowRef","nextTick","watch","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","getScrollParent","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","getHtmlElement","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","setTimeout","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","listEl","activeEl","querySelector","scrollEl","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","$event","offset","align","origin","base","_len","args","_key","rxValue","selectionProps","raw","placeholder","internalItems","leading","_len2","_key2","trailing","label","_len3","_key3","_len4","_key4","menu","itemProps","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport { PropType, SlotsType, nextTick, watch } from 'vue';\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport { useI18n } from '../../composables/i18n';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '../../composables/list-items';\nimport { getScrollParent } from '../../util';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport {\n chooseProps,\n getHtmlElement,\n propsFactory,\n} from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n label: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n const cardRef = ref<any>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps, preventCloseBubble: true };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\n // opened.value = false;\n // }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n model.value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n model.value = neo;\n }\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n watch(opened, (neo) => {\n if (neo) {\n nextTick(() => {\n scrollToActiveItem();\n });\n }\n });\n\n function scrollToActiveItem() {\n if (selections.value.length === 0) {\n return;\n }\n const listEl = getHtmlElement(listRef.value);\n if (listEl) {\n const activeEl = listEl?.querySelector('.y-list-item--active') as\n | HTMLElement\n | undefined;\n if (activeEl) {\n const scrollEl = getScrollParent(activeEl);\n if (scrollEl) {\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\n }\n }\n }\n }\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YMenu\n v-model={opened.value}\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n {...extraMenuProps.value}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...{\n ...fieldInputProps,\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\n }}\n modelValue={model.value\n .map((v: any) => v.props.value)\n .join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n label: slots.label\n ? (...args: any[]) => slots.label?.(...args)\n : undefined,\n 'helper-text': slots['helper-text']\n ? (...args: any[]) => slots['helper-text']?.(...args)\n : undefined,\n }}\n </YFieldInput>\n ),\n default: slots.menu\n ? () => slots.menu()\n : () => (\n <YCard ref={cardRef}>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return (\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active': isSelected(item),\n },\n ]}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() => slots['item-leading']?.(itemProps)),\n trailing:\n slots['item-trailing'] &&\n (() => slots['item-trailing']?.(itemProps)),\n }}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":";AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAA8BC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAC1D,SAASC,QAAQ,EAAEC,eAAe,EAAEC,UAAU,EAAEC,SAAS,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAEnEC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,oBAAoB;AAAA,SACpBC,OAAO;AAAA,SAGdC,0BAA0B,EAC1BC,QAAQ;AAAA,SAEDC,eAAe;AAAA,SACfC,WAAW;AAAA,SACXC,SAAS,EAAEC,oBAAoB,EAAEC,IAAI;AAAA,SAE5CC,WAAW,EACXC,cAAc,EACdC,YAAY;AAAA,SAELC,KAAK;AAAA,SACLC,WAAW,EAAEC,4BAA4B;AAAA,SACzCC,KAAK;AAAA,SACLC,KAAK,EAAEC,SAAS;AAAA,SAChBC,KAAK;AAEd;AAQA,OAAO,SAASC,gBAAgBA,CAC9BC,WAAgB,EAChBC,SAAc,EAEd;EAAA,IADAC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAElB,MAAMG,aAAa,GAAG,OAAOL,SAAS;EACtC,MAAMM,SAAS,GACbD,aAAa,KAAK,QAAQ,IAAIA,aAAa,KAAK,QAAQ,GACpDnB,oBAAoB,CAACa,WAAW,EAAEE,QAAQ,CAAC,GAC3CF,WAAW;EACjB,OAAOd,SAAS,CAACqB,SAAS,EAAEN,SAAS,CAAC;AACxC;AAEA,OAAO,MAAMO,uBAAuB,GAAGjB,YAAY,CACjD;EACEkB,MAAM,EAAEC,OAA4B;EACpCC,QAAQ,EAAED,OAAO;EACjBE,UAAU,EAAEF,OAAO;EACnBG,WAAW,EAAE;IACXC,IAAI,EAAEC,QAAkC;IACxCC,OAAO,EAAE9B;EACX,CAAC;EACD+B,aAAa,EAAEP,OAAO;EACtBQ,SAAS,EAAE;IACTJ,IAAI,EAAEK;EACR,CAAC;EACD,GAAGrC,0BAA0B,CAAC;AAChC,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMsC,wBAAwB,GAAG7B,YAAY,CAClD;EACE8B,SAAS,EAAE;IACTP,IAAI,EAAE,CAACQ,MAAM,EAAEC,MAAM,CAAC;IACtBP,OAAO,EAAE;EACX,CAAC;EACDQ,YAAY,EAAE;IACZV,IAAI,EAAE,CAACS,MAAM,EAAEE,KAAK,EAAEN,MAAM,CAA4B;IACxDH,OAAO,EAAE;EACX,CAAC;EACDU,SAAS,EAAE;IACTZ,IAAI,EAAEQ,MAA0B;IAChCN,OAAO,EAAE;EACX,CAAC;EACDW,UAAU,EAAE;IACVb,IAAI,EAAEQ,MAA0B;IAChCN,OAAO,EAAE;EACX,CAAC;EACD,GAAGR,uBAAuB,CAAC,CAAC;EAC5B,GAAGd,4BAA4B,CAAC,CAAC;EACjC,GAAGN,IAAI,CAACR,oBAAoB,CAAC;IAAEgD,QAAQ,EAAE;EAAqB,CAAC,CAAC,EAAE,CAChE,oBAAoB,CACrB;AACH,CAAC,EACD,SACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGvD,eAAe,CAAC;EACrCwD,IAAI,EAAE,SAAS;EACfC,YAAY,EAAE,KAAK;EACnBC,KAAK,EAAE;IACL,GAAGZ,wBAAwB,CAAC;EAC9B,CAAC;EACDa,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK,IAAI;IACzC,eAAe,EAAGzB,MAAe,IAAK,IAAI;IAC1C,YAAY,EAAE0B,CAACC,IAAS,EAAEC,CAAa,KAAK;EAC9C,CAAC;EACDC,KAAK,EAAEnB,MAkBL;EACFoB,KAAKA,CAACP,KAAK,EAAAQ,IAAA,EAA4B;IAAA,IAA1B;MAAEF,KAAK;MAAEG,KAAK;MAAEC;IAAO,CAAC,GAAAF,IAAA;IACnC,MAAMG,aAAa,GAAGlE,GAAG,CAAC,CAAC;IAC3B,MAAMmE,OAAO,GAAGnE,GAAG,CAA6B,CAAC;IACjD,MAAMoE,OAAO,GAAGpE,GAAG,CAA6B,CAAC;IACjD,MAAMqE,OAAO,GAAGrE,GAAG,CAAM,CAAC;IAE1B,MAAMgC,MAAM,GAAG/B,cAAc,CAACsD,KAAK,EAAE,QAAQ,CAAC;IAC9C,MAAMe,OAAO,GAAG7E,UAAU,CAAC,KAAK,CAAC;IAEjC,MAAM;MAAE8E,KAAK;MAAEC,aAAa;MAAEC;IAAY,CAAC,GAAGnE,QAAQ,CAACiD,KAAK,CAAC;IAC7D,MAAM;MAAEmB;IAAE,CAAC,GAAGtE,OAAO,CAAC,CAAC;IACvB,MAAMuE,KAAK,GAAG1E,cAAc,CAC1BsD,KAAK,EACL,YAAY,EACZ,EAAE,EACDqB,CAAC,IAAKJ,aAAa,CAACI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,GAAGpE,WAAW,CAACoE,CAAC,CAAC,CAAC,EACzDA,CAAC,IAAK;MACL,MAAMC,SAAS,GAAGJ,WAAW,CAACjE,WAAW,CAACoE,CAAC,CAAC,CAAC;MAC7C,OAAOrB,KAAK,CAACrB,QAAQ,GAAG2C,SAAS,GAAGA,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI;IAC1D,CACF,CAAC;IAED,MAAMC,UAAU,GAAGlF,QAAQ,CAAa,MAAM;MAC5C,MAAMmF,GAAoB,GAAG,EAAE;MAC/B,KAAK,MAAMH,CAAC,IAAID,KAAK,CAAClB,KAAK,EAAE;QAC3B,MAAMuB,KAAK,GAAGT,KAAK,CAACd,KAAK,CAACwB,IAAI,CAAEtB,IAAI,IAAK;UACvC,OAAOJ,KAAK,CAACnB,WAAW,CAACuB,IAAI,CAACF,KAAK,EAAEmB,CAAC,CAACnB,KAAK,CAAC;QAC/C,CAAC,CAAC;QACF,IAAIuB,KAAK,KAAKpD,SAAS,EAAE;UACvBmD,GAAG,CAACG,IAAI,CAACF,KAAK,CAAC;QACjB;MACF;MACA,OAAOD,GAAG;IACZ,CAAC,CAAC;IAEF,MAAMI,QAAQ,GAAGvF,QAAQ,CAAC,MAAM;MAC9B,OAAOkF,UAAU,CAACrB,KAAK,CAAC2B,GAAG,CAAEC,SAAS,IAAKA,SAAS,EAAE9B,KAAK,EAAEE,KAAK,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM6B,cAAc,GAAG1F,QAAQ,CAAC,MAAM;MACpC,OAAO;QAAE,GAAG2D,KAAK,CAACd,SAAS;QAAE8C,kBAAkB,EAAE;MAAK,CAAC;IACzD,CAAC,CAAC;IAEF,SAASC,UAAUA,CAAC7B,IAAc,EAAE;MAClC,OAAO,CAAC,CAACmB,UAAU,CAACrB,KAAK,CAACwB,IAAI,CAAEQ,YAAY,IAAK;QAC/C,OAAOA,YAAY,EAAEhC,KAAK,KAAKE,IAAI,CAACF,KAAK;MAC3C,CAAC,CAAC;IACJ;;IAEA;IACA,SAASiC,kBAAkBA,CAACC,KAAiB,EAAE;MAC7C,IAAIpC,KAAK,CAACqC,QAAQ,EAAE;QAClB;MACF;MACA5D,MAAM,CAACyB,KAAK,GAAG,CAACzB,MAAM,CAACyB,KAAK;IAC9B;IAEA,SAASoC,MAAMA,CAACF,KAAiB,EAAE;MACjC;MACA;MACA;IAAA;;IAGF;IACA,SAASG,WAAWA,CAACnC,IAAc,EAAEC,CAAa,EAAE;MAClDmC,MAAM,CAACpC,IAAI,CAAC;MACZ,IAAI,CAACJ,KAAK,CAACrB,QAAQ,EAAE;QACnB8D,UAAU,CAAC,MAAM;UACfhE,MAAM,CAACyB,KAAK,GAAG,KAAK;QACtB,CAAC,EAAE,EAAE,CAAC;MACR;IACF;IAEA,SAASwC,YAAYA,CAAA,EAAG;MACtB,IAAI,CAAC3B,OAAO,CAACb,KAAK,EAAE;QAClBS,aAAa,CAACT,KAAK,EAAEyC,KAAK,CAAC,CAAC;MAC9B;IACF;IAEA,SAASC,cAAcA,CAACR,KAAiB,EAAE;MACzC,IAAIA,KAAK,CAACS,MAAM,IAAKjC,OAAO,CAACV,KAAK,EAAU4C,MAAM,EAAEC,QAAQ,EAAE;QAC5D,OAAQX,KAAK,CAACS,MAAM,EAAkBG,QAAQ,CAC3CpC,OAAO,CAACV,KAAK,EAAU4C,MAAM,EAAEC,QAClC,CAAC;MACH;IACF;IAEA,SAASP,MAAMA,CAACpC,IAAc,EAAE;MAC9B,IAAIJ,KAAK,CAACrB,QAAQ,EAAE;QAClB,MAAMsE,KAAK,GAAG1B,UAAU,CAACrB,KAAK,CAACgD,SAAS,CAAEhB,YAAY,IAAK;UACzD,OAAOA,YAAY,CAAChC,KAAK,KAAKE,IAAI,CAACF,KAAK;QAC1C,CAAC,CAAC;QACF,IAAI+C,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB7B,KAAK,CAAClB,KAAK,GAAG,CAAC,GAAGkB,KAAK,CAAClB,KAAK,EAAEE,IAAI,CAAC;QACtC,CAAC,MAAM;UACL,MAAM+C,GAAG,GAAG/B,KAAK,CAAClB,KAAK,CAACkD,KAAK,CAAC,CAAC;UAC/BD,GAAG,CAACE,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;UACpB7B,KAAK,CAAClB,KAAK,GAAGiD,GAAG;QACnB;MACF,CAAC,MAAM;QACL/B,KAAK,CAAClB,KAAK,GAAG,CAACE,IAAI,CAAC;MACtB;IACF;IAEA,MAAMkD,WAAW,GAAGjH,QAAQ,CAAC,MAAM;MACjC,IAAI2D,KAAK,CAACrB,QAAQ,EAAE;QAClB,OAAO4C,UAAU,CAACrB,KAAK,CAAC2B,GAAG,CAAEzB,IAAI,IAAKA,IAAI,CAACmD,IAAI,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;MAC7D;MACA,OAAOjC,UAAU,CAACrB,KAAK,GAAG,CAAC,CAAC,EAAEqD,IAAI,IAAI,EAAE;IAC1C,CAAC,CAAC;IAEF,MAAME,MAAM,GAAGpH,QAAQ,CAAC,MAAM;MAC5B,OAAOuE,OAAO,CAACV,KAAK,EAAEuD,MAAM;IAC9B,CAAC,CAAC;IAEFrH,KAAK,CAACqC,MAAM,EAAG0E,GAAG,IAAK;MACrB,IAAIA,GAAG,EAAE;QACPhH,QAAQ,CAAC,MAAM;UACbuH,kBAAkB,CAAC,CAAC;QACtB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,SAASA,kBAAkBA,CAAA,EAAG;MAC5B,IAAInC,UAAU,CAACrB,KAAK,CAAC9B,MAAM,KAAK,CAAC,EAAE;QACjC;MACF;MACA,MAAMuF,MAAM,GAAGrG,cAAc,CAACuD,OAAO,CAACX,KAAK,CAAC;MAC5C,IAAIyD,MAAM,EAAE;QACV,MAAMC,QAAQ,GAAGD,MAAM,EAAEE,aAAa,CAAC,sBAAsB,CAEhD;QACb,IAAID,QAAQ,EAAE;UACZ,MAAME,QAAQ,GAAG9G,eAAe,CAAC4G,QAAQ,CAAC;UAC1C,IAAIE,QAAQ,EAAE;YACZA,QAAQ,CAACC,QAAQ,CAAC;cAAEC,GAAG,EAAEJ,QAAQ,CAACK,SAAS;cAAEC,QAAQ,EAAE;YAAS,CAAC,CAAC;UACpE;QACF;MACF;IACF;IAEAvH,SAAS,CAAC,MAAM;MACd,MAAMwH,eAAe,GAAG9G,WAAW,CAAC2C,KAAK,EAAEvC,WAAW,CAACuC,KAAK,CAAC;MAC7D,MAAMoE,iBAAiB,GAAG/G,WAAW,CACnC,OAAO2C,KAAK,CAACR,YAAY,KAAK,QAAQ,GAAGQ,KAAK,CAACR,YAAY,GAAG,CAAC,CAAC,EAChE7B,KAAK,CAACqC,KACR,CAAC;MACD,OAAAqE,YAAA,CAAAvG,KAAA,EAAAwG,WAAA;QAAA,cAEa7F,MAAM,CAACyB,KAAK;QAAA,uBAAAqE,MAAA,IAAZ9F,MAAM,CAACyB,KAAK,GAAAqE,MAAA;QAAA,OAChB3D,OAAO;QAAA,UACJZ,KAAK,CAACwE,MAAM;QAAA,YACVxE,KAAK,CAACJ,QAAQ;QAAA,SACjBI,KAAK,CAACyE,KAAK;QAAA,UACVzE,KAAK,CAAC0E,MAAM;QAAA,mBACH,CAAC,mBAAmB,CAAC;QAAA,aAC3B1E,KAAK,CAACX,SAAS;QAAA,sBACN,KAAK;QAAA,gBACXqD,YAAY;QAAA,cACd1C,KAAK,CAACN,SAAS;QAAA,eACdM,KAAK,CAACL,UAAU;QAAA,kBACbiD;MAAc,GAC1Bb,cAAc,CAAC7B,KAAK;QAGtByE,IAAI,EAAE,SAAAA,CAAA;UAAA,SAAAC,IAAA,GAAAzG,SAAA,CAAAC,MAAA,EAAIyG,IAAI,OAAApF,KAAA,CAAAmF,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;YAAJD,IAAI,CAAAC,IAAA,IAAA3G,SAAA,CAAA2G,IAAA;UAAA;UAAA,OACZxE,KAAK,CAACqE,IAAI,GACRrE,KAAK,CAACqE,IAAI,GAAG,GAAGE,IAAI,CAAC,GAAAR,YAAA,CAAA5G,WAAA,EAAA6G,WAAA;YAIjB,GAAGH,eAAe;YAClB,GAAG5H,UAAU,CAAC;cAAE,GAAGsI,IAAI,CAAC,CAAC,CAAC,CAAC7E;YAAM,CAAC,EAAE;cAAEvD,GAAG,EAAEkE;YAAc,CAAC;UAAC;YAAA,cAEjDS,KAAK,CAAClB,KAAK,CACpB2B,GAAG,CAAER,CAAM,IAAKA,CAAC,CAACrB,KAAK,CAACE,KAAK,CAAC,CAC9BsD,IAAI,CAAC,IAAI,CAAC;YAAA,mBACIpC,KAAK,CAAC2D,OAAO;YAAA,uBACT5C,kBAAkB;YAAA,UAC/BG,MAAM;YAAA;YAAA,SAEP,CACL,UAAU,EACV;cACE,kBAAkB,EAAE7D,MAAM,CAACyB,KAAK;cAChC,oBAAoB,EAAE0B,QAAQ,CAAC1B,KAAK,CAAC9B,MAAM,GAAG;YAChD,CAAC;UACF,GACGqC,KAAK;YAAA,WACAM,OAAO,CAACb;UAAK;YAGpBlB,OAAO,EAAEA,CAAA,KAAM;cACb,MAAMgG,cAAc,GAAG;gBACrBhE,KAAK,EAAEO,UAAU,CAACrB,KAAK,CAAC2B,GAAG,CAAEzB,IAAI,IAAKA,IAAI,CAAC6E,GAAG,CAAC;gBAC/C3B,WAAW,EAAEA,WAAW,CAACpD,KAAK;gBAC9BgF,WAAW,EAAElF,KAAK,CAACkF,WAAW;gBAC9BC,aAAa,EAAE5D,UAAU,CAACrB;cAC5B,CAAC;cACD,OAAAmE,YAAA;gBAAA,SACc,CAAC,qBAAqB;cAAC,IAChC/D,KAAK,CAACwB,SAAS,GACZxB,KAAK,CAACwB,SAAS,GAAGkD,cAAc,CAAC,GACjCpD,QAAQ,CAAC1B,KAAK,CAAC9B,MAAM,GAAG,CAAC,GACzBkF,WAAW,CAACpD,KAAK,GACjBF,KAAK,CAACkF,WAAW;YAG3B,CAAC;YACDE,OAAO,EAAE9E,KAAK,CAAC8E,OAAO,GAClB;cAAA,SAAAC,KAAA,GAAAlH,SAAA,CAAAC,MAAA,EAAIyG,IAAI,OAAApF,KAAA,CAAA4F,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;gBAAJT,IAAI,CAAAS,KAAA,IAAAnH,SAAA,CAAAmH,KAAA;cAAA;cAAA,OAAYhF,KAAK,CAAC8E,OAAO,GAAG,GAAGP,IAAI,CAAC;YAAA,IAC5CxG,SAAS;YACbkH,QAAQ,EAAE,SAAAA,CAAA,EAAoB;cAC5B,OAAOjF,KAAK,CAAC,eAAe,CAAC,GAC3BA,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,GAAA+D,YAAA,CAAA1G,KAAA,EAAA2G,WAAA,CAGlB/H,UAAU,CAAC6H,iBAAiB,CAAC;gBAAA,QAC3BpE,KAAK,CAACR,YAAY;gBAAA,SACjB,CAAC,gBAAgB;cAAC,SAE5B;YACH,CAAC;YACDgG,KAAK,EAAElF,KAAK,CAACkF,KAAK,GACd;cAAA,SAAAC,KAAA,GAAAtH,SAAA,CAAAC,MAAA,EAAIyG,IAAI,OAAApF,KAAA,CAAAgG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;gBAAJb,IAAI,CAAAa,KAAA,IAAAvH,SAAA,CAAAuH,KAAA;cAAA;cAAA,OAAYpF,KAAK,CAACkF,KAAK,GAAG,GAAGX,IAAI,CAAC;YAAA,IAC1CxG,SAAS;YACb,aAAa,EAAEiC,KAAK,CAAC,aAAa,CAAC,GAC/B;cAAA,SAAAqF,KAAA,GAAAxH,SAAA,CAAAC,MAAA,EAAIyG,IAAI,OAAApF,KAAA,CAAAkG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;gBAAJf,IAAI,CAAAe,KAAA,IAAAzH,SAAA,CAAAyH,KAAA;cAAA;cAAA,OAAYtF,KAAK,CAAC,aAAa,CAAC,GAAG,GAAGuE,IAAI,CAAC;YAAA,IACnDxG;UAAS,EAGlB;QAAA;QACHW,OAAO,EAAEsB,KAAK,CAACuF,IAAI,GACf,MAAMvF,KAAK,CAACuF,IAAI,CAAC,CAAC,GAClB,MAAAxB,YAAA,CAAA7G,KAAA;UAAA,OACcsD;QAAO;UAAA9B,OAAA,EAAAA,CAAA,MAChBsB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EACzBU,KAAK,CAACd,KAAK,CAAC9B,MAAM,GAAG,CAAC,GAAAiG,YAAA,CAAAzG,KAAA;YAAA,OACTiD;UAAO;YAAA7B,OAAA,EAAAA,CAAA,MAChBgC,KAAK,CAACd,KAAK,CAAC2B,GAAG,CAAEzB,IAAI,IAAK;cACzB,MAAM0F,SAAS,GAAG;gBAChB1F,IAAI;gBACJwB,QAAQ,EAAEK,UAAU,CAAC7B,IAAI,CAAC;gBAC1BoC,MAAM,EAAEA,CAAA,KAAM;kBACZA,MAAM,CAACpC,IAAI,CAAC;gBACd;cACF,CAAC;cACD,OAAAiE,YAAA,CAAAxG,SAAA;gBAAA,WAEcwC,CAAC,IAAKkC,WAAW,CAACnC,IAAI,EAAEC,CAAC,CAAC;gBAAA,SAC7B,CACL;kBACE,qBAAqB,EAAE4B,UAAU,CAAC7B,IAAI;gBACxC,CAAC;cACF;gBAGCpB,OAAO,EAAEA,CAAA,KACPsB,KAAK,CAACF,IAAI,GACNE,KAAK,CAACF,IAAI,GAAG0F,SAAS,CAAC,GACvB1F,IAAI,CAACmD,IAAI;gBACf6B,OAAO,EACL9E,KAAK,CAAC,cAAc,CAAC,KACpB,MAAMA,KAAK,CAAC,cAAc,CAAC,GAAGwF,SAAS,CAAC,CAAC;gBAC5CP,QAAQ,EACNjF,KAAK,CAAC,eAAe,CAAC,KACrB,MAAMA,KAAK,CAAC,eAAe,CAAC,GAAGwF,SAAS,CAAC;cAAC;YAIrD,CAAC,CAAC;UAAA,KAAAzB,YAAA;YAAA;UAAA,IAIDlD,CAAC,CAAC,iBAAiB,CAAC,EAExB,EACAb,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;QAAA;MAE5B;IAIb,CAAC,CAAC;IAEF9D,SAAS,CAAC,MAAM;MACd,IACEwD,KAAK,CAACf,aAAa,KAClBe,KAAK,CAAC+F,UAAU,KAAK1H,SAAS,IAC5BoB,KAAK,CAACuG,OAAO,CAAChG,KAAK,CAAC+F,UAAU,CAAC,IAAI/F,KAAK,CAAC+F,UAAU,CAAC3H,MAAM,KAAK,CAAE,CAAC,IACrE4C,KAAK,CAACd,KAAK,EAAE9B,MAAM,EACnB;QACAoE,MAAM,CAACxB,KAAK,CAACd,KAAK,CAAC,CAAC,CAAC,CAAC;MACxB;IACF,CAAC,CAAC;IAEFQ,MAAM,CAAC;MACLC,aAAa;MACb8C;IACF,CAAC,CAAC;IAEF,OAAO;MACL9C,aAAa;MACbS,KAAK;MACLG,UAAU;MACVK,QAAQ;MACRhB,OAAO;MACP6C;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"YSelect.mjs","names":["shallowRef","nextTick","watch","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","getScrollParent","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","getHtmlElement","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","setTimeout","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","listEl","activeEl","querySelector","contentEl","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","$event","offset","align","origin","base","_len","args","_key","rxValue","selectionProps","raw","placeholder","internalItems","leading","_len2","_key2","trailing","label","_len3","_key3","_len4","_key4","menu","itemProps","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport { PropType, SlotsType, nextTick, watch } from 'vue';\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\n\n\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport { useI18n } from '../../composables/i18n';\nimport { ListItem, pressListItemsPropsOptions, useItems } from '../../composables/list-items';\nimport { getScrollParent } from '../../util';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport { chooseProps, getHtmlElement, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\n\n\nimport './YSelect.scss';\n\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n label: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n const cardRef = ref<any>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps, preventCloseBubble: true };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\n // opened.value = false;\n // }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n model.value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n model.value = neo;\n }\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n watch(opened, (neo) => {\n if (neo) {\n nextTick(() => {\n scrollToActiveItem();\n });\n }\n });\n\n function scrollToActiveItem() {\n if (selections.value.length === 0) {\n return;\n }\n const listEl = getHtmlElement(listRef.value);\n if (listEl) {\n const activeEl = listEl?.querySelector('.y-list-item--active') as\n | HTMLElement\n | undefined;\n const contentEl = (menuRef.value as any)?.layer$?.content$ as HTMLElement;\n if (activeEl && contentEl) {\n const scrollEl = getScrollParent(activeEl);\n if (\n scrollEl &&\n (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))\n ) {\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\n }\n }\n }\n }\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YMenu\n v-model={opened.value}\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n {...extraMenuProps.value}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...{\n ...fieldInputProps,\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\n }}\n modelValue={model.value\n .map((v: any) => v.props.value)\n .join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n label: slots.label\n ? (...args: any[]) => slots.label?.(...args)\n : undefined,\n 'helper-text': slots['helper-text']\n ? (...args: any[]) => slots['helper-text']?.(...args)\n : undefined,\n }}\n </YFieldInput>\n ),\n default: slots.menu\n ? () => slots.menu()\n : () => (\n <YCard ref={cardRef}>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return (\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active': isSelected(item),\n },\n ]}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() => slots['item-leading']?.(itemProps)),\n trailing:\n slots['item-trailing'] &&\n (() => slots['item-trailing']?.(itemProps)),\n }}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":"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"}
|
package/package.json
CHANGED