yuyeon 0.3.0-rc.7 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/yuyeon.js +8 -7
- package/dist/yuyeon.umd.cjs +2 -2
- package/lib/components/button/YButton.mjs +4 -4
- package/lib/components/button/YButton.mjs.map +1 -1
- package/lib/components/date-picker/YDateCalendar.mjs +2 -1
- package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
- package/lib/components/date-picker/YDatePicker.mjs +2 -1
- package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -9,8 +9,8 @@ import { isColorValue } from "../../util/color/index.mjs";
|
|
|
9
9
|
import { defineComponent, propsFactory } from "../../util/component/index.mjs";
|
|
10
10
|
import { YSpinnerRing } from "../loading/YSpinnerRing.mjs";
|
|
11
11
|
import { Y_TOGGLE_BUTTON_KEY } from "../toggle-button/index.mjs";
|
|
12
|
-
/**
|
|
13
|
-
* Style
|
|
12
|
+
/**
|
|
13
|
+
* Style
|
|
14
14
|
*/
|
|
15
15
|
import "./YButton.scss";
|
|
16
16
|
const NAME = 'y-button';
|
|
@@ -155,10 +155,10 @@ export const YButton = defineComponent({
|
|
|
155
155
|
}, {
|
|
156
156
|
default: () => [_createVNode("span", {
|
|
157
157
|
"class": ['y-button__content']
|
|
158
|
-
}, [props.loading && _createVNode(YSpinnerRing, mergeProps({
|
|
158
|
+
}, [props.loading && (slots.loading ? slots.loading?.() : _createVNode(YSpinnerRing, mergeProps({
|
|
159
159
|
width: '24',
|
|
160
160
|
height: '24'
|
|
161
|
-
}), null), slots.default?.()]), slots.append?.()]
|
|
161
|
+
}), null)), slots.default?.()]), slots.append?.()]
|
|
162
162
|
}), [[_resolveDirective("plate-wave"), !props.noWave && !props.loading]]);
|
|
163
163
|
});
|
|
164
164
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YButton.mjs","names":["computed","mergeProps","pressChoiceItemPropsOptions","useChoiceItem","useChoiceByLink","useRender","pressVueRouterPropsOptions","useLink","PlateWave","isColorValue","defineComponent","propsFactory","YSpinnerRing","Y_TOGGLE_BUTTON_KEY","NAME","pressYButtonProps","loading","Boolean","active","type","default","undefined","injectSymbol","variation","String","small","icon","outlined","rounded","filled","color","noWave","YButton","name","directives","props","emits","click","event","choice","setup","_ref","attrs","slots","emit","link","select","isActive","isLink","value","isSelected","variations","split","map","trim","classes","includes","disabled","styles","textColor","isDisabled","onClick","e","metaKey","altKey","ctrlKey","shiftKey","button","target","navigate","toggle","Tag","_withDirectives","_createVNode","selectedClass","href","width","height","append","_resolveDirective"],"sources":["../../../src/components/button/YButton.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport { computed, mergeProps } from 'vue';\r\n\r\nimport {\r\n pressChoiceItemPropsOptions,\r\n useChoiceItem,\r\n} from '@/composables/choice';\r\nimport { useChoiceByLink } from '@/composables/choice-link';\r\nimport { useRender } from '@/composables/component';\r\nimport { pressVueRouterPropsOptions, useLink } from '@/composables/vue-router';\r\nimport { PlateWave } from '@/directives/plate-wave';\r\nimport { isColorValue } from '@/util/color';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YSpinnerRing } from '../loading/YSpinnerRing';\r\nimport { Y_TOGGLE_BUTTON_KEY } from '../toggle-button';\r\n\r\n/**\r\n * Style\r\n */\r\nimport './YButton.scss';\r\n\r\nconst NAME = 'y-button';\r\n\r\nexport const pressYButtonProps = propsFactory(\r\n {\r\n loading: Boolean,\r\n active: { type: Boolean, default: undefined },\r\n injectSymbol: { type: null, default: Y_TOGGLE_BUTTON_KEY },\r\n //\r\n variation: {\r\n type: String as PropType<string>,\r\n },\r\n small: Boolean,\r\n icon: Boolean,\r\n outlined: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n rounded: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n filled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n //\r\n color: {\r\n type: String,\r\n },\r\n noWave: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n ...pressVueRouterPropsOptions(),\r\n ...pressChoiceItemPropsOptions(),\r\n },\r\n 'YButton',\r\n);\r\n\r\nexport const YButton = defineComponent({\r\n name: 'YButton',\r\n directives: {\r\n PlateWave,\r\n },\r\n props: pressYButtonProps(),\r\n emits: {\r\n click: (event: MouseEvent) => true,\r\n 'choice:selected': (choice: { value: boolean }) => true,\r\n },\r\n setup(props, { attrs, slots, emit }) {\r\n const choice = useChoiceItem(props, props.injectSymbol, false);\r\n const link = useLink(props, attrs);\r\n useChoiceByLink(link, choice?.select);\r\n\r\n const isActive = computed(() => {\r\n if (props.active !== undefined) {\r\n return props.active;\r\n }\r\n if (link.isLink.value) {\r\n return link.isActive?.value;\r\n }\r\n return choice?.isSelected.value;\r\n });\r\n\r\n const variations = computed(() => {\r\n const { variation } = props;\r\n if (typeof variation === 'string') {\r\n return variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n });\r\n\r\n const classes = computed(() => {\r\n const { outlined, rounded, filled, small, icon } = props;\r\n return {\r\n [`${NAME}--outlined`]:\r\n variations.value.includes('outlined') || outlined,\r\n [`${NAME}--rounded`]: variations.value.includes('rounded') || rounded,\r\n [`${NAME}--filled`]: variations.value.includes('filled') || filled,\r\n [`${NAME}--text`]: variations.value.includes('text'),\r\n [`${NAME}--small`]: variations.value.includes('small') || small,\r\n [`${NAME}--x-small`]: variations.value.includes('x-small') || small,\r\n [`${NAME}--icon`]: variations.value.includes('icon') || icon,\r\n [`${NAME}--color`]: props.color,\r\n [`${NAME}--loading`]: props.loading,\r\n [`${NAME}--disabled`]: props.disabled,\r\n [`${NAME}--active`]: isActive.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n let { color } = props;\r\n let textColor: string | undefined;\r\n if (color && !isColorValue(color)) {\r\n color = `var(--y-theme-${color})`;\r\n textColor = `var(--y-theme-on-${props.color})`;\r\n }\r\n return {\r\n [`--y-button__color`]: color,\r\n [`--y-button__text-color`]: textColor,\r\n };\r\n });\r\n\r\n const isDisabled = computed(() => {\r\n return choice?.disabled.value || props.disabled;\r\n });\r\n\r\n /// Events\r\n function onClick(e: MouseEvent) {\r\n if (\r\n isDisabled.value ||\r\n props.loading ||\r\n (link.isLink.value &&\r\n (e.metaKey ||\r\n e.altKey ||\r\n e.ctrlKey ||\r\n e.shiftKey ||\r\n e.button !== 0 ||\r\n attrs.target === '_blank'))\r\n ) {\r\n return;\r\n }\r\n emit('click', e);\r\n link.navigate?.(e);\r\n choice?.toggle();\r\n }\r\n\r\n useRender(() => {\r\n const Tag = link.isLink.value ? 'a' : 'button';\r\n return (\r\n <Tag\r\n type={Tag === 'a' ? undefined : 'button'}\r\n class={[\r\n `${NAME}`,\r\n choice?.selectedClass.value,\r\n {\r\n ...classes.value,\r\n },\r\n ]}\r\n href={props.disabled ? undefined : link.href.value}\r\n style={styles.value}\r\n onClick={onClick}\r\n disabled={props.disabled ? true : undefined}\r\n v-plate-wave={!props.noWave && !props.loading}\r\n >\r\n <span class={['y-button__content']}>\r\n {props.loading && (\r\n <YSpinnerRing\r\n {...mergeProps({ width: '24', height: '24' })}\r\n ></YSpinnerRing>\r\n )}\r\n {slots.default?.()}\r\n </span>\r\n {slots.append?.()}\r\n </Tag>\r\n );\r\n });\r\n\r\n return {\r\n link,\r\n };\r\n },\r\n});\r\n\r\nexport type YButton = InstanceType<typeof YButton>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YButton.mjs","names":["computed","mergeProps","pressChoiceItemPropsOptions","useChoiceItem","useChoiceByLink","useRender","pressVueRouterPropsOptions","useLink","PlateWave","isColorValue","defineComponent","propsFactory","YSpinnerRing","Y_TOGGLE_BUTTON_KEY","NAME","pressYButtonProps","loading","Boolean","active","type","default","undefined","injectSymbol","variation","String","small","icon","outlined","rounded","filled","color","noWave","YButton","name","directives","props","emits","click","event","choice","setup","_ref","attrs","slots","emit","link","select","isActive","isLink","value","isSelected","variations","split","map","trim","classes","includes","disabled","styles","textColor","isDisabled","onClick","e","metaKey","altKey","ctrlKey","shiftKey","button","target","navigate","toggle","Tag","_withDirectives","_createVNode","selectedClass","href","width","height","append","_resolveDirective"],"sources":["../../../src/components/button/YButton.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport { computed, mergeProps } from 'vue';\n\nimport {\n pressChoiceItemPropsOptions,\n useChoiceItem,\n} from '@/composables/choice';\nimport { useChoiceByLink } from '@/composables/choice-link';\nimport { useRender } from '@/composables/component';\nimport { pressVueRouterPropsOptions, useLink } from '@/composables/vue-router';\nimport { PlateWave } from '@/directives/plate-wave';\nimport { isColorValue } from '@/util/color';\nimport { defineComponent, propsFactory } from '@/util/component';\n\nimport { YSpinnerRing } from '../loading/YSpinnerRing';\nimport { Y_TOGGLE_BUTTON_KEY } from '../toggle-button';\n\n/**\n * Style\n */\nimport './YButton.scss';\n\nconst NAME = 'y-button';\n\nexport const pressYButtonProps = propsFactory(\n {\n loading: Boolean,\n active: { type: Boolean, default: undefined },\n injectSymbol: { type: null, default: Y_TOGGLE_BUTTON_KEY },\n //\n variation: {\n type: String as PropType<string>,\n },\n small: Boolean,\n icon: Boolean,\n outlined: {\n type: Boolean,\n default: false,\n },\n rounded: {\n type: Boolean,\n default: false,\n },\n filled: {\n type: Boolean,\n default: false,\n },\n //\n color: {\n type: String,\n },\n noWave: {\n type: Boolean,\n default: false,\n },\n ...pressVueRouterPropsOptions(),\n ...pressChoiceItemPropsOptions(),\n },\n 'YButton',\n);\n\nexport const YButton = defineComponent({\n name: 'YButton',\n directives: {\n PlateWave,\n },\n props: pressYButtonProps(),\n emits: {\n click: (event: MouseEvent) => true,\n 'choice:selected': (choice: { value: boolean }) => true,\n },\n setup(props, { attrs, slots, emit }) {\n const choice = useChoiceItem(props, props.injectSymbol, false);\n const link = useLink(props, attrs);\n useChoiceByLink(link, choice?.select);\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active;\n }\n if (link.isLink.value) {\n return link.isActive?.value;\n }\n return choice?.isSelected.value;\n });\n\n const variations = computed(() => {\n const { variation } = props;\n if (typeof variation === 'string') {\n return variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const classes = computed(() => {\n const { outlined, rounded, filled, small, icon } = props;\n return {\n [`${NAME}--outlined`]:\n variations.value.includes('outlined') || outlined,\n [`${NAME}--rounded`]: variations.value.includes('rounded') || rounded,\n [`${NAME}--filled`]: variations.value.includes('filled') || filled,\n [`${NAME}--text`]: variations.value.includes('text'),\n [`${NAME}--small`]: variations.value.includes('small') || small,\n [`${NAME}--x-small`]: variations.value.includes('x-small') || small,\n [`${NAME}--icon`]: variations.value.includes('icon') || icon,\n [`${NAME}--color`]: props.color,\n [`${NAME}--loading`]: props.loading,\n [`${NAME}--disabled`]: props.disabled,\n [`${NAME}--active`]: isActive.value,\n };\n });\n\n const styles = computed(() => {\n let { color } = props;\n let textColor: string | undefined;\n if (color && !isColorValue(color)) {\n color = `var(--y-theme-${color})`;\n textColor = `var(--y-theme-on-${props.color})`;\n }\n return {\n [`--y-button__color`]: color,\n [`--y-button__text-color`]: textColor,\n };\n });\n\n const isDisabled = computed(() => {\n return choice?.disabled.value || props.disabled;\n });\n\n /// Events\n function onClick(e: MouseEvent) {\n if (\n isDisabled.value ||\n props.loading ||\n (link.isLink.value &&\n (e.metaKey ||\n e.altKey ||\n e.ctrlKey ||\n e.shiftKey ||\n e.button !== 0 ||\n attrs.target === '_blank'))\n ) {\n return;\n }\n emit('click', e);\n link.navigate?.(e);\n choice?.toggle();\n }\n\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : 'button';\n return (\n <Tag\n type={Tag === 'a' ? undefined : 'button'}\n class={[\n `${NAME}`,\n choice?.selectedClass.value,\n {\n ...classes.value,\n },\n ]}\n href={props.disabled ? undefined : link.href.value}\n style={styles.value}\n onClick={onClick}\n disabled={props.disabled ? true : undefined}\n v-plate-wave={!props.noWave && !props.loading}\n >\n <span class={['y-button__content']}>\n {props.loading &&\n (slots.loading ? (\n slots.loading?.()\n ) : (\n <YSpinnerRing\n {...mergeProps({ width: '24', height: '24' })}\n ></YSpinnerRing>\n ))}\n {slots.default?.()}\n </span>\n {slots.append?.()}\n </Tag>\n );\n });\n\n return {\n link,\n };\n },\n});\n\nexport type YButton = InstanceType<typeof YButton>;\n"],"mappings":"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"}
|
|
@@ -57,7 +57,8 @@ export const YDateCalendar = defineComponent({
|
|
|
57
57
|
}, v => dateUtil.getYear(v));
|
|
58
58
|
const month = useModelDuplex(props, 'month', undefined, v => {
|
|
59
59
|
const value = v != null ? Number(v) : dateUtil.getMonth(displayValue.value);
|
|
60
|
-
|
|
60
|
+
let date = dateUtil.setYear(dateUtil.date(), dateUtil.getYear(year.value));
|
|
61
|
+
date = dateUtil.startOfMonth(date);
|
|
61
62
|
return dateUtil.setMonth(date, value);
|
|
62
63
|
}, v => dateUtil.getMonth(v));
|
|
63
64
|
const weeksInMonth = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDateCalendar.mjs","names":["computed","ref","useModelDuplex","useRender","useDate","useI18n","wrapInArray","defineComponent","propsFactory","YButton","pressYDateCalendarPropsOptions","year","Number","String","month","modelValue","Array","multiple","Boolean","range","allowedDates","Function","max","min","disabled","color","hideWeekdays","showAdjacentMonthDates","type","default","hideHeader","YDateCalendar","name","props","emits","date","setup","_ref","slots","dateUtil","i18n","container$","day$","model","v","displayValue","value","length","isArray","undefined","getYear","startOfYear","setYear","getMonth","setMonth","weeksInMonth","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","day","push","addDays","today","map","weekIndex","index","isoDate","toISO","adjacent","isSameMonth","selected","find","isSameDay","formatted","format","getDay","isDisabled","weekStart","weekEnd","rangeStart","rangeEnd","interval","isInterval","hidden","hovered","localized","weekDays","locale","getWeekdays","displayYearMonth","isAfter","some","d","startDate","endDate","isBefore","onClickDay","item","findIndex","selection","firstDate","endOfDay","startOfDay","change","splice","_createVNode","header","weekDay","i","slotProps","onClick","_Fragment","_mergeProps","join"],"sources":["../../../src/components/date-picker/YDateCalendar.tsx"],"sourcesContent":["import { type PropType, computed, ref } from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { useDate } from '@/composables/date';\r\nimport { useI18n } from '@/composables/i18n';\r\nimport { wrapInArray } from '@/util/array';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\n\r\nimport './YDateCalendar.scss';\r\n\r\nexport const pressYDateCalendarPropsOptions = propsFactory(\r\n {\r\n year: [Number, String],\r\n month: [Number, String],\r\n modelValue: Array as PropType<unknown[]>,\r\n multiple: Boolean,\r\n range: Boolean,\r\n allowedDates: [Array, Function],\r\n max: null as any as PropType<unknown>,\r\n min: null as any as PropType<unknown>,\r\n disabled: Boolean,\r\n color: String,\r\n hideWeekdays: Boolean,\r\n showAdjacentMonthDates: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n hideHeader: Boolean,\r\n },\r\n 'YDateCalendar',\r\n);\r\n\r\nexport const YDateCalendar = defineComponent({\r\n name: 'YDateCalendar',\r\n props: pressYDateCalendarPropsOptions(),\r\n emits: {\r\n 'update:modelValue': (date: any) => true,\r\n 'update:year': (date: any) => true,\r\n 'update:month': (date: any) => true,\r\n },\r\n setup(props, { slots }) {\r\n const dateUtil = useDate();\r\n const i18n = useI18n();\r\n const container$ = ref();\r\n const day$ = ref([]);\r\n\r\n const model = useModelDuplex(props, 'modelValue', [], (v) =>\r\n v == null ? [] : wrapInArray(v),\r\n );\r\n\r\n const displayValue = computed(() => {\r\n if (model.value.length > 0) return dateUtil.date(model.value[0]);\r\n if (props.min) return dateUtil.date(props.min);\r\n if (Array.isArray(props.allowedDates)) {\r\n return dateUtil.date(props.allowedDates[0]);\r\n }\r\n\r\n return dateUtil.date();\r\n });\r\n\r\n const year = useModelDuplex(\r\n props,\r\n 'year',\r\n undefined,\r\n (v) => {\r\n const value =\r\n v != null ? Number(v) : dateUtil.getYear(displayValue.value);\r\n\r\n return dateUtil.startOfYear(dateUtil.setYear(dateUtil.date(), value));\r\n },\r\n (v) => dateUtil.getYear(v),\r\n );\r\n\r\n const month = useModelDuplex(\r\n props,\r\n 'month',\r\n undefined,\r\n (v) => {\r\n const value =\r\n v != null ? Number(v) : dateUtil.getMonth(displayValue.value);\r\n const date = dateUtil.setYear(\r\n dateUtil.date(),\r\n dateUtil.getYear(year.value),\r\n );\r\n\r\n return dateUtil.setMonth(date, value);\r\n },\r\n (v) => dateUtil.getMonth(v),\r\n );\r\n\r\n const weeksInMonth = computed(() => {\r\n const weeks = dateUtil.getWeekArray(month.value);\r\n const days = weeks.flat();\r\n\r\n const daysInMonth = 6 * 7;\r\n if (days.length < daysInMonth) {\r\n const lastDay = days[days.length - 1];\r\n\r\n let week = [];\r\n for (let day = 1; day <= daysInMonth - days.length; day++) {\r\n week.push(dateUtil.addDays(lastDay, day));\r\n\r\n if (day % 7 === 0) {\r\n weeks.push(week);\r\n week = [];\r\n }\r\n }\r\n }\r\n\r\n return weeks;\r\n });\r\n\r\n const daysInMonth = computed(() => {\r\n const weeks = weeksInMonth.value;\r\n const today = dateUtil.date();\r\n\r\n return weeks.map((days, weekIndex) =>\r\n days.map((date, index) => {\r\n const isoDate = dateUtil.toISO(date);\r\n const adjacent = !dateUtil.isSameMonth(date, month.value);\r\n const selected = !!model.value?.find(\r\n (value: unknown) =>\r\n value != null && dateUtil.isSameDay(date, value),\r\n );\r\n return {\r\n date,\r\n isoDate,\r\n formatted: dateUtil.format(date, 'keyboardDate'),\r\n year: dateUtil.getYear(date),\r\n month: dateUtil.getMonth(date),\r\n day: dateUtil.getDay(date),\r\n disabled: isDisabled(date),\r\n weekStart: index % 7 === 0,\r\n weekEnd: index % 7 === 6,\r\n rangeStart:\r\n selected &&\r\n model.value.length > 1 &&\r\n props.range &&\r\n dateUtil.isSameDay(rangeStart.value, date),\r\n rangeEnd:\r\n selected &&\r\n model.value.length === 2 &&\r\n props.range &&\r\n dateUtil.isSameDay(rangeEnd.value, date),\r\n weekIndex,\r\n selected,\r\n interval: isInterval(date),\r\n today: dateUtil.isSameDay(date, today),\r\n adjacent,\r\n hidden: adjacent && !props.showAdjacentMonthDates,\r\n hovered: false,\r\n localized: dateUtil.format(date, 'dayOfMonth'),\r\n };\r\n }),\r\n );\r\n });\r\n\r\n const weekDays = computed(() => {\r\n return i18n.locale && dateUtil.getWeekdays();\r\n });\r\n\r\n const displayYearMonth = computed(() => {\r\n return dateUtil.format(month.value, 'monthAndYear');\r\n });\r\n\r\n const rangeStart = computed(() => {\r\n if (props.range && model.value?.[0]) {\r\n return model.value[0];\r\n }\r\n });\r\n\r\n const rangeEnd = computed(() => {\r\n if (props.range && model.value?.[1]) {\r\n return model.value[1];\r\n }\r\n });\r\n\r\n function isDisabled(value: unknown) {\r\n if (props.disabled) return true;\r\n\r\n const date = dateUtil.date(value);\r\n\r\n if (props.min && dateUtil.isAfter(dateUtil.date(props.min), date))\r\n return true;\r\n if (props.max && dateUtil.isAfter(date, dateUtil.date(props.max)))\r\n return true;\r\n\r\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\r\n return !props.allowedDates.some((d) =>\r\n dateUtil.isSameDay(dateUtil.date(d), date),\r\n );\r\n }\r\n\r\n if (typeof props.allowedDates === 'function') {\r\n return !props.allowedDates(date);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function isInterval(value: unknown) {\r\n if (!props.range) return false;\r\n if (model.value.length === 2) {\r\n const date = dateUtil.date(value);\r\n const startDate = dateUtil.date(model.value[0]);\r\n const endDate = dateUtil.date(model.value[1]);\r\n if (\r\n dateUtil.isAfter(date, startDate) &&\r\n dateUtil.isBefore(date, endDate)\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function onClickDay(item: any) {\r\n const value = item.date;\r\n if (props.multiple) {\r\n const index = model.value.findIndex((selection: unknown) =>\r\n dateUtil.isSameDay(selection, value),\r\n );\r\n\r\n if (props.range) {\r\n if (model.value.length === 1) {\r\n const firstDate = dateUtil.date(model.value[0]);\r\n const date = dateUtil.date(value);\r\n if (dateUtil.isAfter(firstDate, date)) {\r\n model.value = [date, dateUtil.endOfDay(model.value[0])];\r\n } else {\r\n model.value = [\r\n dateUtil.startOfDay(model.value[0]),\r\n dateUtil.endOfDay(value),\r\n ];\r\n }\r\n } else {\r\n model.value = [value];\r\n }\r\n } else {\r\n if (index === -1) {\r\n model.value = [...model.value, value];\r\n } else {\r\n const change = [...model.value];\r\n change.splice(index, 1);\r\n model.value = change;\r\n }\r\n }\r\n } else {\r\n model.value = [value];\r\n }\r\n }\r\n\r\n useRender(() => (\r\n <div\r\n class={[\r\n 'y-date-calendar',\r\n { 'y-date-calendar--range': props.range && model.value.length === 2 },\r\n ]}\r\n >\r\n {!props.hideHeader && (\r\n <header class=\"y-date-calendar__header\">\r\n {slots.header ? slots.header() : displayYearMonth.value}\r\n </header>\r\n )}\r\n <div ref={container$} class={['y-date-calendar__container']}>\r\n {!props.hideWeekdays && (\r\n <div class={['y-date-calendar__week']}>\r\n {weekDays.value.map((weekDay) => (\r\n <div\r\n class={['y-date-calendar__cell', 'y-date-calendar__weekday']}\r\n >\r\n {weekDay}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n {daysInMonth.value.map((week, i) => {\r\n return (\r\n <div\r\n class={['y-date-calendar__week']}\r\n role=\"row\"\r\n aria-rowindex={i}\r\n >\r\n {week.map((item, index) => {\r\n const slotProps = {\r\n props: {\r\n onClick: () => {\r\n onClickDay(item);\r\n },\r\n },\r\n item,\r\n index,\r\n } as const;\r\n\r\n return (\r\n <div\r\n class={[\r\n 'y-date-calendar__cell',\r\n 'y-date-calendar__day',\r\n {\r\n 'y-date-calendar__day--adjacent': item.adjacent,\r\n 'y-date-calendar__day--hovered': item.hovered,\r\n 'y-date-calendar__day--selected': item.selected,\r\n 'y-date-calendar__day--week-start': item.weekStart,\r\n 'y-date-calendar__day--week-end': item.weekEnd,\r\n 'y-date-calendar__day--range-interval': item.interval,\r\n 'y-date-calendar__day--range-start': item.rangeStart,\r\n 'y-date-calendar__day--range-end': item.rangeEnd,\r\n },\r\n ]}\r\n data-date={!item.disabled ? item.isoDate : undefined}\r\n >\r\n {(props.showAdjacentMonthDates || !item.adjacent) && (\r\n <>\r\n {slots.day?.(slotProps) ?? (\r\n <YButton\r\n color={\r\n (item.selected || item.today) && !item.disabled\r\n ? props.color\r\n : undefined\r\n }\r\n disabled={item.disabled}\r\n variation={[\r\n 'rounded',\r\n item.selected\r\n ? 'filled'\r\n : item.today\r\n ? 'outlined'\r\n : 'text',\r\n ].join(',')}\r\n {...slotProps.props}\r\n >\r\n {item.day}\r\n </YButton>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n ));\r\n\r\n return {\r\n day$,\r\n container$,\r\n dateUtil,\r\n displayValue,\r\n month,\r\n year,\r\n rangeStart,\r\n rangeEnd,\r\n model,\r\n };\r\n },\r\n});\r\n\r\nexport type YDateCalendar = InstanceType<typeof YDateCalendar>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YDateCalendar.mjs","names":["computed","ref","useModelDuplex","useRender","useDate","useI18n","wrapInArray","defineComponent","propsFactory","YButton","pressYDateCalendarPropsOptions","year","Number","String","month","modelValue","Array","multiple","Boolean","range","allowedDates","Function","max","min","disabled","color","hideWeekdays","showAdjacentMonthDates","type","default","hideHeader","YDateCalendar","name","props","emits","date","setup","_ref","slots","dateUtil","i18n","container$","day$","model","v","displayValue","value","length","isArray","undefined","getYear","startOfYear","setYear","getMonth","startOfMonth","setMonth","weeksInMonth","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","day","push","addDays","today","map","weekIndex","index","isoDate","toISO","adjacent","isSameMonth","selected","find","isSameDay","formatted","format","getDay","isDisabled","weekStart","weekEnd","rangeStart","rangeEnd","interval","isInterval","hidden","hovered","localized","weekDays","locale","getWeekdays","displayYearMonth","isAfter","some","d","startDate","endDate","isBefore","onClickDay","item","findIndex","selection","firstDate","endOfDay","startOfDay","change","splice","_createVNode","header","weekDay","i","slotProps","onClick","_Fragment","_mergeProps","join"],"sources":["../../../src/components/date-picker/YDateCalendar.tsx"],"sourcesContent":["import { type PropType, computed, ref } from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { useDate } from '@/composables/date';\r\nimport { useI18n } from '@/composables/i18n';\r\nimport { wrapInArray } from '@/util/array';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\n\r\nimport './YDateCalendar.scss';\r\n\r\nexport const pressYDateCalendarPropsOptions = propsFactory(\r\n {\r\n year: [Number, String],\r\n month: [Number, String],\r\n modelValue: Array as PropType<unknown[]>,\r\n multiple: Boolean,\r\n range: Boolean,\r\n allowedDates: [Array, Function],\r\n max: null as any as PropType<unknown>,\r\n min: null as any as PropType<unknown>,\r\n disabled: Boolean,\r\n color: String,\r\n hideWeekdays: Boolean,\r\n showAdjacentMonthDates: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n hideHeader: Boolean,\r\n },\r\n 'YDateCalendar',\r\n);\r\n\r\nexport const YDateCalendar = defineComponent({\r\n name: 'YDateCalendar',\r\n props: pressYDateCalendarPropsOptions(),\r\n emits: {\r\n 'update:modelValue': (date: any) => true,\r\n 'update:year': (date: any) => true,\r\n 'update:month': (date: any) => true,\r\n },\r\n setup(props, { slots }) {\r\n const dateUtil = useDate();\r\n const i18n = useI18n();\r\n const container$ = ref();\r\n const day$ = ref([]);\r\n\r\n const model = useModelDuplex(props, 'modelValue', [], (v) =>\r\n v == null ? [] : wrapInArray(v),\r\n );\r\n\r\n const displayValue = computed(() => {\r\n if (model.value.length > 0) return dateUtil.date(model.value[0]);\r\n if (props.min) return dateUtil.date(props.min);\r\n if (Array.isArray(props.allowedDates)) {\r\n return dateUtil.date(props.allowedDates[0]);\r\n }\r\n\r\n return dateUtil.date();\r\n });\r\n\r\n const year = useModelDuplex(\r\n props,\r\n 'year',\r\n undefined,\r\n (v) => {\r\n const value =\r\n v != null ? Number(v) : dateUtil.getYear(displayValue.value);\r\n\r\n return dateUtil.startOfYear(dateUtil.setYear(dateUtil.date(), value));\r\n },\r\n (v) => dateUtil.getYear(v),\r\n );\r\n\r\n const month = useModelDuplex(\r\n props,\r\n 'month',\r\n undefined,\r\n (v) => {\r\n const value =\r\n v != null ? Number(v) : dateUtil.getMonth(displayValue.value);\r\n let date = dateUtil.setYear(\r\n dateUtil.date(),\r\n dateUtil.getYear(year.value),\r\n );\r\n date = dateUtil.startOfMonth(date);\r\n return dateUtil.setMonth(date, value);\r\n },\r\n (v) => dateUtil.getMonth(v),\r\n );\r\n\r\n const weeksInMonth = computed(() => {\r\n const weeks = dateUtil.getWeekArray(month.value);\r\n const days = weeks.flat();\r\n\r\n const daysInMonth = 6 * 7;\r\n if (days.length < daysInMonth) {\r\n const lastDay = days[days.length - 1];\r\n\r\n let week = [];\r\n for (let day = 1; day <= daysInMonth - days.length; day++) {\r\n week.push(dateUtil.addDays(lastDay, day));\r\n\r\n if (day % 7 === 0) {\r\n weeks.push(week);\r\n week = [];\r\n }\r\n }\r\n }\r\n\r\n return weeks;\r\n });\r\n\r\n const daysInMonth = computed(() => {\r\n const weeks = weeksInMonth.value;\r\n const today = dateUtil.date();\r\n\r\n return weeks.map((days, weekIndex) =>\r\n days.map((date, index) => {\r\n const isoDate = dateUtil.toISO(date);\r\n const adjacent = !dateUtil.isSameMonth(date, month.value);\r\n const selected = !!model.value?.find(\r\n (value: unknown) =>\r\n value != null && dateUtil.isSameDay(date, value),\r\n );\r\n return {\r\n date,\r\n isoDate,\r\n formatted: dateUtil.format(date, 'keyboardDate'),\r\n year: dateUtil.getYear(date),\r\n month: dateUtil.getMonth(date),\r\n day: dateUtil.getDay(date),\r\n disabled: isDisabled(date),\r\n weekStart: index % 7 === 0,\r\n weekEnd: index % 7 === 6,\r\n rangeStart:\r\n selected &&\r\n model.value.length > 1 &&\r\n props.range &&\r\n dateUtil.isSameDay(rangeStart.value, date),\r\n rangeEnd:\r\n selected &&\r\n model.value.length === 2 &&\r\n props.range &&\r\n dateUtil.isSameDay(rangeEnd.value, date),\r\n weekIndex,\r\n selected,\r\n interval: isInterval(date),\r\n today: dateUtil.isSameDay(date, today),\r\n adjacent,\r\n hidden: adjacent && !props.showAdjacentMonthDates,\r\n hovered: false,\r\n localized: dateUtil.format(date, 'dayOfMonth'),\r\n };\r\n }),\r\n );\r\n });\r\n\r\n const weekDays = computed(() => {\r\n return i18n.locale && dateUtil.getWeekdays();\r\n });\r\n\r\n const displayYearMonth = computed(() => {\r\n return dateUtil.format(month.value, 'monthAndYear');\r\n });\r\n\r\n const rangeStart = computed(() => {\r\n if (props.range && model.value?.[0]) {\r\n return model.value[0];\r\n }\r\n });\r\n\r\n const rangeEnd = computed(() => {\r\n if (props.range && model.value?.[1]) {\r\n return model.value[1];\r\n }\r\n });\r\n\r\n function isDisabled(value: unknown) {\r\n if (props.disabled) return true;\r\n\r\n const date = dateUtil.date(value);\r\n\r\n if (props.min && dateUtil.isAfter(dateUtil.date(props.min), date))\r\n return true;\r\n if (props.max && dateUtil.isAfter(date, dateUtil.date(props.max)))\r\n return true;\r\n\r\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\r\n return !props.allowedDates.some((d) =>\r\n dateUtil.isSameDay(dateUtil.date(d), date),\r\n );\r\n }\r\n\r\n if (typeof props.allowedDates === 'function') {\r\n return !props.allowedDates(date);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function isInterval(value: unknown) {\r\n if (!props.range) return false;\r\n if (model.value.length === 2) {\r\n const date = dateUtil.date(value);\r\n const startDate = dateUtil.date(model.value[0]);\r\n const endDate = dateUtil.date(model.value[1]);\r\n if (\r\n dateUtil.isAfter(date, startDate) &&\r\n dateUtil.isBefore(date, endDate)\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function onClickDay(item: any) {\r\n const value = item.date;\r\n if (props.multiple) {\r\n const index = model.value.findIndex((selection: unknown) =>\r\n dateUtil.isSameDay(selection, value),\r\n );\r\n\r\n if (props.range) {\r\n if (model.value.length === 1) {\r\n const firstDate = dateUtil.date(model.value[0]);\r\n const date = dateUtil.date(value);\r\n if (dateUtil.isAfter(firstDate, date)) {\r\n model.value = [date, dateUtil.endOfDay(model.value[0])];\r\n } else {\r\n model.value = [\r\n dateUtil.startOfDay(model.value[0]),\r\n dateUtil.endOfDay(value),\r\n ];\r\n }\r\n } else {\r\n model.value = [value];\r\n }\r\n } else {\r\n if (index === -1) {\r\n model.value = [...model.value, value];\r\n } else {\r\n const change = [...model.value];\r\n change.splice(index, 1);\r\n model.value = change;\r\n }\r\n }\r\n } else {\r\n model.value = [value];\r\n }\r\n }\r\n\r\n useRender(() => (\r\n <div\r\n class={[\r\n 'y-date-calendar',\r\n { 'y-date-calendar--range': props.range && model.value.length === 2 },\r\n ]}\r\n >\r\n {!props.hideHeader && (\r\n <header class=\"y-date-calendar__header\">\r\n {slots.header ? slots.header() : displayYearMonth.value}\r\n </header>\r\n )}\r\n <div ref={container$} class={['y-date-calendar__container']}>\r\n {!props.hideWeekdays && (\r\n <div class={['y-date-calendar__week']}>\r\n {weekDays.value.map((weekDay) => (\r\n <div\r\n class={['y-date-calendar__cell', 'y-date-calendar__weekday']}\r\n >\r\n {weekDay}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n {daysInMonth.value.map((week, i) => {\r\n return (\r\n <div\r\n class={['y-date-calendar__week']}\r\n role=\"row\"\r\n aria-rowindex={i}\r\n >\r\n {week.map((item, index) => {\r\n const slotProps = {\r\n props: {\r\n onClick: () => {\r\n onClickDay(item);\r\n },\r\n },\r\n item,\r\n index,\r\n } as const;\r\n\r\n return (\r\n <div\r\n class={[\r\n 'y-date-calendar__cell',\r\n 'y-date-calendar__day',\r\n {\r\n 'y-date-calendar__day--adjacent': item.adjacent,\r\n 'y-date-calendar__day--hovered': item.hovered,\r\n 'y-date-calendar__day--selected': item.selected,\r\n 'y-date-calendar__day--week-start': item.weekStart,\r\n 'y-date-calendar__day--week-end': item.weekEnd,\r\n 'y-date-calendar__day--range-interval': item.interval,\r\n 'y-date-calendar__day--range-start': item.rangeStart,\r\n 'y-date-calendar__day--range-end': item.rangeEnd,\r\n },\r\n ]}\r\n data-date={!item.disabled ? item.isoDate : undefined}\r\n >\r\n {(props.showAdjacentMonthDates || !item.adjacent) && (\r\n <>\r\n {slots.day?.(slotProps) ?? (\r\n <YButton\r\n color={\r\n (item.selected || item.today) && !item.disabled\r\n ? props.color\r\n : undefined\r\n }\r\n disabled={item.disabled}\r\n variation={[\r\n 'rounded',\r\n item.selected\r\n ? 'filled'\r\n : item.today\r\n ? 'outlined'\r\n : 'text',\r\n ].join(',')}\r\n {...slotProps.props}\r\n >\r\n {item.day}\r\n </YButton>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n ));\r\n\r\n return {\r\n day$,\r\n container$,\r\n dateUtil,\r\n displayValue,\r\n month,\r\n year,\r\n rangeStart,\r\n rangeEnd,\r\n model,\r\n };\r\n },\r\n});\r\n\r\nexport type YDateCalendar = InstanceType<typeof YDateCalendar>;\r\n"],"mappings":"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"}
|
|
@@ -33,7 +33,8 @@ export const YDatePicker = defineComponent({
|
|
|
33
33
|
const propYear = Number(props.year);
|
|
34
34
|
if (!isNaN(propYear)) year.value = propYear;
|
|
35
35
|
const displayDate = computed(() => {
|
|
36
|
-
const date = dateUtil.
|
|
36
|
+
const date = dateUtil.startOfMonth(dateUtil.date());
|
|
37
|
+
dateUtil.setYear(date, +year.value);
|
|
37
38
|
return dateUtil.setMonth(date, +month.value);
|
|
38
39
|
});
|
|
39
40
|
const monthText = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDatePicker.mjs","names":["Transition","computed","ref","watch","useModelDuplex","useRender","useDate","omit","chooseProps","defineComponent","propsFactory","YDateCalendar","pressYDateCalendarPropsOptions","YDatePickerControl","YMonthPicker","YYearPicker","pressYDatePickerPropsOptions","modelValue","YDatePicker","name","props","emits","setup","_ref","emit","yearPicker$","dateUtil","model","mode","month","getMonth","date","year","getYear","propMonth","Number","isNaN","value","propYear","displayDate","setYear","setMonth","monthText","format","yearText","toggleMonthMode","toggleYearMode","onClickYear","onClickMonth","onClickPage","dir","changePage","change","onClickPrev","onClickNext","_createVNode","_mergeProps","default","$event","onMode"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { Transition, computed, ref, watch } from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { useDate } from '@/composables/date';\r\nimport { omit } from '@/util';\r\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YDateCalendar, pressYDateCalendarPropsOptions } from './YDateCalendar';\r\nimport { YDatePickerControl } from './YDatePickerControl';\r\nimport { YMonthPicker } from './YMonthPicker';\r\nimport { YYearPicker } from './YYearPicker';\r\n\r\nimport './YDatePicker.scss';\r\n\r\nexport const pressYDatePickerPropsOptions = propsFactory(\r\n {\r\n ...omit(pressYDateCalendarPropsOptions(), ['modelValue']),\r\n modelValue: null,\r\n },\r\n 'YDatePicker',\r\n);\r\n\r\nexport const YDatePicker = defineComponent({\r\n name: 'YDatePicker',\r\n props: pressYDatePickerPropsOptions(),\r\n emits: ['update:month', 'update:year', 'update:modelValue', 'update:mode'],\r\n setup(props, { emit }) {\r\n const yearPicker$ = ref<typeof YYearPicker>();\r\n const dateUtil = useDate();\r\n const model = useModelDuplex(props, 'modelValue');\r\n const mode = useModelDuplex(props, 'mode');\r\n\r\n const month = ref<number>(dateUtil.getMonth(dateUtil.date()));\r\n const year = ref<number>(dateUtil.getYear(dateUtil.date()));\r\n\r\n const propMonth = Number(props.month);\r\n if (!isNaN(propMonth)) month.value = propMonth;\r\n const propYear = Number(props.year);\r\n if (!isNaN(propYear)) year.value = propYear;\r\n\r\n const displayDate = computed(() => {\r\n const date = dateUtil.setYear(dateUtil.date(), +year.value);\r\n return dateUtil.setMonth(date, +month.value);\r\n });\r\n\r\n const monthText = computed(() => {\r\n return dateUtil.format(displayDate.value, 'month');\r\n });\r\n\r\n const yearText = computed(() => {\r\n return dateUtil.format(displayDate.value, 'year');\r\n });\r\n\r\n function toggleMonthMode() {\r\n mode.value = mode.value === 'month' ? 'date' : 'month';\r\n }\r\n\r\n function toggleYearMode() {\r\n mode.value = mode.value === 'year' ? 'date' : 'year';\r\n }\r\n\r\n function onClickYear() {\r\n toggleYearMode();\r\n }\r\n\r\n function onClickMonth() {\r\n toggleMonthMode();\r\n }\r\n\r\n function onClickPage(dir: number) {\r\n if (mode.value === 'month') {\r\n year.value = year.value + dir;\r\n return;\r\n }\r\n if (mode.value === 'year') {\r\n yearPicker$.value?.changePage(dir);\r\n return;\r\n }\r\n const change = month.value + dir;\r\n if (change > 11) {\r\n year.value += 1;\r\n month.value = 0;\r\n } else if (change < 0) {\r\n year.value -= 1;\r\n month.value = 11;\r\n } else {\r\n month.value = change;\r\n }\r\n }\r\n\r\n function onClickPrev() {\r\n onClickPage(-1);\r\n }\r\n\r\n function onClickNext() {\r\n onClickPage(1);\r\n }\r\n\r\n watch(month, () => {\r\n if (mode.value === 'month') toggleMonthMode();\r\n emit('update:month', month.value);\r\n });\r\n\r\n watch(year, () => {\r\n if (mode.value === 'year') {\r\n mode.value = 'month';\r\n }\r\n emit('update:year', year.value);\r\n });\r\n\r\n useRender(() => (\r\n <div class={['y-date-picker']}>\r\n <YDatePickerControl\r\n {...chooseProps(props, YDatePickerControl.props)}\r\n yearText={yearText.value}\r\n monthText={monthText.value}\r\n onClick:year={onClickYear}\r\n onClick:month={onClickMonth}\r\n onClick:prev={onClickPrev}\r\n onClick:next={onClickNext}\r\n ></YDatePickerControl>\r\n <Transition name=\"fade\" mode=\"out-in\">\r\n {mode.value === 'month' ? (\r\n <YMonthPicker\r\n v-model={month.value}\r\n onMode={() => {\r\n mode.value = 'date';\r\n }}\r\n />\r\n ) : mode.value === 'year' ? (\r\n <YYearPicker\r\n v-model={year.value}\r\n ref={yearPicker$}\r\n onMode={() => {\r\n mode.value = 'month';\r\n }}\r\n />\r\n ) : (\r\n <YDateCalendar\r\n {...chooseProps(props, YDateCalendar.props)}\r\n hideHeader={true}\r\n v-model={model.value}\r\n v-model:month={month.value}\r\n v-model:year={year.value}\r\n />\r\n )}\r\n </Transition>\r\n </div>\r\n ));\r\n },\r\n});\r\n\r\nexport type YDatePicker = InstanceType<typeof YDatePicker>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YDatePicker.mjs","names":["Transition","computed","ref","watch","useModelDuplex","useRender","useDate","omit","chooseProps","defineComponent","propsFactory","YDateCalendar","pressYDateCalendarPropsOptions","YDatePickerControl","YMonthPicker","YYearPicker","pressYDatePickerPropsOptions","modelValue","YDatePicker","name","props","emits","setup","_ref","emit","yearPicker$","dateUtil","model","mode","month","getMonth","date","year","getYear","propMonth","Number","isNaN","value","propYear","displayDate","startOfMonth","setYear","setMonth","monthText","format","yearText","toggleMonthMode","toggleYearMode","onClickYear","onClickMonth","onClickPage","dir","changePage","change","onClickPrev","onClickNext","_createVNode","_mergeProps","default","$event","onMode"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { Transition, computed, ref, watch } from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { useDate } from '@/composables/date';\r\nimport { omit } from '@/util';\r\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YDateCalendar, pressYDateCalendarPropsOptions } from './YDateCalendar';\r\nimport { YDatePickerControl } from './YDatePickerControl';\r\nimport { YMonthPicker } from './YMonthPicker';\r\nimport { YYearPicker } from './YYearPicker';\r\n\r\nimport './YDatePicker.scss';\r\n\r\nexport const pressYDatePickerPropsOptions = propsFactory(\r\n {\r\n ...omit(pressYDateCalendarPropsOptions(), ['modelValue']),\r\n modelValue: null,\r\n },\r\n 'YDatePicker',\r\n);\r\n\r\nexport const YDatePicker = defineComponent({\r\n name: 'YDatePicker',\r\n props: pressYDatePickerPropsOptions(),\r\n emits: ['update:month', 'update:year', 'update:modelValue', 'update:mode'],\r\n setup(props, { emit }) {\r\n const yearPicker$ = ref<typeof YYearPicker>();\r\n const dateUtil = useDate();\r\n const model = useModelDuplex(props, 'modelValue');\r\n const mode = useModelDuplex(props, 'mode');\r\n\r\n const month = ref<number>(dateUtil.getMonth(dateUtil.date()));\r\n const year = ref<number>(dateUtil.getYear(dateUtil.date()));\r\n\r\n const propMonth = Number(props.month);\r\n if (!isNaN(propMonth)) month.value = propMonth;\r\n const propYear = Number(props.year);\r\n if (!isNaN(propYear)) year.value = propYear;\r\n\r\n const displayDate = computed(() => {\r\n const date = dateUtil.startOfMonth(dateUtil.date());\r\n dateUtil.setYear(date, +year.value);\r\n return dateUtil.setMonth(date, +month.value);\r\n });\r\n\r\n const monthText = computed(() => {\r\n return dateUtil.format(displayDate.value, 'month');\r\n });\r\n\r\n const yearText = computed(() => {\r\n return dateUtil.format(displayDate.value, 'year');\r\n });\r\n\r\n function toggleMonthMode() {\r\n mode.value = mode.value === 'month' ? 'date' : 'month';\r\n }\r\n\r\n function toggleYearMode() {\r\n mode.value = mode.value === 'year' ? 'date' : 'year';\r\n }\r\n\r\n function onClickYear() {\r\n toggleYearMode();\r\n }\r\n\r\n function onClickMonth() {\r\n toggleMonthMode();\r\n }\r\n\r\n function onClickPage(dir: number) {\r\n if (mode.value === 'month') {\r\n year.value = year.value + dir;\r\n return;\r\n }\r\n if (mode.value === 'year') {\r\n yearPicker$.value?.changePage(dir);\r\n return;\r\n }\r\n const change = month.value + dir;\r\n if (change > 11) {\r\n year.value += 1;\r\n month.value = 0;\r\n } else if (change < 0) {\r\n year.value -= 1;\r\n month.value = 11;\r\n } else {\r\n month.value = change;\r\n }\r\n }\r\n\r\n function onClickPrev() {\r\n onClickPage(-1);\r\n }\r\n\r\n function onClickNext() {\r\n onClickPage(1);\r\n }\r\n\r\n watch(month, () => {\r\n if (mode.value === 'month') toggleMonthMode();\r\n emit('update:month', month.value);\r\n });\r\n\r\n watch(year, () => {\r\n if (mode.value === 'year') {\r\n mode.value = 'month';\r\n }\r\n emit('update:year', year.value);\r\n });\r\n\r\n useRender(() => (\r\n <div class={['y-date-picker']}>\r\n <YDatePickerControl\r\n {...chooseProps(props, YDatePickerControl.props)}\r\n yearText={yearText.value}\r\n monthText={monthText.value}\r\n onClick:year={onClickYear}\r\n onClick:month={onClickMonth}\r\n onClick:prev={onClickPrev}\r\n onClick:next={onClickNext}\r\n ></YDatePickerControl>\r\n <Transition name=\"fade\" mode=\"out-in\">\r\n {mode.value === 'month' ? (\r\n <YMonthPicker\r\n v-model={month.value}\r\n onMode={() => {\r\n mode.value = 'date';\r\n }}\r\n />\r\n ) : mode.value === 'year' ? (\r\n <YYearPicker\r\n v-model={year.value}\r\n ref={yearPicker$}\r\n onMode={() => {\r\n mode.value = 'month';\r\n }}\r\n />\r\n ) : (\r\n <YDateCalendar\r\n {...chooseProps(props, YDateCalendar.props)}\r\n hideHeader={true}\r\n v-model={model.value}\r\n v-model:month={month.value}\r\n v-model:year={year.value}\r\n />\r\n )}\r\n </Transition>\r\n </div>\r\n ));\r\n },\r\n});\r\n\r\nexport type YDatePicker = InstanceType<typeof YDatePicker>;\r\n"],"mappings":"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"}
|