yuyeon 0.2.3-rc.12 → 0.2.3-rc.14

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.
@@ -205,7 +205,8 @@ export const YDialog = defineComponent({
205
205
  return {
206
206
  active,
207
207
  layer: layer$,
208
- classes
208
+ classes,
209
+ children
209
210
  };
210
211
  }
211
212
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","focusTrap","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","requestAnimationFrame","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","setTimeout","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\n type PropType,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { omit } from '@/util/common';\nimport {\n bindClasses,\n chooseProps,\n defineComponent,\n propsFactory,\n} from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YCard } from '../card';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useActiveStack } from '../layer/active-stack';\n\nimport './YDialog.scss';\n\nexport const pressYDialogPropsOptions = propsFactory(\n {\n persistent: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n dialogClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n maximized: Boolean as PropType<boolean>,\n focusTrap: {\n type: [Boolean, String, Object, Array] as PropType<\n false | string | string[] | HTMLElement\n >,\n default: true,\n },\n offset: {\n type: String as PropType<string>,\n },\n ...omit(\n pressYLayerProps({\n scrim: true,\n }),\n ['offset', 'classes'],\n ),\n },\n 'YDialog',\n);\n\nexport const YDialog = defineComponent({\n name: 'YDialog',\n components: {\n YLayer,\n YCard,\n },\n props: pressYDialogPropsOptions(),\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const vm = getCurrentInstance();\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\n const active = useModelDuplex(props);\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.dialogClasses);\n return {\n ...boundClasses,\n 'y-dialog': true,\n 'y-dialog--maximized': props.maximized,\n };\n });\n\n const styles = computed(() => {\n return {\n ...(props.contentStyles ?? {}),\n paddingTop: toStyleSizeValue(props.offset),\n };\n });\n\n const layer$ = ref<typeof YLayer>();\n const { children } = useActiveStack(layer$, active, shallowRef(true));\n\n function onFocusin(e: FocusEvent) {\n if (props.focusTrap === false) {\n return;\n }\n\n const prevTarget = e.relatedTarget as HTMLElement | null;\n const target = e.target as HTMLElement | null;\n\n const excludeTarget = props.focusTrap;\n\n if (\n typeof excludeTarget === 'string' &&\n document.querySelector(excludeTarget) == target\n ) {\n return;\n }\n\n if (typeof excludeTarget === 'object') {\n if (Array.isArray(excludeTarget)) {\n const excluded = excludeTarget.some((exclude) => {\n if (typeof exclude === 'string') {\n return document.querySelector(exclude) == target;\n }\n if (typeof exclude === 'object') {\n return exclude == target;\n }\n });\n if (excluded) {\n return;\n }\n } else if (excludeTarget == target) {\n return;\n }\n }\n\n function testChildrenContains(layers: YLayer[]) {\n return layers.some((layer) => {\n return !layer.content$?.contains(target);\n });\n }\n\n if (\n prevTarget !== target &&\n layer$.value?.content$ &&\n ![document, layer$.value?.content$].includes(target) &&\n !layer$.value?.content$.contains(target) &&\n !testChildrenContains(children.value)\n ) {\n const focusableSelector =\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n const focusables = [\n ...layer$.value.content$.querySelectorAll(focusableSelector),\n ].filter(\n (el) =>\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\n ) as HTMLElement[];\n if (!focusables.length) return;\n const firstChild = focusables[0];\n const lastChild = focusables[focusables.length - 1];\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\n return;\n }\n if (firstChild === lastChild) {\n lastChild.focus();\n } else {\n firstChild.focus();\n }\n }\n }\n\n function installFocusTrap() {\n document.addEventListener('focusin', onFocusin);\n }\n\n function dismantleFocusTrap() {\n document.removeEventListener('focusin', onFocusin);\n }\n\n const tempScrollTop = ref(0);\n const tempScrollLeft = ref(0);\n\n function preventInteractionBackground(toggle: boolean) {\n const root$ = $yuyeon.root as HTMLElement;\n const activeLayers = layer$.value?.getActiveLayers();\n if (toggle) {\n const filtered = activeLayers?.filter((layer: any) => {\n return layer.ctx.modal;\n });\n if (\n (filtered && !filtered.length) ||\n !root$.classList.contains('y-dialog--virtual-scroll')\n ) {\n const scrollTop = document.documentElement.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft;\n tempScrollTop.value = scrollTop;\n tempScrollLeft.value = scrollLeft;\n if (props.maximized) {\n document.documentElement.classList.add('y-dialog--prevent-scroll');\n }\n root$.classList.add('y-dialog--virtual-scroll');\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\n }\n } else {\n const filtered = activeLayers?.filter((layer: any) => {\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\n });\n if (!filtered?.length && root$) {\n root$.classList.remove('y-dialog--virtual-scroll');\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n root$.style.top = '';\n root$.style.left = '';\n requestAnimationFrame(() => {\n document.documentElement.scrollTop = tempScrollTop.value;\n document.documentElement.scrollLeft = tempScrollLeft.value;\n });\n }\n }\n }\n\n function onUpdate(v: boolean) {\n active.value = v;\n }\n\n function onClick(e: MouseEvent) {\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n watch(\n () => layer$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n neo.addEventListener('click', onClick);\n } else if (old) {\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n watch(\n () => active.value,\n (neo) => {\n neo ? installFocusTrap() : dismantleFocusTrap();\n preventInteractionBackground(neo);\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n if (active.value) {\n active.value = false;\n setTimeout(() => {\n preventInteractionBackground(false);\n }, 100);\n }\n });\n\n useRender(() => {\n return (\n <>\n <YLayer\n v-model={active.value}\n classes={classes.value}\n content-styles={styles.value}\n modal\n ref={layer$}\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\n >\n {{\n default: (...args: any[]) => slots.default?.(...args),\n base: slots.base,\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n active,\n layer: layer$,\n classes,\n };\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","focusTrap","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","requestAnimationFrame","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","setTimeout","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\n type PropType,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { omit } from '@/util/common';\nimport {\n bindClasses,\n chooseProps,\n defineComponent,\n propsFactory,\n} from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YCard } from '../card';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useActiveStack } from '../layer/active-stack';\n\nimport './YDialog.scss';\n\nexport const pressYDialogPropsOptions = propsFactory(\n {\n persistent: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n dialogClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n maximized: Boolean as PropType<boolean>,\n focusTrap: {\n type: [Boolean, String, Object, Array] as PropType<\n false | string | string[] | HTMLElement\n >,\n default: true,\n },\n offset: {\n type: String as PropType<string>,\n },\n ...omit(\n pressYLayerProps({\n scrim: true,\n }),\n ['offset', 'classes'],\n ),\n },\n 'YDialog',\n);\n\nexport const YDialog = defineComponent({\n name: 'YDialog',\n components: {\n YLayer,\n YCard,\n },\n props: pressYDialogPropsOptions(),\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const vm = getCurrentInstance();\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\n const active = useModelDuplex(props);\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.dialogClasses);\n return {\n ...boundClasses,\n 'y-dialog': true,\n 'y-dialog--maximized': props.maximized,\n };\n });\n\n const styles = computed(() => {\n return {\n ...(props.contentStyles ?? {}),\n paddingTop: toStyleSizeValue(props.offset),\n };\n });\n\n const layer$ = ref<typeof YLayer>();\n const { children } = useActiveStack(layer$, active, shallowRef(true));\n\n function onFocusin(e: FocusEvent) {\n if (props.focusTrap === false) {\n return;\n }\n\n const prevTarget = e.relatedTarget as HTMLElement | null;\n const target = e.target as HTMLElement | null;\n\n const excludeTarget = props.focusTrap;\n\n if (\n typeof excludeTarget === 'string' &&\n document.querySelector(excludeTarget) == target\n ) {\n return;\n }\n\n if (typeof excludeTarget === 'object') {\n if (Array.isArray(excludeTarget)) {\n const excluded = excludeTarget.some((exclude) => {\n if (typeof exclude === 'string') {\n return document.querySelector(exclude) == target;\n }\n if (typeof exclude === 'object') {\n return exclude == target;\n }\n });\n if (excluded) {\n return;\n }\n } else if (excludeTarget == target) {\n return;\n }\n }\n\n function testChildrenContains(layers: YLayer[]) {\n return layers.some((layer) => {\n return !layer.content$?.contains(target);\n });\n }\n\n if (\n prevTarget !== target &&\n layer$.value?.content$ &&\n ![document, layer$.value?.content$].includes(target) &&\n !layer$.value?.content$.contains(target) &&\n !testChildrenContains(children.value)\n ) {\n const focusableSelector =\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n const focusables = [\n ...layer$.value.content$.querySelectorAll(focusableSelector),\n ].filter(\n (el) =>\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\n ) as HTMLElement[];\n if (!focusables.length) return;\n const firstChild = focusables[0];\n const lastChild = focusables[focusables.length - 1];\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\n return;\n }\n if (firstChild === lastChild) {\n lastChild.focus();\n } else {\n firstChild.focus();\n }\n }\n }\n\n function installFocusTrap() {\n document.addEventListener('focusin', onFocusin);\n }\n\n function dismantleFocusTrap() {\n document.removeEventListener('focusin', onFocusin);\n }\n\n const tempScrollTop = ref(0);\n const tempScrollLeft = ref(0);\n\n function preventInteractionBackground(toggle: boolean) {\n const root$ = $yuyeon.root as HTMLElement;\n const activeLayers = layer$.value?.getActiveLayers();\n if (toggle) {\n const filtered = activeLayers?.filter((layer: any) => {\n return layer.ctx.modal;\n });\n if (\n (filtered && !filtered.length) ||\n !root$.classList.contains('y-dialog--virtual-scroll')\n ) {\n const scrollTop = document.documentElement.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft;\n tempScrollTop.value = scrollTop;\n tempScrollLeft.value = scrollLeft;\n if (props.maximized) {\n document.documentElement.classList.add('y-dialog--prevent-scroll');\n }\n root$.classList.add('y-dialog--virtual-scroll');\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\n }\n } else {\n const filtered = activeLayers?.filter((layer: any) => {\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\n });\n if (!filtered?.length && root$) {\n root$.classList.remove('y-dialog--virtual-scroll');\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n root$.style.top = '';\n root$.style.left = '';\n requestAnimationFrame(() => {\n document.documentElement.scrollTop = tempScrollTop.value;\n document.documentElement.scrollLeft = tempScrollLeft.value;\n });\n }\n }\n }\n\n function onUpdate(v: boolean) {\n active.value = v;\n }\n\n function onClick(e: MouseEvent) {\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n watch(\n () => layer$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n neo.addEventListener('click', onClick);\n } else if (old) {\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n watch(\n () => active.value,\n (neo) => {\n neo ? installFocusTrap() : dismantleFocusTrap();\n preventInteractionBackground(neo);\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n if (active.value) {\n active.value = false;\n setTimeout(() => {\n preventInteractionBackground(false);\n }, 100);\n }\n });\n\n useRender(() => {\n return (\n <>\n <YLayer\n v-model={active.value}\n classes={classes.value}\n content-styles={styles.value}\n modal\n ref={layer$}\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\n >\n {{\n default: (...args: any[]) => slots.default?.(...args),\n base: slots.base,\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n active,\n layer: layer$,\n classes,\n children,\n };\n },\n});\n"],"mappings":"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"}
@@ -29,7 +29,7 @@ export const YFieldInput = defineComponent({
29
29
  props: {
30
30
  ...pressYFieldInputPropsOptions()
31
31
  },
32
- emits: ['update:modelValue', 'update:focused', 'input', 'change', 'click', 'mousedown', 'mouseup', 'keydown', 'keyup', 'focus', 'blur', 'mousedown:display', 'keydown:display'],
32
+ emits: ['update:modelValue', 'update:focused', 'input', 'change', 'click', 'mousedown', 'mouseup', 'keydown', 'keyup', 'focus', 'blur', 'mousedown:display', 'keydown:display', 'click:clear'],
33
33
  slots: Object,
34
34
  setup(props, _ref) {
35
35
  let {
@@ -82,6 +82,7 @@ export const YFieldInput = defineComponent({
82
82
  emit('keyup', event);
83
83
  }
84
84
  function onClickClear(event) {
85
+ emit('click:clear', event);
85
86
  clear();
86
87
  }
87
88
  function onKeydownClear(event) {
@@ -203,6 +204,7 @@ export const YFieldInput = defineComponent({
203
204
  "class": ['y-input__trailing', 'y-input__trailing--clear']
204
205
  }, [_createVNode("button", {
205
206
  "class": [`${NAME}__clear`],
207
+ "disabled": props.disabled,
206
208
  "onClick": onClickClear,
207
209
  "onKeydown": onKeydownClear,
208
210
  "tabindex": 2
@@ -1 +1 @@
1
- {"version":3,"file":"YFieldInput.mjs","names":["computed","getCurrentInstance","nextTick","ref","toRef","watch","useRender","useFocus","chooseProps","defineComponent","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","size","trailing","_Fragment","label","prepend","append","slotProps"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import { type PropType, type SlotsType, computed, getCurrentInstance, nextTick, ref, toRef, watch } from 'vue';\n\n\n\nimport { useRender } from '@/composables/component';\nimport { useFocus } from '@/composables/focus';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\n\n\n\nimport { YIconClear } from '../icons/YIconClear';\nimport { YInput, YInputDefaultSlotProps, pressYInputPropsOptions } from '../input';\n\n\n\nimport './YFieldInput.scss';\n\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 'keydown: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 emit('change', 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 onKeydown:display={($event) => emit('keydown: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 data-base-parent\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 size={(attrs.size ?? 1) as number}\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']\n ? () => slots['leading-out']?.()\n : undefined,\n 'trailing-out': slots['trailing-out']\n ? () => slots['trailing-out']?.()\n : undefined,\n 'helper-text': slots['helper-text']\n ? (slotProps: any) => slots['helper-text']?.(slotProps)\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","getCurrentInstance","nextTick","ref","toRef","watch","useRender","useFocus","chooseProps","defineComponent","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","size","trailing","_Fragment","label","prepend","append","slotProps"],"sources":["../../../src/components/field-input/YFieldInput.tsx"],"sourcesContent":["import { type PropType, type SlotsType, computed, getCurrentInstance, nextTick, ref, toRef, watch } from 'vue';\n\n\n\nimport { useRender } from '@/composables/component';\nimport { useFocus } from '@/composables/focus';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\n\n\n\nimport { YIconClear } from '../icons/YIconClear';\nimport { YInput, YInputDefaultSlotProps, pressYInputPropsOptions } from '../input';\n\n\n\nimport './YFieldInput.scss';\n\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 'keydown:display',\n 'click:clear'\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 emit('click:clear', event);\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 emit('change', 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 onKeydown:display={($event) => emit('keydown: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 data-base-parent\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 size={(attrs.size ?? 1) as number}\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 disabled={props.disabled}\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']\n ? () => slots['leading-out']?.()\n : undefined,\n 'trailing-out': slots['trailing-out']\n ? () => slots['trailing-out']?.()\n : undefined,\n 'helper-text': slots['helper-text']\n ? (slotProps: any) => slots['helper-text']?.(slotProps)\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 +1 @@
1
- {"version":3,"file":"component.mjs","names":["useDefaultsModule","useSuperDefaults","redefineComponent","options","_setup","setup","props","ctx","defaults","value","_props","provideSubDefaults","name","setupBindings","defineFunctionalComponent","context","defineComponent"],"sources":["../../../src/util/component/component.ts"],"sourcesContent":["import {\n ComponentObjectPropsOptions,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n defineComponent,\n} from 'vue';\nimport type {\n Component,\n ComponentInjectOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentPropsOptions,\n ComponentProvideOptions,\n ComputedOptions,\n DefineComponent,\n Directive,\n EmitsOptions,\n MethodOptions,\n SlotsType,\n} from 'vue';\n\nimport {\n useDefaultsModule,\n useSuperDefaults,\n} from '../../composables/defaults';\nimport { EmitsToProps } from './types';\n\ntype ToResolvedProps<Props, Emits extends EmitsOptions> = Readonly<Props> &\n Readonly<EmitsToProps<Emits>>;\n\n// overload 1: no props from options\nfunction redefineComponent<\n // props\n PropsOptions = {},\n //\n RawBindings = {},\n // emits\n E extends EmitsOptions = {},\n EE extends string = string,\n // other options\n Data = {},\n SetupBindings = {},\n Computed extends ComputedOptions = {},\n Methods extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n InjectOptions extends ComponentInjectOptions = {},\n InjectKeys extends string = string,\n Slots extends SlotsType = {},\n LocalComponents extends Record<string, Component> = {},\n Directives extends Record<string, Directive> = {},\n Exposed extends string = string,\n Provide extends ComponentProvideOptions = ComponentProvideOptions,\n>(\n options: ComponentOptionsWithoutProps<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE,\n InjectOptions,\n InjectKeys,\n Slots\n >,\n): DefineComponent<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE\n>;\n\n// overload 2: defineComponent with options object, infer props from options\nfunction redefineComponent<\n // props\n PropsOptions extends Readonly<ComponentPropsOptions>,\n //\n RawBindings,\n // emits\n E extends EmitsOptions = {},\n EE extends string = string,\n // other options\n Data = {},\n SetupBindings = {},\n Computed extends ComputedOptions = {},\n Methods extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n InjectOptions extends ComponentInjectOptions = {},\n InjectKeys extends string = string,\n Slots extends SlotsType = {},\n LocalComponents extends Record<string, Component> = {},\n Directives extends Record<string, Directive> = {},\n Exposed extends string = string,\n Provide extends ComponentProvideOptions = ComponentProvideOptions,\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE,\n InjectOptions,\n InjectKeys,\n Slots\n >,\n): DefineComponent<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE\n>;\n\nfunction redefineComponent(options: ComponentOptions) {\n options._setup = options._setup ?? options.setup;\n\n if (options._setup) {\n options.setup = function (props, ctx) {\n const defaults = useDefaultsModule();\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n\n const { props: _props, provideSubDefaults } = useSuperDefaults(\n props,\n options.name,\n defaults,\n );\n\n const setupBindings = options._setup(_props, ctx);\n\n provideSubDefaults();\n\n return setupBindings;\n };\n }\n\n return options;\n}\n\nfunction defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n>(\n props: PropsOptions,\n context: T,\n): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n context.props = props as any;\n return context as any;\n}\n\nexport { redefineComponent as defineComponent };\n"],"mappings":"SAyBEA,iBAAiB,EACjBC,gBAAgB,gDAOlB;AAkDA;AAkDA,SAASC,iBAAiBA,CAACC,OAAyB,EAAE;EACpDA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAIF,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACE,KAAK,GAAG,UAAUC,KAAK,EAAEC,GAAG,EAAE;MACpC,MAAMC,QAAQ,GAAGR,iBAAiB,CAAC,CAAC;MACpC;MACA,IAAI,CAACQ,QAAQ,CAACC,KAAK,EAAE,OAAON,OAAO,CAACC,MAAM,CAACE,KAAK,EAAEC,GAAG,CAAC;MAEtD,MAAM;QAAED,KAAK,EAAEI,MAAM;QAAEC;MAAmB,CAAC,GAAGV,gBAAgB,CAC5DK,KAAK,EACLH,OAAO,CAACS,IAAI,EACZJ,QACF,CAAC;MAED,MAAMK,aAAa,GAAGV,OAAO,CAACC,MAAM,CAACM,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,CAAC,CAAC;MAEpB,OAAOE,aAAa;IACtB,CAAC;EACH;EAEA,OAAOV,OAAO;AAChB;AAEA,SAASW,yBAAyBA,CAMhCR,KAAmB,EACnBS,OAAU,EAC4D;EACtEA,OAAO,CAACT,KAAK,GAAGA,KAAY;EAC5B,OAAOS,OAAO;AAChB;AAEA,SAASb,iBAAiB,IAAIc,eAAe"}
1
+ {"version":3,"file":"component.mjs","names":["useDefaultsModule","useSuperDefaults","redefineComponent","options","_setup","setup","props","ctx","defaults","value","_props","provideSubDefaults","name","setupBindings","defineFunctionalComponent","context","defineComponent"],"sources":["../../../src/util/component/component.ts"],"sourcesContent":["import {\n ComponentObjectPropsOptions,\n ComponentOptionsWithoutProps,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n defineComponent,\n} from 'vue';\nimport type {\n Component,\n ComponentInjectOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentPropsOptions,\n ComponentProvideOptions,\n ComputedOptions,\n DefineComponent,\n Directive,\n EmitsOptions,\n MethodOptions,\n SlotsType,\n} from 'vue';\n\nimport {\n useDefaultsModule,\n useSuperDefaults,\n} from '../../composables/defaults';\nimport { EmitsToProps } from './types';\nimport { ComponentOptionsWithObjectProps } from '@vue/runtime-core';\n\ntype ToResolvedProps<Props, Emits extends EmitsOptions> = Readonly<Props> &\n Readonly<EmitsToProps<Emits>>;\n\n// overload 1: no props from options\nfunction redefineComponent<\n // props\n PropsOptions = {},\n //\n RawBindings = {},\n // emits\n E extends EmitsOptions = {},\n EE extends string = string,\n // other options\n Data = {},\n SetupBindings = {},\n Computed extends ComputedOptions = {},\n Methods extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n InjectOptions extends ComponentInjectOptions = {},\n InjectKeys extends string = string,\n Slots extends SlotsType = {},\n LocalComponents extends Record<string, Component> = {},\n Directives extends Record<string, Directive> = {},\n Exposed extends string = string,\n Provide extends ComponentProvideOptions = ComponentProvideOptions,\n>(\n options: ComponentOptionsWithoutProps<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE,\n InjectOptions,\n InjectKeys,\n Slots\n >,\n): DefineComponent<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE\n>;\n\n// overload 2: defineComponent with options object, infer props from options\nfunction redefineComponent<\n // props\n PropsOptions = ComponentObjectPropsOptions,\n RawBindings = {},\n // emits\n E extends EmitsOptions = {},\n EE extends string = string,\n // other options\n Data = {},\n SetupBindings = {},\n Computed extends ComputedOptions = {},\n Methods extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n InjectOptions extends {} = {},\n InjectKeys extends string = string,\n Slots extends SlotsType = {},\n LocalComponents extends Record<string, Component> = {},\n Directives extends Record<string, Directive> = {},\n Exposed extends string = string,\n Provide extends ComponentProvideOptions = ComponentProvideOptions,\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE,\n InjectOptions,\n InjectKeys,\n Slots\n >,\n): DefineComponent<\n PropsOptions,\n RawBindings,\n Data,\n Computed,\n Methods,\n Mixin,\n Extends,\n E,\n EE\n>;\n\nfunction redefineComponent(options: ComponentOptions) {\n options._setup = options._setup ?? options.setup;\n\n if (options._setup) {\n options.setup = function (props, ctx) {\n const defaults = useDefaultsModule();\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n\n const { props: _props, provideSubDefaults } = useSuperDefaults(\n props,\n options.name,\n defaults,\n );\n\n const setupBindings = options._setup(_props, ctx);\n\n provideSubDefaults();\n\n return setupBindings;\n };\n }\n\n return options;\n}\n\nfunction defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n>(\n props: PropsOptions,\n context: T,\n): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n context.props = props as any;\n return context as any;\n}\n\nexport { redefineComponent as defineComponent };\n"],"mappings":"SAwBEA,iBAAiB,EACjBC,gBAAgB,gDAQlB;AAkDA;AAkDA,SAASC,iBAAiBA,CAACC,OAAyB,EAAE;EACpDA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAIF,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACE,KAAK,GAAG,UAAUC,KAAK,EAAEC,GAAG,EAAE;MACpC,MAAMC,QAAQ,GAAGR,iBAAiB,CAAC,CAAC;MACpC;MACA,IAAI,CAACQ,QAAQ,CAACC,KAAK,EAAE,OAAON,OAAO,CAACC,MAAM,CAACE,KAAK,EAAEC,GAAG,CAAC;MAEtD,MAAM;QAAED,KAAK,EAAEI,MAAM;QAAEC;MAAmB,CAAC,GAAGV,gBAAgB,CAC5DK,KAAK,EACLH,OAAO,CAACS,IAAI,EACZJ,QACF,CAAC;MAED,MAAMK,aAAa,GAAGV,OAAO,CAACC,MAAM,CAACM,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,CAAC,CAAC;MAEpB,OAAOE,aAAa;IACtB,CAAC;EACH;EAEA,OAAOV,OAAO;AAChB;AAEA,SAASW,yBAAyBA,CAMhCR,KAAmB,EACnBS,OAAU,EAC4D;EACtEA,OAAO,CAACT,KAAK,GAAGA,KAAY;EAC5B,OAAOS,OAAO;AAChB;AAEA,SAASb,iBAAiB,IAAIc,eAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.2.3-rc.12",
3
+ "version": "0.2.3-rc.14",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -10,7 +10,7 @@ declare const _default: import('vue').DefineComponent<{
10
10
  };
11
11
  disabled: PropType<boolean>;
12
12
  readonly: PropType<boolean>;
13
- }, unknown, {
13
+ }, {}, {
14
14
  counterId: string;
15
15
  checked: boolean;
16
16
  focused: boolean;
@@ -22,7 +22,7 @@ declare const _default: import('vue').DefineComponent<{
22
22
  checked: BooleanConstructor;
23
23
  indeterminate: BooleanConstructor;
24
24
  disabled: BooleanConstructor;
25
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string> | null;
25
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string> | null;
26
26
  }, {
27
27
  onFocus(e: FocusEvent): void;
28
28
  onBlur(e: FocusEvent): void;
@@ -7062,4 +7062,5 @@ export declare const YDialog: import('vue').DefineComponent<{
7062
7062
  'y-dialog': boolean;
7063
7063
  'y-dialog--maximized': boolean | undefined;
7064
7064
  }>;
7065
+ children: import('vue').ShallowRef<any[], any[]>;
7065
7066
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "update:modelValue"[], "update:modelValue">;
@@ -306,5 +306,5 @@ export declare const YFieldInput: import('vue').DefineComponent<{
306
306
  readonly rxValue: any;
307
307
  };
308
308
  inValue: import('vue').Ref<any, any>;
309
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("input" | "blur" | "change" | "click" | "focus" | "keydown" | "keyup" | "mousedown" | "mouseup" | "mousedown:display" | "keydown:display" | "update:modelValue" | "update:focused")[], "input" | "blur" | "change" | "click" | "focus" | "keydown" | "keyup" | "mousedown" | "mouseup" | "mousedown:display" | "keydown:display" | "update:modelValue" | "update:focused">;
309
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("input" | "blur" | "change" | "click" | "focus" | "keydown" | "keyup" | "mousedown" | "mouseup" | "mousedown:display" | "keydown:display" | "update:modelValue" | "update:focused" | "click:clear")[], "input" | "blur" | "change" | "click" | "focus" | "keydown" | "keyup" | "mousedown" | "mouseup" | "mousedown:display" | "keydown:display" | "update:modelValue" | "update:focused" | "click:clear">;
310
310
  export type YFieldInput = InstanceType<typeof YFieldInput>;
@@ -3,4 +3,4 @@ export declare const YIconCheckbox: import('vue').DefineComponent<{
3
3
  checked: BooleanConstructor;
4
4
  indeterminate: BooleanConstructor;
5
5
  disabled: BooleanConstructor;
6
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
6
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
@@ -11,4 +11,4 @@ export declare const YIconPageControl: import('vue').DefineComponent<{
11
11
  type: PropType<"first" | "last" | "next" | "prev">;
12
12
  default: string;
13
13
  };
14
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
14
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
@@ -7,4 +7,4 @@ export declare const YIconSort: import('vue').DefineComponent<{
7
7
  disabled: {
8
8
  type: BooleanConstructor;
9
9
  };
10
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
10
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
@@ -11,20 +11,20 @@ export declare const builtSet: {
11
11
  checked: BooleanConstructor;
12
12
  indeterminate: BooleanConstructor;
13
13
  disabled: BooleanConstructor;
14
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
14
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
15
15
  pageControl: import('vue').DefineComponent<{
16
16
  type: {
17
17
  type: import('vue').PropType<"first" | "last" | "next" | "prev">;
18
18
  default: string;
19
19
  };
20
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
20
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
21
21
  next: {
22
22
  component: import('vue').DefineComponent<{
23
23
  type: {
24
24
  type: import('vue').PropType<"first" | "last" | "next" | "prev">;
25
25
  default: string;
26
26
  };
27
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
27
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
28
28
  props: {
29
29
  type: string;
30
30
  };
@@ -35,7 +35,7 @@ export declare const builtSet: {
35
35
  type: import('vue').PropType<"first" | "last" | "next" | "prev">;
36
36
  default: string;
37
37
  };
38
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
38
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
39
39
  props: {
40
40
  type: string;
41
41
  };
@@ -47,5 +47,5 @@ export declare const builtSet: {
47
47
  disabled: {
48
48
  type: BooleanConstructor;
49
49
  };
50
- }, unknown, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
50
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
51
51
  };
@@ -13,7 +13,7 @@ export declare const YTextHighlighter: import('vue').DefineComponent<{
13
13
  sensitive: {
14
14
  type: BooleanConstructor;
15
15
  };
16
- }, unknown, {}, {
16
+ }, {}, {}, {
17
17
  splitText(): {
18
18
  text: string;
19
19
  isKeyword: boolean;
@@ -1,5 +1,6 @@
1
- import { ComponentOptionsWithObjectProps, ComponentOptionsWithoutProps, Component, ComponentInjectOptions, ComponentOptionsMixin, ComponentPropsOptions, ComponentProvideOptions, ComputedOptions, DefineComponent, Directive, EmitsOptions, MethodOptions, SlotsType } from 'vue';
1
+ import { ComponentObjectPropsOptions, ComponentOptionsWithoutProps, ExtractDefaultPropTypes, Component, ComponentInjectOptions, ComponentOptionsMixin, ComponentProvideOptions, ComputedOptions, DefineComponent, Directive, EmitsOptions, MethodOptions, SlotsType } from 'vue';
2
+ import { ComponentOptionsWithObjectProps } from '@vue/runtime-core';
2
3
 
3
4
  declare function redefineComponent<PropsOptions = {}, RawBindings = {}, E extends EmitsOptions = {}, EE extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, InjectOptions extends ComponentInjectOptions = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions>(options: ComponentOptionsWithoutProps<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE, InjectOptions, InjectKeys, Slots>): DefineComponent<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE>;
4
- declare function redefineComponent<PropsOptions extends Readonly<ComponentPropsOptions>, RawBindings, E extends EmitsOptions = {}, EE extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, InjectOptions extends ComponentInjectOptions = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions>(options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE, InjectOptions, InjectKeys, Slots>): DefineComponent<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE>;
5
+ declare function redefineComponent<PropsOptions = ComponentObjectPropsOptions, RawBindings = {}, E extends EmitsOptions = {}, EE extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, Defaults = ExtractDefaultPropTypes<PropsOptions>, InjectOptions extends {} = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions>(options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE, InjectOptions, InjectKeys, Slots>): DefineComponent<PropsOptions, RawBindings, Data, Computed, Methods, Mixin, Extends, E, EE>;
5
6
  export { redefineComponent as defineComponent };