yuyeon 0.0.42-test20 → 0.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/style.css +1 -1
- package/dist/yuyeon.js +3566 -3269
- package/dist/yuyeon.umd.cjs +6 -6
- package/lib/components/button/YButton.mjs +4 -1
- package/lib/components/button/YButton.mjs.map +1 -1
- package/lib/components/checkbox/YCheckbox.mjs +2 -1
- package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
- package/lib/components/date-picker/YDateCalendar.mjs +5 -5
- package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
- package/lib/components/date-picker/YDatePicker.mjs +112 -4
- package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
- package/lib/components/date-picker/YDatePicker.scss +3 -0
- package/lib/components/date-picker/YDatePickerControl.mjs +84 -6
- package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
- package/lib/components/date-picker/YDatePickerControl.scss +33 -1
- package/lib/components/date-picker/YMonthPicker.mjs +57 -0
- package/lib/components/date-picker/YMonthPicker.mjs.map +1 -0
- package/lib/components/date-picker/YMonthPicker.scss +25 -0
- package/lib/components/date-picker/YYearPicker.mjs +82 -0
- package/lib/components/date-picker/YYearPicker.mjs.map +1 -0
- package/lib/components/date-picker/YYearPicker.scss +23 -0
- package/lib/components/date-picker/index.mjs +2 -0
- package/lib/components/date-picker/index.mjs.map +1 -1
- package/lib/components/dialog/YDialog.mjs +36 -41
- package/lib/components/dialog/YDialog.mjs.map +1 -1
- package/lib/components/dialog/YDialog.scss +0 -1
- package/lib/components/field-input/YFieldInput.scss +1 -0
- package/lib/components/icons/index.mjs +12 -0
- package/lib/components/icons/index.mjs.map +1 -1
- package/lib/components/layer/YLayer.mjs +15 -31
- package/lib/components/layer/YLayer.mjs.map +1 -1
- package/lib/components/layer/base.mjs +36 -0
- package/lib/components/layer/base.mjs.map +1 -0
- package/lib/components/select/YSelect.mjs +14 -8
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/lib/components/select/YSelect.scss +4 -0
- package/lib/components/textarea/YTextarea.mjs +3 -1
- package/lib/components/textarea/YTextarea.mjs.map +1 -1
- package/lib/components/tree-view/util.mjs +2 -1
- package/lib/components/tree-view/util.mjs.map +1 -1
- package/lib/composables/choice.mjs +2 -1
- package/lib/composables/choice.mjs.map +1 -1
- package/lib/composables/coordinate/index.mjs.map +1 -1
- package/lib/composables/layer-group.mjs +10 -3
- package/lib/composables/layer-group.mjs.map +1 -1
- package/lib/composables/list-items.mjs +13 -9
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/styles/util/_mixin.scss +0 -1
- package/package.json +1 -1
- package/types/components/button/YButton.d.ts +3 -1
- package/types/components/checkbox/YCheckbox.d.ts +2 -2
- package/types/components/checkbox/YInputCheckbox.d.ts +2 -2
- package/types/components/date-picker/YDatePicker.d.ts +117 -0
- package/types/components/date-picker/YDatePickerControl.d.ts +128 -0
- package/types/components/date-picker/YMonthPicker.d.ts +28 -0
- package/types/components/date-picker/YYearPicker.d.ts +43 -0
- package/types/components/date-picker/index.d.ts +2 -0
- package/types/components/dialog/YDialog.d.ts +419 -15
- package/types/components/dropdown/YDropdown.d.ts +13 -13
- package/types/components/field-input/YFieldInput.d.ts +2 -2
- package/types/components/icons/index.d.ts +36 -0
- package/types/components/input/YInput.d.ts +2 -2
- package/types/components/layer/YLayer.d.ts +19 -19
- package/types/components/layer/base.d.ts +13 -0
- package/types/components/menu/YMenu.d.ts +12 -12
- package/types/components/pagination/YPagination.d.ts +2 -2
- package/types/components/select/YSelect.d.ts +58 -58
- package/types/components/tab/YTabs.d.ts +7 -0
- package/types/components/textarea/YTextarea.d.ts +6 -6
- package/types/components/tooltip/YTooltip.d.ts +14 -14
- package/types/composables/choice.d.ts +5 -0
- package/types/composables/coordinate/index.d.ts +8 -8
- package/types/composables/list-items.d.ts +3 -10
- package/types/shims.d.ts +4 -0
|
@@ -60,12 +60,14 @@ export const YButton = defineComponent({
|
|
|
60
60
|
},
|
|
61
61
|
props: pressYButtonProps(),
|
|
62
62
|
emits: {
|
|
63
|
+
'click': event => true,
|
|
63
64
|
'choice:selected': choice => true
|
|
64
65
|
},
|
|
65
66
|
setup(props, _ref) {
|
|
66
67
|
let {
|
|
67
68
|
attrs,
|
|
68
|
-
slots
|
|
69
|
+
slots,
|
|
70
|
+
emit
|
|
69
71
|
} = _ref;
|
|
70
72
|
const choice = useChoiceItem(props, props.injectSymbol, false);
|
|
71
73
|
const link = useLink(props, attrs);
|
|
@@ -147,6 +149,7 @@ export const YButton = defineComponent({
|
|
|
147
149
|
if (!guardEvent(e) || props.loading || isDisabled.value) {
|
|
148
150
|
return;
|
|
149
151
|
}
|
|
152
|
+
emit('click', e);
|
|
150
153
|
link.navigate?.(e);
|
|
151
154
|
if (e.preventDefault) e.preventDefault();
|
|
152
155
|
choice?.toggle();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YButton.mjs","names":["computed","defineComponent","mergeProps","pressChoiceItemPropsOptions","useChoiceItem","useChoiceByLink","useRender","pressVueRouterPropsOptions","useLink","PlateWave","isColorValue","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","choice","setup","_ref","attrs","slots","link","select","isActive","isLink","value","isSelected","variations","split","map","trim","classes","includes","disabled","styles","textColor","isDisabled","onClick","e","guardEvent","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","test","target","navigate","preventDefault","toggle","Tag","_withDirectives","_createVNode","selectedClass","href","width","height","append","_resolveDirective"],"sources":["../../../src/components/button/YButton.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport { computed, defineComponent, 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 {\n pressVueRouterPropsOptions,\n useLink,\n} from '../../composables/vue-router';\nimport { PlateWave } from '../../directives/plate-wave';\nimport { isColorValue } from '../../util/color';\nimport { propsFactory } from '../../util/vue-component';\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 'choice:selected': (choice: { value: boolean }) => true,\n },\n setup(props, { attrs, slots }) {\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}--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 function guardEvent(e: MouseEvent) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented) return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) return;\n // don't redirect if `target=\"_blank\"`\n if (/\\b_blank\\b/i.test(attrs.target as string)) {\n return;\n }\n return true;\n }\n if (!guardEvent(e) || props.loading || isDisabled.value) {\n return;\n }\n link.navigate?.(e);\n if (e.preventDefault) e.preventDefault();\n choice?.toggle();\n }\n\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : 'button';\n return (\n <Tag\n class={[\n `${NAME}`,\n choice?.selectedClass.value,\n {\n ...classes.value,\n },\n ]}\n href={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 <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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"}
|
|
1
|
+
{"version":3,"file":"YButton.mjs","names":["computed","defineComponent","mergeProps","pressChoiceItemPropsOptions","useChoiceItem","useChoiceByLink","useRender","pressVueRouterPropsOptions","useLink","PlateWave","isColorValue","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","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","guardEvent","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","test","target","navigate","preventDefault","toggle","Tag","_withDirectives","_createVNode","selectedClass","href","width","height","append","_resolveDirective"],"sources":["../../../src/components/button/YButton.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport { computed, defineComponent, 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 {\n pressVueRouterPropsOptions,\n useLink,\n} from '../../composables/vue-router';\nimport { PlateWave } from '../../directives/plate-wave';\nimport { isColorValue } from '../../util/color';\nimport { propsFactory } from '../../util/vue-component';\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}--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 function guardEvent(e: MouseEvent) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented) return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) return;\n // don't redirect if `target=\"_blank\"`\n if (/\\b_blank\\b/i.test(attrs.target as string)) {\n return;\n }\n return true;\n }\n if (!guardEvent(e) || props.loading || isDisabled.value) {\n return;\n }\n emit('click', e);\n link.navigate?.(e);\n if (e.preventDefault) e.preventDefault();\n choice?.toggle();\n }\n\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : 'button';\n return (\n <Tag\n class={[\n `${NAME}`,\n choice?.selectedClass.value,\n {\n ...classes.value,\n },\n ]}\n href={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 <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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YCheckbox.mjs","names":["computed","defineComponent","ref","watch","withModifiers","useRender","getUid","YInputCheckbox","name","components","emits","props","modelValue","Boolean","Array","value","String","Number","Object","label","reverse","icon","type","color","default","disabled","readonly","setup","_ref","emit","slots","focused","checked","counterId","toString","inputId","onFocus","e","onBlur","onClick","check","inputByProp","isArray","found","find","inp","undefined","classes","computedIcon","isMultipleInput","getMultipleInputIndex","findIndex","v","neo","index","push","splice","immediate","_createVNode","leading","stopPropagation","_len","arguments","length","args","_key","_len2","_key2","trailing"],"sources":["../../../src/components/checkbox/YCheckbox.tsx"],"sourcesContent":["import {\r\n PropType,\r\n computed,\r\n defineComponent,\r\n ref,\r\n watch,\r\n withModifiers,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getUid } from '../../util/vue-component';\r\nimport YInputCheckbox from './YInputCheckbox';\r\n\r\nimport './YCheckbox.scss';\r\n\r\nexport default defineComponent({\r\n name: 'YCheckbox',\r\n components: { YInputCheckbox },\r\n emits: ['focus', 'blur', 'click', 'update:modelValue', 'change'],\r\n props: {\r\n modelValue: [Boolean, Array] as PropType<boolean | any[]>,\r\n value: [String, Number, Object] as PropType<any>,\r\n label: String as PropType<string>,\r\n reverse: Boolean as PropType<boolean>,\r\n icon: {\r\n type: [Object, String] as PropType<\r\n { checked?: string; unchecked?: string } | string\r\n >,\r\n },\r\n color: {\r\n type: String as PropType<string>,\r\n default: () => 'primary',\r\n },\r\n disabled: Boolean as PropType<boolean>,\r\n readonly: Boolean as PropType<boolean>,\r\n },\r\n setup(props, { emit, slots }) {\r\n const focused = ref(false);\r\n const checked = ref(false);\r\n const counterId = (getUid() ?? '').toString();\r\n const inputId = `input-${counterId}`;\r\n\r\n function onFocus(e: FocusEvent) {\r\n focused.value = true;\r\n emit('focus', e);\r\n }\r\n\r\n function onBlur(e: FocusEvent) {\r\n focused.value = false;\r\n emit('blur', e);\r\n }\r\n\r\n function onClick(e: Event, ...args: any[]) {\r\n emit('click', e);\r\n if (props.disabled || props.readonly) return;\r\n const check = !checked.value;\r\n checked.value = check;\r\n emit('change', check);\r\n }\r\n\r\n function inputByProp() {\r\n if (Array.isArray(props.modelValue)) {\r\n const found = props.modelValue?.find((inp: any) => inp === props.value);\r\n\r\n if (found !== undefined) {\r\n checked.value = true;\r\n } else {\r\n checked.value = false;\r\n }\r\n } else if (typeof props.modelValue === 'boolean') {\r\n checked.value = props.modelValue;\r\n }\r\n }\r\n\r\n const classes = computed<Record<string, boolean>>(() => {\r\n const { reverse, disabled, readonly } = props;\r\n return {\r\n 'y-checkbox': true,\r\n 'y-checkbox--reverse': !!reverse,\r\n 'y-checkbox--focused': focused.value,\r\n 'y-checkbox--disabled': !!disabled,\r\n 'y-checkbox--readonly': !!readonly,\r\n };\r\n });\r\n\r\n const computedIcon = computed<string | undefined>(() => {\r\n if (typeof props.icon === 'string') {\r\n return props.icon;\r\n }\r\n return undefined;\r\n });\r\n\r\n const isMultipleInput = computed<boolean>(() => {\r\n return Array.isArray(props.modelValue);\r\n });\r\n\r\n function getMultipleInputIndex() {\r\n if (!isMultipleInput.value) {\r\n return -1;\r\n }\r\n return (props.modelValue as any[]).findIndex(\r\n (v: any) => v === props.value,\r\n );\r\n }\r\n\r\n watch(checked, (neo) => {\r\n if (Array.isArray(props.modelValue)) {\r\n const value = props.modelValue;\r\n const index = getMultipleInputIndex();\r\n if (neo && index === -1) {\r\n value.push(props.value);\r\n } else if (!neo && index !== -1) {\r\n value.splice(index, 1);\r\n }\r\n emit('update:modelValue', value);\r\n } else {\r\n emit('update:modelValue', neo);\r\n }\r\n });\r\n\r\n watch(\r\n () => props.modelValue,\r\n (neo) => {\r\n if (Array.isArray(neo)) {\r\n inputByProp();\r\n } else {\r\n checked.value = !!neo;\r\n }\r\n },\r\n { immediate: true },\r\n );\r\n\r\n useRender(() => {\r\n return (\r\n <div class={[{ ...classes.value }]}>\r\n {slots.leading?.()}\r\n <div class=\"y-checkbox__slot\">\r\n <YInputCheckbox\r\n onClick={(e: Event, ...args: any[]) => {\r\n e.stopPropagation();\r\n onClick(e, ...args);\r\n }}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n id={counterId}\r\n value={checked.value}\r\n icon={computedIcon.value}\r\n color={props.color}\r\n disabled={props.disabled}\r\n readonly={props.readonly}\r\n >\r\n {slots.icon && {\r\n icon: (...args: any[]) => slots.icon?.(...args),\r\n }}\r\n </YInputCheckbox>\r\n <label\r\n onClick={withModifiers(() => {}, ['stop'])}\r\n class=\"y-checkbox__label\"\r\n for={inputId}\r\n >\r\n {slots.label ? slots.label?.() : props.label}\r\n </label>\r\n </div>\r\n {slots.trailing?.()}\r\n </div>\r\n );\r\n });\r\n\r\n return {\r\n checked,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YCheckbox.mjs","names":["computed","defineComponent","ref","watch","withModifiers","useRender","getUid","YInputCheckbox","name","components","emits","props","modelValue","Boolean","Array","value","String","Number","Object","label","reverse","icon","type","color","default","disabled","readonly","setup","_ref","emit","slots","focused","checked","counterId","toString","inputId","onFocus","e","onBlur","onClick","check","inputByProp","isArray","found","find","inp","undefined","classes","computedIcon","isMultipleInput","getMultipleInputIndex","findIndex","v","neo","index","push","splice","immediate","deep","_createVNode","leading","stopPropagation","_len","arguments","length","args","_key","_len2","_key2","trailing"],"sources":["../../../src/components/checkbox/YCheckbox.tsx"],"sourcesContent":["import {\r\n PropType,\r\n computed,\r\n defineComponent,\r\n ref,\r\n watch,\r\n withModifiers,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getUid } from '../../util/vue-component';\r\nimport YInputCheckbox from './YInputCheckbox';\r\n\r\nimport './YCheckbox.scss';\r\n\r\nexport default defineComponent({\r\n name: 'YCheckbox',\r\n components: { YInputCheckbox },\r\n emits: ['focus', 'blur', 'click', 'update:modelValue', 'change'],\r\n props: {\r\n modelValue: [Boolean, Array] as PropType<boolean | any[]>,\r\n value: [String, Number, Object] as PropType<any>,\r\n label: String as PropType<string>,\r\n reverse: Boolean as PropType<boolean>,\r\n icon: {\r\n type: [Object, String] as PropType<\r\n { checked?: string; unchecked?: string } | string\r\n >,\r\n },\r\n color: {\r\n type: String as PropType<string>,\r\n default: () => 'primary',\r\n },\r\n disabled: Boolean as PropType<boolean>,\r\n readonly: Boolean as PropType<boolean>,\r\n },\r\n setup(props, { emit, slots }) {\r\n const focused = ref(false);\r\n const checked = ref(false);\r\n const counterId = (getUid() ?? '').toString();\r\n const inputId = `input-${counterId}`;\r\n\r\n function onFocus(e: FocusEvent) {\r\n focused.value = true;\r\n emit('focus', e);\r\n }\r\n\r\n function onBlur(e: FocusEvent) {\r\n focused.value = false;\r\n emit('blur', e);\r\n }\r\n\r\n function onClick(e: Event, ...args: any[]) {\r\n emit('click', e);\r\n if (props.disabled || props.readonly) return;\r\n const check = !checked.value;\r\n checked.value = check;\r\n emit('change', check);\r\n }\r\n\r\n function inputByProp() {\r\n if (Array.isArray(props.modelValue)) {\r\n const found = props.modelValue?.find((inp: any) => inp === props.value);\r\n if (found !== undefined) {\r\n checked.value = true;\r\n } else {\r\n checked.value = false;\r\n }\r\n } else if (typeof props.modelValue === 'boolean') {\r\n checked.value = props.modelValue;\r\n }\r\n }\r\n\r\n const classes = computed<Record<string, boolean>>(() => {\r\n const { reverse, disabled, readonly } = props;\r\n return {\r\n 'y-checkbox': true,\r\n 'y-checkbox--reverse': !!reverse,\r\n 'y-checkbox--focused': focused.value,\r\n 'y-checkbox--disabled': !!disabled,\r\n 'y-checkbox--readonly': !!readonly,\r\n };\r\n });\r\n\r\n const computedIcon = computed<string | undefined>(() => {\r\n if (typeof props.icon === 'string') {\r\n return props.icon;\r\n }\r\n return undefined;\r\n });\r\n\r\n const isMultipleInput = computed<boolean>(() => {\r\n return Array.isArray(props.modelValue);\r\n });\r\n\r\n function getMultipleInputIndex() {\r\n if (!isMultipleInput.value) {\r\n return -1;\r\n }\r\n return (props.modelValue as any[]).findIndex(\r\n (v: any) => v === props.value,\r\n );\r\n }\r\n\r\n watch(checked, (neo) => {\r\n if (Array.isArray(props.modelValue)) {\r\n const value = props.modelValue;\r\n const index = getMultipleInputIndex();\r\n if (neo && index === -1) {\r\n value.push(props.value);\r\n } else if (!neo && index !== -1) {\r\n value.splice(index, 1);\r\n }\r\n emit('update:modelValue', value);\r\n } else {\r\n emit('update:modelValue', neo);\r\n }\r\n });\r\n\r\n watch(\r\n () => props.modelValue,\r\n (neo) => {\r\n if (Array.isArray(neo)) {\r\n inputByProp();\r\n } else {\r\n checked.value = !!neo;\r\n }\r\n },\r\n { immediate: true, deep: true },\r\n );\r\n\r\n useRender(() => {\r\n return (\r\n <div class={[{ ...classes.value }]}>\r\n {slots.leading?.()}\r\n <div class=\"y-checkbox__slot\">\r\n <YInputCheckbox\r\n onClick={(e: Event, ...args: any[]) => {\r\n e.stopPropagation();\r\n onClick(e, ...args);\r\n }}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n id={counterId}\r\n value={checked.value}\r\n icon={computedIcon.value}\r\n color={props.color}\r\n disabled={props.disabled}\r\n readonly={props.readonly}\r\n >\r\n {slots.icon && {\r\n icon: (...args: any[]) => slots.icon?.(...args),\r\n }}\r\n </YInputCheckbox>\r\n <label\r\n onClick={withModifiers(() => {}, ['stop'])}\r\n class=\"y-checkbox__label\"\r\n for={inputId}\r\n >\r\n {slots.label ? slots.label?.() : props.label}\r\n </label>\r\n </div>\r\n {slots.trailing?.()}\r\n </div>\r\n );\r\n });\r\n\r\n return {\r\n checked,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export const YDateCalendar = defineComponent({
|
|
|
42
42
|
const i18n = useI18n();
|
|
43
43
|
const container$ = ref();
|
|
44
44
|
const day$ = ref([]);
|
|
45
|
-
const model = useModelDuplex(props, 'modelValue', [], v => wrapInArray(v));
|
|
45
|
+
const model = useModelDuplex(props, 'modelValue', [], v => v == null ? [] : wrapInArray(v));
|
|
46
46
|
const displayValue = computed(() => {
|
|
47
47
|
if (model.value.length > 0) return dateUtil.date(model.value[0]);
|
|
48
48
|
if (props.min) return dateUtil.date(props.min);
|
|
@@ -83,7 +83,7 @@ export const YDateCalendar = defineComponent({
|
|
|
83
83
|
return weeks.map((days, weekIndex) => days.map((date, index) => {
|
|
84
84
|
const isoDate = dateUtil.toISO(date);
|
|
85
85
|
const adjacent = !dateUtil.isSameMonth(date, month.value);
|
|
86
|
-
const selected = model.value
|
|
86
|
+
const selected = !!model.value?.find(value => value != null && dateUtil.isSameDay(date, value));
|
|
87
87
|
return {
|
|
88
88
|
date,
|
|
89
89
|
isoDate,
|
|
@@ -94,8 +94,8 @@ export const YDateCalendar = defineComponent({
|
|
|
94
94
|
disabled: isDisabled(date),
|
|
95
95
|
weekStart: index % 7 === 0,
|
|
96
96
|
weekEnd: index % 7 === 6,
|
|
97
|
-
rangeStart: selected && model.value.length > 1 && dateUtil.isSameDay(rangeStart.value, date),
|
|
98
|
-
rangeEnd: selected && model.value.length === 2 && dateUtil.isSameDay(rangeEnd.value, date),
|
|
97
|
+
rangeStart: selected && model.value.length > 1 && props.range && dateUtil.isSameDay(rangeStart.value, date),
|
|
98
|
+
rangeEnd: selected && model.value.length === 2 && props.range && dateUtil.isSameDay(rangeEnd.value, date),
|
|
99
99
|
weekIndex,
|
|
100
100
|
selected,
|
|
101
101
|
interval: isInterval(date),
|
|
@@ -220,7 +220,7 @@ export const YDateCalendar = defineComponent({
|
|
|
220
220
|
}, [(props.showAdjacentMonthDates || !item.adjacent) && _createVNode(_Fragment, null, [slots.day?.(slotProps) ?? _createVNode(YButton, _mergeProps({
|
|
221
221
|
"color": (item.selected || item.today) && !item.disabled ? props.color : undefined,
|
|
222
222
|
"disabled": item.disabled,
|
|
223
|
-
"variation": ['
|
|
223
|
+
"variation": ['rounded', item.selected ? 'filled' : item.today ? 'outlined' : 'text'].join(',')
|
|
224
224
|
}, slotProps.props), {
|
|
225
225
|
default: () => [item.day]
|
|
226
226
|
})])]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDateCalendar.mjs","names":["computed","defineComponent","ref","useModelDuplex","useRender","useDate","useI18n","wrapInArray","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","some","isSameDay","formatted","format","getDay","isDisabled","weekStart","weekEnd","rangeStart","rangeEnd","interval","isInterval","hidden","hovered","localized","weekDays","locale","getWeekdays","displayYearMonth","isAfter","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 { computed, defineComponent, ref } from 'vue';\r\nimport type { PropType } 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';\r\nimport { propsFactory } from '../../util/vue-component';\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 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.some((value: unknown) =>\r\n 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 dateUtil.isSameDay(rangeStart.value, date),\r\n rangeEnd:\r\n selected &&\r\n model.value.length === 2 &&\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 'icon',\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","defineComponent","ref","useModelDuplex","useRender","useDate","useI18n","wrapInArray","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 { computed, defineComponent, ref } from 'vue';\nimport type { PropType } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useDate } from '../../composables/date';\nimport { useI18n } from '../../composables/i18n';\nimport { wrapInArray } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\n\nimport './YDateCalendar.scss';\n\nexport const pressYDateCalendarPropsOptions = propsFactory(\n {\n year: [Number, String],\n month: [Number, String],\n modelValue: Array as PropType<unknown[]>,\n multiple: Boolean,\n range: Boolean,\n allowedDates: [Array, Function],\n max: null as any as PropType<unknown>,\n min: null as any as PropType<unknown>,\n disabled: Boolean,\n color: String,\n hideWeekdays: Boolean,\n showAdjacentMonthDates: {\n type: Boolean,\n default: true,\n },\n hideHeader: Boolean,\n },\n 'YDateCalendar',\n);\n\nexport const YDateCalendar = defineComponent({\n name: 'YDateCalendar',\n props: pressYDateCalendarPropsOptions(),\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:year': (date: any) => true,\n 'update:month': (date: any) => true,\n },\n setup(props, { slots }) {\n const dateUtil = useDate();\n const i18n = useI18n();\n const container$ = ref();\n const day$ = ref([]);\n\n const model = useModelDuplex(props, 'modelValue', [], (v) =>\n v == null ? [] : wrapInArray(v),\n );\n\n const displayValue = computed(() => {\n if (model.value.length > 0) return dateUtil.date(model.value[0]);\n if (props.min) return dateUtil.date(props.min);\n if (Array.isArray(props.allowedDates)) {\n return dateUtil.date(props.allowedDates[0]);\n }\n\n return dateUtil.date();\n });\n\n const year = useModelDuplex(\n props,\n 'year',\n undefined,\n (v) => {\n const value =\n v != null ? Number(v) : dateUtil.getYear(displayValue.value);\n\n return dateUtil.startOfYear(dateUtil.setYear(dateUtil.date(), value));\n },\n (v) => dateUtil.getYear(v),\n );\n\n const month = useModelDuplex(\n props,\n 'month',\n undefined,\n (v) => {\n const value =\n v != null ? Number(v) : dateUtil.getMonth(displayValue.value);\n const date = dateUtil.setYear(\n dateUtil.date(),\n dateUtil.getYear(year.value),\n );\n\n return dateUtil.setMonth(date, value);\n },\n (v) => dateUtil.getMonth(v),\n );\n\n const weeksInMonth = computed(() => {\n const weeks = dateUtil.getWeekArray(month.value);\n const days = weeks.flat();\n\n const daysInMonth = 6 * 7;\n if (days.length < daysInMonth) {\n const lastDay = days[days.length - 1];\n\n let week = [];\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(dateUtil.addDays(lastDay, day));\n\n if (day % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n }\n\n return weeks;\n });\n\n const daysInMonth = computed(() => {\n const weeks = weeksInMonth.value;\n const today = dateUtil.date();\n\n return weeks.map((days, weekIndex) =>\n days.map((date, index) => {\n const isoDate = dateUtil.toISO(date);\n const adjacent = !dateUtil.isSameMonth(date, month.value);\n const selected = !!model.value?.find(\n (value: unknown) =>\n value != null && dateUtil.isSameDay(date, value),\n );\n return {\n date,\n isoDate,\n formatted: dateUtil.format(date, 'keyboardDate'),\n year: dateUtil.getYear(date),\n month: dateUtil.getMonth(date),\n day: dateUtil.getDay(date),\n disabled: isDisabled(date),\n weekStart: index % 7 === 0,\n weekEnd: index % 7 === 6,\n rangeStart:\n selected &&\n model.value.length > 1 &&\n props.range &&\n dateUtil.isSameDay(rangeStart.value, date),\n rangeEnd:\n selected &&\n model.value.length === 2 &&\n props.range &&\n dateUtil.isSameDay(rangeEnd.value, date),\n weekIndex,\n selected,\n interval: isInterval(date),\n today: dateUtil.isSameDay(date, today),\n adjacent,\n hidden: adjacent && !props.showAdjacentMonthDates,\n hovered: false,\n localized: dateUtil.format(date, 'dayOfMonth'),\n };\n }),\n );\n });\n\n const weekDays = computed(() => {\n return i18n.locale && dateUtil.getWeekdays();\n });\n\n const displayYearMonth = computed(() => {\n return dateUtil.format(month.value, 'monthAndYear');\n });\n\n const rangeStart = computed(() => {\n if (props.range && model.value?.[0]) {\n return model.value[0];\n }\n });\n\n const rangeEnd = computed(() => {\n if (props.range && model.value?.[1]) {\n return model.value[1];\n }\n });\n\n function isDisabled(value: unknown) {\n if (props.disabled) return true;\n\n const date = dateUtil.date(value);\n\n if (props.min && dateUtil.isAfter(dateUtil.date(props.min), date))\n return true;\n if (props.max && dateUtil.isAfter(date, dateUtil.date(props.max)))\n return true;\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some((d) =>\n dateUtil.isSameDay(dateUtil.date(d), date),\n );\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date);\n }\n\n return false;\n }\n\n function isInterval(value: unknown) {\n if (!props.range) return false;\n if (model.value.length === 2) {\n const date = dateUtil.date(value);\n const startDate = dateUtil.date(model.value[0]);\n const endDate = dateUtil.date(model.value[1]);\n if (\n dateUtil.isAfter(date, startDate) &&\n dateUtil.isBefore(date, endDate)\n ) {\n return true;\n }\n }\n return false;\n }\n\n function onClickDay(item: any) {\n const value = item.date;\n if (props.multiple) {\n const index = model.value.findIndex((selection: unknown) =>\n dateUtil.isSameDay(selection, value),\n );\n\n if (props.range) {\n if (model.value.length === 1) {\n const firstDate = dateUtil.date(model.value[0]);\n const date = dateUtil.date(value);\n if (dateUtil.isAfter(firstDate, date)) {\n model.value = [date, dateUtil.endOfDay(model.value[0])];\n } else {\n model.value = [\n dateUtil.startOfDay(model.value[0]),\n dateUtil.endOfDay(value),\n ];\n }\n } else {\n model.value = [value];\n }\n } else {\n if (index === -1) {\n model.value = [...model.value, value];\n } else {\n const change = [...model.value];\n change.splice(index, 1);\n model.value = change;\n }\n }\n } else {\n model.value = [value];\n }\n }\n\n useRender(() => (\n <div\n class={[\n 'y-date-calendar',\n { 'y-date-calendar--range': props.range && model.value.length === 2 },\n ]}\n >\n {!props.hideHeader && (\n <header class=\"y-date-calendar__header\">\n {slots.header ? slots.header() : displayYearMonth.value}\n </header>\n )}\n <div ref={container$} class={['y-date-calendar__container']}>\n {!props.hideWeekdays && (\n <div class={['y-date-calendar__week']}>\n {weekDays.value.map((weekDay) => (\n <div\n class={['y-date-calendar__cell', 'y-date-calendar__weekday']}\n >\n {weekDay}\n </div>\n ))}\n </div>\n )}\n {daysInMonth.value.map((week, i) => {\n return (\n <div\n class={['y-date-calendar__week']}\n role=\"row\"\n aria-rowindex={i}\n >\n {week.map((item, index) => {\n const slotProps = {\n props: {\n onClick: () => {\n onClickDay(item);\n },\n },\n item,\n index,\n } as const;\n\n return (\n <div\n class={[\n 'y-date-calendar__cell',\n 'y-date-calendar__day',\n {\n 'y-date-calendar__day--adjacent': item.adjacent,\n 'y-date-calendar__day--hovered': item.hovered,\n 'y-date-calendar__day--selected': item.selected,\n 'y-date-calendar__day--week-start': item.weekStart,\n 'y-date-calendar__day--week-end': item.weekEnd,\n 'y-date-calendar__day--range-interval': item.interval,\n 'y-date-calendar__day--range-start': item.rangeStart,\n 'y-date-calendar__day--range-end': item.rangeEnd,\n },\n ]}\n data-date={!item.disabled ? item.isoDate : undefined}\n >\n {(props.showAdjacentMonthDates || !item.adjacent) && (\n <>\n {slots.day?.(slotProps) ?? (\n <YButton\n color={\n (item.selected || item.today) && !item.disabled\n ? props.color\n : undefined\n }\n disabled={item.disabled}\n variation={[\n 'rounded',\n item.selected\n ? 'filled'\n : item.today\n ? 'outlined'\n : 'text',\n ].join(',')}\n {...slotProps.props}\n >\n {item.day}\n </YButton>\n )}\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n ));\n\n return {\n day$,\n container$,\n dateUtil,\n displayValue,\n month,\n year,\n rangeStart,\n rangeEnd,\n model,\n };\n },\n});\n\nexport type YDateCalendar = InstanceType<typeof YDateCalendar>;\n"],"mappings":"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"}
|
|
@@ -1,12 +1,120 @@
|
|
|
1
|
-
import { createVNode as _createVNode } from "vue";
|
|
2
|
-
import { defineComponent } from 'vue';
|
|
1
|
+
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
|
2
|
+
import { Transition, computed, defineComponent, ref, watch } from 'vue';
|
|
3
|
+
import { useModelDuplex } from "../../composables/communication.mjs";
|
|
3
4
|
import { useRender } from "../../composables/component.mjs";
|
|
5
|
+
import { useDate } from "../../composables/date/index.mjs";
|
|
6
|
+
import { omit } from "../../util/index.mjs";
|
|
7
|
+
import { chooseProps, propsFactory } from "../../util/vue-component.mjs";
|
|
8
|
+
import { YDateCalendar, pressYDateCalendarPropsOptions } from "./YDateCalendar.mjs";
|
|
9
|
+
import { YDatePickerControl } from "./YDatePickerControl.mjs";
|
|
10
|
+
import { YMonthPicker } from "./YMonthPicker.mjs";
|
|
11
|
+
import { YYearPicker } from "./YYearPicker.mjs";
|
|
12
|
+
import "./YDatePicker.scss";
|
|
13
|
+
export const pressYDatePickerPropsOptions = propsFactory({
|
|
14
|
+
...omit(pressYDateCalendarPropsOptions(), ['modelValue']),
|
|
15
|
+
modelValue: null
|
|
16
|
+
}, 'YDatePicker');
|
|
4
17
|
export const YDatePicker = defineComponent({
|
|
5
18
|
name: 'YDatePicker',
|
|
6
|
-
|
|
19
|
+
props: pressYDatePickerPropsOptions(),
|
|
20
|
+
setup(props, _ref) {
|
|
21
|
+
let {
|
|
22
|
+
emit
|
|
23
|
+
} = _ref;
|
|
24
|
+
const yearPicker$ = ref();
|
|
25
|
+
const dateUtil = useDate();
|
|
26
|
+
const model = useModelDuplex(props, 'modelValue');
|
|
27
|
+
const mode = useModelDuplex(props, 'mode');
|
|
28
|
+
const month = ref(dateUtil.getMonth(dateUtil.date()));
|
|
29
|
+
const year = ref(dateUtil.getYear(dateUtil.date()));
|
|
30
|
+
const displayDate = computed(() => {
|
|
31
|
+
const date = dateUtil.setYear(dateUtil.date(), year.value);
|
|
32
|
+
return dateUtil.setMonth(date, month.value);
|
|
33
|
+
});
|
|
34
|
+
const monthText = computed(() => {
|
|
35
|
+
return dateUtil.format(displayDate.value, 'month');
|
|
36
|
+
});
|
|
37
|
+
const yearText = computed(() => {
|
|
38
|
+
return dateUtil.format(displayDate.value, 'year');
|
|
39
|
+
});
|
|
40
|
+
function toggleMonthMode() {
|
|
41
|
+
mode.value = mode.value === 'month' ? 'date' : 'month';
|
|
42
|
+
}
|
|
43
|
+
function toggleYearMode() {
|
|
44
|
+
mode.value = mode.value === 'year' ? 'date' : 'year';
|
|
45
|
+
}
|
|
46
|
+
function onClickYear() {
|
|
47
|
+
toggleYearMode();
|
|
48
|
+
}
|
|
49
|
+
function onClickMonth() {
|
|
50
|
+
toggleMonthMode();
|
|
51
|
+
}
|
|
52
|
+
function onClickPage(dir) {
|
|
53
|
+
if (mode.value === 'month') {
|
|
54
|
+
year.value = year.value + dir;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (mode.value === 'year') {
|
|
58
|
+
yearPicker$.value?.changePage(dir);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const change = month.value + dir;
|
|
62
|
+
if (change > 11) {
|
|
63
|
+
year.value += 1;
|
|
64
|
+
month.value = 0;
|
|
65
|
+
} else if (change < 0) {
|
|
66
|
+
year.value -= 1;
|
|
67
|
+
month.value = 11;
|
|
68
|
+
} else {
|
|
69
|
+
month.value = change;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function onClickPrev() {
|
|
73
|
+
onClickPage(-1);
|
|
74
|
+
}
|
|
75
|
+
function onClickNext() {
|
|
76
|
+
onClickPage(1);
|
|
77
|
+
}
|
|
78
|
+
watch(month, () => {
|
|
79
|
+
if (mode.value === 'month') toggleMonthMode();
|
|
80
|
+
emit('update:month', month.value);
|
|
81
|
+
});
|
|
82
|
+
watch(year, () => {
|
|
83
|
+
if (mode.value === 'year') {
|
|
84
|
+
mode.value = 'month';
|
|
85
|
+
}
|
|
86
|
+
emit('update:year', year.value);
|
|
87
|
+
});
|
|
7
88
|
useRender(() => _createVNode("div", {
|
|
8
89
|
"class": ['y-date-picker']
|
|
9
|
-
},
|
|
90
|
+
}, [_createVNode(YDatePickerControl, _mergeProps(chooseProps(props, YDatePickerControl.props), {
|
|
91
|
+
"yearText": yearText.value,
|
|
92
|
+
"monthText": monthText.value,
|
|
93
|
+
"onClick:year": onClickYear,
|
|
94
|
+
"onClick:month": onClickMonth,
|
|
95
|
+
"onClick:prev": onClickPrev,
|
|
96
|
+
"onClick:next": onClickNext
|
|
97
|
+
}), null), _createVNode(Transition, {
|
|
98
|
+
"name": "fade",
|
|
99
|
+
"mode": "out-in"
|
|
100
|
+
}, {
|
|
101
|
+
default: () => [mode.value === 'month' ? _createVNode(YMonthPicker, {
|
|
102
|
+
"modelValue": month.value,
|
|
103
|
+
"onUpdate:modelValue": $event => month.value = $event
|
|
104
|
+
}, null) : mode.value === 'year' ? _createVNode(YYearPicker, {
|
|
105
|
+
"modelValue": year.value,
|
|
106
|
+
"onUpdate:modelValue": $event => year.value = $event,
|
|
107
|
+
"ref": yearPicker$
|
|
108
|
+
}, null) : _createVNode(YDateCalendar, _mergeProps(chooseProps(props, YDateCalendar.props), {
|
|
109
|
+
"hideHeader": true,
|
|
110
|
+
"modelValue": model.value,
|
|
111
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
112
|
+
"month": month.value,
|
|
113
|
+
"onUpdate:month": $event => month.value = $event,
|
|
114
|
+
"year": year.value,
|
|
115
|
+
"onUpdate:year": $event => year.value = $event
|
|
116
|
+
}), null)]
|
|
117
|
+
})]));
|
|
10
118
|
}
|
|
11
119
|
});
|
|
12
120
|
//# sourceMappingURL=YDatePicker.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDatePicker.mjs","names":["defineComponent","useRender","YDatePicker","name","setup","_createVNode"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\
|
|
1
|
+
{"version":3,"file":"YDatePicker.mjs","names":["Transition","computed","defineComponent","ref","watch","useModelDuplex","useRender","useDate","omit","chooseProps","propsFactory","YDateCalendar","pressYDateCalendarPropsOptions","YDatePickerControl","YMonthPicker","YYearPicker","pressYDatePickerPropsOptions","modelValue","YDatePicker","name","props","setup","_ref","emit","yearPicker$","dateUtil","model","mode","month","getMonth","date","year","getYear","displayDate","setYear","value","setMonth","monthText","format","yearText","toggleMonthMode","toggleYearMode","onClickYear","onClickMonth","onClickPage","dir","changePage","change","onClickPrev","onClickNext","_createVNode","_mergeProps","default","$event"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { Transition, computed, defineComponent, ref, watch } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useDate } from '../../composables/date';\nimport { omit } from '../../util';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YDateCalendar, pressYDateCalendarPropsOptions } from './YDateCalendar';\nimport { YDatePickerControl } from './YDatePickerControl';\nimport { YMonthPicker } from './YMonthPicker';\nimport { YYearPicker } from './YYearPicker';\n\nimport './YDatePicker.scss';\n\nexport const pressYDatePickerPropsOptions = propsFactory(\n {\n ...omit(pressYDateCalendarPropsOptions(), ['modelValue']),\n modelValue: null,\n },\n 'YDatePicker',\n);\n\nexport const YDatePicker = defineComponent({\n name: 'YDatePicker',\n props: pressYDatePickerPropsOptions(),\n setup(props, { emit }) {\n const yearPicker$ = ref<typeof YYearPicker>();\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n const mode = useModelDuplex(props, 'mode');\n\n const month = ref(dateUtil.getMonth(dateUtil.date()));\n const year = ref(dateUtil.getYear(dateUtil.date()));\n const displayDate = computed(() => {\n const date = dateUtil.setYear(dateUtil.date(), year.value);\n return dateUtil.setMonth(date, month.value);\n });\n const monthText = computed(() => {\n return dateUtil.format(displayDate.value, 'month');\n });\n const yearText = computed(() => {\n return dateUtil.format(displayDate.value, 'year');\n });\n\n function toggleMonthMode() {\n mode.value = mode.value === 'month' ? 'date' : 'month';\n }\n\n function toggleYearMode() {\n mode.value = mode.value === 'year' ? 'date' : 'year';\n }\n\n function onClickYear() {\n toggleYearMode();\n }\n\n function onClickMonth() {\n toggleMonthMode();\n }\n\n function onClickPage(dir: number) {\n if (mode.value === 'month') {\n year.value = year.value + dir;\n return;\n }\n if (mode.value === 'year') {\n yearPicker$.value?.changePage(dir);\n return;\n }\n const change = month.value + dir;\n if (change > 11) {\n year.value += 1;\n month.value = 0;\n } else if (change < 0) {\n year.value -= 1;\n month.value = 11;\n } else {\n month.value = change;\n }\n }\n\n function onClickPrev() {\n onClickPage(-1);\n }\n\n function onClickNext() {\n onClickPage(1);\n }\n\n watch(month, () => {\n if (mode.value === 'month') toggleMonthMode();\n emit('update:month', month.value);\n });\n\n watch(year, () => {\n if (mode.value === 'year') {\n mode.value = 'month';\n }\n emit('update:year', year.value);\n });\n\n useRender(() => (\n <div class={['y-date-picker']}>\n <YDatePickerControl\n {...chooseProps(props, YDatePickerControl.props)}\n yearText={yearText.value}\n monthText={monthText.value}\n onClick:year={onClickYear}\n onClick:month={onClickMonth}\n onClick:prev={onClickPrev}\n onClick:next={onClickNext}\n ></YDatePickerControl>\n <Transition name=\"fade\" mode=\"out-in\">\n {mode.value === 'month' ? (\n <YMonthPicker v-model={month.value} />\n ) : mode.value === 'year' ? (\n <YYearPicker v-model={year.value} ref={yearPicker$} />\n ) : (\n <YDateCalendar\n {...chooseProps(props, YDateCalendar.props)}\n hideHeader={true}\n v-model={model.value}\n v-model:month={month.value}\n v-model:year={year.value}\n />\n )}\n </Transition>\n </div>\n ));\n },\n});\n\nexport type YDatePicker = InstanceType<typeof YDatePicker>;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createVNode as _createVNode } from "vue";
|
|
2
|
-
import { defineComponent } from 'vue';
|
|
2
|
+
import { computed, defineComponent } from 'vue';
|
|
3
3
|
import { useRender } from "../../composables/component.mjs";
|
|
4
4
|
import { propsFactory } from "../../util/vue-component.mjs";
|
|
5
|
+
import { YButton } from "../button/index.mjs";
|
|
6
|
+
import { YIcon } from "../icon/index.mjs";
|
|
5
7
|
import "./YDatePickerControl.scss";
|
|
6
8
|
export const pressYDatePickerControlPropsOptions = propsFactory({
|
|
7
9
|
disabled: {
|
|
@@ -9,21 +11,97 @@ export const pressYDatePickerControlPropsOptions = propsFactory({
|
|
|
9
11
|
default: false
|
|
10
12
|
},
|
|
11
13
|
nextIcon: {
|
|
12
|
-
type: [String, Object]
|
|
14
|
+
type: [String, Object],
|
|
15
|
+
default: '$next'
|
|
13
16
|
},
|
|
14
17
|
prevIcon: {
|
|
15
|
-
type: [String, Object]
|
|
18
|
+
type: [String, Object],
|
|
19
|
+
default: '$prev'
|
|
16
20
|
},
|
|
17
21
|
dropdownIcon: {
|
|
18
22
|
type: [String, Object]
|
|
19
|
-
}
|
|
23
|
+
},
|
|
24
|
+
mode: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: 'date'
|
|
27
|
+
},
|
|
28
|
+
yearText: String,
|
|
29
|
+
monthText: String
|
|
20
30
|
}, 'YDataPickerControl');
|
|
21
31
|
export const YDatePickerControl = defineComponent({
|
|
22
32
|
name: 'YDatePickerControl',
|
|
23
|
-
|
|
33
|
+
props: pressYDatePickerControlPropsOptions(),
|
|
34
|
+
emits: {
|
|
35
|
+
'click:year': () => true,
|
|
36
|
+
'click:month': () => true,
|
|
37
|
+
'click:prev': () => true,
|
|
38
|
+
'click:next': () => true
|
|
39
|
+
},
|
|
40
|
+
setup(props, _ref) {
|
|
41
|
+
let {
|
|
42
|
+
emit
|
|
43
|
+
} = _ref;
|
|
44
|
+
const disableYear = computed(() => {
|
|
45
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('year') : !!props.disabled;
|
|
46
|
+
});
|
|
47
|
+
const disableMonth = computed(() => {
|
|
48
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('month') : !!props.disabled;
|
|
49
|
+
});
|
|
50
|
+
const disablePrev = computed(() => {
|
|
51
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;
|
|
52
|
+
});
|
|
53
|
+
const disableNext = computed(() => {
|
|
54
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;
|
|
55
|
+
});
|
|
56
|
+
function onClickPrev() {
|
|
57
|
+
emit('click:prev');
|
|
58
|
+
}
|
|
59
|
+
function onClickNext() {
|
|
60
|
+
emit('click:next');
|
|
61
|
+
}
|
|
62
|
+
function onClickYear() {
|
|
63
|
+
emit('click:year');
|
|
64
|
+
}
|
|
65
|
+
function onClickMonth() {
|
|
66
|
+
emit('click:month');
|
|
67
|
+
}
|
|
24
68
|
useRender(() => _createVNode("div", {
|
|
25
69
|
"class": ['y-date-picker-control']
|
|
26
|
-
},
|
|
70
|
+
}, [_createVNode(YButton, {
|
|
71
|
+
"variation": "text",
|
|
72
|
+
"class": "y-date-picker-control__display",
|
|
73
|
+
"disabled": disableYear.value,
|
|
74
|
+
"onClick": onClickYear
|
|
75
|
+
}, {
|
|
76
|
+
default: () => [props.yearText]
|
|
77
|
+
}), _createVNode(YButton, {
|
|
78
|
+
"variation": "text",
|
|
79
|
+
"class": "y-date-picker-control__display",
|
|
80
|
+
"disabled": disableMonth.value,
|
|
81
|
+
"onClick": onClickMonth
|
|
82
|
+
}, {
|
|
83
|
+
default: () => [props.monthText]
|
|
84
|
+
}), _createVNode("div", {
|
|
85
|
+
"class": "flex-spacer"
|
|
86
|
+
}, null), _createVNode(YButton, {
|
|
87
|
+
"class": "y-date-picker-control__page-button",
|
|
88
|
+
"variation": "text",
|
|
89
|
+
"disabled": disablePrev.value,
|
|
90
|
+
"onClick": onClickPrev
|
|
91
|
+
}, {
|
|
92
|
+
default: () => [_createVNode(YIcon, {
|
|
93
|
+
"icon": props.prevIcon
|
|
94
|
+
}, null)]
|
|
95
|
+
}), _createVNode(YButton, {
|
|
96
|
+
"class": "y-date-picker-control__page-button",
|
|
97
|
+
"variation": "text",
|
|
98
|
+
"disabled": disableNext.value,
|
|
99
|
+
"onClick": onClickNext
|
|
100
|
+
}, {
|
|
101
|
+
default: () => [_createVNode(YIcon, {
|
|
102
|
+
"icon": props.nextIcon
|
|
103
|
+
}, null)]
|
|
104
|
+
})]));
|
|
27
105
|
}
|
|
28
106
|
});
|
|
29
107
|
//# sourceMappingURL=YDatePickerControl.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDatePickerControl.mjs","names":["defineComponent","useRender","propsFactory","pressYDatePickerControlPropsOptions","disabled","type","Boolean","String","Array","default","nextIcon","Object","prevIcon","dropdownIcon","YDatePickerControl","name","setup","_createVNode"],"sources":["../../../src/components/date-picker/YDatePickerControl.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\
|
|
1
|
+
{"version":3,"file":"YDatePickerControl.mjs","names":["computed","defineComponent","useRender","propsFactory","YButton","YIcon","pressYDatePickerControlPropsOptions","disabled","type","Boolean","String","Array","default","nextIcon","Object","prevIcon","dropdownIcon","mode","yearText","monthText","YDatePickerControl","name","props","emits","click:year","click:month","click:prev","click:next","setup","_ref","emit","disableYear","isArray","includes","disableMonth","disablePrev","disableNext","onClickPrev","onClickNext","onClickYear","onClickMonth","_createVNode","value"],"sources":["../../../src/components/date-picker/YDatePickerControl.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIcon } from '../icon';\n\nimport './YDatePickerControl.scss';\n\nexport const pressYDatePickerControlPropsOptions = propsFactory(\n {\n disabled: {\n type: [Boolean, String, Array] as PropType<boolean | string | string[]>,\n default: false,\n },\n nextIcon: {\n type: [String, Object],\n default: '$next',\n },\n prevIcon: {\n type: [String, Object],\n default: '$prev',\n },\n dropdownIcon: {\n type: [String, Object],\n },\n mode: {\n type: String as PropType<'date' | 'month' | 'year'>,\n default: 'date',\n },\n yearText: String,\n monthText: String,\n },\n 'YDataPickerControl',\n);\n\nexport const YDatePickerControl = defineComponent({\n name: 'YDatePickerControl',\n props: pressYDatePickerControlPropsOptions(),\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n setup(props, { emit }) {\n const disableYear = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('year')\n : !!props.disabled;\n });\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('month')\n : !!props.disabled;\n });\n\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled;\n });\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled;\n });\n\n function onClickPrev() {\n emit('click:prev');\n }\n\n function onClickNext() {\n emit('click:next');\n }\n\n function onClickYear() {\n emit('click:year');\n }\n\n function onClickMonth() {\n emit('click:month');\n }\n\n useRender(() => (\n <div class={['y-date-picker-control']}>\n <YButton\n variation=\"text\"\n class=\"y-date-picker-control__display\"\n disabled={disableYear.value}\n onClick={onClickYear}\n >\n {props.yearText}\n </YButton>\n <YButton\n variation=\"text\"\n class=\"y-date-picker-control__display\"\n disabled={disableMonth.value}\n onClick={onClickMonth}\n >\n {props.monthText}\n </YButton>\n <div class=\"flex-spacer\"></div>\n <YButton\n class=\"y-date-picker-control__page-button\"\n variation=\"text\"\n disabled={disablePrev.value}\n onClick={onClickPrev}\n >\n <YIcon icon={props.prevIcon as string} />\n </YButton>\n <YButton\n class=\"y-date-picker-control__page-button\"\n variation=\"text\"\n disabled={disableNext.value}\n onClick={onClickNext}\n >\n <YIcon icon={props.nextIcon as string} />\n </YButton>\n </div>\n ));\n },\n});\n\nexport type YDatePickerControl = InstanceType<typeof YDatePickerControl>;\n"],"mappings":";AAAA,SAASA,QAAQ,EAAEC,eAAe,QAAQ,KAAK;AAAC,SAGvCC,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,KAAK;AAEd;AAEA,OAAO,MAAMC,mCAAmC,GAAGH,YAAY,CAC7D;EACEI,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,KAAK,CAA0C;IACvEC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRL,IAAI,EAAE,CAACE,MAAM,EAAEI,MAAM,CAAC;IACtBF,OAAO,EAAE;EACX,CAAC;EACDG,QAAQ,EAAE;IACRP,IAAI,EAAE,CAACE,MAAM,EAAEI,MAAM,CAAC;IACtBF,OAAO,EAAE;EACX,CAAC;EACDI,YAAY,EAAE;IACZR,IAAI,EAAE,CAACE,MAAM,EAAEI,MAAM;EACvB,CAAC;EACDG,IAAI,EAAE;IACJT,IAAI,EAAEE,MAA6C;IACnDE,OAAO,EAAE;EACX,CAAC;EACDM,QAAQ,EAAER,MAAM;EAChBS,SAAS,EAAET;AACb,CAAC,EACD,oBACF,CAAC;AAED,OAAO,MAAMU,kBAAkB,GAAGnB,eAAe,CAAC;EAChDoB,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAEhB,mCAAmC,CAAC,CAAC;EAC5CiB,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,aAAa,EAAEC,CAAA,KAAM,IAAI;IACzB,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM;EACtB,CAAC;EACDC,KAAKA,CAACN,KAAK,EAAAO,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACnB,MAAME,WAAW,GAAG/B,QAAQ,CAAC,MAAM;MACjC,OAAOW,KAAK,CAACqB,OAAO,CAACV,KAAK,CAACf,QAAQ,CAAC,GAChCe,KAAK,CAACf,QAAQ,CAAC0B,QAAQ,CAAC,MAAM,CAAC,GAC/B,CAAC,CAACX,KAAK,CAACf,QAAQ;IACtB,CAAC,CAAC;IACF,MAAM2B,YAAY,GAAGlC,QAAQ,CAAC,MAAM;MAClC,OAAOW,KAAK,CAACqB,OAAO,CAACV,KAAK,CAACf,QAAQ,CAAC,GAChCe,KAAK,CAACf,QAAQ,CAAC0B,QAAQ,CAAC,OAAO,CAAC,GAChC,CAAC,CAACX,KAAK,CAACf,QAAQ;IACtB,CAAC,CAAC;IAEF,MAAM4B,WAAW,GAAGnC,QAAQ,CAAC,MAAM;MACjC,OAAOW,KAAK,CAACqB,OAAO,CAACV,KAAK,CAACf,QAAQ,CAAC,GAChCe,KAAK,CAACf,QAAQ,CAAC0B,QAAQ,CAAC,MAAM,CAAC,GAC/B,CAAC,CAACX,KAAK,CAACf,QAAQ;IACtB,CAAC,CAAC;IACF,MAAM6B,WAAW,GAAGpC,QAAQ,CAAC,MAAM;MACjC,OAAOW,KAAK,CAACqB,OAAO,CAACV,KAAK,CAACf,QAAQ,CAAC,GAChCe,KAAK,CAACf,QAAQ,CAAC0B,QAAQ,CAAC,MAAM,CAAC,GAC/B,CAAC,CAACX,KAAK,CAACf,QAAQ;IACtB,CAAC,CAAC;IAEF,SAAS8B,WAAWA,CAAA,EAAG;MACrBP,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASQ,WAAWA,CAAA,EAAG;MACrBR,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASS,WAAWA,CAAA,EAAG;MACrBT,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASU,YAAYA,CAAA,EAAG;MACtBV,IAAI,CAAC,aAAa,CAAC;IACrB;IAEA5B,SAAS,CAAC,MAAAuC,YAAA;MAAA,SACI,CAAC,uBAAuB;IAAC,IAAAA,YAAA,CAAArC,OAAA;MAAA,aAEvB,MAAM;MAAA,SACV,gCAAgC;MAAA,YAC5B2B,WAAW,CAACW,KAAK;MAAA,WAClBH;IAAW;MAAA3B,OAAA,EAAAA,CAAA,MAEnBU,KAAK,CAACJ,QAAQ;IAAA,IAAAuB,YAAA,CAAArC,OAAA;MAAA,aAGL,MAAM;MAAA,SACV,gCAAgC;MAAA,YAC5B8B,YAAY,CAACQ,KAAK;MAAA,WACnBF;IAAY;MAAA5B,OAAA,EAAAA,CAAA,MAEpBU,KAAK,CAACH,SAAS;IAAA,IAAAsB,YAAA;MAAA,SAEP;IAAa,UAAAA,YAAA,CAAArC,OAAA;MAAA,SAEhB,oCAAoC;MAAA,aAChC,MAAM;MAAA,YACN+B,WAAW,CAACO,KAAK;MAAA,WAClBL;IAAW;MAAAzB,OAAA,EAAAA,CAAA,MAAA6B,YAAA,CAAApC,KAAA;QAAA,QAEPiB,KAAK,CAACP;MAAQ;IAAA,IAAA0B,YAAA,CAAArC,OAAA;MAAA,SAGrB,oCAAoC;MAAA,aAChC,MAAM;MAAA,YACNgC,WAAW,CAACM,KAAK;MAAA,WAClBJ;IAAW;MAAA1B,OAAA,EAAAA,CAAA,MAAA6B,YAAA,CAAApC,KAAA;QAAA,QAEPiB,KAAK,CAACT;MAAQ;IAAA,IAGhC,CAAC;EACJ;AACF,CAAC,CAAC"}
|