yuyeon 0.0.38-rc9 → 0.0.39
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 +2010 -2005
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
- package/lib/components/dialog/YDialog.scss +3 -1
- package/lib/components/divider/YDivider.mjs +18 -0
- package/lib/components/divider/YDivider.mjs.map +1 -0
- package/lib/components/divider/YDivider.scss +3 -0
- package/lib/components/divider/index.mjs +2 -0
- package/lib/components/divider/index.mjs.map +1 -0
- package/lib/components/field-input/YFieldInput.mjs.map +1 -1
- package/lib/components/field-input/YFieldInput.scss +1 -0
- package/lib/components/index.mjs +1 -0
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/input/YInput.mjs +1 -1
- package/lib/components/input/YInput.mjs.map +1 -1
- package/lib/components/input/YInput.scss +1 -0
- package/lib/components/layer/YLayer.mjs +1 -0
- package/lib/components/layer/YLayer.mjs.map +1 -1
- package/lib/components/list/YList.mjs.map +1 -1
- package/lib/components/select/YSelect.mjs +19 -7
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/lib/components/select/YSelect.scss +1 -0
- package/lib/components/table/YTable.mjs +8 -3
- package/lib/components/table/YTable.mjs.map +1 -1
- package/lib/components/table/YTable.scss +1 -0
- package/lib/components/table/composibles/pagination.mjs +1 -1
- package/lib/components/table/composibles/pagination.mjs.map +1 -1
- package/lib/components/tooltip/YTooltip.mjs +49 -90
- package/lib/components/tooltip/YTooltip.mjs.map +1 -1
- package/lib/util/dom.mjs +3 -0
- package/lib/util/dom.mjs.map +1 -1
- package/package.json +1 -1
- package/types/components/dialog/YDialog.d.ts +1 -0
- package/types/components/divider/YDivider.d.ts +15 -0
- package/types/components/divider/index.d.ts +1 -0
- package/types/components/dropdown/YDropdown.d.ts +4 -4
- package/types/components/field-input/YFieldInput.d.ts +6 -6
- package/types/components/index.d.ts +1 -0
- package/types/components/input/YInput.d.ts +6 -6
- package/types/components/layer/YLayer.d.ts +1 -0
- package/types/components/menu/YMenu.d.ts +1 -0
- package/types/components/select/YSelect.d.ts +21 -8
- package/types/components/tooltip/YTooltip.d.ts +162 -36
- package/types/shims.d.ts +2 -0
- package/types/util/dom.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YCheckbox.mjs","names":["computed","defineComponent","ref","watch","withModifiers","useRender","getUid","YInputCheckbox","name","components","emits","props","modelValue","Boolean","Array","value","String","Number","Object","label","reverse","icon","type","color","default","disabled","readonly","setup","_ref","emit","slots","focused","checked","counterId","toString","inputId","onFocus","e","onBlur","onClick","check","inputByProp","isArray","found","find","inp","undefined","classes","computedIcon","isMultipleInput","getMultipleInputIndex","findIndex","v","neo","index","push","splice","immediate","_createVNode","leading","stopPropagation","_len","arguments","length","args","_key","_len2","_key2","trailing"],"sources":["../../../src/components/checkbox/YCheckbox.tsx"],"sourcesContent":["import {\n PropType,\n computed,\n defineComponent,\n ref,\n watch,\n withModifiers,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getUid } from '../../util/vue-component';\nimport YInputCheckbox from './YInputCheckbox';\n\nimport './YCheckbox.scss';\n\nexport default defineComponent({\n name: 'YCheckbox',\n components: { YInputCheckbox },\n emits: ['focus', 'blur', 'click', 'update:modelValue', 'change'],\n props: {\n modelValue: [Boolean, Array] as PropType<boolean | any[]>,\n value: [String, Number, Object] as PropType<any>,\n label: String as PropType<string>,\n reverse: Boolean as PropType<boolean>,\n icon: {\n type: [Object, String] as PropType<\n { checked?: string; unchecked?: string } | string\n >,\n },\n color: {\n type: String as PropType<string>,\n default: () => 'primary',\n },\n disabled: Boolean as PropType<boolean>,\n readonly: Boolean as PropType<boolean>,\n },\n setup(props, { emit, slots }) {\n const focused = ref(false);\n const checked = ref(false);\n const counterId = (getUid() ?? '').toString();\n const inputId = `input-${counterId}`;\n\n function onFocus(e: FocusEvent) {\n focused.value = true;\n emit('focus', e);\n }\n\n function onBlur(e: FocusEvent) {\n focused.value = false;\n emit('blur', e);\n }\n\n function onClick(e: Event, ...args: any[]) {\n emit('click', e);\n if (props.disabled || props.readonly) return;\n const check = !checked.value;\n checked.value = check;\n emit('change', check);\n }\n\n function inputByProp() {\n if (Array.isArray(props.modelValue)) {\n const found = props.modelValue?.find((inp: any) => inp === props.value);\n\n if (found !== undefined) {\n checked.value = true;\n } else {\n checked.value = false;\n }\n } else if (typeof props.modelValue === 'boolean') {\n checked.value = props.modelValue;\n }\n }\n\n const classes = computed<Record<string, boolean>>(() => {\n const { reverse, disabled, readonly } = props;\n return {\n 'y-checkbox': true,\n 'y-checkbox--reverse': !!reverse,\n 'y-checkbox--focused': focused.value,\n 'y-checkbox--disabled': !!disabled,\n 'y-checkbox--readonly': !!readonly,\n };\n });\n\n const computedIcon = computed<string | undefined>(() => {\n if (typeof props.icon === 'string') {\n return props.icon;\n }\n return undefined;\n });\n\n const isMultipleInput = computed<boolean>(() => {\n return Array.isArray(props.modelValue);\n });\n\n function getMultipleInputIndex() {\n if (!isMultipleInput.value) {\n return -1;\n }\n return (props.modelValue as any[]).findIndex(\n (v: any) => v === props.value,\n );\n }\n\n watch(checked, (neo) => {\n if (Array.isArray(props.modelValue)) {\n const value = props.modelValue;\n const index = getMultipleInputIndex();\n if (neo && index === -1) {\n value.push(props.value);\n } else if (!neo && index !== -1) {\n value.splice(index, 1);\n }\n emit('update:modelValue', value);\n } else {\n emit('update:modelValue', neo);\n }\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n if (Array.isArray(neo)) {\n inputByProp();\n } else {\n checked.value = !!neo;\n }\n },\n { immediate: true },\n );\n\n useRender(() => {\n return (\n <div class={[{ ...classes.value }]}>\n {slots.leading?.()}\n <div class=\"y-checkbox__slot\">\n <YInputCheckbox\n onClick={(e: Event, ...args: any[]) => {\n e.stopPropagation();\n onClick(e, ...args);\n }}\n onFocus={onFocus}\n onBlur={onBlur}\n id={counterId}\n value={checked.value}\n icon={computedIcon.value}\n color={props.color}\n disabled={props.disabled}\n readonly={props.readonly}\n >\n {slots.icon && {\n icon: (...args: any[]) => slots.icon?.(...args),\n }}\n </YInputCheckbox>\n <label\n onClick={withModifiers(() => {}, ['stop'])}\n class=\"y-checkbox__label\"\n for={inputId}\n >\n {slots.label ? slots.label?.() : props.label}\n </label>\n </div>\n {slots.trailing?.()}\n </div>\n );\n });\n\n return {\n checked,\n };\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YCheckbox.mjs","names":["computed","defineComponent","ref","watch","withModifiers","useRender","getUid","YInputCheckbox","name","components","emits","props","modelValue","Boolean","Array","value","String","Number","Object","label","reverse","icon","type","color","default","disabled","readonly","setup","_ref","emit","slots","focused","checked","counterId","toString","inputId","onFocus","e","onBlur","onClick","check","inputByProp","isArray","found","find","inp","undefined","classes","computedIcon","isMultipleInput","getMultipleInputIndex","findIndex","v","neo","index","push","splice","immediate","_createVNode","leading","stopPropagation","_len","arguments","length","args","_key","_len2","_key2","trailing"],"sources":["../../../src/components/checkbox/YCheckbox.tsx"],"sourcesContent":["import {\r\n PropType,\r\n computed,\r\n defineComponent,\r\n ref,\r\n watch,\r\n withModifiers,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getUid } from '../../util/vue-component';\r\nimport YInputCheckbox from './YInputCheckbox';\r\n\r\nimport './YCheckbox.scss';\r\n\r\nexport default defineComponent({\r\n name: 'YCheckbox',\r\n components: { YInputCheckbox },\r\n emits: ['focus', 'blur', 'click', 'update:modelValue', 'change'],\r\n props: {\r\n modelValue: [Boolean, Array] as PropType<boolean | any[]>,\r\n value: [String, Number, Object] as PropType<any>,\r\n label: String as PropType<string>,\r\n reverse: Boolean as PropType<boolean>,\r\n icon: {\r\n type: [Object, String] as PropType<\r\n { checked?: string; unchecked?: string } | string\r\n >,\r\n },\r\n color: {\r\n type: String as PropType<string>,\r\n default: () => 'primary',\r\n },\r\n disabled: Boolean as PropType<boolean>,\r\n readonly: Boolean as PropType<boolean>,\r\n },\r\n setup(props, { emit, slots }) {\r\n const focused = ref(false);\r\n const checked = ref(false);\r\n const counterId = (getUid() ?? '').toString();\r\n const inputId = `input-${counterId}`;\r\n\r\n function onFocus(e: FocusEvent) {\r\n focused.value = true;\r\n emit('focus', e);\r\n }\r\n\r\n function onBlur(e: FocusEvent) {\r\n focused.value = false;\r\n emit('blur', e);\r\n }\r\n\r\n function onClick(e: Event, ...args: any[]) {\r\n emit('click', e);\r\n if (props.disabled || props.readonly) return;\r\n const check = !checked.value;\r\n checked.value = check;\r\n emit('change', check);\r\n }\r\n\r\n function inputByProp() {\r\n if (Array.isArray(props.modelValue)) {\r\n const found = props.modelValue?.find((inp: any) => inp === props.value);\r\n\r\n if (found !== undefined) {\r\n checked.value = true;\r\n } else {\r\n checked.value = false;\r\n }\r\n } else if (typeof props.modelValue === 'boolean') {\r\n checked.value = props.modelValue;\r\n }\r\n }\r\n\r\n const classes = computed<Record<string, boolean>>(() => {\r\n const { reverse, disabled, readonly } = props;\r\n return {\r\n 'y-checkbox': true,\r\n 'y-checkbox--reverse': !!reverse,\r\n 'y-checkbox--focused': focused.value,\r\n 'y-checkbox--disabled': !!disabled,\r\n 'y-checkbox--readonly': !!readonly,\r\n };\r\n });\r\n\r\n const computedIcon = computed<string | undefined>(() => {\r\n if (typeof props.icon === 'string') {\r\n return props.icon;\r\n }\r\n return undefined;\r\n });\r\n\r\n const isMultipleInput = computed<boolean>(() => {\r\n return Array.isArray(props.modelValue);\r\n });\r\n\r\n function getMultipleInputIndex() {\r\n if (!isMultipleInput.value) {\r\n return -1;\r\n }\r\n return (props.modelValue as any[]).findIndex(\r\n (v: any) => v === props.value,\r\n );\r\n }\r\n\r\n watch(checked, (neo) => {\r\n if (Array.isArray(props.modelValue)) {\r\n const value = props.modelValue;\r\n const index = getMultipleInputIndex();\r\n if (neo && index === -1) {\r\n value.push(props.value);\r\n } else if (!neo && index !== -1) {\r\n value.splice(index, 1);\r\n }\r\n emit('update:modelValue', value);\r\n } else {\r\n emit('update:modelValue', neo);\r\n }\r\n });\r\n\r\n watch(\r\n () => props.modelValue,\r\n (neo) => {\r\n if (Array.isArray(neo)) {\r\n inputByProp();\r\n } else {\r\n checked.value = !!neo;\r\n }\r\n },\r\n { immediate: true },\r\n );\r\n\r\n useRender(() => {\r\n return (\r\n <div class={[{ ...classes.value }]}>\r\n {slots.leading?.()}\r\n <div class=\"y-checkbox__slot\">\r\n <YInputCheckbox\r\n onClick={(e: Event, ...args: any[]) => {\r\n e.stopPropagation();\r\n onClick(e, ...args);\r\n }}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n id={counterId}\r\n value={checked.value}\r\n icon={computedIcon.value}\r\n color={props.color}\r\n disabled={props.disabled}\r\n readonly={props.readonly}\r\n >\r\n {slots.icon && {\r\n icon: (...args: any[]) => slots.icon?.(...args),\r\n }}\r\n </YInputCheckbox>\r\n <label\r\n onClick={withModifiers(() => {}, ['stop'])}\r\n class=\"y-checkbox__label\"\r\n for={inputId}\r\n >\r\n {slots.label ? slots.label?.() : props.label}\r\n </label>\r\n </div>\r\n {slots.trailing?.()}\r\n </div>\r\n );\r\n });\r\n\r\n return {\r\n checked,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
|
|
@@ -27,13 +27,15 @@
|
|
|
27
27
|
width: 100%;
|
|
28
28
|
max-height: 100dvh;
|
|
29
29
|
background: transparent;
|
|
30
|
-
pointer-events:
|
|
30
|
+
pointer-events: none;
|
|
31
31
|
overflow-y: scroll;
|
|
32
32
|
}
|
|
33
|
+
|
|
33
34
|
&__content > div {
|
|
34
35
|
border-radius: 0;
|
|
35
36
|
width: 100%;
|
|
36
37
|
min-height: 100%;
|
|
38
|
+
pointer-events: auto;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { withDirectives as _withDirectives, createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
|
|
2
|
+
import { defineComponent } from 'vue';
|
|
3
|
+
import { useRender } from "../../composables/component.mjs";
|
|
4
|
+
import { propsFactory } from "../../util/index.mjs";
|
|
5
|
+
export const pressYDividerPropsOptions = propsFactory({
|
|
6
|
+
vertical: Boolean
|
|
7
|
+
}, 'YDivider');
|
|
8
|
+
export const YDivider = defineComponent({
|
|
9
|
+
props: pressYDividerPropsOptions(),
|
|
10
|
+
setup() {
|
|
11
|
+
useRender(() => {
|
|
12
|
+
return _withDirectives(_createVNode("hr", {
|
|
13
|
+
"class": ['y-divider']
|
|
14
|
+
}, null), [[_resolveDirective("theme")]]);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=YDivider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YDivider.mjs","names":["defineComponent","useRender","propsFactory","pressYDividerPropsOptions","vertical","Boolean","YDivider","props","setup","_withDirectives","_createVNode","_resolveDirective"],"sources":["../../../src/components/divider/YDivider.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\r\nimport type { PropType } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { propsFactory } from '../../util';\r\n\r\nexport const pressYDividerPropsOptions = propsFactory({\r\n vertical: Boolean as PropType<boolean>,\r\n}, 'YDivider');\r\n\r\nexport const YDivider = defineComponent({\r\n props: pressYDividerPropsOptions(),\r\n setup() {\r\n useRender(() => {\r\n return <hr class={['y-divider']} v-theme />;\r\n });\r\n },\r\n});\r\n\r\nexport type YDivider = InstanceType<typeof YDivider>;\r\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAAC,SAG7BC,SAAS;AAAA,SACTC,YAAY;AAErB,OAAO,MAAMC,yBAAyB,GAAGD,YAAY,CAAC;EACpDE,QAAQ,EAAEC;AACZ,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMC,QAAQ,GAAGN,eAAe,CAAC;EACtCO,KAAK,EAAEJ,yBAAyB,CAAC,CAAC;EAClCK,KAAKA,CAAA,EAAG;IACNP,SAAS,CAAC,MAAM;MACd,OAAAQ,eAAA,CAAAC,YAAA;QAAA,SAAkB,CAAC,WAAW;MAAC,YAAAC,iBAAA;IACjC,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/divider/index.ts"],"sourcesContent":["export * from './YDivider';\r\n"],"mappings":""}
|
|
@@ -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","setup","_ref","attrs","expose","emit","slots","yInputRef","inputRef","focused","whenFocus","whenBlur","inValue","displayValue","inputType","classes","invokeValidators","onClick","event","onFocus","value","onBlur","changeDisplay","onInput","target","onChange","onKeydown","onKeyup","onClickClear","clear","onKeydownClear","code","focus","select","vm","undefined","text","call","modelValue","neo","immediate","onUpdateModel","_createVNode","_mergeProps","$event","leading","leadingChildren","_len","arguments","length","args","Array","_key","slot","push","defaultProps","attrId","floating","methods","createLabel","readonly","loading","formLoading","placeholder","disabled","autocomplete","maxlength","min","max","style","textAlign","trailing","_Fragment","label"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import type { PropType } 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 { useFocus } from '../../composables/focus';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YIconClear } from '../icons/YIconClear';\nimport { YInput, pressYInputPropsOptions } 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 setup(props, { attrs, expose, emit, slots }) {\n const yInputRef = ref<YInput>();\n const inputRef = 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 const invokeValidators = () => {\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 invokeValidators();\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 if (props.whenInputValid) {\n invokeValidators();\n }\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 inputRef.value?.focus();\n }\n\n function select() {\n inputRef.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(inValue, (neo: string) => {\n if (!focused.value) {\n changeDisplay();\n } else {\n displayValue.value = neo;\n }\n });\n\n expose({\n focus,\n select,\n clear,\n inputRef,\n });\n\n function onUpdateModel(value: any) {\n emit('update:modelValue', value);\n }\n\n useRender(() => (\n <YInput\n class={classes.value}\n ref={yInputRef}\n {...chooseProps(props, YInput.props)}\n modelValue={inValue.value}\n onUpdate:modelValue={onUpdateModel}\n focused={focused.value}\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: any) => (\n <div\n class={[`${NAME}__field`]}\n data-id={defaultProps.attrId}\n ref={'field'}\n >\n {props.floating\n ? yInputRef.value &&\n YInput.methods!.createLabel.call(yInputRef.value)\n : undefined}\n {slots.default?.()}\n {\n <input\n ref={inputRef}\n value={displayValue.value}\n name={props.name}\n id={defaultProps.attrId}\n type={inputType.value}\n readonly={\n props.readonly || props.loading || defaultProps.formLoading\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?.(),\n 'helper-text': slots['helper-text']?.(),\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","setup","_ref","attrs","expose","emit","slots","yInputRef","inputRef","focused","whenFocus","whenBlur","inValue","displayValue","inputType","classes","invokeValidators","onClick","event","onFocus","value","onBlur","changeDisplay","onInput","target","onChange","onKeydown","onKeyup","onClickClear","clear","onKeydownClear","code","focus","select","vm","undefined","text","call","modelValue","neo","immediate","onUpdateModel","_createVNode","_mergeProps","$event","leading","leadingChildren","_len","arguments","length","args","Array","_key","slot","push","defaultProps","attrId","floating","methods","createLabel","readonly","loading","formLoading","placeholder","disabled","autocomplete","maxlength","min","max","style","textAlign","trailing","_Fragment","label"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport {\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n nextTick,\r\n ref,\r\n toRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { useFocus } from '../../composables/focus';\r\nimport { chooseProps, propsFactory } from '../../util/vue-component';\r\nimport { YIconClear } from '../icons/YIconClear';\r\nimport { YInput, pressYInputPropsOptions } from '../input';\r\n\r\nimport './YFieldInput.scss';\r\n\r\nconst NAME = 'y-field-input';\r\n\r\nexport const pressYFieldInputPropsOptions = propsFactory(\r\n {\r\n enableClear: Boolean as PropType<boolean>,\r\n inputAlign: String as PropType<string>,\r\n displayText: [String, Function] as PropType<\r\n string | ((value: any) => string)\r\n >,\r\n whenInputValid: [Boolean, Number] as PropType<boolean | number>,\r\n tabindex: {\r\n type: String as PropType<string>,\r\n default: '0',\r\n },\r\n type: {\r\n type: String as PropType<string>,\r\n default: 'text',\r\n },\r\n ...pressYInputPropsOptions({\r\n variation: 'filled',\r\n }),\r\n },\r\n 'YFieldInput',\r\n);\r\n\r\nexport const YFieldInput = defineComponent({\r\n name: 'YFieldInput',\r\n props: {\r\n ...pressYFieldInputPropsOptions(),\r\n },\r\n emits: [\r\n 'update:modelValue',\r\n 'update:focused',\r\n 'input',\r\n 'change',\r\n 'click',\r\n 'mousedown',\r\n 'mouseup',\r\n 'keydown',\r\n 'keyup',\r\n 'focus',\r\n 'blur',\r\n 'mousedown:display',\r\n ],\r\n setup(props, { attrs, expose, emit, slots }) {\r\n const yInputRef = ref<YInput>();\r\n const inputRef = ref<HTMLInputElement>();\r\n const { focused, whenFocus, whenBlur } = useFocus(props, 'y-field-input');\r\n const inValue = ref<any>('');\r\n const displayValue = ref('');\r\n const inputType = toRef(props, 'type');\r\n\r\n const classes = computed(() => {\r\n return {\r\n [NAME]: true,\r\n };\r\n });\r\n\r\n const invokeValidators = () => {\r\n //\r\n };\r\n\r\n function onClick(event: MouseEvent) {\r\n emit('click', event);\r\n }\r\n\r\n function onFocus(event: FocusEvent) {\r\n whenFocus();\r\n displayValue.value = inValue.value as string;\r\n emit('focus', event);\r\n }\r\n\r\n function onBlur(event: FocusEvent) {\r\n whenBlur();\r\n invokeValidators();\r\n emit('blur', event);\r\n changeDisplay();\r\n }\r\n\r\n function onInput(event: Event) {\r\n emit('input', event);\r\n const target = event.target as HTMLInputElement | null;\r\n inValue.value = target?.value;\r\n displayValue.value = target?.value as string;\r\n if (props.whenInputValid) {\r\n invokeValidators();\r\n }\r\n }\r\n\r\n function onChange(event: Event) {\r\n emit('change', inValue.value);\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n emit('keydown', event);\r\n }\r\n\r\n function onKeyup(event: KeyboardEvent) {\r\n emit('keyup', event);\r\n }\r\n\r\n function onClickClear(event: MouseEvent) {\r\n clear();\r\n }\r\n\r\n function onKeydownClear(event: KeyboardEvent) {\r\n if (event.code === 'Space' || event.code === 'Enter') {\r\n clear();\r\n }\r\n }\r\n\r\n function focus() {\r\n inputRef.value?.focus();\r\n }\r\n\r\n function select() {\r\n inputRef.value?.select();\r\n }\r\n\r\n function clear() {\r\n inValue.value = '';\r\n displayValue.value = '';\r\n emit('update:modelValue', inValue.value);\r\n }\r\n\r\n function changeDisplay() {\r\n const vm = getCurrentInstance();\r\n const { displayText } = props;\r\n if (displayText !== undefined) {\r\n let text = inValue.value;\r\n if (typeof displayText === 'string') {\r\n text = displayText;\r\n }\r\n if (displayText && typeof displayText === 'function') {\r\n text = (displayText as any).call(vm, text);\r\n }\r\n nextTick(() => {\r\n displayValue.value = text as string;\r\n });\r\n }\r\n }\r\n\r\n watch(\r\n () => props.modelValue,\r\n (neo: any) => {\r\n inValue.value = neo;\r\n displayValue.value = neo;\r\n },\r\n {\r\n immediate: true,\r\n },\r\n );\r\n\r\n watch(inValue, (neo: string) => {\r\n if (!focused.value) {\r\n changeDisplay();\r\n } else {\r\n displayValue.value = neo;\r\n }\r\n });\r\n\r\n expose({\r\n focus,\r\n select,\r\n clear,\r\n inputRef,\r\n });\r\n\r\n function onUpdateModel(value: any) {\r\n emit('update:modelValue', value);\r\n }\r\n\r\n useRender(() => (\r\n <YInput\r\n class={classes.value}\r\n ref={yInputRef}\r\n {...chooseProps(props, YInput.props)}\r\n modelValue={inValue.value}\r\n onUpdate:modelValue={onUpdateModel}\r\n focused={focused.value}\r\n onClick={onClick}\r\n onMousedown:display={($event) => emit('mousedown:display', $event)}\r\n >\r\n {{\r\n leading: slots.leading\r\n ? (...args: any[]) => {\r\n const leadingChildren = [];\r\n const slot = slots.leading?.(...args);\r\n if (slot) {\r\n leadingChildren.push(slot);\r\n } else {\r\n return undefined;\r\n }\r\n return leadingChildren;\r\n }\r\n : undefined,\r\n default: (defaultProps: any) => (\r\n <div\r\n class={[`${NAME}__field`]}\r\n data-id={defaultProps.attrId}\r\n ref={'field'}\r\n >\r\n {props.floating\r\n ? yInputRef.value &&\r\n YInput.methods!.createLabel.call(yInputRef.value)\r\n : undefined}\r\n {slots.default?.()}\r\n {\r\n <input\r\n ref={inputRef}\r\n value={displayValue.value}\r\n name={props.name}\r\n id={defaultProps.attrId}\r\n type={inputType.value}\r\n readonly={\r\n props.readonly || props.loading || defaultProps.formLoading\r\n }\r\n placeholder={props.placeholder}\r\n disabled={props.disabled}\r\n tabindex={props.tabindex || '0'}\r\n autocomplete={attrs.autocomplete as string}\r\n maxlength={attrs.maxlength as number | string}\r\n min={attrs.min as number | string}\r\n max={attrs.max as number | string}\r\n style={[attrs?.style, { textAlign: props.inputAlign } as any]}\r\n onInput={onInput}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onChange={onChange}\r\n onKeydown={onKeydown}\r\n onKeyup={onKeyup}\r\n />\r\n }\r\n </div>\r\n ),\r\n trailing:\r\n slots.trailing || (props.enableClear && inValue.value)\r\n ? () => (\r\n <>\r\n {props.enableClear && inValue.value && (\r\n <div\r\n class={[\r\n 'y-input__trailing',\r\n 'y-input__trailing--clear',\r\n ]}\r\n >\r\n <button\r\n class={[`${NAME}__clear`]}\r\n onClick={onClickClear}\r\n onKeydown={onKeydownClear}\r\n tabindex={2}\r\n >\r\n <YIconClear></YIconClear>\r\n </button>\r\n </div>\r\n )}\r\n {slots.trailing && (\r\n <div class={['y-input__trailing']}>\r\n {slots.trailing()}\r\n </div>\r\n )}\r\n </>\r\n )\r\n : undefined,\r\n label: slots.label?.(),\r\n 'helper-text': slots['helper-text']?.(),\r\n }}\r\n </YInput>\r\n ));\r\n\r\n return {\r\n focused,\r\n inValue\r\n };\r\n },\r\n});\r\n\r\nexport type YFieldInput = InstanceType<typeof YFieldInput>;\r\n"],"mappings":"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"}
|
package/lib/components/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './app';\r\nexport * from './button';\r\nexport * from './input';\r\nexport * from './field-input';\r\nexport * from './form';\r\nexport * from './progress-bar';\r\nexport * from './card';\r\nexport * from './chip';\r\nexport * from './switch';\r\nexport * from './layer';\r\nexport * from './dialog';\r\nexport * from './snackbar';\r\nexport * from './tooltip';\r\nexport * from './transitions';\r\nexport * from './panel';\r\nexport * from './tree-view';\r\nexport * from './list';\r\nexport * from './icons';\r\nexport * from './table';\r\nexport * from './menu';\r\nexport * from './checkbox';\r\nexport * from './pagination';\r\nexport * from './loading';\r\nexport * from './dropdown';\r\nexport * from './select';\r\nexport * from './tab';\r\nexport * from './alert';\r\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './app';\r\nexport * from './button';\r\nexport * from './input';\r\nexport * from './field-input';\r\nexport * from './form';\r\nexport * from './progress-bar';\r\nexport * from './card';\r\nexport * from './chip';\r\nexport * from './switch';\r\nexport * from './layer';\r\nexport * from './dialog';\r\nexport * from './snackbar';\r\nexport * from './tooltip';\r\nexport * from './transitions';\r\nexport * from './panel';\r\nexport * from './tree-view';\r\nexport * from './list';\r\nexport * from './icons';\r\nexport * from './table';\r\nexport * from './menu';\r\nexport * from './checkbox';\r\nexport * from './pagination';\r\nexport * from './loading';\r\nexport * from './dropdown';\r\nexport * from './select';\r\nexport * from './tab';\r\nexport * from './alert';\r\nexport * from './divider';\r\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YInput.mjs","names":["defineComponent","h","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","getSlot","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","readonly","disabled","status","validator","value","includes","validators","Array","YInput","props","emits","data","iid","toString","lazyValue","undefined","inValue","hasMouseDown","errorResult","inError","computed","classes","variations","isFocused","isError","isSuccess","themeClasses","displayStyles","isNaN","getDisplayHeight","attrId","$attrs","id","isFloatedLabel","formLoading","split","map","trim","methods","createPrepend","slot","class","createAppend","createLabelSlot","createLabel","show","createDefaultChildren","createDefault","slotContent","onFocus","onBlur","createLeading","error","onClick","onClickLeading","createTrailing","createDisplay","onMousedown","onMouseup","ref","style","createHelperText","helperTextSlot","children","push","createStackChildren","createStack","createContent","event","$emit","e","whenFocus","whenBlur","invokeValidators","onChange","resetError","flag","isArray","some","result","getClasses","watch","neo","created","setup","focused","focusedClasses","render"],"sources":["../../../src/components/input/YInput.ts"],"sourcesContent":["import {\r\n PropType,\r\n VNode,\r\n defineComponent,\r\n h,\r\n resolveDirective,\r\n withDirectives,\r\n} from 'vue';\r\n\r\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport DiMixin from '../../mixins/di';\r\nimport { getSlot, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YInput.scss';\r\n\r\nconst NAME = 'y-input';\r\nlet uidCounter = 0;\r\n\r\nexport const pressYInputPropsOptions = propsFactory(\r\n {\r\n name: String,\r\n width: {\r\n type: [String, Number] as PropType<string | number>,\r\n },\r\n height: [Number, String],\r\n displayTag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n label: String as PropType<string>,\r\n modelValue: { type: [String, Number] as PropType<string | number> },\r\n autoSelect: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n floating: { type: Boolean as PropType<boolean>, default: false },\r\n floated: { type: Boolean as PropType<boolean>, default: () => false },\r\n placeholder: String as PropType<string>,\r\n required: Boolean as PropType<boolean>,\r\n loading: Boolean as PropType<boolean>,\r\n // variations\r\n variation: String as PropType<string>,\r\n outlined: Boolean as PropType<boolean>,\r\n filled: Boolean as PropType<boolean>,\r\n ceramic: Boolean as PropType<boolean>,\r\n // validate\r\n readonly: Boolean as PropType<boolean>,\r\n disabled: Boolean as PropType<boolean>,\r\n status: {\r\n type: String as PropType<'success' | 'warning' | 'error' | undefined>,\r\n validator(value: string) {\r\n return ['success', 'warning', 'error'].includes(value);\r\n },\r\n },\r\n validators: Array as PropType<((v: any) => boolean | string)[] | string[]>,\r\n ...pressFocusPropsOptions(),\r\n },\r\n 'YInput',\r\n);\r\n\r\nexport const YInput = defineComponent({\r\n name: 'YInput',\r\n\r\n props: {\r\n ...pressThemePropsOptions(),\r\n ...pressYInputPropsOptions(),\r\n },\r\n emits: [\r\n 'error',\r\n 'click',\r\n 'mousedown',\r\n 'mouseup',\r\n 'focus',\r\n 'blur',\r\n 'mousedown:display',\r\n 'mouseup:display',\r\n 'click:leading',\r\n 'update:modelValue',\r\n 'update:focused',\r\n ],\r\n data() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n return {\r\n iid,\r\n lazyValue: undefined as string | undefined,\r\n inValue: '' as string | number | undefined,\r\n hasMouseDown: false,\r\n errorResult: undefined as string | undefined,\r\n inError: false,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n return {\r\n 'y-input--ceramic': !!this.ceramic,\r\n 'y-input--outlined':\r\n !this.ceramic &&\r\n (this.variations.includes('outlined') || !!this.outlined),\r\n 'y-input--filled': this.variations.includes('filled') || !!this.filled,\r\n 'y-input--focused': this.isFocused,\r\n 'y-input--readonly': !!this.readonly,\r\n 'y-input--has-value': !!this.inValue,\r\n 'y-input--disabled': !!this.disabled,\r\n 'y-input--error': this.isError,\r\n 'y-input--success': this.isSuccess,\r\n [this.themeClasses as string]: true,\r\n };\r\n },\r\n displayStyles(): Record<string, any> {\r\n let { width } = this;\r\n if (!Number.isNaN(Number(width))) {\r\n width = `${width}px`;\r\n }\r\n return {\r\n width,\r\n height: this.getDisplayHeight(),\r\n };\r\n },\r\n attrId(): string {\r\n return (this.$attrs.id as string) ?? `y-input--${this.iid}`;\r\n },\r\n isFloatedLabel(): boolean {\r\n return (\r\n this.floated ||\r\n !!this.placeholder ||\r\n (!this.placeholder && this.isFocused) ||\r\n !!this.inValue\r\n );\r\n },\r\n formLoading(): boolean {\r\n // TODO: composable `form` binding\r\n // const form$ = (this as any)?.form$ as any;\r\n // if (form$) {\r\n // return form$.loading;\r\n // }\r\n return false;\r\n },\r\n isError(): boolean {\r\n return this.status === 'error' || this.inError;\r\n },\r\n isSuccess(): boolean {\r\n return !this.isError && this.status === 'success';\r\n },\r\n variations(): string[] {\r\n const { variation } = this;\r\n if (variation) {\r\n return variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n },\r\n },\r\n methods: {\r\n createPrepend(): VNode | undefined {\r\n const slot = getSlot(this, 'prepend');\r\n return slot ? h('div', { class: `${NAME}__prepend` }, slot) : undefined;\r\n },\r\n createAppend(): VNode | undefined {\r\n const slot = getSlot(this, 'append');\r\n return slot ? h('div', { class: `${NAME}__append` }, slot) : undefined;\r\n },\r\n createLabelSlot(): (VNode | string | VNode[] | undefined)[] {\r\n const slot: VNode[] | undefined = getSlot(this, 'label');\r\n if (!slot) {\r\n if (this.label) {\r\n return [\r\n this.label,\r\n this.required ? h('span', { class: 'y-input__required-mark' }, '*') : undefined,\r\n ];\r\n }\r\n if (this.placeholder && !this.inValue) {\r\n return [this.placeholder];\r\n }\r\n }\r\n\r\n return slot ? [slot] : [];\r\n },\r\n createLabel(): VNode | undefined {\r\n const show = !!this.label || !!getSlot(this, 'label');\r\n if (!show) {\r\n return undefined;\r\n }\r\n return h(\r\n 'label',\r\n {\r\n class: {\r\n [`${NAME}__label`]: true,\r\n 'y-input__floating-label': this.floating,\r\n 'y-input__floating-label--floated':\r\n this.floating && this.isFloatedLabel,\r\n },\r\n '.for': this.attrId,\r\n },\r\n this.createLabelSlot(),\r\n );\r\n },\r\n createDefaultChildren(): (VNode | undefined | VNode[] | string)[] {\r\n const { modelValue } = this;\r\n return [\r\n this.floating ? this.createLabel() : undefined,\r\n modelValue?.toString(),\r\n ];\r\n },\r\n createDefault(): VNode[] | VNode {\r\n const { modelValue, formLoading, attrId } = this;\r\n const slotContent = getSlot(this, 'default', {\r\n value: modelValue,\r\n formLoading,\r\n attrId,\r\n });\r\n return (\r\n slotContent ??\r\n h(\r\n 'div',\r\n {\r\n [`.${NAME}__value`]: true,\r\n '.data-id': this.attrId,\r\n '.tabindex': 0,\r\n onFocus: this.onFocus,\r\n onBlur: this.onBlur,\r\n },\r\n this.createDefaultChildren(),\r\n )\r\n );\r\n },\r\n createLeading(): VNode | undefined {\r\n const slot = getSlot(this, 'leading', { error: this.isError });\r\n return slot\r\n ? h(\r\n 'div',\r\n {\r\n class: 'y-input__leading',\r\n onClick: this.onClickLeading,\r\n },\r\n slot,\r\n )\r\n : undefined;\r\n },\r\n createTrailing(): VNode | VNode[] | undefined {\r\n return getSlot(this, 'trailing');\r\n },\r\n getDisplayHeight() {\r\n const { height } = this;\r\n if (!isNaN(Number(height))) {\r\n return `${height}px`;\r\n }\r\n return height;\r\n },\r\n createDisplay(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: {\r\n [`${NAME}__display`]: true,\r\n },\r\n onClick: this.onClick,\r\n onMousedown: this.onMousedown,\r\n onMouseup: this.onMouseup,\r\n ref: 'display',\r\n style: {\r\n ...this.displayStyles,\r\n },\r\n },\r\n [\r\n h('div', { class: `${NAME}__plate` }),\r\n this.createLeading(),\r\n this.createDefault(),\r\n this.createTrailing(),\r\n ],\r\n );\r\n },\r\n createHelperText(): VNode {\r\n const helperTextSlot = getSlot(this, 'helper-text', {\r\n error: this.status === 'error' || this.inError,\r\n errorResult: this.errorResult,\r\n });\r\n const children = [];\r\n if (helperTextSlot) {\r\n children.push(h('span', {}, helperTextSlot));\r\n } else {\r\n children.push(this.errorResult);\r\n }\r\n return h('div', { class: `${NAME}__helper-text` }, children);\r\n },\r\n createStackChildren(): (VNode | undefined)[] {\r\n return [\r\n !this.floating ? this.createLabel() : undefined,\r\n this.createDisplay(),\r\n this.createHelperText(),\r\n ];\r\n },\r\n createStack(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: `${NAME}__stack`,\r\n ref: 'stack',\r\n },\r\n this.createStackChildren(),\r\n );\r\n },\r\n createContent(): (VNode | undefined)[] {\r\n return [this.createPrepend(), this.createStack(), this.createAppend()];\r\n },\r\n //\r\n onClick(event: MouseEvent) {\r\n this.$emit('click', event);\r\n },\r\n onMousedown(e: Event) {\r\n this.hasMouseDown = true;\r\n this.$emit('mousedown:display', e);\r\n },\r\n onMouseup(e: Event) {\r\n this.hasMouseDown = false;\r\n this.$emit('mouseup:display', e);\r\n },\r\n onFocus(event: FocusEvent) {\r\n this.whenFocus();\r\n this.$emit('focus', event);\r\n },\r\n onBlur(event: FocusEvent) {\r\n this.whenBlur();\r\n this.invokeValidators();\r\n this.$emit('blur', event);\r\n },\r\n onClickLeading(event: MouseEvent) {\r\n this.$emit('click:leading', event);\r\n },\r\n onChange(event?: Event) {\r\n this.invokeValidators();\r\n },\r\n //\r\n invokeValidators(): boolean {\r\n const { validators, inValue, $attrs } = this;\r\n const { required } = $attrs;\r\n this.resetError();\r\n let flag = true;\r\n if (Array.isArray(validators)) {\r\n validators.some((validator: any) => {\r\n const result = validator(inValue);\r\n if (typeof result === 'string') {\r\n this.inError = true;\r\n this.errorResult = result;\r\n flag = false;\r\n return true;\r\n }\r\n if (result === false) {\r\n this.inError = true;\r\n this.errorResult = '';\r\n flag = false;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n if (flag && required && !inValue) {\r\n this.inError = true;\r\n return false;\r\n }\r\n return flag;\r\n },\r\n resetError() {\r\n this.inError = false;\r\n this.errorResult = undefined;\r\n },\r\n getClasses() {\r\n return this.classes;\r\n },\r\n },\r\n watch: {\r\n modelValue(neo: string) {\r\n if (!this.readonly) {\r\n this.inValue = neo;\r\n }\r\n },\r\n readonly(neo: boolean) {\r\n if (!neo) {\r\n this.inValue = this.modelValue;\r\n }\r\n },\r\n inValue(neo: string) {\r\n if (!this.readonly) {\r\n this.$emit('update:modelValue', neo);\r\n }\r\n },\r\n isError(neo: boolean) {\r\n this.$emit('error', neo);\r\n },\r\n },\r\n created() {\r\n this.inValue = this.modelValue;\r\n },\r\n setup(props) {\r\n const { themeClasses } = useLocalTheme(props);\r\n const {\r\n focused: isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n } = useFocus(props, 'y-input');\r\n return {\r\n themeClasses,\r\n isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n };\r\n },\r\n render(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: { ...this.getClasses(), [`${NAME}`]: true },\r\n },\r\n this.createContent(),\r\n );\r\n },\r\n});\r\n\r\nexport type YInput = InstanceType<typeof YInput>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YInput.mjs","names":["defineComponent","h","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","getSlot","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","readonly","disabled","status","validator","value","includes","validators","YInput","props","emits","data","iid","toString","lazyValue","undefined","inValue","hasMouseDown","errorResult","inError","computed","classes","variations","isFocused","isError","isSuccess","themeClasses","displayStyles","isNaN","getDisplayHeight","attrId","$attrs","id","isFloatedLabel","formLoading","split","map","trim","methods","createPrepend","slot","class","createAppend","createLabelSlot","createLabel","show","createDefaultChildren","createDefault","slotContent","onFocus","onBlur","createLeading","error","onClick","onClickLeading","createTrailing","createDisplay","onMousedown","onMouseup","ref","style","createHelperText","helperTextSlot","children","push","createStackChildren","createStack","createContent","event","$emit","e","whenFocus","whenBlur","invokeValidators","onChange","resetError","flag","isArray","some","result","getClasses","watch","neo","created","setup","focused","focusedClasses","render"],"sources":["../../../src/components/input/YInput.ts"],"sourcesContent":["import {\r\n PropType,\r\n VNode,\r\n defineComponent,\r\n h,\r\n resolveDirective,\r\n withDirectives,\r\n} from 'vue';\r\n\r\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport DiMixin from '../../mixins/di';\r\nimport { getSlot, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YInput.scss';\r\n\r\nconst NAME = 'y-input';\r\nlet uidCounter = 0;\r\n\r\nexport const pressYInputPropsOptions = propsFactory(\r\n {\r\n name: String,\r\n width: {\r\n type: [String, Number] as PropType<string | number>,\r\n },\r\n height: [Number, String],\r\n displayTag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n label: String as PropType<string>,\r\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\r\n autoSelect: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n floating: { type: Boolean as PropType<boolean>, default: false },\r\n floated: { type: Boolean as PropType<boolean>, default: () => false },\r\n placeholder: String as PropType<string>,\r\n required: Boolean as PropType<boolean>,\r\n loading: Boolean as PropType<boolean>,\r\n // variations\r\n variation: String as PropType<string>,\r\n outlined: Boolean as PropType<boolean>,\r\n filled: Boolean as PropType<boolean>,\r\n ceramic: Boolean as PropType<boolean>,\r\n // validate\r\n readonly: Boolean as PropType<boolean>,\r\n disabled: Boolean as PropType<boolean>,\r\n status: {\r\n type: String as PropType<'success' | 'warning' | 'error' | undefined>,\r\n validator(value: string) {\r\n return ['success', 'warning', 'error'].includes(value);\r\n },\r\n },\r\n validators: Array as PropType<((v: any) => boolean | string)[] | string[]>,\r\n ...pressFocusPropsOptions(),\r\n },\r\n 'YInput',\r\n);\r\n\r\nexport const YInput = defineComponent({\r\n name: 'YInput',\r\n\r\n props: {\r\n ...pressThemePropsOptions(),\r\n ...pressYInputPropsOptions(),\r\n },\r\n emits: [\r\n 'error',\r\n 'click',\r\n 'mousedown',\r\n 'mouseup',\r\n 'focus',\r\n 'blur',\r\n 'mousedown:display',\r\n 'mouseup:display',\r\n 'click:leading',\r\n 'update:modelValue',\r\n 'update:focused',\r\n ],\r\n data() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n return {\r\n iid,\r\n lazyValue: undefined as string | undefined,\r\n inValue: '' as string | number | undefined,\r\n hasMouseDown: false,\r\n errorResult: undefined as string | undefined,\r\n inError: false,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n return {\r\n 'y-input--ceramic': !!this.ceramic,\r\n 'y-input--outlined':\r\n !this.ceramic &&\r\n (this.variations.includes('outlined') || !!this.outlined),\r\n 'y-input--filled': this.variations.includes('filled') || !!this.filled,\r\n 'y-input--focused': this.isFocused,\r\n 'y-input--readonly': !!this.readonly,\r\n 'y-input--has-value': !!this.inValue,\r\n 'y-input--disabled': !!this.disabled,\r\n 'y-input--error': this.isError,\r\n 'y-input--success': this.isSuccess,\r\n [this.themeClasses as string]: true,\r\n };\r\n },\r\n displayStyles(): Record<string, any> {\r\n let { width } = this;\r\n if (!Number.isNaN(Number(width))) {\r\n width = `${width}px`;\r\n }\r\n return {\r\n width,\r\n height: this.getDisplayHeight(),\r\n };\r\n },\r\n attrId(): string {\r\n return (this.$attrs.id as string) ?? `y-input--${this.iid}`;\r\n },\r\n isFloatedLabel(): boolean {\r\n return (\r\n this.floated ||\r\n !!this.placeholder ||\r\n (!this.placeholder && this.isFocused) ||\r\n !!this.inValue\r\n );\r\n },\r\n formLoading(): boolean {\r\n // TODO: composable `form` binding\r\n // const form$ = (this as any)?.form$ as any;\r\n // if (form$) {\r\n // return form$.loading;\r\n // }\r\n return false;\r\n },\r\n isError(): boolean {\r\n return this.status === 'error' || this.inError;\r\n },\r\n isSuccess(): boolean {\r\n return !this.isError && this.status === 'success';\r\n },\r\n variations(): string[] {\r\n const { variation } = this;\r\n if (variation) {\r\n return variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n },\r\n },\r\n methods: {\r\n createPrepend(): VNode | undefined {\r\n const slot = getSlot(this, 'prepend');\r\n return slot ? h('div', { class: `${NAME}__prepend` }, slot) : undefined;\r\n },\r\n createAppend(): VNode | undefined {\r\n const slot = getSlot(this, 'append');\r\n return slot ? h('div', { class: `${NAME}__append` }, slot) : undefined;\r\n },\r\n createLabelSlot(): (VNode | string | VNode[] | undefined)[] {\r\n const slot: VNode[] | undefined = getSlot(this, 'label');\r\n if (!slot) {\r\n if (this.label) {\r\n return [\r\n this.label,\r\n this.required ? h('span', { class: 'y-input__required-mark' }, '*') : undefined,\r\n ];\r\n }\r\n if (this.placeholder && !this.inValue) {\r\n return [this.placeholder];\r\n }\r\n }\r\n\r\n return slot ? [slot] : [];\r\n },\r\n createLabel(): VNode | undefined {\r\n const show = !!this.label || !!getSlot(this, 'label');\r\n if (!show) {\r\n return undefined;\r\n }\r\n return h(\r\n 'label',\r\n {\r\n class: {\r\n [`${NAME}__label`]: true,\r\n 'y-input__floating-label': this.floating,\r\n 'y-input__floating-label--floated':\r\n this.floating && this.isFloatedLabel,\r\n },\r\n '.for': this.attrId,\r\n },\r\n this.createLabelSlot(),\r\n );\r\n },\r\n createDefaultChildren(): (VNode | undefined | VNode[] | string)[] {\r\n const { modelValue } = this;\r\n return [\r\n this.floating ? this.createLabel() : undefined,\r\n modelValue?.toString(),\r\n ];\r\n },\r\n createDefault(): VNode[] | VNode {\r\n const { modelValue, formLoading, attrId } = this;\r\n const slotContent = getSlot(this, 'default', {\r\n value: modelValue,\r\n formLoading,\r\n attrId,\r\n });\r\n return (\r\n slotContent ??\r\n h(\r\n 'div',\r\n {\r\n [`.${NAME}__value`]: true,\r\n '.data-id': this.attrId,\r\n '.tabindex': 0,\r\n onFocus: this.onFocus,\r\n onBlur: this.onBlur,\r\n },\r\n this.createDefaultChildren(),\r\n )\r\n );\r\n },\r\n createLeading(): VNode | undefined {\r\n const slot = getSlot(this, 'leading', { error: this.isError });\r\n return slot\r\n ? h(\r\n 'div',\r\n {\r\n class: 'y-input__leading',\r\n onClick: this.onClickLeading,\r\n },\r\n slot,\r\n )\r\n : undefined;\r\n },\r\n createTrailing(): VNode | VNode[] | undefined {\r\n return getSlot(this, 'trailing');\r\n },\r\n getDisplayHeight() {\r\n const { height } = this;\r\n if (!isNaN(Number(height))) {\r\n return `${height}px`;\r\n }\r\n return height;\r\n },\r\n createDisplay(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: {\r\n [`${NAME}__display`]: true,\r\n },\r\n onClick: this.onClick,\r\n onMousedown: this.onMousedown,\r\n onMouseup: this.onMouseup,\r\n ref: 'display',\r\n style: {\r\n ...this.displayStyles,\r\n },\r\n },\r\n [\r\n h('div', { class: `${NAME}__plate` }),\r\n this.createLeading(),\r\n this.createDefault(),\r\n this.createTrailing(),\r\n ],\r\n );\r\n },\r\n createHelperText(): VNode {\r\n const helperTextSlot = getSlot(this, 'helper-text', {\r\n error: this.status === 'error' || this.inError,\r\n errorResult: this.errorResult,\r\n });\r\n const children = [];\r\n if (helperTextSlot) {\r\n children.push(h('span', {}, helperTextSlot));\r\n } else {\r\n children.push(this.errorResult);\r\n }\r\n return h('div', { class: `${NAME}__helper-text` }, children);\r\n },\r\n createStackChildren(): (VNode | undefined)[] {\r\n return [\r\n !this.floating ? this.createLabel() : undefined,\r\n this.createDisplay(),\r\n this.createHelperText(),\r\n ];\r\n },\r\n createStack(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: `${NAME}__stack`,\r\n ref: 'stack',\r\n },\r\n this.createStackChildren(),\r\n );\r\n },\r\n createContent(): (VNode | undefined)[] {\r\n return [this.createPrepend(), this.createStack(), this.createAppend()];\r\n },\r\n //\r\n onClick(event: MouseEvent) {\r\n this.$emit('click', event);\r\n },\r\n onMousedown(e: Event) {\r\n this.hasMouseDown = true;\r\n this.$emit('mousedown:display', e);\r\n },\r\n onMouseup(e: Event) {\r\n this.hasMouseDown = false;\r\n this.$emit('mouseup:display', e);\r\n },\r\n onFocus(event: FocusEvent) {\r\n this.whenFocus();\r\n this.$emit('focus', event);\r\n },\r\n onBlur(event: FocusEvent) {\r\n this.whenBlur();\r\n this.invokeValidators();\r\n this.$emit('blur', event);\r\n },\r\n onClickLeading(event: MouseEvent) {\r\n this.$emit('click:leading', event);\r\n },\r\n onChange(event?: Event) {\r\n this.invokeValidators();\r\n },\r\n //\r\n invokeValidators(): boolean {\r\n const { validators, inValue, $attrs } = this;\r\n const { required } = $attrs;\r\n this.resetError();\r\n let flag = true;\r\n if (Array.isArray(validators)) {\r\n validators.some((validator: any) => {\r\n const result = validator(inValue);\r\n if (typeof result === 'string') {\r\n this.inError = true;\r\n this.errorResult = result;\r\n flag = false;\r\n return true;\r\n }\r\n if (result === false) {\r\n this.inError = true;\r\n this.errorResult = '';\r\n flag = false;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n if (flag && required && !inValue) {\r\n this.inError = true;\r\n return false;\r\n }\r\n return flag;\r\n },\r\n resetError() {\r\n this.inError = false;\r\n this.errorResult = undefined;\r\n },\r\n getClasses() {\r\n return this.classes;\r\n },\r\n },\r\n watch: {\r\n modelValue(neo: string) {\r\n if (!this.readonly) {\r\n this.inValue = neo;\r\n }\r\n },\r\n readonly(neo: boolean) {\r\n if (!neo) {\r\n this.inValue = this.modelValue;\r\n }\r\n },\r\n inValue(neo: string) {\r\n if (!this.readonly) {\r\n this.$emit('update:modelValue', neo);\r\n }\r\n },\r\n isError(neo: boolean) {\r\n this.$emit('error', neo);\r\n },\r\n },\r\n created() {\r\n this.inValue = this.modelValue;\r\n },\r\n setup(props) {\r\n const { themeClasses } = useLocalTheme(props);\r\n const {\r\n focused: isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n } = useFocus(props, 'y-input');\r\n return {\r\n themeClasses,\r\n isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n };\r\n },\r\n render(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: { ...this.getClasses(), [`${NAME}`]: true },\r\n },\r\n this.createContent(),\r\n );\r\n },\r\n});\r\n\r\nexport type YInput = InstanceType<typeof YInput>;\r\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","defineComponent","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","watchEffect","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","polyTransitionPropOptions","usePolyTransition","ComplementClick","bindClasses","propsFactory","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","setup","_ref","emit","expose","attrs","slots","vm","base$","scrim$","content$","baseSlot","baseEl","themeClasses","layerGroup","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","active","get","set","v","finish","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","onClickComplementLayer","target","closeConditional","hovered","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","baseFromSlotEl","el","base","$el","computedStyle","zIndex","computedClass","boundClasses","computedContentClasses","onMouseenter","event","onMouseleave","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { CSSProperties, PropType, ComponentInternalInstance } from 'vue';\r\nimport {\r\n Teleport,\r\n Transition,\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n mergeProps,\r\n reactive,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport {\r\n pressCoordinateProps,\r\n useCoordinate,\r\n} from '../../composables/coordinate';\r\nimport {\r\n pressDimensionPropsOptions,\r\n useDimension,\r\n} from '../../composables/dimension';\r\nimport { useLayerGroup } from '../../composables/layer-group';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { useLazy } from '../../composables/timing';\r\nimport {\r\n PolyTransition,\r\n polyTransitionPropOptions,\r\n usePolyTransition,\r\n} from '../../composables/transition';\r\nimport {\r\n ComplementClick,\r\n ComplementClickBindingOptions,\r\n} from '../../directives/complement-click';\r\nimport { bindClasses, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YLayer.scss';\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n {\r\n modelValue: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrimOpacity: {\r\n type: Number as PropType<number>,\r\n },\r\n eager: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n classes: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n contentClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n closeClickScrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n\r\n contentStyles: {\r\n type: Object as PropType<CSSProperties>,\r\n default: () => {},\r\n },\r\n disabled: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openOnHover: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n closeDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n ...pressThemePropsOptions(),\r\n ...polyTransitionPropOptions,\r\n ...pressCoordinateProps(),\r\n ...pressDimensionPropsOptions(),\r\n },\r\n 'YLayer',\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n name: 'YLayer',\r\n inheritAttrs: false,\r\n components: {\r\n PolyTransition,\r\n },\r\n directives: {\r\n ComplementClick,\r\n },\r\n props: {\r\n modal: Boolean as PropType<boolean>,\r\n ...pressYLayerProps(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: boolean) => true,\r\n 'click:complement': (mouseEvent: MouseEvent) => true,\r\n afterLeave: () => true,\r\n },\r\n setup(props, { emit, expose, attrs, slots }) {\r\n const vm = getCurrentInstance();\r\n const base$ = ref();\r\n const scrim$ = ref<HTMLElement>();\r\n const content$ = ref<HTMLElement>();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup();\r\n const { polyTransitionBindProps } = usePolyTransition(props);\r\n const { dimensionStyles } = useDimension(props);\r\n const active = computed<boolean>({\r\n get: (): boolean => {\r\n return !!props.modelValue;\r\n },\r\n set: (v: boolean) => {\r\n emit('update:modelValue', v);\r\n },\r\n });\r\n const finish = shallowRef(false);\r\n\r\n const disabled = toRef(props, 'disabled');\r\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\r\n const rendered = computed<boolean>(\r\n () => !disabled.value && (lazyValue.value || active.value),\r\n );\r\n\r\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n contentEl: content$,\r\n baseEl,\r\n active,\r\n });\r\n\r\n function onClickComplementLayer(mouseEvent: MouseEvent) {\r\n emit('click:complement', mouseEvent);\r\n if (!props.modal) {\r\n if (\r\n scrim$.value !== null &&\r\n scrim$.value === mouseEvent.target &&\r\n props.closeClickScrim\r\n ) {\r\n active.value = false;\r\n }\r\n } else {\r\n // TODO: shrug ani\r\n }\r\n }\r\n\r\n function closeConditional(): boolean {\r\n return (\r\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n active.value\r\n ); // TODO: && groupTopLevel.value;\r\n }\r\n\r\n const complementClickOption = reactive<ComplementClickBindingOptions>({\r\n handler: onClickComplementLayer,\r\n determine: closeConditional,\r\n include: () => [baseEl.value],\r\n });\r\n\r\n function onAfterEnter() {\r\n finish.value = true;\r\n }\r\n\r\n function onAfterLeave() {\r\n onAfterUpdate();\r\n finish.value = false;\r\n emit('afterLeave');\r\n }\r\n\r\n function onClickScrim() {\r\n if (props.closeClickScrim) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n const baseFromSlotEl = computed(() => {\r\n return baseSlot.value?.[0]?.el;\r\n });\r\n\r\n watchEffect(() => {\r\n if (!base$.value) {\r\n baseEl.value = baseFromSlotEl.value;\r\n return;\r\n }\r\n const base = base$.value;\r\n baseEl.value = base$.value?.$el ? base$.value?.$el : base;\r\n });\r\n\r\n const computedStyle = computed(() => {\r\n return {\r\n zIndex: '2000',\r\n };\r\n });\r\n\r\n const computedClass = computed<Record<string, boolean>>(() => {\r\n const { classes } = props;\r\n const boundClasses = bindClasses(classes);\r\n return {\r\n ...boundClasses,\r\n 'y-layer--active': !!active.value,\r\n };\r\n });\r\n\r\n const computedContentClasses = computed<Record<string, boolean>>(() => {\r\n const boundClasses = bindClasses(props.contentClasses);\r\n return {\r\n ...boundClasses,\r\n };\r\n });\r\n\r\n const hovered = ref(false);\r\n\r\n function onMouseenter(event: Event) {\r\n hovered.value = true;\r\n }\r\n\r\n function onMouseleave(event: Event) {\r\n hovered.value = false;\r\n }\r\n\r\n expose({\r\n scrim$,\r\n base$,\r\n content$,\r\n baseEl,\r\n active,\r\n onAfterUpdate,\r\n updateCoordinate,\r\n hovered,\r\n modal: computed(() => props.modal),\r\n getActiveLayers,\r\n isMe: (vnode: ComponentInternalInstance) => {\r\n return vnode === vm;\r\n },\r\n });\r\n\r\n useRender(() => {\r\n const slotBase = slots.base?.({\r\n active: active.value,\r\n props: mergeProps({\r\n ref: base$,\r\n class: {\r\n 'y-layer-base': true,\r\n 'y-layer-base--active': active.value,\r\n },\r\n }),\r\n });\r\n baseSlot.value = slotBase;\r\n return (\r\n <>\r\n {slotBase}\r\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n {rendered.value && (\r\n <div\r\n class={{\r\n 'y-layer': true,\r\n 'y-layer--finish': finish.value,\r\n ...computedClass.value,\r\n [themeClasses.value ?? '']: true,\r\n }}\r\n onMouseenter={onMouseenter}\r\n onMouseleave={onMouseleave}\r\n style={computedStyle.value}\r\n {...attrs}\r\n >\r\n <Transition name=\"fade\" appear>\r\n {active.value && props.scrim && (\r\n <div\r\n class=\"y-layer__scrim\"\r\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\r\n onClick={onClickScrim}\r\n ref=\"scrim$\"\r\n ></div>\r\n )}\r\n </Transition>\r\n <PolyTransition\r\n onAfterEnter={onAfterEnter}\r\n onAfterLeave={onAfterLeave}\r\n appear\r\n {...polyTransitionBindProps.value}\r\n >\r\n <div\r\n v-show={active.value}\r\n v-complement-click={{ ...complementClickOption }}\r\n class={{\r\n 'y-layer__content': true,\r\n ...computedContentClasses.value,\r\n }}\r\n style={[\r\n {\r\n ...dimensionStyles.value,\r\n ...coordinateStyles.value,\r\n ...props.contentStyles,\r\n },\r\n ]}\r\n ref={content$}\r\n >\r\n {slots.default?.({ active: active.value })}\r\n </div>\r\n </PolyTransition>\r\n </div>\r\n )}\r\n </Teleport>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n complementClickOption,\r\n layerGroup,\r\n active,\r\n rendered,\r\n lazyValue,\r\n onAfterUpdate: onAfterUpdate as () => void,\r\n scrim$,\r\n content$,\r\n baseEl,\r\n polyTransitionBindProps,\r\n coordinateStyles,\r\n layerGroupState,\r\n getActiveLayers,\r\n };\r\n },\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","defineComponent","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","watchEffect","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","polyTransitionPropOptions","usePolyTransition","ComplementClick","bindClasses","propsFactory","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","setup","_ref","emit","expose","attrs","slots","vm","base$","scrim$","content$","baseSlot","baseEl","themeClasses","layerGroup","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","active","get","set","v","finish","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","onClickComplementLayer","target","closeConditional","hovered","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","baseFromSlotEl","el","base","$el","computedStyle","zIndex","computedClass","boundClasses","computedContentClasses","onMouseenter","event","onMouseleave","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { CSSProperties, PropType, ComponentInternalInstance } from 'vue';\r\nimport {\r\n Teleport,\r\n Transition,\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n mergeProps,\r\n reactive,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport {\r\n pressCoordinateProps,\r\n useCoordinate,\r\n} from '../../composables/coordinate';\r\nimport {\r\n pressDimensionPropsOptions,\r\n useDimension,\r\n} from '../../composables/dimension';\r\nimport { useLayerGroup } from '../../composables/layer-group';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { useLazy } from '../../composables/timing';\r\nimport {\r\n PolyTransition,\r\n polyTransitionPropOptions,\r\n usePolyTransition,\r\n} from '../../composables/transition';\r\nimport {\r\n ComplementClick,\r\n ComplementClickBindingOptions,\r\n} from '../../directives/complement-click';\r\nimport { bindClasses, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YLayer.scss';\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n {\r\n modelValue: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrimOpacity: {\r\n type: Number as PropType<number>,\r\n },\r\n eager: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n classes: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n contentClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n closeClickScrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n\r\n contentStyles: {\r\n type: Object as PropType<CSSProperties>,\r\n default: () => {},\r\n },\r\n disabled: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openOnHover: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n closeDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n ...pressThemePropsOptions(),\r\n ...polyTransitionPropOptions,\r\n ...pressCoordinateProps(),\r\n ...pressDimensionPropsOptions(),\r\n },\r\n 'YLayer',\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n name: 'YLayer',\r\n inheritAttrs: false,\r\n components: {\r\n PolyTransition,\r\n },\r\n directives: {\r\n ComplementClick,\r\n },\r\n props: {\r\n modal: Boolean as PropType<boolean>,\r\n ...pressYLayerProps(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: boolean) => true,\r\n 'click:complement': (mouseEvent: MouseEvent) => true,\r\n afterLeave: () => true,\r\n },\r\n setup(props, { emit, expose, attrs, slots }) {\r\n const vm = getCurrentInstance();\r\n const base$ = ref();\r\n const scrim$ = ref<HTMLElement>();\r\n const content$ = ref<HTMLElement>();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup();\r\n const { polyTransitionBindProps } = usePolyTransition(props);\r\n const { dimensionStyles } = useDimension(props);\r\n const active = computed<boolean>({\r\n get: (): boolean => {\r\n return !!props.modelValue;\r\n },\r\n set: (v: boolean) => {\r\n emit('update:modelValue', v);\r\n },\r\n });\r\n const finish = shallowRef(false);\r\n\r\n const disabled = toRef(props, 'disabled');\r\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\r\n const rendered = computed<boolean>(\r\n () => !disabled.value && (lazyValue.value || active.value),\r\n );\r\n\r\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n contentEl: content$,\r\n baseEl,\r\n active,\r\n });\r\n\r\n function onClickComplementLayer(mouseEvent: MouseEvent) {\r\n emit('click:complement', mouseEvent);\r\n if (!props.modal) {\r\n if (\r\n scrim$.value !== null &&\r\n scrim$.value === mouseEvent.target &&\r\n props.closeClickScrim\r\n ) {\r\n active.value = false;\r\n }\r\n } else {\r\n // TODO: shrug ani\r\n }\r\n }\r\n\r\n function closeConditional(): boolean {\r\n return (\r\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n active.value\r\n ); // TODO: && groupTopLevel.value;\r\n }\r\n\r\n const complementClickOption = reactive<ComplementClickBindingOptions>({\r\n handler: onClickComplementLayer,\r\n determine: closeConditional,\r\n include: () => [baseEl.value],\r\n });\r\n\r\n function onAfterEnter() {\r\n finish.value = true;\r\n }\r\n\r\n function onAfterLeave() {\r\n onAfterUpdate();\r\n finish.value = false;\r\n emit('afterLeave');\r\n }\r\n\r\n function onClickScrim() {\r\n if (props.closeClickScrim) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n const baseFromSlotEl = computed(() => {\r\n return baseSlot.value?.[0]?.el;\r\n });\r\n\r\n watchEffect(() => {\r\n if (!base$.value) {\r\n baseEl.value = baseFromSlotEl.value;\r\n return;\r\n }\r\n const base = base$.value;\r\n baseEl.value = base$.value?.$el ? base$.value?.$el : base;\r\n });\r\n\r\n const computedStyle = computed(() => {\r\n return {\r\n zIndex: '2000',\r\n };\r\n });\r\n\r\n const computedClass = computed<Record<string, boolean>>(() => {\r\n const { classes } = props;\r\n const boundClasses = bindClasses(classes);\r\n return {\r\n ...boundClasses,\r\n 'y-layer--active': !!active.value,\r\n };\r\n });\r\n\r\n const computedContentClasses = computed<Record<string, boolean>>(() => {\r\n const boundClasses = bindClasses(props.contentClasses);\r\n return {\r\n ...boundClasses,\r\n };\r\n });\r\n\r\n const hovered = ref(false);\r\n\r\n function onMouseenter(event: Event) {\r\n hovered.value = true;\r\n }\r\n\r\n function onMouseleave(event: Event) {\r\n hovered.value = false;\r\n }\r\n\r\n expose({\r\n scrim$,\r\n base$,\r\n content$,\r\n baseEl,\r\n active,\r\n onAfterUpdate,\r\n updateCoordinate,\r\n hovered,\r\n modal: computed(() => props.modal),\r\n getActiveLayers,\r\n isMe: (vnode: ComponentInternalInstance) => {\r\n return vnode === vm;\r\n },\r\n });\r\n\r\n useRender(() => {\r\n const slotBase = slots.base?.({\r\n active: active.value,\r\n props: mergeProps({\r\n ref: base$,\r\n class: {\r\n 'y-layer-base': true,\r\n 'y-layer-base--active': active.value,\r\n },\r\n }),\r\n });\r\n baseSlot.value = slotBase;\r\n return (\r\n <>\r\n {slotBase}\r\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n {rendered.value && (\r\n <div\r\n class={{\r\n 'y-layer': true,\r\n 'y-layer--finish': finish.value,\r\n ...computedClass.value,\r\n [themeClasses.value ?? '']: true,\r\n }}\r\n onMouseenter={onMouseenter}\r\n onMouseleave={onMouseleave}\r\n style={computedStyle.value}\r\n {...attrs}\r\n >\r\n <Transition name=\"fade\" appear>\r\n {active.value && props.scrim && (\r\n <div\r\n class=\"y-layer__scrim\"\r\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\r\n onClick={onClickScrim}\r\n ref=\"scrim$\"\r\n ></div>\r\n )}\r\n </Transition>\r\n <PolyTransition\r\n onAfterEnter={onAfterEnter}\r\n onAfterLeave={onAfterLeave}\r\n appear\r\n {...polyTransitionBindProps.value}\r\n >\r\n <div\r\n v-show={active.value}\r\n v-complement-click={{ ...complementClickOption }}\r\n class={{\r\n 'y-layer__content': true,\r\n ...computedContentClasses.value,\r\n }}\r\n style={[\r\n {\r\n ...dimensionStyles.value,\r\n ...coordinateStyles.value,\r\n ...props.contentStyles,\r\n },\r\n ]}\r\n ref={content$}\r\n >\r\n {slots.default?.({ active: active.value })}\r\n </div>\r\n </PolyTransition>\r\n </div>\r\n )}\r\n </Teleport>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n complementClickOption,\r\n layerGroup,\r\n active,\r\n rendered,\r\n lazyValue,\r\n onAfterUpdate: onAfterUpdate as () => void,\r\n scrim$,\r\n content$,\r\n base$,\r\n baseEl,\r\n polyTransitionBindProps,\r\n coordinateStyles,\r\n layerGroupState,\r\n getActiveLayers,\r\n };\r\n },\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YList.mjs","names":["defineComponent","ref","shallowRef","useRender","pressThemePropsOptions","useLocalTheme","propsFactory","pressYListPropsOptions","disabled","Boolean","YList","name","props","setup","_ref","slots","el$","themeClasses","focused","onFocus","event","value","relatedTarget","contains","focus","onFocusIn","onFocusOut","onKeydown","target","_createVNode","default"],"sources":["../../../src/components/list/YList.tsx"],"sourcesContent":["import { defineComponent, ref, shallowRef } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YList.scss';\n\nexport const pressYListPropsOptions = propsFactory(\n {\n disabled: Boolean,\n ...pressThemePropsOptions(),\n },\n 'YList',\n);\n\nexport const YList = defineComponent({\n name: 'YList',\n props: {\n ...pressYListPropsOptions(),\n },\n setup(props, { slots }) {\n const el$ = ref<HTMLElement>();\n\n const { themeClasses } = useLocalTheme(props);\n\n const focused = shallowRef(false);\n\n function onFocus(event: FocusEvent) {\n if (!focused.value && !(event.relatedTarget && el$.value?.contains(event.relatedTarget as Node))) {\n focus();\n }\n }\n\n function onFocusIn(event: FocusEvent) {\n focused.value = true;\n }\n\n function onFocusOut(event: FocusEvent) {\n focused.value = false;\n }\n\n function onKeydown(event: KeyboardEvent) {\n //\n }\n\n function focus(target?: string) {\n //\n }\n\n useRender(() => (\n <div\n ref={el$}\n class={['y-list', themeClasses.value]}\n role=\"listbox\"\n tabindex={props.disabled || focused.value ? -1 : 0}\n onFocus={onFocus}\n onFocusin={onFocusIn}\n onFocusout={onFocusOut}\n onKeydown={onKeydown}\n >\n {slots.default?.()}\n </div>\n ));\n },\n});\n\nexport type YList = InstanceType<typeof YList>;\n"],"mappings":";AAAA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAE9CC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,YAAY;AAErB;AAEA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAChD;EACEE,QAAQ,EAAEC,OAAO;EACjB,GAAGL,sBAAsB,CAAC;AAC5B,CAAC,EACD,OACF,CAAC;AAED,OAAO,MAAMM,KAAK,GAAGV,eAAe,CAAC;EACnCW,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;IACL,GAAGL,sBAAsB,CAAC;EAC5B,CAAC;EACDM,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,MAAME,GAAG,GAAGf,GAAG,CAAc,CAAC;IAE9B,MAAM;MAAEgB;IAAa,CAAC,GAAGZ,aAAa,CAACO,KAAK,CAAC;IAE7C,MAAMM,OAAO,GAAGhB,UAAU,CAAC,KAAK,CAAC;IAEjC,SAASiB,OAAOA,CAACC,KAAiB,EAAE;MAClC,IAAI,CAACF,OAAO,CAACG,KAAK,IAAI,EAAED,KAAK,CAACE,aAAa,IAAIN,GAAG,CAACK,KAAK,EAAEE,QAAQ,CAACH,KAAK,CAACE,aAAqB,CAAC,CAAC,EAAE;QAChGE,KAAK,CAAC,CAAC;MACT;IACF;IAEA,SAASC,SAASA,CAACL,KAAiB,EAAE;MACpCF,OAAO,CAACG,KAAK,GAAG,IAAI;IACtB;IAEA,SAASK,UAAUA,CAACN,KAAiB,EAAE;MACrCF,OAAO,CAACG,KAAK,GAAG,KAAK;IACvB;IAEA,SAASM,SAASA,CAACP,KAAoB,EAAE;MACvC;IAAA;IAGF,SAASI,KAAKA,CAACI,MAAe,EAAE;MAC9B;IAAA;IAGFzB,SAAS,CAAC,MAAA0B,YAAA;MAAA,OAEGb,GAAG;MAAA,SACD,CAAC,QAAQ,EAAEC,YAAY,CAACI,KAAK,CAAC;MAAA,QAChC,SAAS;MAAA,YACJT,KAAK,CAACJ,QAAQ,IAAIU,OAAO,CAACG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;MAAA,WACzCF,OAAO;MAAA,aACLM,SAAS;MAAA,cACRC,UAAU;MAAA,aACXC;IAAS,IAErBZ,KAAK,CAACe,OAAO,GAAG,CAAC,EAEvB,CAAC;EACJ;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"YList.mjs","names":["defineComponent","ref","shallowRef","useRender","pressThemePropsOptions","useLocalTheme","propsFactory","pressYListPropsOptions","disabled","Boolean","YList","name","props","setup","_ref","slots","el$","themeClasses","focused","onFocus","event","value","relatedTarget","contains","focus","onFocusIn","onFocusOut","onKeydown","target","_createVNode","default"],"sources":["../../../src/components/list/YList.tsx"],"sourcesContent":["import { defineComponent, ref, shallowRef } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { propsFactory } from '../../util/vue-component';\r\n\r\nimport './YList.scss';\r\n\r\nexport const pressYListPropsOptions = propsFactory(\r\n {\r\n disabled: Boolean,\r\n ...pressThemePropsOptions(),\r\n },\r\n 'YList',\r\n);\r\n\r\nexport const YList = defineComponent({\r\n name: 'YList',\r\n props: {\r\n ...pressYListPropsOptions(),\r\n },\r\n setup(props, { slots }) {\r\n const el$ = ref<HTMLElement>();\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n\r\n const focused = shallowRef(false);\r\n\r\n function onFocus(event: FocusEvent) {\r\n if (!focused.value && !(event.relatedTarget && el$.value?.contains(event.relatedTarget as Node))) {\r\n focus();\r\n }\r\n }\r\n\r\n function onFocusIn(event: FocusEvent) {\r\n focused.value = true;\r\n }\r\n\r\n function onFocusOut(event: FocusEvent) {\r\n focused.value = false;\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n //\r\n }\r\n\r\n function focus(target?: string) {\r\n //\r\n }\r\n\r\n useRender(() => (\r\n <div\r\n ref={el$}\r\n class={['y-list', themeClasses.value]}\r\n role=\"listbox\"\r\n tabindex={props.disabled || focused.value ? -1 : 0}\r\n onFocus={onFocus}\r\n onFocusin={onFocusIn}\r\n onFocusout={onFocusOut}\r\n onKeydown={onKeydown}\r\n >\r\n {slots.default?.()}\r\n </div>\r\n ));\r\n },\r\n});\r\n\r\nexport type YList = InstanceType<typeof YList>;\r\n"],"mappings":";AAAA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAE9CC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,YAAY;AAErB;AAEA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAChD;EACEE,QAAQ,EAAEC,OAAO;EACjB,GAAGL,sBAAsB,CAAC;AAC5B,CAAC,EACD,OACF,CAAC;AAED,OAAO,MAAMM,KAAK,GAAGV,eAAe,CAAC;EACnCW,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;IACL,GAAGL,sBAAsB,CAAC;EAC5B,CAAC;EACDM,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,MAAME,GAAG,GAAGf,GAAG,CAAc,CAAC;IAE9B,MAAM;MAAEgB;IAAa,CAAC,GAAGZ,aAAa,CAACO,KAAK,CAAC;IAE7C,MAAMM,OAAO,GAAGhB,UAAU,CAAC,KAAK,CAAC;IAEjC,SAASiB,OAAOA,CAACC,KAAiB,EAAE;MAClC,IAAI,CAACF,OAAO,CAACG,KAAK,IAAI,EAAED,KAAK,CAACE,aAAa,IAAIN,GAAG,CAACK,KAAK,EAAEE,QAAQ,CAACH,KAAK,CAACE,aAAqB,CAAC,CAAC,EAAE;QAChGE,KAAK,CAAC,CAAC;MACT;IACF;IAEA,SAASC,SAASA,CAACL,KAAiB,EAAE;MACpCF,OAAO,CAACG,KAAK,GAAG,IAAI;IACtB;IAEA,SAASK,UAAUA,CAACN,KAAiB,EAAE;MACrCF,OAAO,CAACG,KAAK,GAAG,KAAK;IACvB;IAEA,SAASM,SAASA,CAACP,KAAoB,EAAE;MACvC;IAAA;IAGF,SAASI,KAAKA,CAACI,MAAe,EAAE;MAC9B;IAAA;IAGFzB,SAAS,CAAC,MAAA0B,YAAA;MAAA,OAEGb,GAAG;MAAA,SACD,CAAC,QAAQ,EAAEC,YAAY,CAACI,KAAK,CAAC;MAAA,QAChC,SAAS;MAAA,YACJT,KAAK,CAACJ,QAAQ,IAAIU,OAAO,CAACG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;MAAA,WACzCF,OAAO;MAAA,aACLM,SAAS;MAAA,cACRC,UAAU;MAAA,aACXC;IAAS,IAErBZ,KAAK,CAACe,OAAO,GAAG,CAAC,EAEvB,CAAC;EACJ;AACF,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
2
2
|
import { shallowRef } from '@vue/runtime-core';
|
|
3
|
-
import { computed, defineComponent, mergeProps, ref } from 'vue';
|
|
3
|
+
import { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';
|
|
4
4
|
import { useModelDuplex } from "../../composables/communication.mjs";
|
|
5
5
|
import { useRender } from "../../composables/component.mjs";
|
|
6
6
|
import { pressCoordinateProps } from "../../composables/coordinate/index.mjs";
|
|
@@ -47,6 +47,7 @@ export const pressYSelectPropsOptions = propsFactory({
|
|
|
47
47
|
}, 'YSelect');
|
|
48
48
|
export const YSelect = defineComponent({
|
|
49
49
|
name: 'YSelect',
|
|
50
|
+
inheritAttrs: false,
|
|
50
51
|
props: {
|
|
51
52
|
...pressYSelectPropsOptions()
|
|
52
53
|
},
|
|
@@ -55,9 +56,11 @@ export const YSelect = defineComponent({
|
|
|
55
56
|
'update:opened': opened => true,
|
|
56
57
|
'click:item': (item, e) => true
|
|
57
58
|
},
|
|
59
|
+
slots: Object,
|
|
58
60
|
setup(props, _ref) {
|
|
59
61
|
let {
|
|
60
|
-
slots
|
|
62
|
+
slots,
|
|
63
|
+
attrs
|
|
61
64
|
} = _ref;
|
|
62
65
|
const fieldInputRef = ref();
|
|
63
66
|
const menuRef = ref();
|
|
@@ -85,7 +88,7 @@ export const YSelect = defineComponent({
|
|
|
85
88
|
});
|
|
86
89
|
function isSelected(item) {
|
|
87
90
|
return !!selections.value.find(selectedItem => {
|
|
88
|
-
return selectedItem
|
|
91
|
+
return selectedItem?.value === item.value;
|
|
89
92
|
});
|
|
90
93
|
}
|
|
91
94
|
|
|
@@ -167,7 +170,8 @@ export const YSelect = defineComponent({
|
|
|
167
170
|
"readonly": true,
|
|
168
171
|
"class": ['y-select', {
|
|
169
172
|
'y-select--opened': opened.value
|
|
170
|
-
}]
|
|
173
|
+
}]
|
|
174
|
+
}, attrs, {
|
|
171
175
|
"focused": focused.value,
|
|
172
176
|
"onUpdate:focused": $event => focused.value = $event
|
|
173
177
|
}), {
|
|
@@ -191,7 +195,7 @@ export const YSelect = defineComponent({
|
|
|
191
195
|
});
|
|
192
196
|
},
|
|
193
197
|
default: () => slots.menu ? slots.menu() : _createVNode(YCard, null, {
|
|
194
|
-
default: () => [items.value.length > 0 ? _createVNode(YList, {
|
|
198
|
+
default: () => [slots['menu-prepend']?.(), items.value.length > 0 ? _createVNode(YList, {
|
|
195
199
|
"ref": listRef
|
|
196
200
|
}, {
|
|
197
201
|
default: () => [items.value.map(item => {
|
|
@@ -201,15 +205,23 @@ export const YSelect = defineComponent({
|
|
|
201
205
|
'y-list-item--active': isSelected(item)
|
|
202
206
|
}
|
|
203
207
|
}, {
|
|
204
|
-
default: () => [item.
|
|
208
|
+
default: () => [slots.item ? slots.item({
|
|
209
|
+
item,
|
|
210
|
+
selected: isSelected(item)
|
|
211
|
+
}) : item.text]
|
|
205
212
|
});
|
|
206
213
|
})]
|
|
207
214
|
}) : _createVNode("div", {
|
|
208
215
|
"class": "y-select__no-options"
|
|
209
|
-
}, [_createTextVNode("\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.")])]
|
|
216
|
+
}, [_createTextVNode("\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.")]), slots['menu-append']?.()]
|
|
210
217
|
})
|
|
211
218
|
});
|
|
212
219
|
});
|
|
220
|
+
onMounted(() => {
|
|
221
|
+
if (props.defaultSelect && (props.modelValue === undefined || Array.isArray(props.modelValue) && props.modelValue.length === 0) && items.value?.length) {
|
|
222
|
+
select(items.value[0]);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
213
225
|
return {
|
|
214
226
|
fieldInputRef,
|
|
215
227
|
model,
|