@element-plus/nightly 0.0.20260115 → 0.0.20260117
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/attributes.json +1 -1
- package/dist/index.full.js +122 -78
- package/dist/index.full.min.js +17 -17
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +24 -24
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +123 -79
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hi.js +1 -1
- package/dist/locale/hi.min.js +1 -1
- package/dist/locale/hi.min.mjs +1 -1
- package/dist/locale/hi.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lo.js +1 -1
- package/dist/locale/lo.min.js +1 -1
- package/dist/locale/lo.min.mjs +1 -1
- package/dist/locale/lo.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/ms.js +1 -1
- package/dist/locale/ms.min.js +1 -1
- package/dist/locale/ms.min.mjs +1 -1
- package/dist/locale/ms.mjs +1 -1
- package/dist/locale/my.js +1 -1
- package/dist/locale/my.min.js +1 -1
- package/dist/locale/my.min.mjs +1 -1
- package/dist/locale/my.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/no.js +1 -1
- package/dist/locale/no.min.js +1 -1
- package/dist/locale/no.min.mjs +1 -1
- package/dist/locale/no.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/te.js +1 -1
- package/dist/locale/te.min.js +1 -1
- package/dist/locale/te.min.mjs +1 -1
- package/dist/locale/te.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-hk.js +1 -1
- package/dist/locale/zh-hk.min.js +1 -1
- package/dist/locale/zh-hk.min.mjs +1 -1
- package/dist/locale/zh-hk.mjs +1 -1
- package/dist/locale/zh-mo.js +1 -1
- package/dist/locale/zh-mo.min.js +1 -1
- package/dist/locale/zh-mo.min.mjs +1 -1
- package/dist/locale/zh-mo.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/affix/src/affix.d.ts +33 -2
- package/es/components/affix/src/affix.mjs.map +1 -1
- package/es/components/affix/src/affix.vue.d.ts +36 -22
- package/es/components/affix/src/affix.vue2.mjs +10 -3
- package/es/components/affix/src/affix.vue2.mjs.map +1 -1
- package/es/components/anchor/src/anchor-link.d.ts +17 -2
- package/es/components/anchor/src/anchor-link.mjs.map +1 -1
- package/es/components/anchor/src/anchor-link.vue.d.ts +24 -7
- package/es/components/anchor/src/anchor-link.vue2.mjs +6 -4
- package/es/components/anchor/src/anchor-link.vue2.mjs.map +1 -1
- package/es/components/anchor/src/anchor.d.ts +41 -2
- package/es/components/anchor/src/anchor.mjs.map +1 -1
- package/es/components/anchor/src/anchor.vue.d.ts +36 -34
- package/es/components/anchor/src/anchor.vue2.mjs +12 -3
- package/es/components/anchor/src/anchor.vue2.mjs.map +1 -1
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +1 -1
- package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs +1 -1
- package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs.map +1 -1
- package/es/components/icon/src/icon.d.ts +17 -2
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/icon/src/icon.vue.d.ts +24 -27
- package/es/components/icon/src/icon.vue2.mjs +4 -2
- package/es/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/components/input/src/input.d.ts +145 -8
- package/es/components/input/src/input.mjs.map +1 -1
- package/es/components/input/src/input.vue.d.ts +55 -210
- package/es/components/input/src/input.vue2.mjs +74 -41
- package/es/components/input/src/input.vue2.mjs.map +1 -1
- package/es/components/input-number/src/input-number.vue.d.ts +1 -1
- package/es/components/mention/src/mention.vue.d.ts +1 -1
- package/es/components/rate/src/rate.vue2.mjs +3 -3
- package/es/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/affix/src/affix.d.ts +33 -2
- package/lib/components/affix/src/affix.js.map +1 -1
- package/lib/components/affix/src/affix.vue.d.ts +36 -22
- package/lib/components/affix/src/affix.vue2.js +9 -2
- package/lib/components/affix/src/affix.vue2.js.map +1 -1
- package/lib/components/anchor/src/anchor-link.d.ts +17 -2
- package/lib/components/anchor/src/anchor-link.js.map +1 -1
- package/lib/components/anchor/src/anchor-link.vue.d.ts +24 -7
- package/lib/components/anchor/src/anchor-link.vue2.js +6 -4
- package/lib/components/anchor/src/anchor-link.vue2.js.map +1 -1
- package/lib/components/anchor/src/anchor.d.ts +41 -2
- package/lib/components/anchor/src/anchor.js.map +1 -1
- package/lib/components/anchor/src/anchor.vue.d.ts +36 -34
- package/lib/components/anchor/src/anchor.vue2.js +11 -2
- package/lib/components/anchor/src/anchor.vue2.js.map +1 -1
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +1 -1
- package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js +1 -1
- package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js.map +1 -1
- package/lib/components/icon/src/icon.d.ts +17 -2
- package/lib/components/icon/src/icon.js.map +1 -1
- package/lib/components/icon/src/icon.vue.d.ts +24 -27
- package/lib/components/icon/src/icon.vue2.js +4 -2
- package/lib/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/components/input/src/input.d.ts +145 -8
- package/lib/components/input/src/input.js.map +1 -1
- package/lib/components/input/src/input.vue.d.ts +55 -210
- package/lib/components/input/src/input.vue2.js +71 -38
- package/lib/components/input/src/input.vue2.js.map +1 -1
- package/lib/components/input-number/src/input-number.vue.d.ts +1 -1
- package/lib/components/mention/src/mention.vue.d.ts +1 -1
- package/lib/components/rate/src/rate.vue2.js +3 -3
- package/lib/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/web-types.json +1 -1
|
@@ -23,7 +23,7 @@ const useBasicDateTable = (props, emit) => {
|
|
|
23
23
|
const firstDayOfWeek = props.date.$locale().weekStart || 7;
|
|
24
24
|
const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase());
|
|
25
25
|
const offsetDay = vue.computed(() => {
|
|
26
|
-
return firstDayOfWeek > 3 ? 7 - firstDayOfWeek :
|
|
26
|
+
return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : firstDayOfWeek;
|
|
27
27
|
});
|
|
28
28
|
const startDate = vue.computed(() => {
|
|
29
29
|
const startDayOfMonth = props.date.startOf("month");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-basic-date-table.js","sources":["../../../../../../../packages/components/date-picker-panel/src/composables/use-basic-date-table.ts"],"sourcesContent":["import { computed, nextTick, ref, unref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { flatten } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { castArray, isArray } from '@element-plus/utils'\nimport { buildPickerTable } from '../utils'\n\nimport type { SetupContext } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../types'\nimport type {\n BasicDateTableEmits,\n BasicDateTableProps,\n} from '../props/basic-date-table'\n\nconst isNormalDay = (type = '') => {\n return ['normal', 'today'].includes(type)\n}\n\nexport const useBasicDateTable = (\n props: BasicDateTableProps,\n emit: SetupContext<BasicDateTableEmits>['emit']\n) => {\n const { lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\n // data\n const lastRow = ref<number>()\n const lastColumn = ref<number>()\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n let focusWithClick = false\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const hasCurrent = computed<boolean>(() => {\n return flatten(unref(rows)).some((row) => {\n return row.isCurrent\n })\n })\n\n const days = computed(() => {\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n\n const dateCountOfLastMonth = startOfMonth.subtract(1, 'month').daysInMonth()\n\n return {\n startOfMonthDay,\n dateCountOfMonth,\n dateCountOfLastMonth,\n }\n })\n\n const selectedDate = computed<Dayjs[]>(() => {\n return props.selectionMode === 'dates' ? castArray(props.parsedValue!) : []\n })\n\n // Return value indicates should the counter be incremented\n type CellCoordinate = { columnIndex: number; rowIndex: number }\n type CellMeta = CellCoordinate & {\n count: number\n }\n const setDateText = (\n cell: DateCell,\n { count, rowIndex, columnIndex }: CellMeta\n ): boolean => {\n const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } =\n unref(days)\n const offset = unref(offsetDay)\n if (rowIndex >= 0 && rowIndex <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count\n return true\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (columnIndex % 7)) +\n 1 +\n rowIndex * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count\n } else {\n cell.text = count - dateCountOfMonth\n cell.type = 'next-month'\n }\n return true\n }\n return false\n }\n\n const setCellMetadata = (\n cell: DateCell,\n { columnIndex, rowIndex }: CellCoordinate,\n count: number\n ) => {\n const { disabledDate, cellClassName } = props\n const _selectedDate = unref(selectedDate)\n const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex })\n\n const cellDate = cell.dayjs!.toDate()\n cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, 'day'))\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = disabledDate?.(cellDate)\n cell.customClass = cellClassName?.(cellDate)\n return shouldIncrement\n }\n\n const setRowMetadata = (row: DateCell[]) => {\n if (props.selectionMode === 'week') {\n const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6]\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n\n const rows = computed(() => {\n const { minDate, maxDate, rangeState, showWeekNumber } = props\n\n const offset = unref(offsetDay)\n const rows_ = unref(tableRows)\n const dateUnit = 'day'\n let count = 1\n\n buildPickerTable({ row: 6, column: 7 }, rows_, {\n startDate: minDate,\n columnIndexOffset: showWeekNumber ? 1 : 0,\n nextEndDate:\n rangeState.endDate ||\n maxDate ||\n (rangeState.selecting && minDate) ||\n null,\n now: dayjs().locale(unref(lang)).startOf(dateUnit),\n unit: dateUnit,\n relativeDateGetter: (idx: number) =>\n unref(startDate).add(idx - offset, dateUnit),\n setCellMetadata: (...args) => {\n if (setCellMetadata(...args, count)) {\n count += 1\n }\n },\n\n setRowMetadata,\n })\n\n if (showWeekNumber) {\n for (let rowIndex = 0; rowIndex < 6; rowIndex++) {\n if (rows_[rowIndex][1].dayjs) {\n rows_[rowIndex][0] = {\n type: 'week',\n text: rows_[rowIndex][1].dayjs!.week(),\n }\n }\n }\n }\n\n return rows_\n })\n\n watch(\n () => props.date,\n async () => {\n if (unref(tbodyRef)?.contains(document.activeElement)) {\n await nextTick()\n await focus()\n // currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = async () => unref(currentCellRef)?.focus()\n\n const isCurrent = (cell: DateCell): boolean => {\n return (\n props.selectionMode === 'date' &&\n isNormalDay(cell.type) &&\n cellMatchesDate(cell, props.parsedValue as Dayjs)\n )\n }\n\n const cellMatchesDate = (cell: DateCell, date: Dayjs) => {\n if (!date) return false\n return dayjs(date)\n .locale(unref(lang))\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getDateOfCell = (row: number, column: number) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - unref(offsetDay)\n return unref(startDate).add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).cellIndex\n\n // can not select disabled date\n if (unref(rows)[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== unref(lastRow) || column !== unref(lastColumn)) {\n lastRow.value = row\n lastColumn.value = column\n emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const isSelectedCell = (cell: DateCell) => {\n return (\n (!unref(hasCurrent) && cell?.text === 1 && isNormalDay(cell.type)) ||\n cell.isCurrent\n )\n }\n\n const handleFocus = (event: FocusEvent) => {\n if (focusWithClick || unref(hasCurrent) || props.selectionMode !== 'date')\n return\n handlePickDate(event, true)\n }\n\n const handleMouseDown = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = true\n }\n\n const handleMouseUp = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = false\n }\n\n const handleRangePick = (newDate: Dayjs) => {\n if (!props.rangeState.selecting || !props.minDate) {\n emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n }\n\n const handleWeekPick = (newDate: Dayjs) => {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n }\n\n const handleDatesPick = (newDate: Dayjs, selected: boolean) => {\n const newValue = selected\n ? castArray(props.parsedValue).filter(\n (d) => d?.valueOf() !== newDate.valueOf()\n )\n : castArray(props.parsedValue).concat([newDate])\n emit('pick', newValue)\n }\n\n const handlePickDate = (\n event: FocusEvent | MouseEvent,\n isKeyboardMovement = false\n ) => {\n if (props.disabled) return\n const target = (event.target as HTMLElement).closest('td')\n\n if (!target) return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).cellIndex\n const cell = unref(rows)[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n switch (props.selectionMode) {\n case 'range': {\n handleRangePick(newDate)\n break\n }\n case 'date': {\n emit('pick', newDate, isKeyboardMovement)\n break\n }\n case 'week': {\n handleWeekPick(newDate)\n break\n }\n case 'dates': {\n handleDatesPick(newDate, !!cell.selected)\n break\n }\n default: {\n break\n }\n }\n }\n\n const isWeekActive = (cell: DateCell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(Number.parseInt(cell.text as any, 10))\n\n if (props.parsedValue && !isArray(props.parsedValue)) {\n const dayOffset = ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n WEEKS,\n rows,\n tbodyRef,\n currentCellRef,\n\n // cellMatchesDate,\n // getDateOfCell,\n focus,\n isCurrent,\n isWeekActive,\n isSelectedCell,\n\n handlePickDate,\n handleMouseUp,\n handleMouseDown,\n handleMouseMove,\n handleFocus,\n }\n}\n\nexport const useBasicDateTableDOM = (\n props: BasicDateTableProps,\n {\n isCurrent,\n isWeekActive,\n }: Pick<ReturnType<typeof useBasicDateTable>, 'isCurrent' | 'isWeekActive'>\n) => {\n const ns = useNamespace('date-table')\n const { t } = useLocale()\n\n const tableKls = computed(() => [\n ns.b(),\n ns.is('week-mode', props.selectionMode === 'week' && !props.disabled),\n ])\n\n const tableLabel = computed(() => t('el.datepicker.dateTablePrompt'))\n\n const getCellClasses = (cell: DateCell) => {\n const classes: string[] = []\n if (isNormalDay(cell.type) && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type!)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (isNormalDay(cell.type) || props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled || props.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getRowKls = (cell: DateCell) => [\n ns.e('row'),\n { current: isWeekActive(cell) },\n ]\n\n return {\n tableKls,\n tableLabel,\n weekHeaderClass: ns.e('week-header'),\n\n getCellClasses,\n getRowKls,\n t,\n }\n}\n"],"names":["useLocale","ref","computed","flatten","unref","castArray","buildPickerTable","watch","nextTick","isArray","useNamespace"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-basic-date-table.js","sources":["../../../../../../../packages/components/date-picker-panel/src/composables/use-basic-date-table.ts"],"sourcesContent":["import { computed, nextTick, ref, unref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { flatten } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { castArray, isArray } from '@element-plus/utils'\nimport { buildPickerTable } from '../utils'\n\nimport type { SetupContext } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../types'\nimport type {\n BasicDateTableEmits,\n BasicDateTableProps,\n} from '../props/basic-date-table'\n\nconst isNormalDay = (type = '') => {\n return ['normal', 'today'].includes(type)\n}\n\nexport const useBasicDateTable = (\n props: BasicDateTableProps,\n emit: SetupContext<BasicDateTableEmits>['emit']\n) => {\n const { lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\n // data\n const lastRow = ref<number>()\n const lastColumn = ref<number>()\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n let focusWithClick = false\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), calculate the offset days to adjust the position of the first two rows of dates\n // For weekStart <= 3: offset = weekStart (e.g., Monday = 1, Tuesday = 2, Wednesday = 3)\n // For weekStart > 3: offset = 7 - weekStart (e.g., Thursday = 3, Friday = 2, Saturday = 1)\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const hasCurrent = computed<boolean>(() => {\n return flatten(unref(rows)).some((row) => {\n return row.isCurrent\n })\n })\n\n const days = computed(() => {\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n\n const dateCountOfLastMonth = startOfMonth.subtract(1, 'month').daysInMonth()\n\n return {\n startOfMonthDay,\n dateCountOfMonth,\n dateCountOfLastMonth,\n }\n })\n\n const selectedDate = computed<Dayjs[]>(() => {\n return props.selectionMode === 'dates' ? castArray(props.parsedValue!) : []\n })\n\n // Return value indicates should the counter be incremented\n type CellCoordinate = { columnIndex: number; rowIndex: number }\n type CellMeta = CellCoordinate & {\n count: number\n }\n const setDateText = (\n cell: DateCell,\n { count, rowIndex, columnIndex }: CellMeta\n ): boolean => {\n const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } =\n unref(days)\n const offset = unref(offsetDay)\n if (rowIndex >= 0 && rowIndex <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count\n return true\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (columnIndex % 7)) +\n 1 +\n rowIndex * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count\n } else {\n cell.text = count - dateCountOfMonth\n cell.type = 'next-month'\n }\n return true\n }\n return false\n }\n\n const setCellMetadata = (\n cell: DateCell,\n { columnIndex, rowIndex }: CellCoordinate,\n count: number\n ) => {\n const { disabledDate, cellClassName } = props\n const _selectedDate = unref(selectedDate)\n const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex })\n\n const cellDate = cell.dayjs!.toDate()\n cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, 'day'))\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = disabledDate?.(cellDate)\n cell.customClass = cellClassName?.(cellDate)\n return shouldIncrement\n }\n\n const setRowMetadata = (row: DateCell[]) => {\n if (props.selectionMode === 'week') {\n const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6]\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n\n const rows = computed(() => {\n const { minDate, maxDate, rangeState, showWeekNumber } = props\n\n const offset = unref(offsetDay)\n const rows_ = unref(tableRows)\n const dateUnit = 'day'\n let count = 1\n\n buildPickerTable({ row: 6, column: 7 }, rows_, {\n startDate: minDate,\n columnIndexOffset: showWeekNumber ? 1 : 0,\n nextEndDate:\n rangeState.endDate ||\n maxDate ||\n (rangeState.selecting && minDate) ||\n null,\n now: dayjs().locale(unref(lang)).startOf(dateUnit),\n unit: dateUnit,\n relativeDateGetter: (idx: number) =>\n unref(startDate).add(idx - offset, dateUnit),\n setCellMetadata: (...args) => {\n if (setCellMetadata(...args, count)) {\n count += 1\n }\n },\n\n setRowMetadata,\n })\n\n if (showWeekNumber) {\n for (let rowIndex = 0; rowIndex < 6; rowIndex++) {\n if (rows_[rowIndex][1].dayjs) {\n rows_[rowIndex][0] = {\n type: 'week',\n text: rows_[rowIndex][1].dayjs!.week(),\n }\n }\n }\n }\n\n return rows_\n })\n\n watch(\n () => props.date,\n async () => {\n if (unref(tbodyRef)?.contains(document.activeElement)) {\n await nextTick()\n await focus()\n // currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = async () => unref(currentCellRef)?.focus()\n\n const isCurrent = (cell: DateCell): boolean => {\n return (\n props.selectionMode === 'date' &&\n isNormalDay(cell.type) &&\n cellMatchesDate(cell, props.parsedValue as Dayjs)\n )\n }\n\n const cellMatchesDate = (cell: DateCell, date: Dayjs) => {\n if (!date) return false\n return dayjs(date)\n .locale(unref(lang))\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getDateOfCell = (row: number, column: number) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - unref(offsetDay)\n return unref(startDate).add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).cellIndex\n\n // can not select disabled date\n if (unref(rows)[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== unref(lastRow) || column !== unref(lastColumn)) {\n lastRow.value = row\n lastColumn.value = column\n emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const isSelectedCell = (cell: DateCell) => {\n return (\n (!unref(hasCurrent) && cell?.text === 1 && isNormalDay(cell.type)) ||\n cell.isCurrent\n )\n }\n\n const handleFocus = (event: FocusEvent) => {\n if (focusWithClick || unref(hasCurrent) || props.selectionMode !== 'date')\n return\n handlePickDate(event, true)\n }\n\n const handleMouseDown = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = true\n }\n\n const handleMouseUp = (event: MouseEvent) => {\n const target = (event.target as HTMLElement).closest('td')\n if (!target) return\n focusWithClick = false\n }\n\n const handleRangePick = (newDate: Dayjs) => {\n if (!props.rangeState.selecting || !props.minDate) {\n emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n }\n\n const handleWeekPick = (newDate: Dayjs) => {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n }\n\n const handleDatesPick = (newDate: Dayjs, selected: boolean) => {\n const newValue = selected\n ? castArray(props.parsedValue).filter(\n (d) => d?.valueOf() !== newDate.valueOf()\n )\n : castArray(props.parsedValue).concat([newDate])\n emit('pick', newValue)\n }\n\n const handlePickDate = (\n event: FocusEvent | MouseEvent,\n isKeyboardMovement = false\n ) => {\n if (props.disabled) return\n const target = (event.target as HTMLElement).closest('td')\n\n if (!target) return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex - 1\n const column = (target as HTMLTableCellElement).cellIndex\n const cell = unref(rows)[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n switch (props.selectionMode) {\n case 'range': {\n handleRangePick(newDate)\n break\n }\n case 'date': {\n emit('pick', newDate, isKeyboardMovement)\n break\n }\n case 'week': {\n handleWeekPick(newDate)\n break\n }\n case 'dates': {\n handleDatesPick(newDate, !!cell.selected)\n break\n }\n default: {\n break\n }\n }\n }\n\n const isWeekActive = (cell: DateCell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(Number.parseInt(cell.text as any, 10))\n\n if (props.parsedValue && !isArray(props.parsedValue)) {\n const dayOffset = ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n WEEKS,\n rows,\n tbodyRef,\n currentCellRef,\n\n // cellMatchesDate,\n // getDateOfCell,\n focus,\n isCurrent,\n isWeekActive,\n isSelectedCell,\n\n handlePickDate,\n handleMouseUp,\n handleMouseDown,\n handleMouseMove,\n handleFocus,\n }\n}\n\nexport const useBasicDateTableDOM = (\n props: BasicDateTableProps,\n {\n isCurrent,\n isWeekActive,\n }: Pick<ReturnType<typeof useBasicDateTable>, 'isCurrent' | 'isWeekActive'>\n) => {\n const ns = useNamespace('date-table')\n const { t } = useLocale()\n\n const tableKls = computed(() => [\n ns.b(),\n ns.is('week-mode', props.selectionMode === 'week' && !props.disabled),\n ])\n\n const tableLabel = computed(() => t('el.datepicker.dateTablePrompt'))\n\n const getCellClasses = (cell: DateCell) => {\n const classes: string[] = []\n if (isNormalDay(cell.type) && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type!)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (isNormalDay(cell.type) || props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled || props.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getRowKls = (cell: DateCell) => [\n ns.e('row'),\n { current: isWeekActive(cell) },\n ]\n\n return {\n tableKls,\n tableLabel,\n weekHeaderClass: ns.e('week-header'),\n\n getCellClasses,\n getRowKls,\n t,\n }\n}\n"],"names":["useLocale","ref","computed","flatten","unref","castArray","buildPickerTable","watch","nextTick","isArray","useNamespace"],"mappings":"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"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExtractPublicPropTypes } from 'vue';
|
|
2
2
|
import type Icon from './icon.vue';
|
|
3
|
+
export interface IconProps {
|
|
4
|
+
/**
|
|
5
|
+
* @description SVG icon size, size x size
|
|
6
|
+
*/
|
|
7
|
+
size?: number | string;
|
|
8
|
+
/**
|
|
9
|
+
* @description SVG tag's fill attribute
|
|
10
|
+
*/
|
|
11
|
+
color?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Removed after 3.0.0, Use `IconProps` instead.
|
|
15
|
+
*/
|
|
3
16
|
export declare const iconProps: {
|
|
4
17
|
readonly size: {
|
|
5
18
|
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>>;
|
|
@@ -14,6 +27,8 @@ export declare const iconProps: {
|
|
|
14
27
|
__epPropKey: true;
|
|
15
28
|
};
|
|
16
29
|
};
|
|
17
|
-
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Removed after 3.0.0, Use `IconProps` instead.
|
|
32
|
+
*/
|
|
18
33
|
export type IconPropsPublic = ExtractPublicPropTypes<typeof iconProps>;
|
|
19
34
|
export type IconInstance = InstanceType<typeof Icon> & unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sources":["../../../../../../packages/components/icon/src/icon.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\n\nimport type {
|
|
1
|
+
{"version":3,"file":"icon.js","sources":["../../../../../../packages/components/icon/src/icon.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Icon from './icon.vue'\n\nexport interface IconProps {\n /**\n * @description SVG icon size, size x size\n */\n size?: number | string\n /**\n * @description SVG tag's fill attribute\n */\n color?: string\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `IconProps` instead.\n */\nexport const iconProps = buildProps({\n /**\n * @description SVG icon size, size x size\n */\n size: {\n type: definePropType<number | string>([Number, String]),\n },\n /**\n * @description SVG tag's fill attribute\n */\n color: {\n type: String,\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `IconProps` instead.\n */\nexport type IconPropsPublic = ExtractPublicPropTypes<typeof iconProps>\nexport type IconInstance = InstanceType<typeof Icon> & unknown\n"],"names":["buildProps","definePropType"],"mappings":";;;;AAmBO,MAAM,YAAYA,kBAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIlC,IAAA,EAAM;AAAA,IACJ,IAAA,EAAMC,sBAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC;AAAA,GACxD;AAAA;AAAA;AAAA;AAAA,EAIA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM;AAAA;AAEV,CAAU;;;;"}
|
|
@@ -1,39 +1,36 @@
|
|
|
1
|
+
import type { IconProps } from './icon';
|
|
1
2
|
declare var __VLS_1: {};
|
|
2
3
|
type __VLS_Slots = {} & {
|
|
3
4
|
default?: (props: typeof __VLS_1) => any;
|
|
4
5
|
};
|
|
5
|
-
declare const __VLS_base: import("vue").DefineComponent<{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly color: {
|
|
13
|
-
readonly type: import("vue").PropType<string>;
|
|
14
|
-
readonly required: false;
|
|
15
|
-
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
16
|
-
__epPropKey: true;
|
|
17
|
-
};
|
|
18
|
-
}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
19
|
-
readonly size: {
|
|
20
|
-
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>>;
|
|
21
|
-
readonly required: false;
|
|
22
|
-
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
23
|
-
__epPropKey: true;
|
|
24
|
-
};
|
|
25
|
-
readonly color: {
|
|
26
|
-
readonly type: import("vue").PropType<string>;
|
|
27
|
-
readonly required: false;
|
|
28
|
-
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
29
|
-
__epPropKey: true;
|
|
30
|
-
};
|
|
31
|
-
}>>, {}, {}>;
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<IconProps>, {
|
|
7
|
+
size: undefined;
|
|
8
|
+
}>, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<IconProps>, {
|
|
9
|
+
size: undefined;
|
|
10
|
+
}>>>, {
|
|
11
|
+
size: number | string;
|
|
12
|
+
}, {}>;
|
|
32
13
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
33
14
|
declare const _default: typeof __VLS_export;
|
|
34
15
|
export default _default;
|
|
16
|
+
type __VLS_TypePropsToOption<T> = {
|
|
17
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
18
|
+
type: import('vue').PropType<Required<T>[K]>;
|
|
19
|
+
} : {
|
|
20
|
+
type: import('vue').PropType<T[K]>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
type __VLS_WithDefaultsLocal<P, D> = {
|
|
25
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
26
|
+
default: D[K];
|
|
27
|
+
}> : P[K];
|
|
28
|
+
};
|
|
35
29
|
type __VLS_WithSlots<T, S> = T & {
|
|
36
30
|
new (): {
|
|
37
31
|
$slots: S;
|
|
38
32
|
};
|
|
39
33
|
};
|
|
34
|
+
type __VLS_PrettifyLocal<T> = {
|
|
35
|
+
[K in keyof T as K]: T[K];
|
|
36
|
+
} & {};
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var icon = require('./icon.js');
|
|
7
6
|
var index = require('../../../hooks/use-namespace/index.js');
|
|
8
7
|
var style = require('../../../utils/dom/style.js');
|
|
9
8
|
|
|
@@ -13,7 +12,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
13
12
|
inheritAttrs: false
|
|
14
13
|
},
|
|
15
14
|
__name: "icon",
|
|
16
|
-
props:
|
|
15
|
+
props: {
|
|
16
|
+
size: { type: [Number, String], required: false, default: void 0 },
|
|
17
|
+
color: { type: String, required: false }
|
|
18
|
+
},
|
|
17
19
|
setup(__props) {
|
|
18
20
|
const props = __props;
|
|
19
21
|
const ns = index.useNamespace("icon");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.vue2.js","sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport {
|
|
1
|
+
{"version":3,"file":"icon.vue2.js","sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\nimport type { IconProps } from './icon'\n\ndefineOptions({\n name: 'ElIcon',\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<IconProps>(), {\n size: undefined,\n})\nconst ns = useNamespace('icon')\n\nconst style = computed<CSSProperties>(() => {\n const { size, color } = props\n const fontSize = addUnit(size)\n if (!fontSize && !color) return {}\n\n return {\n fontSize,\n '--color': color,\n }\n})\n</script>\n"],"names":["useNamespace","style","computed","addUnit","_openBlock","_createElementBlock","_mergeProps","_unref","$attrs","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAGd,IAAA,MAAM,EAAA,GAAKA,mBAAa,MAAM,CAAA;AAE9B,IAAA,MAAMC,OAAA,GAAQC,aAAwB,MAAM;AAC1C,MAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,KAAA;AACxB,MAAA,MAAM,QAAA,GAAWC,cAAQ,IAAI,CAAA;AAC7B,MAAA,IAAI,CAAC,QAAA,IAAY,CAAC,KAAA,SAAc,EAAC;AAEjC,MAAA,OAAO;AAAA,QACL,QAAA;AAAA,QACA,SAAA,EAAW;AAAA,OACb;AAAA,IACF,CAAC,CAAA;;AA/BC,MAAA,OAAAC,eAAA,EAAAC,sBAAA;AAAA,QAEI,GAAA;AAAA,QAFJC,cAAA,CAEI;AAAA,UAFA,KAAA,EAAOC,SAAA,CAAA,EAAA,CAAA,CAAG,CAAA,EAAC;AAAA,UAAK,OAAON,OAAA,CAAA;AAAA,WAAeO,KAAAA,MAAM,CAAA;AAAA,QAAA;AAAA,UAC9CC,cAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;"}
|
|
@@ -1,14 +1,149 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Component, ExtractPublicPropTypes, HTMLAttributes, StyleValue } from 'vue';
|
|
2
|
+
import type { ComponentSize } from '@element-plus/nightly/es/constants';
|
|
2
3
|
export type InputModelModifiers = {
|
|
3
|
-
lazy?:
|
|
4
|
-
number?:
|
|
5
|
-
trim?:
|
|
4
|
+
lazy?: true;
|
|
5
|
+
number?: true;
|
|
6
|
+
trim?: true;
|
|
6
7
|
};
|
|
7
8
|
export type InputAutoSize = {
|
|
8
9
|
minRows?: number;
|
|
9
10
|
maxRows?: number;
|
|
10
11
|
} | boolean;
|
|
11
12
|
export type InputType = 'text' | 'textarea' | 'number' | 'password' | 'email' | 'search' | 'tel' | 'url' | (string & NonNullable<unknown>);
|
|
13
|
+
export interface InputProps {
|
|
14
|
+
/**
|
|
15
|
+
* @description native input id
|
|
16
|
+
*/
|
|
17
|
+
id?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @description input box size
|
|
20
|
+
*/
|
|
21
|
+
size?: ComponentSize;
|
|
22
|
+
/**
|
|
23
|
+
* @description whether to disable
|
|
24
|
+
*/
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* @description binding value
|
|
28
|
+
*/
|
|
29
|
+
modelValue?: string | number | null | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* @description v-model modifiers, reference [Vue modifiers](https://vuejs.org/guide/essentials/forms.html#modifiers)
|
|
32
|
+
*/
|
|
33
|
+
modelModifiers?: InputModelModifiers;
|
|
34
|
+
/**
|
|
35
|
+
* @description same as `maxlength` in native input
|
|
36
|
+
*/
|
|
37
|
+
maxlength?: string | number;
|
|
38
|
+
/**
|
|
39
|
+
* @description same as `minlength` in native input
|
|
40
|
+
*/
|
|
41
|
+
minlength?: string | number;
|
|
42
|
+
/**
|
|
43
|
+
* @description type of input, see more in [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)
|
|
44
|
+
*/
|
|
45
|
+
type?: InputType;
|
|
46
|
+
/**
|
|
47
|
+
* @description control the resizability
|
|
48
|
+
*/
|
|
49
|
+
resize?: 'none' | 'both' | 'horizontal' | 'vertical';
|
|
50
|
+
/**
|
|
51
|
+
* @description whether textarea has an adaptive height
|
|
52
|
+
*/
|
|
53
|
+
autosize?: InputAutoSize;
|
|
54
|
+
/**
|
|
55
|
+
* @description native input autocomplete
|
|
56
|
+
* - When the number of literal types in a union exceeds 315, the TS2590 error occurs. see: https://github.com/vuejs/core/issues/10514
|
|
57
|
+
*/
|
|
58
|
+
autocomplete?: string;
|
|
59
|
+
/**
|
|
60
|
+
* @description format content
|
|
61
|
+
*/
|
|
62
|
+
formatter?: (value: string) => string;
|
|
63
|
+
/**
|
|
64
|
+
* @description parse content
|
|
65
|
+
*/
|
|
66
|
+
parser?: (value: string) => string;
|
|
67
|
+
/**
|
|
68
|
+
* @description placeholder
|
|
69
|
+
*/
|
|
70
|
+
placeholder?: string;
|
|
71
|
+
/**
|
|
72
|
+
* @description native input form
|
|
73
|
+
*/
|
|
74
|
+
form?: string;
|
|
75
|
+
/**
|
|
76
|
+
* @description native input readonly
|
|
77
|
+
*/
|
|
78
|
+
readonly?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* @description whether to show clear button
|
|
81
|
+
*/
|
|
82
|
+
clearable?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* @description custom clear icon component
|
|
85
|
+
*/
|
|
86
|
+
clearIcon?: string | Component;
|
|
87
|
+
/**
|
|
88
|
+
* @description toggleable password input
|
|
89
|
+
*/
|
|
90
|
+
showPassword?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* @description word count
|
|
93
|
+
*/
|
|
94
|
+
showWordLimit?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* @description word count position, valid when `show-word-limit` is true
|
|
97
|
+
*/
|
|
98
|
+
wordLimitPosition?: 'inside' | 'outside';
|
|
99
|
+
/**
|
|
100
|
+
* @description suffix icon
|
|
101
|
+
*/
|
|
102
|
+
suffixIcon?: string | Component;
|
|
103
|
+
/**
|
|
104
|
+
* @description prefix icon
|
|
105
|
+
*/
|
|
106
|
+
prefixIcon?: string | Component;
|
|
107
|
+
/**
|
|
108
|
+
* @description container role, internal properties provided for use by the picker component
|
|
109
|
+
*/
|
|
110
|
+
containerRole?: string;
|
|
111
|
+
/**
|
|
112
|
+
* @description input tabindex
|
|
113
|
+
*/
|
|
114
|
+
tabindex?: string | number;
|
|
115
|
+
/**
|
|
116
|
+
* @description whether to trigger form validation
|
|
117
|
+
*/
|
|
118
|
+
validateEvent?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* @description input or textarea element style
|
|
121
|
+
*/
|
|
122
|
+
inputStyle?: StyleValue;
|
|
123
|
+
/**
|
|
124
|
+
* @description native input autofocus
|
|
125
|
+
*/
|
|
126
|
+
autofocus?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* @description number of rows of textarea, only works when `type` is 'textarea'
|
|
129
|
+
*/
|
|
130
|
+
rows?: number;
|
|
131
|
+
/**
|
|
132
|
+
* @description native `aria-label` attribute
|
|
133
|
+
*/
|
|
134
|
+
ariaLabel?: string;
|
|
135
|
+
/**
|
|
136
|
+
* @description native input mode for virtual keyboards
|
|
137
|
+
*/
|
|
138
|
+
inputmode?: HTMLAttributes['inputmode'];
|
|
139
|
+
/**
|
|
140
|
+
* @description same as `name` in native input
|
|
141
|
+
*/
|
|
142
|
+
name?: string;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @deprecated Removed after 3.0.0, Use `InputProps` instead.
|
|
146
|
+
*/
|
|
12
147
|
export declare const inputProps: {
|
|
13
148
|
readonly inputmode: import("@element-plus/nightly/es/utils").EpPropFinalized<(new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined) | ((new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined))[], unknown, unknown, undefined, boolean>;
|
|
14
149
|
readonly name: StringConstructor;
|
|
@@ -77,7 +212,7 @@ export declare const inputProps: {
|
|
|
77
212
|
readonly readonly: BooleanConstructor;
|
|
78
213
|
readonly clearable: BooleanConstructor;
|
|
79
214
|
readonly clearIcon: {
|
|
80
|
-
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string |
|
|
215
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
|
|
81
216
|
readonly required: false;
|
|
82
217
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
83
218
|
__epPropKey: true;
|
|
@@ -86,13 +221,13 @@ export declare const inputProps: {
|
|
|
86
221
|
readonly showWordLimit: BooleanConstructor;
|
|
87
222
|
readonly wordLimitPosition: import("@element-plus/nightly/es/utils").EpPropFinalized<StringConstructor, "inside" | "outside", unknown, "inside", boolean>;
|
|
88
223
|
readonly suffixIcon: {
|
|
89
|
-
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string |
|
|
224
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
|
|
90
225
|
readonly required: false;
|
|
91
226
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
92
227
|
__epPropKey: true;
|
|
93
228
|
};
|
|
94
229
|
readonly prefixIcon: {
|
|
95
|
-
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string |
|
|
230
|
+
readonly type: import("vue").PropType<import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
|
|
96
231
|
readonly required: false;
|
|
97
232
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
98
233
|
__epPropKey: true;
|
|
@@ -104,7 +239,9 @@ export declare const inputProps: {
|
|
|
104
239
|
readonly autofocus: BooleanConstructor;
|
|
105
240
|
readonly rows: import("@element-plus/nightly/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 2, boolean>;
|
|
106
241
|
};
|
|
107
|
-
|
|
242
|
+
/**
|
|
243
|
+
* @deprecated Removed after 3.0.0, Use `InputProps` instead.
|
|
244
|
+
*/
|
|
108
245
|
export type InputPropsPublic = ExtractPublicPropTypes<typeof inputProps>;
|
|
109
246
|
export declare const inputEmits: {
|
|
110
247
|
"update:modelValue": (value: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../../../../../packages/components/input/src/input.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isString,\n mutable,\n} from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\nimport { CircleClose } from '@element-plus/icons-vue'\n\nimport type {\n ExtractPropTypes,\n ExtractPublicPropTypes,\n HTMLAttributes,\n StyleValue,\n} from 'vue'\n\nexport type InputModelModifiers = {\n lazy?: boolean\n number?: boolean\n trim?: boolean\n}\nexport type InputAutoSize = { minRows?: number; maxRows?: number } | boolean\n// Some commonly used values for input type\nexport type InputType =\n | 'text'\n | 'textarea'\n | 'number'\n | 'password'\n | 'email'\n | 'search'\n | 'tel'\n | 'url'\n | (string & NonNullable<unknown>)\n\nexport const inputProps = buildProps({\n /**\n * @description native input id\n */\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description input box size\n */\n size: useSizeProp,\n /**\n * @description whether to disable\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<string | number | null | undefined>([\n String,\n Number,\n Object,\n ]),\n default: '',\n },\n /**\n * @description v-model modifiers, reference [Vue modifiers](https://vuejs.org/guide/essentials/forms.html#modifiers)\n */\n modelModifiers: {\n type: definePropType<InputModelModifiers>(Object),\n default: () => ({}),\n },\n /**\n * @description same as `maxlength` in native input\n */\n maxlength: {\n type: [String, Number],\n },\n /**\n * @description same as `minlength` in native input\n */\n minlength: {\n type: [String, Number],\n },\n /**\n * @description type of input, see more in [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)\n */\n type: {\n type: definePropType<InputType>(String),\n default: 'text',\n },\n /**\n * @description control the resizability\n */\n resize: {\n type: String,\n values: ['none', 'both', 'horizontal', 'vertical'],\n },\n /**\n * @description whether textarea has an adaptive height\n */\n autosize: {\n type: definePropType<InputAutoSize>([Boolean, Object]),\n default: false,\n },\n /**\n * @description native input autocomplete\n */\n autocomplete: {\n type: definePropType<HTMLInputElement['autocomplete']>(String),\n default: 'off',\n },\n /**\n * @description format content\n */\n formatter: {\n type: Function,\n },\n /**\n * @description parse content\n */\n parser: {\n type: Function,\n },\n /**\n * @description placeholder\n */\n placeholder: {\n type: String,\n },\n /**\n * @description native input form\n */\n form: {\n type: String,\n },\n /**\n * @description native input readonly\n */\n readonly: Boolean,\n /**\n * @description whether to show clear button\n */\n clearable: Boolean,\n /**\n * @description custom clear icon component\n */\n clearIcon: {\n type: iconPropType,\n default: CircleClose,\n },\n /**\n * @description toggleable password input\n */\n showPassword: Boolean,\n /**\n * @description word count\n */\n showWordLimit: Boolean,\n /**\n * @description word count position, valid when `show-word-limit` is true\n */\n wordLimitPosition: {\n type: String,\n values: ['inside', 'outside'],\n default: 'inside',\n },\n /**\n * @description suffix icon\n */\n suffixIcon: {\n type: iconPropType,\n },\n /**\n * @description prefix icon\n */\n prefixIcon: {\n type: iconPropType,\n },\n /**\n * @description container role, internal properties provided for use by the picker component\n */\n containerRole: {\n type: String,\n default: undefined,\n },\n /**\n * @description input tabindex\n */\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description input or textarea element style\n */\n inputStyle: {\n type: definePropType<StyleValue>([Object, Array, String]),\n default: () => mutable({} as const),\n },\n /**\n * @description native input autofocus\n */\n autofocus: Boolean,\n rows: {\n type: Number,\n default: 2,\n },\n ...useAriaProps(['ariaLabel']),\n /**\n * @description native input mode for virtual keyboards\n */\n inputmode: {\n type: definePropType<HTMLAttributes['inputmode']>(String),\n default: undefined,\n },\n /**\n * @description same as `name` in native input\n */\n name: String,\n} as const)\nexport type InputProps = ExtractPropTypes<typeof inputProps>\nexport type InputPropsPublic = ExtractPublicPropTypes<typeof inputProps>\n\nexport const inputEmits = {\n [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n input: (value: string) => isString(value),\n change: (value: string, evt?: Event) =>\n isString(value) && (evt instanceof Event || evt === undefined),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n // NOTE: when autofill by browser, the keydown event is instanceof Event, not KeyboardEvent\n // relative bug report https://github.com/element-plus/element-plus/issues/6665\n keydown: (evt: KeyboardEvent | Event) => evt instanceof Event,\n compositionstart: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionupdate: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionend: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n}\nexport type InputEmits = typeof inputEmits\n"],"names":["buildProps","useSizeProp","definePropType","iconPropType","CircleClose","mutable","useAriaProps","UPDATE_MODEL_EVENT","isString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../../../../../packages/components/input/src/input.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isString,\n mutable,\n} from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\nimport { CircleClose } from '@element-plus/icons-vue'\n\nimport type {\n Component,\n ExtractPublicPropTypes,\n HTMLAttributes,\n StyleValue,\n} from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\n\nexport type InputModelModifiers = {\n lazy?: true\n number?: true\n trim?: true\n}\nexport type InputAutoSize = { minRows?: number; maxRows?: number } | boolean\n// Some commonly used values for input type\nexport type InputType =\n | 'text'\n | 'textarea'\n | 'number'\n | 'password'\n | 'email'\n | 'search'\n | 'tel'\n | 'url'\n | (string & NonNullable<unknown>)\n\nexport interface InputProps {\n /**\n * @description native input id\n */\n id?: string\n /**\n * @description input box size\n */\n size?: ComponentSize\n /**\n * @description whether to disable\n */\n disabled?: boolean\n /**\n * @description binding value\n */\n modelValue?: string | number | null | undefined\n /**\n * @description v-model modifiers, reference [Vue modifiers](https://vuejs.org/guide/essentials/forms.html#modifiers)\n */\n modelModifiers?: InputModelModifiers\n /**\n * @description same as `maxlength` in native input\n */\n maxlength?: string | number\n /**\n * @description same as `minlength` in native input\n */\n minlength?: string | number\n /**\n * @description type of input, see more in [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)\n */\n type?: InputType\n /**\n * @description control the resizability\n */\n resize?: 'none' | 'both' | 'horizontal' | 'vertical'\n /**\n * @description whether textarea has an adaptive height\n */\n autosize?: InputAutoSize\n /**\n * @description native input autocomplete\n * - When the number of literal types in a union exceeds 315, the TS2590 error occurs. see: https://github.com/vuejs/core/issues/10514\n */\n autocomplete?: string // HTMLInputElement['autocomplete']\n /**\n * @description format content\n */\n formatter?: (value: string) => string\n /**\n * @description parse content\n */\n parser?: (value: string) => string\n /**\n * @description placeholder\n */\n placeholder?: string\n /**\n * @description native input form\n */\n form?: string\n /**\n * @description native input readonly\n */\n readonly?: boolean\n /**\n * @description whether to show clear button\n */\n clearable?: boolean\n /**\n * @description custom clear icon component\n */\n clearIcon?: string | Component\n /**\n * @description toggleable password input\n */\n showPassword?: boolean\n /**\n * @description word count\n */\n showWordLimit?: boolean\n /**\n * @description word count position, valid when `show-word-limit` is true\n */\n wordLimitPosition?: 'inside' | 'outside'\n /**\n * @description suffix icon\n */\n suffixIcon?: string | Component\n /**\n * @description prefix icon\n */\n prefixIcon?: string | Component\n /**\n * @description container role, internal properties provided for use by the picker component\n */\n containerRole?: string\n /**\n * @description input tabindex\n */\n tabindex?: string | number\n /**\n * @description whether to trigger form validation\n */\n validateEvent?: boolean\n /**\n * @description input or textarea element style\n */\n inputStyle?: StyleValue\n /**\n * @description native input autofocus\n */\n autofocus?: boolean\n /**\n * @description number of rows of textarea, only works when `type` is 'textarea'\n */\n rows?: number\n /**\n * @description native `aria-label` attribute\n */\n ariaLabel?: string\n /**\n * @description native input mode for virtual keyboards\n */\n inputmode?: HTMLAttributes['inputmode']\n /**\n * @description same as `name` in native input\n */\n name?: string\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `InputProps` instead.\n */\nexport const inputProps = buildProps({\n /**\n * @description native input id\n */\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description input box size\n */\n size: useSizeProp,\n /**\n * @description whether to disable\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<string | number | null | undefined>([\n String,\n Number,\n Object,\n ]),\n default: '',\n },\n /**\n * @description v-model modifiers, reference [Vue modifiers](https://vuejs.org/guide/essentials/forms.html#modifiers)\n */\n modelModifiers: {\n type: definePropType<InputModelModifiers>(Object),\n default: () => ({}),\n },\n /**\n * @description same as `maxlength` in native input\n */\n maxlength: {\n type: [String, Number],\n },\n /**\n * @description same as `minlength` in native input\n */\n minlength: {\n type: [String, Number],\n },\n /**\n * @description type of input, see more in [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)\n */\n type: {\n type: definePropType<InputType>(String),\n default: 'text',\n },\n /**\n * @description control the resizability\n */\n resize: {\n type: String,\n values: ['none', 'both', 'horizontal', 'vertical'],\n },\n /**\n * @description whether textarea has an adaptive height\n */\n autosize: {\n type: definePropType<InputAutoSize>([Boolean, Object]),\n default: false,\n },\n /**\n * @description native input autocomplete\n */\n autocomplete: {\n type: definePropType<HTMLInputElement['autocomplete']>(String),\n default: 'off',\n },\n /**\n * @description format content\n */\n formatter: {\n type: Function,\n },\n /**\n * @description parse content\n */\n parser: {\n type: Function,\n },\n /**\n * @description placeholder\n */\n placeholder: {\n type: String,\n },\n /**\n * @description native input form\n */\n form: {\n type: String,\n },\n /**\n * @description native input readonly\n */\n readonly: Boolean,\n /**\n * @description whether to show clear button\n */\n clearable: Boolean,\n /**\n * @description custom clear icon component\n */\n clearIcon: {\n type: iconPropType,\n default: CircleClose,\n },\n /**\n * @description toggleable password input\n */\n showPassword: Boolean,\n /**\n * @description word count\n */\n showWordLimit: Boolean,\n /**\n * @description word count position, valid when `show-word-limit` is true\n */\n wordLimitPosition: {\n type: String,\n values: ['inside', 'outside'],\n default: 'inside',\n },\n /**\n * @description suffix icon\n */\n suffixIcon: {\n type: iconPropType,\n },\n /**\n * @description prefix icon\n */\n prefixIcon: {\n type: iconPropType,\n },\n /**\n * @description container role, internal properties provided for use by the picker component\n */\n containerRole: {\n type: String,\n default: undefined,\n },\n /**\n * @description input tabindex\n */\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description input or textarea element style\n */\n inputStyle: {\n type: definePropType<StyleValue>([Object, Array, String]),\n default: () => mutable({} as const),\n },\n /**\n * @description native input autofocus\n */\n autofocus: Boolean,\n rows: {\n type: Number,\n default: 2,\n },\n ...useAriaProps(['ariaLabel']),\n /**\n * @description native input mode for virtual keyboards\n */\n inputmode: {\n type: definePropType<HTMLAttributes['inputmode']>(String),\n default: undefined,\n },\n /**\n * @description same as `name` in native input\n */\n name: String,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `InputProps` instead.\n */\nexport type InputPropsPublic = ExtractPublicPropTypes<typeof inputProps>\n\nexport const inputEmits = {\n [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n input: (value: string) => isString(value),\n change: (value: string, evt?: Event) =>\n isString(value) && (evt instanceof Event || evt === undefined),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n // NOTE: when autofill by browser, the keydown event is instanceof Event, not KeyboardEvent\n // relative bug report https://github.com/element-plus/element-plus/issues/6665\n keydown: (evt: KeyboardEvent | Event) => evt instanceof Event,\n compositionstart: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionupdate: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n compositionend: (evt: CompositionEvent) => evt instanceof CompositionEvent,\n}\nexport type InputEmits = typeof inputEmits\n"],"names":["buildProps","useSizeProp","definePropType","iconPropType","CircleClose","mutable","useAriaProps","UPDATE_MODEL_EVENT","isString"],"mappings":"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"}
|