yuyeon 0.3.2-rc.2 → 0.3.2-rc.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"YSelect.js","names":["computed","mergeProps","nextTick","onMounted","ref","shallowRef","vShow","watch","withDirectives","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","omit","chooseProps","defineComponent","getHtmlElement","propsFactory","getScrollParent","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","pressSelectPropsOptions","opened","Boolean","closeOnBlur","multiple","itemComparator","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","change","slots","setup","_ref","attrs","expose","emit","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","setOut","v","emitValue","model","selections","ret","found","find","undefined","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onKeydownDisplay","console","log","key","onBlur","requestAnimationFrame","contentEl","layer$","content$","contains","document","activeElement","onClickItem","select","setTimeout","onAfterLeave","closeCondition","target","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","length","listEl","activeEl","querySelector","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","rxValue","selectionProps","raw","placeholder","internalItems","_Fragment","offset","align","origin","$event","menu","itemProps","leading","trailing","hide","_len","arguments","args","_key","label","_len2","_key2","_len3","_key3","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import {\n ExtractPropTypes,\n type PropType,\n type SlotsType,\n computed,\n mergeProps,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { pressCoordinateProps } from '@/composables/coordinate';\nimport { useI18n } from '@/composables/i18n';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '@/composables/list-items';\nimport { wrapInArray } from '@/util/array';\nimport { deepEqual, omit } from '@/util/common';\nimport {\n chooseProps,\n defineComponent,\n getHtmlElement,\n propsFactory,\n} from '@/util/component';\nimport { getScrollParent } from '@/util/scroll';\n\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type ItemComparator = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n closeOnBlur: Boolean as PropType<boolean>,\n multiple: Boolean,\n itemComparator: {\n type: Function as PropType<ItemComparator>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent<\n ReturnType<typeof pressYSelectPropsOptions>\n>({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n change: (value: any) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n label: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n const cardRef = ref<any>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const setOut = (v: any) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n };\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n setOut,\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.itemComparator(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps, preventCloseBubble: true };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) return;\n opened.value = !opened.value;\n }\n\n function onKeydownDisplay(event: KeyboardEvent) {\n console.log(event);\n if (props.disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n opened.value = !opened.value;\n }\n }\n\n function onBlur(event: FocusEvent) {\n requestAnimationFrame(() => {\n const contentEl = (menuRef.value as any)?.layer$?.content$;\n if (contentEl?.contains(document.activeElement)) {\n return;\n }\n if (opened.value && props.closeOnBlur) {\n opened.value = false;\n }\n });\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n if (item.disabled) return;\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n // fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n let value;\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n value = neo;\n }\n } else {\n value = [item];\n }\n model.value = value;\n emit('change', setOut(value));\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n watch(opened, (neo) => {\n if (neo) {\n nextTick(() => {\n scrollToActiveItem();\n });\n }\n });\n\n function scrollToActiveItem() {\n if (selections.value.length === 0) {\n return;\n }\n const listEl = getHtmlElement(listRef.value);\n if (listEl) {\n const activeEl = listEl?.querySelector('.y-list-item--active') as\n | HTMLElement\n | undefined;\n const contentEl = (menuRef.value as any)?.layer$\n ?.content$ as HTMLElement;\n if (activeEl && contentEl) {\n const scrollEl = getScrollParent(activeEl);\n if (\n scrollEl &&\n (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))\n ) {\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\n }\n }\n }\n }\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YFieldInput\n ref={fieldInputRef}\n {...fieldInputProps}\n modelValue={model.value.map((v: any) => v.props.value).join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onKeydown:display={onKeydownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <>\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n <YMenu\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n base=\"parent\"\n {...extraMenuProps.value}\n v-model={opened.value}\n >\n {{\n default: slots.menu\n ? () => slots.menu?.()\n : () => (\n <YCard ref={cardRef}>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return withDirectives(\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active':\n isSelected(item),\n },\n ]}\n disabled={item.disabled}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() =>\n slots['item-leading']?.(\n itemProps,\n )),\n trailing:\n slots['item-trailing'] &&\n (() =>\n slots['item-trailing']?.(\n itemProps,\n )),\n }}\n </YListItem>,\n [[vShow, !item.hide]],\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n </>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n label: slots.label\n ? (...args: any[]) => slots.label?.(...args)\n : undefined,\n 'helper-text': slots['helper-text']\n ? (...args: any[]) => slots['helper-text']?.(...args)\n : undefined,\n }}\n </YFieldInput>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n opened,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n opened,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YSelect.js","names":["computed","mergeProps","nextTick","onMounted","ref","shallowRef","vShow","watch","withDirectives","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","omit","chooseProps","defineComponent","getHtmlElement","propsFactory","getScrollParent","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","pressSelectPropsOptions","opened","Boolean","closeOnBlur","multiple","itemComparator","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","change","slots","setup","_ref","attrs","expose","emit","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","setOut","v","emitValue","model","selections","ret","found","find","undefined","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onKeydownDisplay","console","log","key","onBlur","requestAnimationFrame","contentEl","layer$","content$","contains","document","activeElement","onClickItem","select","setTimeout","onAfterLeave","closeCondition","target","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","length","listEl","activeEl","querySelector","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","rxValue","selectionProps","raw","placeholder","internalItems","_Fragment","offset","align","origin","$event","menu","itemProps","leading","trailing","hide","_len","arguments","args","_key","label","_len2","_key2","_len3","_key3","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import {\n ExtractPropTypes,\n type PropType,\n type SlotsType,\n computed,\n mergeProps,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { pressCoordinateProps } from '@/composables/coordinate';\nimport { useI18n } from '@/composables/i18n';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '@/composables/list-items';\nimport { wrapInArray } from '@/util/array';\nimport { deepEqual, omit } from '@/util/common';\nimport {\n chooseProps,\n defineComponent,\n getHtmlElement,\n propsFactory,\n} from '@/util/component';\nimport { getScrollParent } from '@/util/scroll';\n\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type ItemComparator = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n closeOnBlur: Boolean as PropType<boolean>,\n multiple: Boolean,\n itemComparator: {\n type: Function as PropType<ItemComparator>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent<\n ReturnType<typeof pressYSelectPropsOptions>\n>({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n change: (value: any) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n label: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n const cardRef = ref<any>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const setOut = (v: any) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n };\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n setOut,\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.itemComparator(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return {\n ...props.menuProps,\n preventCloseBubble: true,\n };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) return;\n opened.value = !opened.value;\n }\n\n function onKeydownDisplay(event: KeyboardEvent) {\n console.log(event);\n if (props.disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n opened.value = !opened.value;\n }\n }\n\n function onBlur(event: FocusEvent) {\n requestAnimationFrame(() => {\n const contentEl = (menuRef.value as any)?.layer$?.content$;\n if (contentEl?.contains(document.activeElement)) {\n return;\n }\n if (opened.value && props.closeOnBlur) {\n opened.value = false;\n }\n });\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n if (item.disabled) return;\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n // fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n let value;\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n value = neo;\n }\n } else {\n value = [item];\n }\n model.value = value;\n emit('change', setOut(value));\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n watch(opened, (neo) => {\n if (neo) {\n nextTick(() => {\n scrollToActiveItem();\n });\n }\n });\n\n function scrollToActiveItem() {\n if (selections.value.length === 0) {\n return;\n }\n const listEl = getHtmlElement(listRef.value);\n if (listEl) {\n const activeEl = listEl?.querySelector('.y-list-item--active') as\n | HTMLElement\n | undefined;\n const contentEl = (menuRef.value as any)?.layer$\n ?.content$ as HTMLElement;\n if (activeEl && contentEl) {\n const scrollEl = getScrollParent(activeEl);\n if (\n scrollEl &&\n (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))\n ) {\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\n }\n }\n }\n }\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YFieldInput\n ref={fieldInputRef}\n {...fieldInputProps}\n modelValue={model.value.map((v: any) => v.props.value).join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onKeydown:display={onKeydownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <>\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n <YMenu\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n base=\"parent\"\n {...extraMenuProps.value}\n v-model={opened.value}\n >\n {{\n default: slots.menu\n ? () => slots.menu?.()\n : () => (\n <YCard ref={cardRef}>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return withDirectives(\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active':\n isSelected(item),\n },\n ]}\n disabled={item.disabled}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() =>\n slots['item-leading']?.(\n itemProps,\n )),\n trailing:\n slots['item-trailing'] &&\n (() =>\n slots['item-trailing']?.(\n itemProps,\n )),\n }}\n </YListItem>,\n [[vShow, !item.hide]],\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n </>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n label: slots.label\n ? (...args: any[]) => slots.label?.(...args)\n : undefined,\n 'helper-text': slots['helper-text']\n ? (...args: any[]) => slots['helper-text']?.(...args)\n : undefined,\n }}\n </YFieldInput>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n opened,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n opened,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  import { computed, getCurrentInstance } from 'vue';
3
- import { YButton } from "./../index.js";
3
+ import { YButton } from "../button/YButton.js";
4
4
  import { useRender } from "../../composables/component.js";
5
5
  import { getPropertyFromItem } from "../../util/common.js";
6
6
  import { defineComponent } from "../../util/component/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableRow.js","names":["computed","getCurrentInstance","YButton","useRender","getPropertyFromItem","defineComponent","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onHover","Function","onMousedown","onClick","onDblclick","onContextmenu","onKeydown","YDataTableRow","name","props","item","Object","cellProps","emits","setup","_ref","emit","slots","vm","isSelected","toggleSelect","columns","selected","arrayClasses","classes","ret","push","Array","isArray","forEach","c","event","proxy","$el","_createVNode","value","map","column","colIndex","slotProps","raw","internalItem","key","el","result","call","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","rightOffset","width","maxWidth","default","slotName","selectable","e","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import { type PropType, computed, getCurrentInstance } from 'vue';\r\n\r\nimport { YButton } from '@/components';\r\nimport { useRender } from '@/composables/component';\r\nimport { getPropertyFromItem } from '@/util/common';\r\nimport { defineComponent } from '@/util/component';\r\nimport { propsFactory } from '@/util/component';\r\n\r\nimport { YIconCheckbox } from '../icons';\r\nimport { YDataTableCell } from './YDataTableCell';\r\nimport { useHeader } from './composibles/header';\r\nimport { useSelection } from './composibles/selection';\r\nimport { CellProps, DataTableItem, type FixedPropType } from './types';\r\n\r\nexport const pressYDataTableRowProps = propsFactory(\r\n {\r\n index: Number as PropType<number>,\r\n onHover: Function as PropType<(...args: any[]) => void>,\r\n onMousedown: Function as PropType<(...args: any[]) => void>,\r\n onClick: Function as PropType<(...args: any[]) => void>,\r\n onDblclick: Function as PropType<(...args: any[]) => void>,\r\n onContextmenu: Function as PropType<(...args: any[]) => void>,\r\n onKeydown: Function as PropType<(...args: any[]) => void>,\r\n },\r\n 'YDataTableRow',\r\n);\r\n\r\nexport const YDataTableRow = defineComponent({\r\n name: 'YDataTableRow',\r\n props: {\r\n item: Object as PropType<DataTableItem>,\r\n cellProps: [Object, Function] as PropType<CellProps>,\r\n ...pressYDataTableRowProps(),\r\n },\r\n emits: ['hover', 'mousedown', 'click', 'dblclick', 'contextmenu'],\r\n setup(props, { emit, slots }) {\r\n const vm = getCurrentInstance();\r\n const { isSelected, toggleSelect } = useSelection();\r\n const { columns } = useHeader();\r\n\r\n const selected = computed(() => props.item && isSelected(props.item));\r\n\r\n function arrayClasses(classes: string | string[]) {\r\n const ret: string[] = [];\r\n if (typeof classes === 'string') {\r\n ret.push(classes);\r\n }\r\n if (Array.isArray(classes)) {\r\n classes.forEach((c) => {\r\n if (typeof c === 'string') ret.push(c);\r\n });\r\n }\r\n return ret;\r\n }\r\n\r\n function onMousedown(event: MouseEvent) {\r\n props.onMousedown?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onClick(event: MouseEvent) {\r\n props.onClick?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onContextmenu(event: MouseEvent) {\r\n props.onContextmenu?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onDblclick(event: MouseEvent) {\r\n props.onDblclick?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n props.onKeydown?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n useRender(() => {\r\n return (\r\n <tr\r\n class={[\r\n 'y-data-table__row',\r\n { 'y-data-table__row--selected': selected.value },\r\n ]}\r\n onClick={props.onClick && onClick}\r\n onContextmenu={props.onContextmenu && onContextmenu}\r\n onDblclick={props.onDblclick && onDblclick}\r\n onMousedown={props.onMousedown && onMousedown}\r\n onKeydown={props.onKeydown && onKeydown}\r\n >\r\n {props.item &&\r\n columns.value.map((column, colIndex) => {\r\n const item = props.item!;\r\n const slotProps = {\r\n index: props.index!,\r\n item: props.item!.raw,\r\n internalItem: props.item!,\r\n columns: columns.value,\r\n value: getPropertyFromItem(item.columns, column.key),\r\n selected: selected.value,\r\n toggleSelect,\r\n el: vm?.proxy?.$el,\r\n };\r\n\r\n const classes = computed(() => {\r\n const ret: string[] = [];\r\n if (typeof column.classes === 'function') {\r\n const result = column.classes.call(\r\n null,\r\n slotProps.item,\r\n slotProps.index,\r\n column,\r\n );\r\n if (result) {\r\n ret.push(...arrayClasses(result));\r\n }\r\n } else if (column.classes) {\r\n ret.push(...arrayClasses(column.classes));\r\n }\r\n\r\n return ret;\r\n });\r\n\r\n const cellProps =\r\n typeof props.cellProps === 'function'\r\n ? props.cellProps({\r\n index: slotProps.index,\r\n column,\r\n internalItem: slotProps.internalItem,\r\n item: slotProps.item,\r\n value: slotProps.value,\r\n selected: slotProps.selected,\r\n })\r\n : props.cellProps;\r\n\r\n return (\r\n <YDataTableCell\r\n align={column.align}\r\n fixed={\r\n column.fixed\r\n ? (((column.fixed === 'right' ? 'trail' : 'lead') +\r\n (column.lastFixed ? '-last' : '')) as FixedPropType)\r\n : undefined\r\n }\r\n fixedOffset={column.fixedOffset}\r\n rightOffset={column.rightOffset}\r\n width={column.width}\r\n maxWidth={column.maxWidth}\r\n class={[\r\n 'y-data-table-data',\r\n {\r\n 'y-data-table-data--select':\r\n column.key === 'data-table-select',\r\n },\r\n ...classes.value,\r\n ]}\r\n {...cellProps}\r\n >\r\n {{\r\n default: () => {\r\n const slotName = `item.${column.key}`;\r\n\r\n if (slots[slotName]) {\r\n return slots[slotName]?.(slotProps);\r\n }\r\n\r\n if (column.key === 'data-table-select') {\r\n return (\r\n slots['item.data-table-select']?.(slotProps) ?? (\r\n <YButton\r\n variation={'text,small'}\r\n disabled={!item.selectable}\r\n onClick={(e: MouseEvent) => {\r\n e.stopPropagation();\r\n if (item.selectable) toggleSelect(item);\r\n }}\r\n >\r\n <YIconCheckbox\r\n checked={isSelected(item)}\r\n disabled={!item.selectable}\r\n ></YIconCheckbox>\r\n </YButton>\r\n )\r\n );\r\n }\r\n\r\n return slotProps.value;\r\n },\r\n }}\r\n </YDataTableCell>\r\n );\r\n })}\r\n </tr>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTableRow.js","names":["computed","getCurrentInstance","YButton","useRender","getPropertyFromItem","defineComponent","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onHover","Function","onMousedown","onClick","onDblclick","onContextmenu","onKeydown","YDataTableRow","name","props","item","Object","cellProps","emits","setup","_ref","emit","slots","vm","isSelected","toggleSelect","columns","selected","arrayClasses","classes","ret","push","Array","isArray","forEach","c","event","proxy","$el","_createVNode","value","map","column","colIndex","slotProps","raw","internalItem","key","el","result","call","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","rightOffset","width","maxWidth","default","slotName","selectable","e","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import { type PropType, computed, getCurrentInstance } from 'vue';\r\n\r\nimport { YButton } from '@/components/button/YButton';\r\nimport { useRender } from '@/composables/component';\r\nimport { getPropertyFromItem } from '@/util/common';\r\nimport { defineComponent } from '@/util/component';\r\nimport { propsFactory } from '@/util/component';\r\n\r\nimport { YIconCheckbox } from '../icons';\r\nimport { YDataTableCell } from './YDataTableCell';\r\nimport { useHeader } from './composibles/header';\r\nimport { useSelection } from './composibles/selection';\r\nimport { CellProps, DataTableItem, type FixedPropType } from './types';\r\n\r\nexport const pressYDataTableRowProps = propsFactory(\r\n {\r\n index: Number as PropType<number>,\r\n onHover: Function as PropType<(...args: any[]) => void>,\r\n onMousedown: Function as PropType<(...args: any[]) => void>,\r\n onClick: Function as PropType<(...args: any[]) => void>,\r\n onDblclick: Function as PropType<(...args: any[]) => void>,\r\n onContextmenu: Function as PropType<(...args: any[]) => void>,\r\n onKeydown: Function as PropType<(...args: any[]) => void>,\r\n },\r\n 'YDataTableRow',\r\n);\r\n\r\nexport const YDataTableRow = defineComponent({\r\n name: 'YDataTableRow',\r\n props: {\r\n item: Object as PropType<DataTableItem>,\r\n cellProps: [Object, Function] as PropType<CellProps>,\r\n ...pressYDataTableRowProps(),\r\n },\r\n emits: ['hover', 'mousedown', 'click', 'dblclick', 'contextmenu'],\r\n setup(props, { emit, slots }) {\r\n const vm = getCurrentInstance();\r\n const { isSelected, toggleSelect } = useSelection();\r\n const { columns } = useHeader();\r\n\r\n const selected = computed(() => props.item && isSelected(props.item));\r\n\r\n function arrayClasses(classes: string | string[]) {\r\n const ret: string[] = [];\r\n if (typeof classes === 'string') {\r\n ret.push(classes);\r\n }\r\n if (Array.isArray(classes)) {\r\n classes.forEach((c) => {\r\n if (typeof c === 'string') ret.push(c);\r\n });\r\n }\r\n return ret;\r\n }\r\n\r\n function onMousedown(event: MouseEvent) {\r\n props.onMousedown?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onClick(event: MouseEvent) {\r\n props.onClick?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onContextmenu(event: MouseEvent) {\r\n props.onContextmenu?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onDblclick(event: MouseEvent) {\r\n props.onDblclick?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n props.onKeydown?.(event, vm?.proxy?.$el);\r\n }\r\n\r\n useRender(() => {\r\n return (\r\n <tr\r\n class={[\r\n 'y-data-table__row',\r\n { 'y-data-table__row--selected': selected.value },\r\n ]}\r\n onClick={props.onClick && onClick}\r\n onContextmenu={props.onContextmenu && onContextmenu}\r\n onDblclick={props.onDblclick && onDblclick}\r\n onMousedown={props.onMousedown && onMousedown}\r\n onKeydown={props.onKeydown && onKeydown}\r\n >\r\n {props.item &&\r\n columns.value.map((column, colIndex) => {\r\n const item = props.item!;\r\n const slotProps = {\r\n index: props.index!,\r\n item: props.item!.raw,\r\n internalItem: props.item!,\r\n columns: columns.value,\r\n value: getPropertyFromItem(item.columns, column.key),\r\n selected: selected.value,\r\n toggleSelect,\r\n el: vm?.proxy?.$el,\r\n };\r\n\r\n const classes = computed(() => {\r\n const ret: string[] = [];\r\n if (typeof column.classes === 'function') {\r\n const result = column.classes.call(\r\n null,\r\n slotProps.item,\r\n slotProps.index,\r\n column,\r\n );\r\n if (result) {\r\n ret.push(...arrayClasses(result));\r\n }\r\n } else if (column.classes) {\r\n ret.push(...arrayClasses(column.classes));\r\n }\r\n\r\n return ret;\r\n });\r\n\r\n const cellProps =\r\n typeof props.cellProps === 'function'\r\n ? props.cellProps({\r\n index: slotProps.index,\r\n column,\r\n internalItem: slotProps.internalItem,\r\n item: slotProps.item,\r\n value: slotProps.value,\r\n selected: slotProps.selected,\r\n })\r\n : props.cellProps;\r\n\r\n return (\r\n <YDataTableCell\r\n align={column.align}\r\n fixed={\r\n column.fixed\r\n ? (((column.fixed === 'right' ? 'trail' : 'lead') +\r\n (column.lastFixed ? '-last' : '')) as FixedPropType)\r\n : undefined\r\n }\r\n fixedOffset={column.fixedOffset}\r\n rightOffset={column.rightOffset}\r\n width={column.width}\r\n maxWidth={column.maxWidth}\r\n class={[\r\n 'y-data-table-data',\r\n {\r\n 'y-data-table-data--select':\r\n column.key === 'data-table-select',\r\n },\r\n ...classes.value,\r\n ]}\r\n {...cellProps}\r\n >\r\n {{\r\n default: () => {\r\n const slotName = `item.${column.key}`;\r\n\r\n if (slots[slotName]) {\r\n return slots[slotName]?.(slotProps);\r\n }\r\n\r\n if (column.key === 'data-table-select') {\r\n return (\r\n slots['item.data-table-select']?.(slotProps) ?? (\r\n <YButton\r\n variation={'text,small'}\r\n disabled={!item.selectable}\r\n onClick={(e: MouseEvent) => {\r\n e.stopPropagation();\r\n if (item.selectable) toggleSelect(item);\r\n }}\r\n >\r\n <YIconCheckbox\r\n checked={isSelected(item)}\r\n disabled={!item.selectable}\r\n ></YIconCheckbox>\r\n </YButton>\r\n )\r\n );\r\n }\r\n\r\n return slotProps.value;\r\n },\r\n }}\r\n </YDataTableCell>\r\n );\r\n })}\r\n </tr>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\r\n"],"mappings":"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"}
@@ -25,9 +25,14 @@ export const YTreeView = defineComponent({
25
25
  },
26
26
  multipleActive: Boolean,
27
27
  activeStrategy: {
28
+ /**
29
+ * cascade: only descendent leaves
30
+ * relative: cascade after check parent (ancestor)
31
+ */
28
32
  type: String,
29
33
  default: 'independent'
30
34
  },
35
+ onlyEventActiveStrategy: Boolean,
31
36
  selected: {
32
37
  type: [Array],
33
38
  default: () => []
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeView.js","names":["computed","defineComponent","onMounted","ref","shallowRef","watch","provideTreeView","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","chooseProps","debounce","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","filterItemsFn","excludeItem","expandedCache","nodes","expandedSet","selectedSet","activeSet","searchLoading","excludedSet","issueVnodeState","updateExpanded","updateActive","updateSelected","emitExpanded","emitActive","emitSelected","isExcluded","items","search","arguments","length","undefined","excluded","Set","value","diff","forEach","key","item","itemKey","itemText","itemChildren","expand","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","includes","indeterminate","node","childKeys","map","child","add","neo","deep","until","Object","entries","_ref2","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","renderLeaves","slice","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n type PropType,\n type Ref,\n computed,\n defineComponent,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { provideTreeView } from '@/components/tree-view/tree-view';\nimport { useRender } from '@/composables/component';\nimport { CandidateKey } from '@/types';\nimport { differenceBetween } from '@/util/array';\nimport { isColorValue } from '@/util/color';\nimport { deepEqual, getObjectValueByPath, hasOwnProperty } from '@/util/common';\nimport { chooseProps } from '@/util/component';\nimport { debounce } from '@/util/debounce';\n\nimport { YProgressBar } from '../progress-bar';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { NodeState, TreeviewFilterFn } from './types';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\n\nimport './YTreeView.scss';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>,\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n filter: Function as PropType<TreeviewFilterFn>,\n searchDebounceWait: {\n type: Number as PropType<number>,\n default: 700,\n },\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n\n const {\n nodes,\n expanded,\n active,\n selected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n } = provideTreeView(props);\n\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\n const excluded = new Set<CandidateKey>();\n if (!search) {\n searchLoading.value = false;\n excludedSet.value = excluded;\n const diff = differenceBetween(expandedCache.value, [\n ...expandedSet.value,\n ]);\n diff.forEach((key) => {\n updateExpanded(key, false);\n });\n expandedCache.value.forEach((key) => {\n updateExpanded(key, true);\n });\n return;\n }\n for (const item of items) {\n filterTreeItems(\n filter,\n item,\n search ?? '',\n props.itemKey,\n props.itemText,\n props.itemChildren as string,\n excluded,\n );\n }\n excludedSet.value = excluded;\n searchLoading.value = false;\n expand();\n }\n\n watch(\n () => props.search,\n () => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n },\n );\n\n // Util Methods\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children =\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: selected.value?.includes(key) ?? false,\n indeterminate: false,\n active: active.value?.includes(key) ?? false,\n expanded: expanded.value?.includes(key) ?? false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n selectedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n issueVnodeState(key);\n }\n }\n\n watch(\n expandedSet,\n (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n },\n { deep: true },\n );\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || Number(until) >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(\n neo,\n props.itemKey,\n props.itemChildren as string,\n );\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n const oldActive = [...activeSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n if (!deepEqual(oldActive, [...activeSet.value])) {\n emitActive();\n }\n filterItemsFn.value(neo, props.search, props.filter);\n },\n { deep: true, flush: 'sync' },\n );\n\n // Provide & Issue\n\n updateNodes(props.items);\n\n const renderLeaves = computed(() => {\n return props.items.slice().filter((leaf) => {\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `var(--y-theme-${props.activeColor})`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.search) {\n searchLoading.value = true;\n excludeItem(props.items, props.search, props.filter);\n }\n\n if (props.defaultExpand != null && props.defaultExpand !== false) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n\n for (const activeValue of props.active.map(getNodeKey)) {\n updateActive(activeValue, true);\n }\n\n for (const selectedValue of props.selected.map(getNodeKey)) {\n updateSelected(selectedValue, true);\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {searchLoading.value && <YProgressBar indeterminate />}\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.slice().map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n key={getObjectValueByPath(leaf, props.itemKey)}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n excludedSet,\n searchLoading,\n expandedCache,\n renderLeaves,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeView.js","names":["computed","defineComponent","onMounted","ref","shallowRef","watch","provideTreeView","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","chooseProps","debounce","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","onlyEventActiveStrategy","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","filterItemsFn","excludeItem","expandedCache","nodes","expandedSet","selectedSet","activeSet","searchLoading","excludedSet","issueVnodeState","updateExpanded","updateActive","updateSelected","emitExpanded","emitActive","emitSelected","isExcluded","items","search","arguments","length","undefined","excluded","Set","value","diff","forEach","key","item","itemKey","itemText","itemChildren","expand","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","includes","indeterminate","node","childKeys","map","child","add","neo","deep","until","Object","entries","_ref2","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","renderLeaves","slice","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n type PropType,\n type Ref,\n computed,\n defineComponent,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { provideTreeView } from '@/components/tree-view/tree-view';\nimport { useRender } from '@/composables/component';\nimport { CandidateKey } from '@/types';\nimport { differenceBetween } from '@/util/array';\nimport { isColorValue } from '@/util/color';\nimport { deepEqual, getObjectValueByPath, hasOwnProperty } from '@/util/common';\nimport { chooseProps } from '@/util/component';\nimport { debounce } from '@/util/debounce';\n\nimport { YProgressBar } from '../progress-bar';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { NodeState, TreeviewFilterFn } from './types';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\n\nimport './YTreeView.scss';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n /**\n * cascade: only descendent leaves\n * relative: cascade after check parent (ancestor)\n */\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\n default: 'independent',\n },\n onlyEventActiveStrategy: Boolean,\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>,\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n filter: Function as PropType<TreeviewFilterFn>,\n searchDebounceWait: {\n type: Number as PropType<number>,\n default: 700,\n },\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n\n const {\n nodes,\n expanded,\n active,\n selected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n } = provideTreeView(props);\n\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\n const excluded = new Set<CandidateKey>();\n if (!search) {\n searchLoading.value = false;\n excludedSet.value = excluded;\n const diff = differenceBetween(expandedCache.value, [\n ...expandedSet.value,\n ]);\n diff.forEach((key) => {\n updateExpanded(key, false);\n });\n expandedCache.value.forEach((key) => {\n updateExpanded(key, true);\n });\n return;\n }\n for (const item of items) {\n filterTreeItems(\n filter,\n item,\n search ?? '',\n props.itemKey,\n props.itemText,\n props.itemChildren as string,\n excluded,\n );\n }\n excludedSet.value = excluded;\n searchLoading.value = false;\n expand();\n }\n\n watch(\n () => props.search,\n () => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n },\n );\n\n // Util Methods\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children =\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: selected.value?.includes(key) ?? false,\n indeterminate: false,\n active: active.value?.includes(key) ?? false,\n expanded: expanded.value?.includes(key) ?? false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n selectedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n issueVnodeState(key);\n }\n }\n\n watch(\n expandedSet,\n (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n },\n { deep: true },\n );\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || Number(until) >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(\n neo,\n props.itemKey,\n props.itemChildren as string,\n );\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n const oldActive = [...activeSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n if (!deepEqual(oldActive, [...activeSet.value])) {\n emitActive();\n }\n filterItemsFn.value(neo, props.search, props.filter);\n },\n { deep: true, flush: 'sync' },\n );\n\n // Provide & Issue\n\n updateNodes(props.items);\n\n const renderLeaves = computed(() => {\n return props.items.slice().filter((leaf) => {\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `var(--y-theme-${props.activeColor})`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.search) {\n searchLoading.value = true;\n excludeItem(props.items, props.search, props.filter);\n }\n\n if (props.defaultExpand != null && props.defaultExpand !== false) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n\n for (const activeValue of props.active.map(getNodeKey)) {\n updateActive(activeValue, true);\n }\n\n for (const selectedValue of props.selected.map(getNodeKey)) {\n updateSelected(selectedValue, true);\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {searchLoading.value && <YProgressBar indeterminate />}\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.slice().map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n key={getObjectValueByPath(leaf, props.itemKey)}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n excludedSet,\n searchLoading,\n expandedCache,\n renderLeaves,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
@@ -86,7 +86,7 @@ export function provideTreeView(props) {
86
86
  if (props.activeSingleModifier && event?.getModifierState(props.activeSingleModifier)) {
87
87
  return;
88
88
  }
89
- if (props.multipleActive && (props.activeStrategy === 'cascade' || props.activeStrategy === 'relative')) {
89
+ if (props.multipleActive && (!props.onlyEventActiveStrategy || props.onlyEventActiveStrategy && event) && (props.activeStrategy === 'cascade' || props.activeStrategy === 'relative')) {
90
90
  for (const descendant of getDescendants(key)) {
91
91
  if (descendant in nodes.value) {
92
92
  setActive(descendant, to);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-view.js","names":["inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","getDescendants","key","descendants","childKeys","value","push","remains","slice","length","childKey","splice","item","isExcluded","search","has","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","children","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","activeStrategy","descendant","setActive","grand","parentKey","parent","all","isChildrenAll","updateSelected","selectStrategy","stateKey","every","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import { InjectionKey, Ref, inject, provide, ref, shallowRef } from 'vue';\n\n\n\nimport { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = (parent.parentKey);\n }\n }\n } while(grand != null)\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to\n ? activeSet.value.add(key)\n : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tree-view.js","names":["inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","getDescendants","key","descendants","childKeys","value","push","remains","slice","length","childKey","splice","item","isExcluded","search","has","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","children","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","onlyEventActiveStrategy","activeStrategy","descendant","setActive","grand","parentKey","parent","all","isChildrenAll","updateSelected","selectStrategy","stateKey","every","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import { InjectionKey, Ref, inject, provide, ref, shallowRef } from 'vue';\n\n\n\nimport { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (!props.onlyEventActiveStrategy ||\n (props.onlyEventActiveStrategy && event)) &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to ? activeSet.value.add(key) : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * https://github.com/vuetifyjs/vuetify
13
13
  * */
14
14
  import { HEX_COLOR_REGEX, RGBA_REGEX } from "./const.js";
15
- import { rgbFromHex } from "./../index.js";
15
+ import { rgbFromHex } from "./conversion.js";
16
16
  export function isColorValue(value) {
17
17
  return RGBA_REGEX.test(value) || HEX_COLOR_REGEX.test(value);
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HEX_COLOR_REGEX","RGBA_REGEX","rgbFromHex","isColorValue","value","test","colorRgb","color","startsWith","join","exec","valueArray","trim","split","splice","isTextColorIsLight","r","g","b","luminance"],"sources":["../../../src/util/color/index.ts"],"sourcesContent":["/*\r\n* yuyeon\r\n* Apache-2.0 license (Copyright 2023 yeonyew)\r\n*\r\n* Used Libs\r\n* - material-color-utilities\r\n* Apache-2.0 license (Copyright 2021 Google LLC)\r\n* https://github.com/material-foundation/material-color-utilities\r\n*\r\n* - Vuetify\r\n* MIT license (Copyright (c) 2016-2023 John Jeremy Leider)\r\n* https://github.com/vuetifyjs/vuetify\r\n* */\r\n\r\nimport { HEX_COLOR_REGEX, RGBA_REGEX } from \"./const\";\r\nimport { rgbFromHex } from '@/util';\r\n\r\nexport function isColorValue(value: string): boolean {\r\n return RGBA_REGEX.test(value) || HEX_COLOR_REGEX.test(value);\r\n}\r\n\r\nexport function colorRgb(color: string): string {\r\n if (color?.startsWith('#')) {\r\n return rgbFromHex(color)?.join(',') || '';\r\n }\r\n const RGBA_REGEX = /rgb(a?)\\((?<v>.*)\\)/;\r\n if (RGBA_REGEX.test(color)) {\r\n const value = RGBA_REGEX.exec(color)?.[2] || '';\r\n if (value) {\r\n const valueArray = value.trim().split(',');\r\n valueArray.splice(3, 1);\r\n return valueArray.join(',');\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nexport function isTextColorIsLight(r: number, g: number, b: number): boolean {\r\n const luminance = 1 - (0.299 * r + 0.587 * g + 0.114 * b) / 255;\r\n return luminance < 0.5;\r\n}\r\n\r\nexport * from './const';\r\nexport * from \"./conversion\";\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,SAcSA,eAAe,EAAEC,UAAU;AAAA,SAC3BC,UAAU;AAEnB,OAAO,SAASC,YAAYA,CAACC,KAAa,EAAW;EACnD,OAAOH,UAAU,CAACI,IAAI,CAACD,KAAK,CAAC,IAAIJ,eAAe,CAACK,IAAI,CAACD,KAAK,CAAC;AAC9D;AAEA,OAAO,SAASE,QAAQA,CAACC,KAAa,EAAU;EAC9C,IAAIA,KAAK,EAAEC,UAAU,CAAC,GAAG,CAAC,EAAE;IAC1B,OAAON,UAAU,CAACK,KAAK,CAAC,EAAEE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC3C;EACA,MAAMR,UAAU,GAAG,qBAAqB;EACxC,IAAIA,UAAU,CAACI,IAAI,CAACE,KAAK,CAAC,EAAE;IAC1B,MAAMH,KAAK,GAAGH,UAAU,CAACS,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC/C,IAAIH,KAAK,EAAE;MACT,MAAMO,UAAU,GAAGP,KAAK,CAACQ,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;MAC1CF,UAAU,CAACG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MACvB,OAAOH,UAAU,CAACF,IAAI,CAAC,GAAG,CAAC;IAC7B;EACF;EACA,OAAO,EAAE;AACX;AAEA,OAAO,SAASM,kBAAkBA,CAACC,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAW;EAC3E,MAAMC,SAAS,GAAG,CAAC,GAAG,CAAC,KAAK,GAAGH,CAAC,GAAG,KAAK,GAAGC,CAAC,GAAG,KAAK,GAAGC,CAAC,IAAI,GAAG;EAC/D,OAAOC,SAAS,GAAG,GAAG;AACxB;AAAC;AAAA"}
1
+ {"version":3,"file":"index.js","names":["HEX_COLOR_REGEX","RGBA_REGEX","rgbFromHex","isColorValue","value","test","colorRgb","color","startsWith","join","exec","valueArray","trim","split","splice","isTextColorIsLight","r","g","b","luminance"],"sources":["../../../src/util/color/index.ts"],"sourcesContent":["/*\r\n* yuyeon\r\n* Apache-2.0 license (Copyright 2023 yeonyew)\r\n*\r\n* Used Libs\r\n* - material-color-utilities\r\n* Apache-2.0 license (Copyright 2021 Google LLC)\r\n* https://github.com/material-foundation/material-color-utilities\r\n*\r\n* - Vuetify\r\n* MIT license (Copyright (c) 2016-2023 John Jeremy Leider)\r\n* https://github.com/vuetifyjs/vuetify\r\n* */\r\n\r\nimport { HEX_COLOR_REGEX, RGBA_REGEX } from \"./const\";\r\nimport { rgbFromHex } from './conversion';\r\n\r\nexport function isColorValue(value: string): boolean {\r\n return RGBA_REGEX.test(value) || HEX_COLOR_REGEX.test(value);\r\n}\r\n\r\nexport function colorRgb(color: string): string {\r\n if (color?.startsWith('#')) {\r\n return rgbFromHex(color)?.join(',') || '';\r\n }\r\n const RGBA_REGEX = /rgb(a?)\\((?<v>.*)\\)/;\r\n if (RGBA_REGEX.test(color)) {\r\n const value = RGBA_REGEX.exec(color)?.[2] || '';\r\n if (value) {\r\n const valueArray = value.trim().split(',');\r\n valueArray.splice(3, 1);\r\n return valueArray.join(',');\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nexport function isTextColorIsLight(r: number, g: number, b: number): boolean {\r\n const luminance = 1 - (0.299 * r + 0.587 * g + 0.114 * b) / 255;\r\n return luminance < 0.5;\r\n}\r\n\r\nexport * from './const';\r\nexport * from \"./conversion\";\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,SAcSA,eAAe,EAAEC,UAAU;AAAA,SAC3BC,UAAU;AAEnB,OAAO,SAASC,YAAYA,CAACC,KAAa,EAAW;EACnD,OAAOH,UAAU,CAACI,IAAI,CAACD,KAAK,CAAC,IAAIJ,eAAe,CAACK,IAAI,CAACD,KAAK,CAAC;AAC9D;AAEA,OAAO,SAASE,QAAQA,CAACC,KAAa,EAAU;EAC9C,IAAIA,KAAK,EAAEC,UAAU,CAAC,GAAG,CAAC,EAAE;IAC1B,OAAON,UAAU,CAACK,KAAK,CAAC,EAAEE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC3C;EACA,MAAMR,UAAU,GAAG,qBAAqB;EACxC,IAAIA,UAAU,CAACI,IAAI,CAACE,KAAK,CAAC,EAAE;IAC1B,MAAMH,KAAK,GAAGH,UAAU,CAACS,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC/C,IAAIH,KAAK,EAAE;MACT,MAAMO,UAAU,GAAGP,KAAK,CAACQ,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;MAC1CF,UAAU,CAACG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MACvB,OAAOH,UAAU,CAACF,IAAI,CAAC,GAAG,CAAC;IAC7B;EACF;EACA,OAAO,EAAE;AACX;AAEA,OAAO,SAASM,kBAAkBA,CAACC,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAW;EAC3E,MAAMC,SAAS,GAAG,CAAC,GAAG,CAAC,KAAK,GAAGH,CAAC,GAAG,KAAK,GAAGC,CAAC,GAAG,KAAK,GAAGC,CAAC,IAAI,GAAG;EAC/D,OAAOC,SAAS,GAAG,GAAG;AACxB;AAAC;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.3.2-rc.2",
3
+ "version": "0.3.2-rc.4",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -4,11 +4,11 @@ export declare const pressYDatePickerPropsOptions: <Defaults extends {
4
4
  disabled?: unknown;
5
5
  multiple?: unknown;
6
6
  max?: unknown;
7
- year?: unknown;
8
- month?: unknown;
9
7
  color?: unknown;
8
+ month?: unknown;
10
9
  range?: unknown;
11
10
  min?: unknown;
11
+ year?: unknown;
12
12
  allowedDates?: unknown;
13
13
  hideWeekdays?: unknown;
14
14
  showAdjacentMonthDates?: unknown;
@@ -30,18 +30,14 @@ export declare const pressYDatePickerPropsOptions: <Defaults extends {
30
30
  type: import('vue').PropType<unknown extends Defaults["max"] ? unknown : {} | Defaults["max"]>;
31
31
  default: unknown extends Defaults["max"] ? unknown : {} | Defaults["max"];
32
32
  };
33
- year: unknown extends Defaults["year"] ? (NumberConstructor | StringConstructor)[] : {
34
- type: import('vue').PropType<unknown extends Defaults["year"] ? string | number : NonNullable<string | number> | Defaults["year"]>;
35
- default: unknown extends Defaults["year"] ? string | number : NonNullable<string | number> | Defaults["year"];
33
+ color: unknown extends Defaults["color"] ? StringConstructor : {
34
+ type: import('vue').PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
35
+ default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
36
36
  };
37
37
  month: unknown extends Defaults["month"] ? (NumberConstructor | StringConstructor)[] : {
38
38
  type: import('vue').PropType<unknown extends Defaults["month"] ? string | number : NonNullable<string | number> | Defaults["month"]>;
39
39
  default: unknown extends Defaults["month"] ? string | number : NonNullable<string | number> | Defaults["month"];
40
40
  };
41
- color: unknown extends Defaults["color"] ? StringConstructor : {
42
- type: import('vue').PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
43
- default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
44
- };
45
41
  range: unknown extends Defaults["range"] ? BooleanConstructor : {
46
42
  type: import('vue').PropType<unknown extends Defaults["range"] ? boolean : boolean | Defaults["range"]>;
47
43
  default: unknown extends Defaults["range"] ? boolean : boolean | Defaults["range"];
@@ -50,6 +46,10 @@ export declare const pressYDatePickerPropsOptions: <Defaults extends {
50
46
  type: import('vue').PropType<unknown extends Defaults["min"] ? unknown : {} | Defaults["min"]>;
51
47
  default: unknown extends Defaults["min"] ? unknown : {} | Defaults["min"];
52
48
  };
49
+ year: unknown extends Defaults["year"] ? (NumberConstructor | StringConstructor)[] : {
50
+ type: import('vue').PropType<unknown extends Defaults["year"] ? string | number : NonNullable<string | number> | Defaults["year"]>;
51
+ default: unknown extends Defaults["year"] ? string | number : NonNullable<string | number> | Defaults["year"];
52
+ };
53
53
  allowedDates: unknown extends Defaults["allowedDates"] ? (ArrayConstructor | FunctionConstructor)[] : {
54
54
  type: import('vue').PropType<unknown extends Defaults["allowedDates"] ? Function | unknown[] : NonNullable<Function | unknown[]> | Defaults["allowedDates"]>;
55
55
  default: unknown extends Defaults["allowedDates"] ? Function | unknown[] : NonNullable<Function | unknown[]> | Defaults["allowedDates"];
@@ -78,11 +78,11 @@ export declare const YDatePicker: import('vue').DefineComponent<{
78
78
  disabled: BooleanConstructor;
79
79
  multiple: BooleanConstructor;
80
80
  max: import('vue').PropType<unknown>;
81
- year: (NumberConstructor | StringConstructor)[];
82
- month: (NumberConstructor | StringConstructor)[];
83
81
  color: StringConstructor;
82
+ month: (NumberConstructor | StringConstructor)[];
84
83
  range: BooleanConstructor;
85
84
  min: import('vue').PropType<unknown>;
85
+ year: (NumberConstructor | StringConstructor)[];
86
86
  allowedDates: (ArrayConstructor | FunctionConstructor)[];
87
87
  hideWeekdays: BooleanConstructor;
88
88
  showAdjacentMonthDates: {
@@ -48,14 +48,14 @@ export declare const pressYDatePickerControlPropsOptions: <Defaults extends {
48
48
  default: unknown extends Defaults["dropdownIcon"] ? string | Record<string, any> : NonNullable<string | Record<string, any>> | Defaults["dropdownIcon"];
49
49
  };
50
50
  mode: unknown extends Defaults["mode"] ? {
51
- type: PropType<"year" | "month" | "date">;
51
+ type: PropType<"date" | "month" | "year">;
52
52
  default: string;
53
53
  } : Omit<{
54
- type: PropType<"year" | "month" | "date">;
54
+ type: PropType<"date" | "month" | "year">;
55
55
  default: string;
56
56
  }, "type" | "default"> & {
57
- type: PropType<unknown extends Defaults["mode"] ? "year" | "month" | "date" : Defaults["mode"] | NonNullable<"year" | "month" | "date">>;
58
- default: unknown extends Defaults["mode"] ? "year" | "month" | "date" : Defaults["mode"] | NonNullable<"year" | "month" | "date">;
57
+ type: PropType<unknown extends Defaults["mode"] ? "date" | "month" | "year" : Defaults["mode"] | NonNullable<"date" | "month" | "year">>;
58
+ default: unknown extends Defaults["mode"] ? "date" | "month" | "year" : Defaults["mode"] | NonNullable<"date" | "month" | "year">;
59
59
  };
60
60
  yearText: unknown extends Defaults["yearText"] ? StringConstructor : {
61
61
  type: PropType<unknown extends Defaults["yearText"] ? string : string | Defaults["yearText"]>;
@@ -83,7 +83,7 @@ export declare const YDatePickerControl: import('vue').DefineComponent<{
83
83
  type: (ObjectConstructor | StringConstructor)[];
84
84
  };
85
85
  mode: {
86
- type: PropType<"year" | "month" | "date">;
86
+ type: PropType<"date" | "month" | "year">;
87
87
  default: string;
88
88
  };
89
89
  yearText: StringConstructor;