@94ai-plus/nf-date-picker 0.0.0-stage → 1.0.0-alpha.5
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/LICENSE +21 -0
- package/README.md +69 -2
- package/dist/browser/index.js +2355 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/index.umd.js +3 -0
- package/dist/browser/index.umd.js.map +1 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/es/index.mjs +785 -0
- package/dist/es/index.mjs.map +1 -0
- package/dist/readme/94logo.png +0 -0
- package/dist/readme/common-plus.svg +7 -0
- package/dist/readme/contributors-wall.svg +16 -0
- package/dist/readme/contributors.svg +27 -0
- package/dist/style/index.css +2 -0
- package/dist/types/date-picker.vue.d.ts +34 -0
- package/dist/types/global.d.ts +13 -0
- package/dist/types/half-year-picker.vue.d.ts +30 -0
- package/dist/types/half-year-range-picker.vue.d.ts +30 -0
- package/dist/types/index.d.ts +471 -0
- package/dist/types/model.d.ts +5 -0
- package/dist/types/types.d.ts +36 -0
- package/dist/types/week-range-picker.vue.d.ts +30 -0
- package/package.json +63 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["_sfc_render","_openBlock","_createBlock","_mergeProps","_withCtx","_createElementVNode","_normalizeClass","_toDisplayString","_createElementBlock","_Fragment","_createCommentVNode","_withModifiers","_withKeys","_renderList","_sfc_main","_sfc_render","_openBlock","_createBlock","_mergeProps","_sfc_main","_sfc_render","_openBlock","_createBlock","_mergeProps","_sfc_main","_openBlock","_createBlock","_mergeProps","_sfc_main","HalfYear","HalfYearRange","WeekRange","View","readDate","value","result","format","dayjs","halfYearStart","normalizeWeekRange","sorted","values","a","b","start","locale","end","weekStartsOn","writeDate","date_picker_vue_vue_type_script_setup_true_lang_default","__expose","__emit","rawProps","__props","props","useComponentDefaults","emit","inheritedDisabled","useFormDisabled","disabled","computed","useFormItem","useLocale","globalLocale","useGlobalConfig","inheritedSize","useFormSize","size","isRange","parsed","visible","ref","draft","hover","year","trigger","panel","weekPicker","years","panelDate","date","month","firstYear","watch","handleClose","formItem","label","t","display","selected","dateDisabled","inRange","ends","times","commit","triggerBlur","event","select","dates","nextTick","clear","handleOpen","focus","blur","keydown","cellKeydown","delta","next","weekValue","updateWeek","item","weekDisabled","index","weekCellClass","__returned__","ElDatePicker","ElPopover","_plugin_vue_export_helper_default","target","sfc","key","val","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_render$3","$setup","openBlock","createBlock","\"ElDatePicker\"","mergeProps","_ctx","_cache","$event","\"ElPopover\"","withCtx","createElementVNode","normalizeClass","toDisplayString","createElementBlock","Fragment","createCommentVNode","withModifiers","withKeys","renderList","panelYear","date_picker_default","half_year_picker_vue_vue_type_script_setup_true_lang_default","view","_sfc_render$2","\"View\"","half_year_picker_default","half_year_range_picker_vue_vue_type_script_setup_true_lang_default","_sfc_render$1","half_year_range_picker_default","week_range_picker_vue_vue_type_script_setup_true_lang_default","_sfc_render","week_range_picker_default","NfHalfYearPicker","NfHalfYearRangePicker","NfWeekRangePicker","NfDatePicker","app"],"sources":["../../src/model.ts","../../src/date-picker.vue","../../src/date-picker.vue","../../src/half-year-picker.vue","../../src/half-year-picker.vue","../../src/half-year-range-picker.vue","../../src/half-year-range-picker.vue","../../src/week-range-picker.vue","../../src/week-range-picker.vue","../../src/index.ts"],"sourcesContent":["import { dayjs } from 'element-plus'\nimport type { DatePickerValue } from './types'\n\nexport function readDate(value: DatePickerValue | null | undefined, format?: string): Date | undefined {\n if (value == null || value === '') return undefined\n const result = typeof value === 'string' && format ? dayjs(value, format) : dayjs(value)\n return result.isValid() ? result.toDate() : undefined\n}\nexport function halfYearStart(value: Date): Date {\n const result = new Date(value.getTime())\n result.setMonth(value.getMonth() < 6 ? 0 : 6, 1)\n result.setHours(0, 0, 0, 0)\n return result\n}\nexport function normalizeWeekRange(values: Date[], locale: string, weekStartsOn?: number): [Date, Date] {\n const sorted = [...values].sort((a, b) => a.getTime() - b.getTime())\n const start = dayjs(sorted[0]).locale(locale).startOf('day')\n const end = dayjs(sorted[sorted.length - 1]).locale(locale).startOf('day')\n if (weekStartsOn == null) return [start.startOf('week').toDate(), end.endOf('week').startOf('day').toDate()]\n return [start.subtract((start.day() - weekStartsOn + 7) % 7, 'day').toDate(), end.add((weekStartsOn + 6 - end.day() + 7) % 7, 'day').toDate()]\n}\nexport function writeDate(value: Date, format?: string): Date | string {\n return format ? dayjs(value).format(format) : new Date(value.getTime())\n}\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { ElDatePicker, ElPopover, dayjs, useGlobalConfig, useFormItem, useFormDisabled, useFormSize, type DatePickerInstance } from 'element-plus'\nimport { useLocale } from '@94ai-plus/common-locale'\nimport { halfYearStart, normalizeWeekRange, readDate, writeDate } from './model'\nimport type { DatePickerModelValue, NfDatePickerEmits, NfDatePickerProps } from './types'\n\ndefineOptions({ name: 'NfDatePicker', inheritAttrs: false })\nconst rawProps = withDefaults(defineProps<NfDatePickerProps>(), { type: 'halfyear', disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfDatePicker')\nconst emit = defineEmits<NfDatePickerEmits>()\nconst inheritedDisabled = useFormDisabled()\nconst disabled = computed(() => props.disabled || inheritedDisabled.value)\nconst { formItem } = useFormItem()\nconst { t } = useLocale()\nconst globalLocale = useGlobalConfig('locale')\nconst inheritedSize = useFormSize()\nconst size = computed(() => props.size || inheritedSize.value || 'default')\nconst isRange = computed(() => props.type !== 'halfyear')\nconst values = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]).flatMap(value => {\n const parsed = readDate(value, props.valueFormat)\n return parsed ? [halfYearStart(parsed)] : []\n}))\nconst visible = ref(false), draft = ref<Date>(), hover = ref<Date>(), year = ref(new Date().getFullYear())\nconst trigger = ref<HTMLElement>(), panel = ref<HTMLElement>(), weekPicker = ref<DatePickerInstance>()\nconst years = computed(() => isRange.value ? [year.value, year.value + 1] : [year.value])\nfunction panelDate(year: number, month: number) {\n const date = new Date(year, month, 1)\n // The numeric Date constructor maps years 0–99 to 1900–1999.\n date.setFullYear(year)\n return date\n}\nconst firstYear = () => values.value[0]?.getFullYear() ?? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue)?.getFullYear() ?? new Date().getFullYear()\nwatch(visible, value => {\n if (value) { year.value = firstYear(); draft.value = undefined; hover.value = undefined }\n emit('visible-change', value)\n})\nwatch(disabled, value => { if (value) handleClose() })\nwatch(() => props.modelValue, () => {\n draft.value = undefined; hover.value = undefined\n if (props.type !== 'weekrange') void formItem?.validate('change').catch(() => undefined)\n}, { flush: 'post' })\nfunction label(date?: Date) { return date ? t('datePicker.halfYear', { year: date.getFullYear(), half: t(date.getMonth() < 6 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }) : '' }\nconst display = computed(() => values.value.map(value => props.format ? dayjs(value).format(props.format) : label(value)))\nconst selected = (date: Date) => values.value.some(value => value.getTime() === date.getTime())\nconst dateDisabled = (date: Date) => props.disabledDate?.(date) ?? false\nfunction inRange(date: Date) {\n const ends = draft.value ? [draft.value, hover.value ?? draft.value] : values.value\n if (ends.length < 2) return false\n const times = ends.map(value => value.getTime())\n return date.getTime() >= Math.min(...times) && date.getTime() <= Math.max(...times)\n}\nfunction commit(value: DatePickerModelValue) {\n emit('update:modelValue', value); emit('change', value)\n}\nfunction triggerBlur(event: FocusEvent) {\n emit('blur', event)\n void formItem?.validate('blur').catch(() => undefined)\n}\nfunction select(date: Date) {\n if (disabled.value || dateDisabled(date)) return\n if (!isRange.value) commit(writeDate(date, props.valueFormat))\n else if (!draft.value) { draft.value = date; hover.value = date; emit('calendar-change', [date, null]); return }\n else {\n const dates = [draft.value, date].sort((a, b) => a.getTime() - b.getTime())\n emit('calendar-change', dates)\n commit(dates.map(value => writeDate(value, props.valueFormat)))\n }\n visible.value = false\n void nextTick(() => trigger.value?.focus())\n}\nfunction clear() { if (!disabled.value) { draft.value = undefined; commit(null); emit('clear') } }\nfunction handleOpen() { if (!disabled.value) { if (props.type === 'weekrange') weekPicker.value?.handleOpen(); else visible.value = true } }\nfunction handleClose() { visible.value = false; weekPicker.value?.handleClose() }\nfunction focus() { if (props.type === 'weekrange') weekPicker.value?.focus(); else trigger.value?.focus() }\nfunction blur() { if (props.type === 'weekrange') weekPicker.value?.blur(); else trigger.value?.blur() }\nfunction keydown(event: KeyboardEvent) {\n if (event.key === 'Escape') { handleClose(); focus() }\n else if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n event.preventDefault(); handleOpen()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>('.nf-date-picker-cell:not(:disabled)')?.focus())\n }\n}\nfunction cellKeydown(event: KeyboardEvent, date: Date) {\n if (event.key === 'Escape') { handleClose(); focus(); return }\n const delta = ({ ArrowLeft: -6, ArrowRight: 6, ArrowUp: -12, ArrowDown: 12 } as Record<string, number>)[event.key]\n if (!delta) return\n event.preventDefault()\n const next = dayjs(date).add(delta, 'month').toDate()\n if (next.getFullYear() < 1 || next.getFullYear() > 9998) return\n if (!years.value.includes(next.getFullYear())) year.value = next.getFullYear()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>(`[data-date=\"${dayjs(next).format('YYYY-MM-DD')}\"]`)?.focus())\n}\nconst weekValue = computed(() => Array.isArray(props.modelValue) ? props.modelValue.map(value => readDate(value, props.valueFormat)).filter((value): value is Date => !!value) : [])\nfunction updateWeek(value: DatePickerModelValue | undefined) {\n if (disabled.value) return\n if (!Array.isArray(value)) { commit(null); return }\n if (!value?.length) { commit(null); return }\n const parsed = value.map(item => readDate(item)).filter((item): item is Date => !!item)\n if (parsed.length !== 2 || parsed.some(weekDisabled)) return\n const dates = normalizeWeekRange(parsed, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n commit(dates.map(date => writeDate(date, props.valueFormat)))\n}\nfunction weekDisabled(date: Date) {\n if (!props.disabledDate) return false\n const [start] = normalizeWeekRange([date], globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return Array.from({ length: 7 }, (_, index) => dayjs(start).add(index, 'day').toDate()).some(dateDisabled)\n}\nfunction weekCellClass(date: Date) {\n if (weekValue.value.length !== 2) return ''\n const [start, end] = normalizeWeekRange(weekValue.value, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return date >= start && date <= end ? 'nf-week-range-selected' : ''\n}\ndefineExpose({ focus, blur, handleOpen, handleClose })\n</script>\n<template>\n <ElDatePicker v-if=\"props.type === 'weekrange'\" ref=\"weekPicker\" v-bind=\"$attrs\" class=\"nf-date-picker nf-week-range-picker\" type=\"daterange\" :model-value=\"weekValue\" :size=\"size\" :disabled=\"disabled\" :clearable=\"props.clearable\" :format=\"props.format\" :default-value=\"props.defaultValue\" :disabled-date=\"weekDisabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-week-range-popper', props.popperClass].filter(Boolean).join(' ')\" :start-placeholder=\"props.startPlaceholder ?? t('datePicker.startWeek')\" :end-placeholder=\"props.endPlaceholder ?? t('datePicker.endWeek')\" :cell-class-name=\"weekCellClass\" @update:model-value=\"updateWeek\" @clear=\"emit('clear')\" @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\" />\n <ElPopover v-else v-model:visible=\"visible\" trigger=\"click\" placement=\"bottom-start\" :disabled=\"disabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-date-picker-popper', props.popperClass].filter(Boolean).join(' ')\" :width=\"isRange ? 576 : 288\" :show-arrow=\"false\">\n <template #reference>\n <div ref=\"trigger\" v-bind=\"$attrs\" class=\"nf-date-picker nf-date-picker-reference el-input__wrapper\" :class=\"['is-' + size, { 'is-disabled': disabled, 'is-focus': visible, 'is-range': isRange }]\" role=\"combobox\" :aria-expanded=\"visible\" aria-haspopup=\"dialog\" :aria-disabled=\"disabled\" :aria-label=\"props.placeholder ?? t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" :tabindex=\"disabled ? -1 : 0\" @keydown=\"keydown\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\">\n <svg class=\"nf-date-picker-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" /><path d=\"M7 3v4m10-4v4M3 11h18\" /></svg>\n <span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[0] }\">{{ display[0] || (isRange ? props.startPlaceholder ?? t('datePicker.startHalfYear') : props.placeholder ?? t('datePicker.halfYearPlaceholder')) }}</span>\n <template v-if=\"isRange\"><span class=\"nf-date-picker-separator\">→</span><span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[1] }\">{{ display[1] || props.endPlaceholder || t('datePicker.endHalfYear') }}</span></template>\n <button v-if=\"props.clearable && values.length && !disabled\" class=\"nf-date-picker-clear\" type=\"button\" :aria-label=\"t('datePicker.clear')\" @click.stop=\"clear\" @keydown.stop>×</button>\n </div>\n </template>\n <div ref=\"panel\" class=\"nf-date-picker-panel\" :class=\"{ 'is-range': isRange }\" role=\"dialog\" :aria-label=\"t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" @keydown.esc.stop=\"handleClose(); focus()\">\n <section v-for=\"(panelYear, index) in years\" :key=\"panelYear\" class=\"nf-date-picker-year\">\n <header>\n <button v-if=\"index === 0\" type=\"button\" :disabled=\"year <= 1\" :aria-label=\"t('datePicker.previousYear')\" @click=\"year--\">«</button>\n <span>{{ panelYear }}</span>\n <button v-if=\"index === years.length - 1\" type=\"button\" :disabled=\"year >= 9998\" :aria-label=\"t('datePicker.nextYear')\" @click=\"year++\">»</button>\n </header>\n <div class=\"nf-date-picker-grid\">\n <button v-for=\"month in [0, 6]\" :key=\"month\" type=\"button\" class=\"nf-date-picker-cell\" :data-date=\"dayjs(panelDate(panelYear, month)).format('YYYY-MM-DD')\" :disabled=\"props.disabledDate?.(panelDate(panelYear, month))\" :aria-pressed=\"selected(panelDate(panelYear, month))\" :class=\"{ 'is-selected': selected(panelDate(panelYear, month)), 'is-in-range': inRange(panelDate(panelYear, month)), 'is-range-start': draft?.getTime() === panelDate(panelYear, month).getTime() }\" @mouseenter=\"hover = panelDate(panelYear, month)\" @focus=\"hover = panelDate(panelYear, month)\" @click=\"select(panelDate(panelYear, month))\" @keydown=\"cellKeydown($event, panelDate(panelYear, month))\">{{ t(month === 0 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }}</button>\n </div>\n </section>\n </div>\n </ElPopover>\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { ElDatePicker, ElPopover, dayjs, useGlobalConfig, useFormItem, useFormDisabled, useFormSize, type DatePickerInstance } from 'element-plus'\nimport { useLocale } from '@94ai-plus/common-locale'\nimport { halfYearStart, normalizeWeekRange, readDate, writeDate } from './model'\nimport type { DatePickerModelValue, NfDatePickerEmits, NfDatePickerProps } from './types'\n\ndefineOptions({ name: 'NfDatePicker', inheritAttrs: false })\nconst rawProps = withDefaults(defineProps<NfDatePickerProps>(), { type: 'halfyear', disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfDatePicker')\nconst emit = defineEmits<NfDatePickerEmits>()\nconst inheritedDisabled = useFormDisabled()\nconst disabled = computed(() => props.disabled || inheritedDisabled.value)\nconst { formItem } = useFormItem()\nconst { t } = useLocale()\nconst globalLocale = useGlobalConfig('locale')\nconst inheritedSize = useFormSize()\nconst size = computed(() => props.size || inheritedSize.value || 'default')\nconst isRange = computed(() => props.type !== 'halfyear')\nconst values = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]).flatMap(value => {\n const parsed = readDate(value, props.valueFormat)\n return parsed ? [halfYearStart(parsed)] : []\n}))\nconst visible = ref(false), draft = ref<Date>(), hover = ref<Date>(), year = ref(new Date().getFullYear())\nconst trigger = ref<HTMLElement>(), panel = ref<HTMLElement>(), weekPicker = ref<DatePickerInstance>()\nconst years = computed(() => isRange.value ? [year.value, year.value + 1] : [year.value])\nfunction panelDate(year: number, month: number) {\n const date = new Date(year, month, 1)\n // The numeric Date constructor maps years 0–99 to 1900–1999.\n date.setFullYear(year)\n return date\n}\nconst firstYear = () => values.value[0]?.getFullYear() ?? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue)?.getFullYear() ?? new Date().getFullYear()\nwatch(visible, value => {\n if (value) { year.value = firstYear(); draft.value = undefined; hover.value = undefined }\n emit('visible-change', value)\n})\nwatch(disabled, value => { if (value) handleClose() })\nwatch(() => props.modelValue, () => {\n draft.value = undefined; hover.value = undefined\n if (props.type !== 'weekrange') void formItem?.validate('change').catch(() => undefined)\n}, { flush: 'post' })\nfunction label(date?: Date) { return date ? t('datePicker.halfYear', { year: date.getFullYear(), half: t(date.getMonth() < 6 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }) : '' }\nconst display = computed(() => values.value.map(value => props.format ? dayjs(value).format(props.format) : label(value)))\nconst selected = (date: Date) => values.value.some(value => value.getTime() === date.getTime())\nconst dateDisabled = (date: Date) => props.disabledDate?.(date) ?? false\nfunction inRange(date: Date) {\n const ends = draft.value ? [draft.value, hover.value ?? draft.value] : values.value\n if (ends.length < 2) return false\n const times = ends.map(value => value.getTime())\n return date.getTime() >= Math.min(...times) && date.getTime() <= Math.max(...times)\n}\nfunction commit(value: DatePickerModelValue) {\n emit('update:modelValue', value); emit('change', value)\n}\nfunction triggerBlur(event: FocusEvent) {\n emit('blur', event)\n void formItem?.validate('blur').catch(() => undefined)\n}\nfunction select(date: Date) {\n if (disabled.value || dateDisabled(date)) return\n if (!isRange.value) commit(writeDate(date, props.valueFormat))\n else if (!draft.value) { draft.value = date; hover.value = date; emit('calendar-change', [date, null]); return }\n else {\n const dates = [draft.value, date].sort((a, b) => a.getTime() - b.getTime())\n emit('calendar-change', dates)\n commit(dates.map(value => writeDate(value, props.valueFormat)))\n }\n visible.value = false\n void nextTick(() => trigger.value?.focus())\n}\nfunction clear() { if (!disabled.value) { draft.value = undefined; commit(null); emit('clear') } }\nfunction handleOpen() { if (!disabled.value) { if (props.type === 'weekrange') weekPicker.value?.handleOpen(); else visible.value = true } }\nfunction handleClose() { visible.value = false; weekPicker.value?.handleClose() }\nfunction focus() { if (props.type === 'weekrange') weekPicker.value?.focus(); else trigger.value?.focus() }\nfunction blur() { if (props.type === 'weekrange') weekPicker.value?.blur(); else trigger.value?.blur() }\nfunction keydown(event: KeyboardEvent) {\n if (event.key === 'Escape') { handleClose(); focus() }\n else if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n event.preventDefault(); handleOpen()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>('.nf-date-picker-cell:not(:disabled)')?.focus())\n }\n}\nfunction cellKeydown(event: KeyboardEvent, date: Date) {\n if (event.key === 'Escape') { handleClose(); focus(); return }\n const delta = ({ ArrowLeft: -6, ArrowRight: 6, ArrowUp: -12, ArrowDown: 12 } as Record<string, number>)[event.key]\n if (!delta) return\n event.preventDefault()\n const next = dayjs(date).add(delta, 'month').toDate()\n if (next.getFullYear() < 1 || next.getFullYear() > 9998) return\n if (!years.value.includes(next.getFullYear())) year.value = next.getFullYear()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>(`[data-date=\"${dayjs(next).format('YYYY-MM-DD')}\"]`)?.focus())\n}\nconst weekValue = computed(() => Array.isArray(props.modelValue) ? props.modelValue.map(value => readDate(value, props.valueFormat)).filter((value): value is Date => !!value) : [])\nfunction updateWeek(value: DatePickerModelValue | undefined) {\n if (disabled.value) return\n if (!Array.isArray(value)) { commit(null); return }\n if (!value?.length) { commit(null); return }\n const parsed = value.map(item => readDate(item)).filter((item): item is Date => !!item)\n if (parsed.length !== 2 || parsed.some(weekDisabled)) return\n const dates = normalizeWeekRange(parsed, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n commit(dates.map(date => writeDate(date, props.valueFormat)))\n}\nfunction weekDisabled(date: Date) {\n if (!props.disabledDate) return false\n const [start] = normalizeWeekRange([date], globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return Array.from({ length: 7 }, (_, index) => dayjs(start).add(index, 'day').toDate()).some(dateDisabled)\n}\nfunction weekCellClass(date: Date) {\n if (weekValue.value.length !== 2) return ''\n const [start, end] = normalizeWeekRange(weekValue.value, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return date >= start && date <= end ? 'nf-week-range-selected' : ''\n}\ndefineExpose({ focus, blur, handleOpen, handleClose })\n</script>\n<template>\n <ElDatePicker v-if=\"props.type === 'weekrange'\" ref=\"weekPicker\" v-bind=\"$attrs\" class=\"nf-date-picker nf-week-range-picker\" type=\"daterange\" :model-value=\"weekValue\" :size=\"size\" :disabled=\"disabled\" :clearable=\"props.clearable\" :format=\"props.format\" :default-value=\"props.defaultValue\" :disabled-date=\"weekDisabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-week-range-popper', props.popperClass].filter(Boolean).join(' ')\" :start-placeholder=\"props.startPlaceholder ?? t('datePicker.startWeek')\" :end-placeholder=\"props.endPlaceholder ?? t('datePicker.endWeek')\" :cell-class-name=\"weekCellClass\" @update:model-value=\"updateWeek\" @clear=\"emit('clear')\" @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\" />\n <ElPopover v-else v-model:visible=\"visible\" trigger=\"click\" placement=\"bottom-start\" :disabled=\"disabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-date-picker-popper', props.popperClass].filter(Boolean).join(' ')\" :width=\"isRange ? 576 : 288\" :show-arrow=\"false\">\n <template #reference>\n <div ref=\"trigger\" v-bind=\"$attrs\" class=\"nf-date-picker nf-date-picker-reference el-input__wrapper\" :class=\"['is-' + size, { 'is-disabled': disabled, 'is-focus': visible, 'is-range': isRange }]\" role=\"combobox\" :aria-expanded=\"visible\" aria-haspopup=\"dialog\" :aria-disabled=\"disabled\" :aria-label=\"props.placeholder ?? t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" :tabindex=\"disabled ? -1 : 0\" @keydown=\"keydown\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\">\n <svg class=\"nf-date-picker-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" /><path d=\"M7 3v4m10-4v4M3 11h18\" /></svg>\n <span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[0] }\">{{ display[0] || (isRange ? props.startPlaceholder ?? t('datePicker.startHalfYear') : props.placeholder ?? t('datePicker.halfYearPlaceholder')) }}</span>\n <template v-if=\"isRange\"><span class=\"nf-date-picker-separator\">→</span><span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[1] }\">{{ display[1] || props.endPlaceholder || t('datePicker.endHalfYear') }}</span></template>\n <button v-if=\"props.clearable && values.length && !disabled\" class=\"nf-date-picker-clear\" type=\"button\" :aria-label=\"t('datePicker.clear')\" @click.stop=\"clear\" @keydown.stop>×</button>\n </div>\n </template>\n <div ref=\"panel\" class=\"nf-date-picker-panel\" :class=\"{ 'is-range': isRange }\" role=\"dialog\" :aria-label=\"t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" @keydown.esc.stop=\"handleClose(); focus()\">\n <section v-for=\"(panelYear, index) in years\" :key=\"panelYear\" class=\"nf-date-picker-year\">\n <header>\n <button v-if=\"index === 0\" type=\"button\" :disabled=\"year <= 1\" :aria-label=\"t('datePicker.previousYear')\" @click=\"year--\">«</button>\n <span>{{ panelYear }}</span>\n <button v-if=\"index === years.length - 1\" type=\"button\" :disabled=\"year >= 9998\" :aria-label=\"t('datePicker.nextYear')\" @click=\"year++\">»</button>\n </header>\n <div class=\"nf-date-picker-grid\">\n <button v-for=\"month in [0, 6]\" :key=\"month\" type=\"button\" class=\"nf-date-picker-cell\" :data-date=\"dayjs(panelDate(panelYear, month)).format('YYYY-MM-DD')\" :disabled=\"props.disabledDate?.(panelDate(panelYear, month))\" :aria-pressed=\"selected(panelDate(panelYear, month))\" :class=\"{ 'is-selected': selected(panelDate(panelYear, month)), 'is-in-range': inRange(panelDate(panelYear, month)), 'is-range-start': draft?.getTime() === panelDate(panelYear, month).getTime() }\" @mouseenter=\"hover = panelDate(panelYear, month)\" @focus=\"hover = panelDate(panelYear, month)\" @click=\"select(panelDate(panelYear, month))\" @keydown=\"cellKeydown($event, panelDate(panelYear, month))\">{{ t(month === 0 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }}</button>\n </div>\n </section>\n </div>\n </ElPopover>\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearPicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearPicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyear\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearPicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearPicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyear\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyearrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyearrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfWeekRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfWeekRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"weekrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfWeekRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfWeekRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"weekrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","import type { App } from 'vue'\nimport View from './date-picker.vue'\nimport HalfYear from './half-year-picker.vue'\nimport HalfYearRange from './half-year-range-picker.vue'\nimport WeekRange from './week-range-picker.vue'\nimport './global'\nimport './style/index.scss'\n\nexport const NfHalfYearPicker = Object.assign(HalfYear, { install(app: App) { app.component('NfHalfYearPicker', HalfYear) } })\nexport const NfHalfYearRangePicker = Object.assign(HalfYearRange, { install(app: App) { app.component('NfHalfYearRangePicker', HalfYearRange) } })\nexport const NfWeekRangePicker = Object.assign(WeekRange, { install(app: App) { app.component('NfWeekRangePicker', WeekRange) } })\nexport const NfDatePicker = Object.assign(View, { install(app: App) {\n app.component('NfDatePicker', View)\n app.use(NfHalfYearPicker); app.use(NfHalfYearRangePicker); app.use(NfWeekRangePicker)\n} })\nexport type * from './types'\nexport default NfDatePicker\n"],"mappings":"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"}
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="360" height="60" viewBox="0 0 360 60" role="img" aria-labelledby="title">
|
|
2
|
+
<title id="title">common-ui+</title>
|
|
3
|
+
<g fill="#409eff" font-family="Verdana, Geneva, sans-serif" font-weight="600">
|
|
4
|
+
<text x="0" y="48" font-size="48" textLength="322" lengthAdjust="spacingAndGlyphs">common-ui</text>
|
|
5
|
+
<text x="328" y="31" font-size="36">+</text>
|
|
6
|
+
</g>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="176" viewBox="0 0 960 176" role="img" aria-labelledby="title desc">
|
|
2
|
+
<!-- Generated by utils/statistics/contributors.ts. Do not edit by hand. -->
|
|
3
|
+
<title id="title">Contributor wall</title>
|
|
4
|
+
<desc id="desc">Contributors on test, 2026-08-02 to 2026-11-02 (UTC). Initials are used instead of profile photos.</desc>
|
|
5
|
+
<rect width="960" height="176" rx="20" fill="#0b1020"/>
|
|
6
|
+
<g font-family="Arial, 'Microsoft YaHei', sans-serif">
|
|
7
|
+
<text x="32" y="36" fill="#cbd5e1" font-size="16">Thank you to everyone who contributes.</text>
|
|
8
|
+
<g transform="translate(62 82)">
|
|
9
|
+
<title>zoujiahe: 59 commits</title>
|
|
10
|
+
<circle r="25" fill="#172036" stroke="#a3e635" stroke-width="2"/>
|
|
11
|
+
<text text-anchor="middle" y="7" fill="#a3e635" font-size="20" font-weight="700">ZO</text>
|
|
12
|
+
<text text-anchor="middle" y="45" fill="#e2e8f0" font-size="11">zoujiahe</text>
|
|
13
|
+
<text text-anchor="middle" y="62" fill="#94a3b8" font-size="10">59 commits</text>
|
|
14
|
+
</g>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="480" viewBox="0 0 960 480" role="img" aria-labelledby="title desc">
|
|
2
|
+
<!-- Generated by utils/statistics/contributors.ts. Do not edit by hand. -->
|
|
3
|
+
<title id="title">Meet Our Contributors!</title>
|
|
4
|
+
<desc id="desc">Non-merge commits on test, 2026-08-02 to 2026-11-02 (UTC). Bubble size indicates commits; initials are used instead of profile photos.</desc>
|
|
5
|
+
<rect width="960" height="480" rx="20" fill="#0b1020"/>
|
|
6
|
+
<g font-family="Arial, 'Microsoft YaHei', sans-serif">
|
|
7
|
+
<defs><pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse"><circle cx="2" cy="2" r="1" fill="#334155"/></pattern></defs>
|
|
8
|
+
<rect x="320" y="110" width="600" height="310" fill="url(#dots)" opacity=".45"/>
|
|
9
|
+
<path d="M 320 414 Q 650 240 918 330 M 320 430 Q 620 260 918 350" fill="none" stroke="#334155" stroke-opacity=".5"/>
|
|
10
|
+
<text x="40" y="54" fill="#f8fafc" font-size="30" font-weight="700">Meet Our Contributors!</text>
|
|
11
|
+
<text x="40" y="84" fill="#94a3b8" font-size="14">2026-08-02 → 2026-11-02 · UTC · test</text>
|
|
12
|
+
<text x="48" y="204" fill="#60a5fa" font-size="56" font-weight="700">59</text>
|
|
13
|
+
<text x="48" y="232" fill="#cbd5e1" font-size="16">non-merge commits</text>
|
|
14
|
+
<text x="48" y="304" fill="#f8fafc" font-size="36" font-weight="700">1</text>
|
|
15
|
+
<text x="48" y="332" fill="#cbd5e1" font-size="16">contributor · last 3 months</text>
|
|
16
|
+
<g transform="translate(622.00 268.00)">
|
|
17
|
+
<title>zoujiahe: 59 commits</title>
|
|
18
|
+
<defs><radialGradient id="bubble-0" cx="30%" cy="20%" r="85%"><stop stop-color="#a3e635" stop-opacity=".5"/><stop offset="1" stop-color="#10182e"/></radialGradient></defs>
|
|
19
|
+
<circle r="110.00" fill="url(#bubble-0)" stroke="#a3e635" stroke-width="2"/>
|
|
20
|
+
<circle r="105.00" fill="none" stroke="#a3e635" stroke-opacity=".2"/>
|
|
21
|
+
<text text-anchor="middle" y="-8" fill="#fff" font-size="42.00" font-weight="700">ZO</text>
|
|
22
|
+
<text text-anchor="middle" y="20" fill="#e2e8f0" font-size="14">zoujiahe</text>
|
|
23
|
+
<text text-anchor="middle" y="43" fill="#cbd5e1" font-size="13.00">59 commits</text>
|
|
24
|
+
</g>
|
|
25
|
+
<text x="40" y="452" fill="#94a3b8" font-size="12">Local Git history · Initials, not profile photos · common-ui-plus</text>
|
|
26
|
+
</g>
|
|
27
|
+
</svg>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root:not([data-nf-theme=oem]),[data-nf-theme=chalk],.nf-theme-chalk{--el-component-size:28px;--nf-color-primary:#17f;--nf-color-success:#67c23a;--nf-text-color:#303133;--nf-background-color:#fff;--el-color-primary:var(--nf-color-primary);--el-color-success:var(--nf-color-success);--el-text-color-primary:var(--nf-text-color);--el-bg-color:var(--nf-background-color)}:root:not([data-nf-theme=oem]) .el-button:not(.el-button--small):not(.el-button--large):not(.is-link),[data-nf-theme=chalk] .el-button:not(.el-button--small):not(.el-button--large):not(.is-link),.nf-theme-chalk .el-button:not(.el-button--small):not(.el-button--large):not(.is-link){height:var(--el-component-size);padding-top:6px;padding-bottom:6px}:root:not([data-nf-theme=oem]) .el-button:not(.el-button--small):not(.el-button--large):not(.is-link).is-circle,[data-nf-theme=chalk] .el-button:not(.el-button--small):not(.el-button--large):not(.is-link).is-circle,.nf-theme-chalk .el-button:not(.el-button--small):not(.el-button--large):not(.is-link).is-circle{width:var(--el-component-size);padding:6px}:root:not([data-nf-theme=oem]) .el-select:not(.el-select--small):not(.el-select--large)>.el-select__wrapper,[data-nf-theme=chalk] .el-select:not(.el-select--small):not(.el-select--large)>.el-select__wrapper,.nf-theme-chalk .el-select:not(.el-select--small):not(.el-select--large)>.el-select__wrapper{min-height:var(--el-component-size);padding-top:2px;padding-bottom:2px}:root:not([data-nf-theme=oem]) .el-input-tag:not(.el-input-tag--small):not(.el-input-tag--large),[data-nf-theme=chalk] .el-input-tag:not(.el-input-tag--small):not(.el-input-tag--large),.nf-theme-chalk .el-input-tag:not(.el-input-tag--small):not(.el-input-tag--large){--el-input-tag-padding:2px}:root:not([data-nf-theme=oem]) .el-cascader:not(.el-cascader--small):not(.el-cascader--large),[data-nf-theme=chalk] .el-cascader:not(.el-cascader--small):not(.el-cascader--large),.nf-theme-chalk .el-cascader:not(.el-cascader--small):not(.el-cascader--large){line-height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large),[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large),.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large){line-height:calc(var(--el-component-size) - 2px)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__increase,:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__decrease,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__increase,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__decrease,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__increase,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large)>.el-input-number__decrease{width:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large) .el-input__wrapper,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large) .el-input__wrapper,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large) .el-input__wrapper{padding-left:calc(var(--el-component-size) + 10px);padding-right:calc(var(--el-component-size) + 10px)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right .el-input__wrapper,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right .el-input__wrapper,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right .el-input__wrapper{padding-left:11px;padding-right:calc(var(--el-component-size) + 10px)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__increase,:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__decrease,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__increase,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__decrease,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__increase,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-controls-right>.el-input-number__decrease{--el-input-number-controls-height:calc((var(--el-component-size) - 2px) / 2)}:root:not([data-nf-theme=oem]) .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-without-controls .el-input__wrapper,[data-nf-theme=chalk] .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-without-controls .el-input__wrapper,.nf-theme-chalk .el-input-number:not(.el-input-number--small):not(.el-input-number--large).is-without-controls .el-input__wrapper{padding-left:11px;padding-right:11px}:root:not([data-nf-theme=oem]) .el-range-editor:not(.el-range-editor--small):not(.el-range-editor--large) .el-range-input,[data-nf-theme=chalk] .el-range-editor:not(.el-range-editor--small):not(.el-range-editor--large) .el-range-input,.nf-theme-chalk .el-range-editor:not(.el-range-editor--small):not(.el-range-editor--large) .el-range-input{height:calc(var(--el-component-size) - 2px);line-height:calc(var(--el-component-size) - 2px)}:root:not([data-nf-theme=oem]) .el-radio:not(.el-radio--small):not(.el-radio--large),:root:not([data-nf-theme=oem]) .el-switch:not(.el-switch--small):not(.el-switch--large),:root:not([data-nf-theme=oem]) .el-rate:not(.el-rate--small):not(.el-rate--large),:root:not([data-nf-theme=oem]) .el-slider:not(.el-slider--small):not(.el-slider--large):not(.is-vertical),[data-nf-theme=chalk] .el-radio:not(.el-radio--small):not(.el-radio--large),[data-nf-theme=chalk] .el-switch:not(.el-switch--small):not(.el-switch--large),[data-nf-theme=chalk] .el-rate:not(.el-rate--small):not(.el-rate--large),[data-nf-theme=chalk] .el-slider:not(.el-slider--small):not(.el-slider--large):not(.is-vertical),.nf-theme-chalk .el-radio:not(.el-radio--small):not(.el-radio--large),.nf-theme-chalk .el-switch:not(.el-switch--small):not(.el-switch--large),.nf-theme-chalk .el-rate:not(.el-rate--small):not(.el-rate--large),.nf-theme-chalk .el-slider:not(.el-slider--small):not(.el-slider--large):not(.is-vertical){height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-checkbox:not(.el-checkbox--small):not(.el-checkbox--large),[data-nf-theme=chalk] .el-checkbox:not(.el-checkbox--small):not(.el-checkbox--large),.nf-theme-chalk .el-checkbox:not(.el-checkbox--small):not(.el-checkbox--large){--el-checkbox-height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-radio-button:not(.el-radio-button--small):not(.el-radio-button--large)>.el-radio-button__inner,:root:not([data-nf-theme=oem]) .el-checkbox-button:not(.el-checkbox-button--small):not(.el-checkbox-button--large)>.el-checkbox-button__inner,[data-nf-theme=chalk] .el-radio-button:not(.el-radio-button--small):not(.el-radio-button--large)>.el-radio-button__inner,[data-nf-theme=chalk] .el-checkbox-button:not(.el-checkbox-button--small):not(.el-checkbox-button--large)>.el-checkbox-button__inner,.nf-theme-chalk .el-radio-button:not(.el-radio-button--small):not(.el-radio-button--large)>.el-radio-button__inner,.nf-theme-chalk .el-checkbox-button:not(.el-checkbox-button--small):not(.el-checkbox-button--large)>.el-checkbox-button__inner{height:var(--el-component-size);padding-top:6px;padding-bottom:6px}:root:not([data-nf-theme=oem]) .el-color-picker:not(.el-color-picker--small):not(.el-color-picker--large),[data-nf-theme=chalk] .el-color-picker:not(.el-color-picker--small):not(.el-color-picker--large),.nf-theme-chalk .el-color-picker:not(.el-color-picker--small):not(.el-color-picker--large){width:var(--el-component-size);height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-segmented:not(.el-segmented--small):not(.el-segmented--large):not(.el-segmented--vertical),[data-nf-theme=chalk] .el-segmented:not(.el-segmented--small):not(.el-segmented--large):not(.el-segmented--vertical),.nf-theme-chalk .el-segmented:not(.el-segmented--small):not(.el-segmented--large):not(.el-segmented--vertical){min-height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-pagination,[data-nf-theme=chalk] .el-pagination,.nf-theme-chalk .el-pagination{--el-pagination-button-width:var(--el-component-size);--el-pagination-button-height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-form-item:not(.el-form-item--small):not(.el-form-item--large)>.el-form-item__content,[data-nf-theme=chalk] .el-form-item:not(.el-form-item--small):not(.el-form-item--large)>.el-form-item__content,.nf-theme-chalk .el-form-item:not(.el-form-item--small):not(.el-form-item--large)>.el-form-item__content{line-height:var(--el-component-size)}:root:not([data-nf-theme=oem]) .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label,:root:not([data-nf-theme=oem]) .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label-wrap>.el-form-item__label,[data-nf-theme=chalk] .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label,[data-nf-theme=chalk] .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label-wrap>.el-form-item__label,.nf-theme-chalk .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label,.nf-theme-chalk .el-form-item:not(.el-form-item--small):not(.el-form-item--large):not(.el-form-item--label-top)>.el-form-item__label-wrap>.el-form-item__label{height:var(--el-component-size);line-height:var(--el-component-size)}.nf-date-picker-reference{--nf-date-picker-height:var(--el-component-size,28px);width:220px;max-width:100%;min-height:var(--nf-date-picker-height);box-sizing:border-box;background:var(--el-fill-color-blank);color:var(--el-text-color-regular);cursor:pointer;border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;font-size:var(--el-font-size-base);line-height:calc(var(--nf-date-picker-height) - 2px);align-items:center;gap:8px;padding:0 10px;display:inline-flex}.nf-date-picker-reference.is-range{width:350px}.nf-date-picker-reference.is-small{--nf-date-picker-height:var(--el-component-size-small,24px);font-size:12px}.nf-date-picker-reference.is-large{--nf-date-picker-height:var(--el-component-size-large,40px)}.nf-date-picker-reference:hover{box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.nf-date-picker-reference.is-focus,.nf-date-picker-reference:focus-visible{box-shadow:0 0 0 1px var(--el-color-primary) inset;outline:none}.nf-date-picker-reference.is-disabled{background:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.nf-date-picker-icon{width:14px;height:14px;color:var(--el-text-color-placeholder);flex:none}.nf-date-picker-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nf-date-picker-value.is-placeholder{color:var(--el-text-color-placeholder)}.nf-date-picker-reference.is-range .nf-date-picker-value{text-align:center}.nf-date-picker-separator{color:var(--el-text-color-regular);flex:none}.nf-date-picker-clear{color:var(--el-text-color-placeholder);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.nf-date-picker-popper.el-popover{max-width:calc(100vw - 24px);padding:0}.nf-date-picker-panel{color:var(--el-text-color-primary);grid-template-columns:minmax(0,1fr);display:grid}.nf-date-picker-panel.is-range{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-date-picker-year{min-width:0;padding:12px}.nf-date-picker-year+.nf-date-picker-year{border-left:1px solid var(--el-border-color-lighter)}.nf-date-picker-year header{text-align:center;border-bottom:1px solid var(--el-border-color-lighter);height:32px;line-height:32px;position:relative}.nf-date-picker-year header button{color:var(--el-text-color-regular);cursor:pointer;font:inherit;background:0 0;border:0;position:absolute;top:0}.nf-date-picker-year header button:first-child:not(:last-child){left:0}.nf-date-picker-year header button:last-child{right:0}.nf-date-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding-top:12px;display:grid}.nf-date-picker-cell{min-height:40px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;grid-column:span 2;padding:4px}.nf-date-picker-cell:hover,.nf-date-picker-cell:focus-visible{color:var(--el-color-primary);background:var(--el-fill-color-light);outline:1px solid var(--el-color-primary)}.nf-date-picker-cell.is-in-range{background:var(--el-color-primary-light-9)}.nf-date-picker-cell.is-selected,.nf-date-picker-cell.is-range-start{color:var(--el-color-primary);font-weight:600}.nf-date-picker-cell:disabled,.nf-date-picker-year header button:disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.nf-week-range-popper .el-date-table td.nf-week-range-selected .el-date-table-cell{background:var(--el-datepicker-inrange-bg-color)}@media (width<=480px){.nf-date-picker-panel.is-range{grid-template-columns:minmax(0,1fr)}.nf-date-picker-year+.nf-date-picker-year{border-left:0;border-top:1px solid var(--el-border-color-lighter)}}
|
|
2
|
+
/*$vite$:1*/
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DatePickerModelValue, NfDatePickerProps } from './types';
|
|
2
|
+
declare function handleOpen(): void;
|
|
3
|
+
declare function handleClose(): void;
|
|
4
|
+
declare function focus(): void;
|
|
5
|
+
declare function blur(): void;
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<NfDatePickerProps, {
|
|
7
|
+
focus: typeof focus;
|
|
8
|
+
blur: typeof blur;
|
|
9
|
+
handleOpen: typeof handleOpen;
|
|
10
|
+
handleClose: typeof handleClose;
|
|
11
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
"update:modelValue": (value: DatePickerModelValue) => any;
|
|
13
|
+
change: (value: DatePickerModelValue) => any;
|
|
14
|
+
"calendar-change": (value: (Date | null)[]) => any;
|
|
15
|
+
"visible-change": (visible: boolean) => any;
|
|
16
|
+
clear: () => any;
|
|
17
|
+
focus: (event: FocusEvent) => any;
|
|
18
|
+
blur: (event: FocusEvent) => any;
|
|
19
|
+
}, string, import("vue").PublicProps, Readonly<NfDatePickerProps> & Readonly<{
|
|
20
|
+
"onUpdate:modelValue"?: ((value: DatePickerModelValue) => any) | undefined;
|
|
21
|
+
onChange?: ((value: DatePickerModelValue) => any) | undefined;
|
|
22
|
+
"onCalendar-change"?: ((value: (Date | null)[]) => any) | undefined;
|
|
23
|
+
"onVisible-change"?: ((visible: boolean) => any) | undefined;
|
|
24
|
+
onClear?: (() => any) | undefined;
|
|
25
|
+
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
26
|
+
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
27
|
+
}>, {
|
|
28
|
+
type: import("./types").DatePickerType;
|
|
29
|
+
disabled: boolean;
|
|
30
|
+
clearable: boolean;
|
|
31
|
+
teleported: boolean;
|
|
32
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const _default: typeof __VLS_export;
|
|
34
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type View from './date-picker.vue';
|
|
2
|
+
import type HalfYear from './half-year-picker.vue';
|
|
3
|
+
import type HalfYearRange from './half-year-range-picker.vue';
|
|
4
|
+
import type WeekRange from './week-range-picker.vue';
|
|
5
|
+
declare module 'vue' {
|
|
6
|
+
interface GlobalComponents {
|
|
7
|
+
NfDatePicker: typeof View;
|
|
8
|
+
NfHalfYearPicker: typeof HalfYear;
|
|
9
|
+
NfHalfYearRangePicker: typeof HalfYearRange;
|
|
10
|
+
NfWeekRangePicker: typeof WeekRange;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { NfDatePickerProps } from './types';
|
|
2
|
+
type __VLS_Props = Omit<NfDatePickerProps, 'type'>;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
4
|
+
focus: () => void | undefined;
|
|
5
|
+
blur: () => void | undefined;
|
|
6
|
+
handleOpen: () => void | undefined;
|
|
7
|
+
handleClose: () => void | undefined;
|
|
8
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
+
"update:modelValue": (value: import("./types").DatePickerModelValue) => any;
|
|
10
|
+
change: (value: import("./types").DatePickerModelValue) => any;
|
|
11
|
+
"calendar-change": (value: (Date | null)[]) => any;
|
|
12
|
+
"visible-change": (visible: boolean) => any;
|
|
13
|
+
clear: () => any;
|
|
14
|
+
focus: (event: FocusEvent) => any;
|
|
15
|
+
blur: (event: FocusEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
"onUpdate:modelValue"?: ((value: import("./types").DatePickerModelValue) => any) | undefined;
|
|
18
|
+
onChange?: ((value: import("./types").DatePickerModelValue) => any) | undefined;
|
|
19
|
+
"onCalendar-change"?: ((value: (Date | null)[]) => any) | undefined;
|
|
20
|
+
"onVisible-change"?: ((visible: boolean) => any) | undefined;
|
|
21
|
+
onClear?: (() => any) | undefined;
|
|
22
|
+
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
23
|
+
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
clearable: boolean;
|
|
27
|
+
teleported: boolean;
|
|
28
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { NfDatePickerProps } from './types';
|
|
2
|
+
type __VLS_Props = Omit<NfDatePickerProps, 'type'>;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
4
|
+
focus: () => void | undefined;
|
|
5
|
+
blur: () => void | undefined;
|
|
6
|
+
handleOpen: () => void | undefined;
|
|
7
|
+
handleClose: () => void | undefined;
|
|
8
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
+
"update:modelValue": (value: import("./types").DatePickerModelValue) => any;
|
|
10
|
+
change: (value: import("./types").DatePickerModelValue) => any;
|
|
11
|
+
"calendar-change": (value: (Date | null)[]) => any;
|
|
12
|
+
"visible-change": (visible: boolean) => any;
|
|
13
|
+
clear: () => any;
|
|
14
|
+
focus: (event: FocusEvent) => any;
|
|
15
|
+
blur: (event: FocusEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
"onUpdate:modelValue"?: ((value: import("./types").DatePickerModelValue) => any) | undefined;
|
|
18
|
+
onChange?: ((value: import("./types").DatePickerModelValue) => any) | undefined;
|
|
19
|
+
"onCalendar-change"?: ((value: (Date | null)[]) => any) | undefined;
|
|
20
|
+
"onVisible-change"?: ((visible: boolean) => any) | undefined;
|
|
21
|
+
onClear?: (() => any) | undefined;
|
|
22
|
+
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
23
|
+
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
clearable: boolean;
|
|
27
|
+
teleported: boolean;
|
|
28
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|