@element-plus/nightly 0.0.20240911 → 0.0.20240913
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/README.md +1 -1
- package/attributes.json +1 -1
- package/dist/index.full.js +64 -22
- package/dist/index.full.min.js +11 -11
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +11 -11
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +64 -22
- 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/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/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/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/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/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-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/cascader/src/cascader2.mjs +7 -2
- package/es/components/cascader/src/cascader2.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.mjs +7 -2
- package/es/components/cascader-panel/src/index.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.mjs +7 -3
- package/es/components/cascader-panel/src/menu.mjs.map +1 -1
- package/es/components/collapse/src/collapse-item.d.ts +6 -0
- package/es/components/collapse/src/collapse-item.mjs +6 -0
- package/es/components/collapse/src/collapse-item.mjs.map +1 -1
- package/es/components/collapse/src/collapse-item.vue.d.ts +15 -0
- package/es/components/collapse/src/collapse-item2.mjs +11 -10
- package/es/components/collapse/src/collapse-item2.mjs.map +1 -1
- package/es/components/color-picker/src/color-picker2.mjs +7 -0
- package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
- package/es/components/segmented/src/segmented2.mjs.map +1 -1
- package/es/components/segmented/src/types.d.ts +1 -1
- package/es/components/table/src/store/watcher.mjs +21 -5
- package/es/components/table/src/store/watcher.mjs.map +1 -1
- package/es/components/table/src/table/utils-helper.d.ts +1 -1
- package/es/components/table/src/table/utils-helper.mjs +2 -2
- package/es/components/table/src/table/utils-helper.mjs.map +1 -1
- package/es/components/table/src/table.vue.d.ts +1 -1
- package/es/components/time-picker/src/common/picker.mjs +1 -1
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/tooltip-v2/index.mjs +1 -1
- package/es/components/tooltip-v2/src/content.mjs +49 -111
- package/es/components/tooltip-v2/src/content.mjs.map +1 -1
- package/es/components/tooltip-v2/src/content2.mjs +111 -49
- package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
- package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
- package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/cascader/src/cascader2.js +6 -1
- package/lib/components/cascader/src/cascader2.js.map +1 -1
- package/lib/components/cascader-panel/src/index.js +6 -1
- package/lib/components/cascader-panel/src/index.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.js +6 -2
- package/lib/components/cascader-panel/src/menu.js.map +1 -1
- package/lib/components/collapse/src/collapse-item.d.ts +6 -0
- package/lib/components/collapse/src/collapse-item.js +6 -0
- package/lib/components/collapse/src/collapse-item.js.map +1 -1
- package/lib/components/collapse/src/collapse-item.vue.d.ts +15 -0
- package/lib/components/collapse/src/collapse-item2.js +10 -9
- package/lib/components/collapse/src/collapse-item2.js.map +1 -1
- package/lib/components/color-picker/src/color-picker2.js +7 -0
- package/lib/components/color-picker/src/color-picker2.js.map +1 -1
- package/lib/components/segmented/src/segmented2.js.map +1 -1
- package/lib/components/segmented/src/types.d.ts +1 -1
- package/lib/components/table/src/store/watcher.js +21 -5
- package/lib/components/table/src/store/watcher.js.map +1 -1
- package/lib/components/table/src/table/utils-helper.d.ts +1 -1
- package/lib/components/table/src/table/utils-helper.js +2 -2
- package/lib/components/table/src/table/utils-helper.js.map +1 -1
- package/lib/components/table/src/table.vue.d.ts +1 -1
- package/lib/components/time-picker/src/common/picker.js +1 -1
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/tooltip-v2/index.js +1 -1
- package/lib/components/tooltip-v2/src/content.js +49 -111
- package/lib/components/tooltip-v2/src/content.js.map +1 -1
- package/lib/components/tooltip-v2/src/content2.js +111 -49
- package/lib/components/tooltip-v2/src/content2.js.map +1 -1
- package/lib/components/tooltip-v2/src/tooltip.js +1 -1
- package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
- 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/tags.json +1 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/tooltip-v2/src/content.
|
|
1
|
+
{"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/tooltip-v2/src/content.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { useAriaProps } from '@element-plus/hooks'\n\nimport type { PopperEffect } from '@element-plus/components/popper'\nimport type { ExtractPropTypes } from 'vue'\nimport type { Placement, Strategy, VirtualElement } from '@floating-ui/dom'\n\nconst tooltipV2Strategies = ['absolute', 'fixed'] as const\n\nconst tooltipV2Placements = [\n 'top-start',\n 'top-end',\n 'top',\n 'bottom-start',\n 'bottom-end',\n 'bottom',\n 'left-start',\n 'left-end',\n 'left',\n 'right-start',\n 'right-end',\n 'right',\n] as const\n\nexport const tooltipV2ContentProps = buildProps({\n arrowPadding: {\n type: definePropType<number>(Number),\n default: 5,\n },\n effect: {\n type: definePropType<PopperEffect | string>(String),\n default: 'light',\n },\n contentClass: String,\n /**\n * Placement of tooltip content relative to reference element (when absent it refers to trigger)\n */\n placement: {\n type: definePropType<Placement>(String),\n values: tooltipV2Placements,\n default: 'bottom',\n },\n /**\n * Reference element for tooltip content to set its position\n */\n reference: {\n type: definePropType<HTMLElement | VirtualElement | null>(Object),\n default: null,\n },\n offset: {\n type: Number,\n default: 8,\n },\n strategy: {\n type: definePropType<Strategy>(String),\n values: tooltipV2Strategies,\n default: 'absolute',\n },\n showArrow: Boolean,\n ...useAriaProps(['ariaLabel']),\n} as const)\n\nexport type TooltipV2ContentProps = ExtractPropTypes<\n typeof tooltipV2ContentProps\n>\n"],"names":[],"mappings":";;;;;AAEA,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,mBAAmB,GAAG;AAC5B,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,KAAK;AACP,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,aAAa;AACf,EAAE,WAAW;AACb,EAAE,OAAO;AACT,CAAC,CAAC;AACU,MAAC,qBAAqB,GAAG,UAAU,CAAC;AAChD,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,EAAE,YAAY,EAAE,MAAM;AACtB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,MAAM,EAAE,mBAAmB;AAC/B,IAAI,OAAO,EAAE,QAAQ;AACrB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,IAAI,MAAM,EAAE,mBAAmB;AAC/B,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,GAAG,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC;;;;"}
|
|
@@ -1,54 +1,116 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import { defineComponent, inject, ref, computed, unref, watch, onMounted, provide, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createVNode, withCtx, Fragment, createTextVNode, toDisplayString, createCommentVNode } from 'vue';
|
|
2
|
+
import { offset } from '@floating-ui/dom';
|
|
2
3
|
import '../../../hooks/index.mjs';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
4
|
+
import '../../visual-hidden/index.mjs';
|
|
5
|
+
import { tooltipV2RootKey, tooltipV2ContentKey } from './constants.mjs';
|
|
6
|
+
import { tooltipV2ContentProps } from './content.mjs';
|
|
7
|
+
import { tooltipV2CommonProps } from './common.mjs';
|
|
8
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
9
|
+
import { useFloating, arrowMiddleware } from '../../../hooks/use-floating/index.mjs';
|
|
10
|
+
import { useZIndex } from '../../../hooks/use-z-index/index.mjs';
|
|
11
|
+
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
12
|
+
import ElVisuallyHidden from '../../visual-hidden/src/visual-hidden2.mjs';
|
|
5
13
|
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
"top-start",
|
|
9
|
-
"top-end",
|
|
10
|
-
"top",
|
|
11
|
-
"bottom-start",
|
|
12
|
-
"bottom-end",
|
|
13
|
-
"bottom",
|
|
14
|
-
"left-start",
|
|
15
|
-
"left-end",
|
|
16
|
-
"left",
|
|
17
|
-
"right-start",
|
|
18
|
-
"right-end",
|
|
19
|
-
"right"
|
|
20
|
-
];
|
|
21
|
-
const tooltipV2ContentProps = buildProps({
|
|
22
|
-
arrowPadding: {
|
|
23
|
-
type: definePropType(Number),
|
|
24
|
-
default: 5
|
|
25
|
-
},
|
|
26
|
-
effect: {
|
|
27
|
-
type: definePropType(String),
|
|
28
|
-
default: "light"
|
|
29
|
-
},
|
|
30
|
-
contentClass: String,
|
|
31
|
-
placement: {
|
|
32
|
-
type: definePropType(String),
|
|
33
|
-
values: tooltipV2Placements,
|
|
34
|
-
default: "bottom"
|
|
35
|
-
},
|
|
36
|
-
reference: {
|
|
37
|
-
type: definePropType(Object),
|
|
38
|
-
default: null
|
|
39
|
-
},
|
|
40
|
-
offset: {
|
|
41
|
-
type: Number,
|
|
42
|
-
default: 8
|
|
43
|
-
},
|
|
44
|
-
strategy: {
|
|
45
|
-
type: definePropType(String),
|
|
46
|
-
values: tooltipV2Strategies,
|
|
47
|
-
default: "absolute"
|
|
48
|
-
},
|
|
49
|
-
showArrow: Boolean,
|
|
50
|
-
...useAriaProps(["ariaLabel"])
|
|
14
|
+
const __default__ = defineComponent({
|
|
15
|
+
name: "ElTooltipV2Content"
|
|
51
16
|
});
|
|
17
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
18
|
+
...__default__,
|
|
19
|
+
props: { ...tooltipV2ContentProps, ...tooltipV2CommonProps },
|
|
20
|
+
setup(__props) {
|
|
21
|
+
const props = __props;
|
|
22
|
+
const { triggerRef, contentId } = inject(tooltipV2RootKey);
|
|
23
|
+
const placement = ref(props.placement);
|
|
24
|
+
const strategy = ref(props.strategy);
|
|
25
|
+
const arrowRef = ref(null);
|
|
26
|
+
const { referenceRef, contentRef, middlewareData, x, y, update } = useFloating({
|
|
27
|
+
placement,
|
|
28
|
+
strategy,
|
|
29
|
+
middleware: computed(() => {
|
|
30
|
+
const middleware = [offset(props.offset)];
|
|
31
|
+
if (props.showArrow) {
|
|
32
|
+
middleware.push(arrowMiddleware({
|
|
33
|
+
arrowRef
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
return middleware;
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
const zIndex = useZIndex().nextZIndex();
|
|
40
|
+
const ns = useNamespace("tooltip-v2");
|
|
41
|
+
const side = computed(() => {
|
|
42
|
+
return placement.value.split("-")[0];
|
|
43
|
+
});
|
|
44
|
+
const contentStyle = computed(() => {
|
|
45
|
+
return {
|
|
46
|
+
position: unref(strategy),
|
|
47
|
+
top: `${unref(y) || 0}px`,
|
|
48
|
+
left: `${unref(x) || 0}px`,
|
|
49
|
+
zIndex
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
const arrowStyle = computed(() => {
|
|
53
|
+
if (!props.showArrow)
|
|
54
|
+
return {};
|
|
55
|
+
const { arrow } = unref(middlewareData);
|
|
56
|
+
return {
|
|
57
|
+
[`--${ns.namespace.value}-tooltip-v2-arrow-x`]: `${arrow == null ? void 0 : arrow.x}px` || "",
|
|
58
|
+
[`--${ns.namespace.value}-tooltip-v2-arrow-y`]: `${arrow == null ? void 0 : arrow.y}px` || ""
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
const contentClass = computed(() => [
|
|
62
|
+
ns.e("content"),
|
|
63
|
+
ns.is("dark", props.effect === "dark"),
|
|
64
|
+
ns.is(unref(strategy)),
|
|
65
|
+
props.contentClass
|
|
66
|
+
]);
|
|
67
|
+
watch(arrowRef, () => update());
|
|
68
|
+
watch(() => props.placement, (val) => placement.value = val);
|
|
69
|
+
onMounted(() => {
|
|
70
|
+
watch(() => props.reference || triggerRef.value, (el) => {
|
|
71
|
+
referenceRef.value = el || void 0;
|
|
72
|
+
}, {
|
|
73
|
+
immediate: true
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
provide(tooltipV2ContentKey, { arrowRef });
|
|
77
|
+
return (_ctx, _cache) => {
|
|
78
|
+
return openBlock(), createElementBlock("div", {
|
|
79
|
+
ref_key: "contentRef",
|
|
80
|
+
ref: contentRef,
|
|
81
|
+
style: normalizeStyle(unref(contentStyle)),
|
|
82
|
+
"data-tooltip-v2-root": ""
|
|
83
|
+
}, [
|
|
84
|
+
!_ctx.nowrap ? (openBlock(), createElementBlock("div", {
|
|
85
|
+
key: 0,
|
|
86
|
+
"data-side": unref(side),
|
|
87
|
+
class: normalizeClass(unref(contentClass))
|
|
88
|
+
}, [
|
|
89
|
+
renderSlot(_ctx.$slots, "default", {
|
|
90
|
+
contentStyle: unref(contentStyle),
|
|
91
|
+
contentClass: unref(contentClass)
|
|
92
|
+
}),
|
|
93
|
+
createVNode(unref(ElVisuallyHidden), {
|
|
94
|
+
id: unref(contentId),
|
|
95
|
+
role: "tooltip"
|
|
96
|
+
}, {
|
|
97
|
+
default: withCtx(() => [
|
|
98
|
+
_ctx.ariaLabel ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
99
|
+
createTextVNode(toDisplayString(_ctx.ariaLabel), 1)
|
|
100
|
+
], 64)) : renderSlot(_ctx.$slots, "default", { key: 1 })
|
|
101
|
+
]),
|
|
102
|
+
_: 3
|
|
103
|
+
}, 8, ["id"]),
|
|
104
|
+
renderSlot(_ctx.$slots, "arrow", {
|
|
105
|
+
style: normalizeStyle(unref(arrowStyle)),
|
|
106
|
+
side: unref(side)
|
|
107
|
+
})
|
|
108
|
+
], 10, ["data-side"])) : createCommentVNode("v-if", true)
|
|
109
|
+
], 4);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
var TooltipV2Content = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "content.vue"]]);
|
|
52
114
|
|
|
53
|
-
export {
|
|
115
|
+
export { TooltipV2Content as default };
|
|
54
116
|
//# sourceMappingURL=content2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/tooltip-v2/src/content.
|
|
1
|
+
{"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/tooltip-v2/src/content.vue"],"sourcesContent":["<template>\n <div ref=\"contentRef\" :style=\"contentStyle\" data-tooltip-v2-root>\n <div v-if=\"!nowrap\" :data-side=\"side\" :class=\"contentClass\">\n <slot :content-style=\"contentStyle\" :content-class=\"contentClass\" />\n <el-visually-hidden :id=\"contentId\" role=\"tooltip\">\n <template v-if=\"ariaLabel\">\n {{ ariaLabel }}\n </template>\n <slot v-else />\n </el-visually-hidden>\n <slot name=\"arrow\" :style=\"arrowStyle\" :side=\"side\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, provide, ref, unref, watch } from 'vue'\nimport { offset } from '@floating-ui/dom'\nimport {\n arrowMiddleware,\n useFloating,\n useNamespace,\n useZIndex,\n} from '@element-plus/hooks'\nimport ElVisuallyHidden from '@element-plus/components/visual-hidden'\nimport { tooltipV2ContentKey, tooltipV2RootKey } from './constants'\nimport { tooltipV2ContentProps } from './content'\nimport { tooltipV2CommonProps } from './common'\n\nimport type { CSSProperties } from 'vue'\nimport type { Middleware } from '@floating-ui/dom'\n\ndefineOptions({\n name: 'ElTooltipV2Content',\n})\n\nconst props = defineProps({ ...tooltipV2ContentProps, ...tooltipV2CommonProps })\n\nconst { triggerRef, contentId } = inject(tooltipV2RootKey)!\n\nconst placement = ref(props.placement)\nconst strategy = ref(props.strategy)\nconst arrowRef = ref<HTMLElement | null>(null)\n\nconst { referenceRef, contentRef, middlewareData, x, y, update } = useFloating({\n placement,\n strategy,\n middleware: computed(() => {\n const middleware: Middleware[] = [offset(props.offset)]\n\n if (props.showArrow) {\n middleware.push(\n arrowMiddleware({\n arrowRef,\n })\n )\n }\n\n return middleware\n }),\n})\n\nconst zIndex = useZIndex().nextZIndex()\n\nconst ns = useNamespace('tooltip-v2')\n\nconst side = computed(() => {\n return placement.value.split('-')[0]\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n return {\n position: unref(strategy),\n top: `${unref(y) || 0}px`,\n left: `${unref(x) || 0}px`,\n zIndex,\n }\n})\n\nconst arrowStyle = computed<CSSProperties>(() => {\n if (!props.showArrow) return {}\n\n const { arrow } = unref(middlewareData)\n\n return {\n [`--${ns.namespace.value}-tooltip-v2-arrow-x`]: `${arrow?.x}px` || '',\n [`--${ns.namespace.value}-tooltip-v2-arrow-y`]: `${arrow?.y}px` || '',\n }\n})\n\nconst contentClass = computed(() => [\n ns.e('content'),\n ns.is('dark', props.effect === 'dark'),\n ns.is(unref(strategy)),\n props.contentClass,\n])\n\nwatch(arrowRef, () => update())\n\nwatch(\n () => props.placement,\n (val) => (placement.value = val)\n)\n\nonMounted(() => {\n watch(\n () => props.reference || triggerRef.value,\n (el) => {\n referenceRef.value = el || undefined\n },\n {\n immediate: true,\n }\n )\n})\n\nprovide(tooltipV2ContentKey, { arrowRef })\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import '../../../utils/index.mjs';
|
|
|
2
2
|
import { tooltipV2RootProps } from './root.mjs';
|
|
3
3
|
import { tooltipV2TriggerProps } from './trigger.mjs';
|
|
4
4
|
import { tooltipV2ArrowProps } from './arrow.mjs';
|
|
5
|
-
import { tooltipV2ContentProps } from './
|
|
5
|
+
import { tooltipV2ContentProps } from './content.mjs';
|
|
6
6
|
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
|
7
7
|
|
|
8
8
|
const tooltipV2Props = buildProps({
|
|
@@ -2,13 +2,13 @@ import { defineComponent, toRefs, reactive, openBlock, createBlock, normalizePro
|
|
|
2
2
|
import { pick } from 'lodash-unified';
|
|
3
3
|
import { ElTeleport } from '../../teleport/index.mjs';
|
|
4
4
|
import { tooltipV2ArrowProps } from './arrow.mjs';
|
|
5
|
-
import { tooltipV2ContentProps } from './
|
|
5
|
+
import { tooltipV2ContentProps } from './content.mjs';
|
|
6
6
|
import { tooltipV2RootProps } from './root.mjs';
|
|
7
7
|
import { tooltipV2Props } from './tooltip.mjs';
|
|
8
8
|
import { tooltipV2TriggerProps } from './trigger.mjs';
|
|
9
9
|
import TooltipV2Root from './root2.mjs';
|
|
10
10
|
import TooltipV2Arrow from './arrow2.mjs';
|
|
11
|
-
import TooltipV2Content from './
|
|
11
|
+
import TooltipV2Content from './content2.mjs';
|
|
12
12
|
import TooltipV2Trigger from './trigger2.mjs';
|
|
13
13
|
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
14
14
|
|
package/es/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.20240913";
|
package/es/version.mjs
CHANGED
package/es/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20240913'\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"}
|
|
@@ -580,7 +580,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
580
580
|
"render-label": _ctx.$slots.default,
|
|
581
581
|
onExpandChange: handleExpandChange,
|
|
582
582
|
onClose: ($event) => _ctx.$nextTick(() => togglePopperVisible(false))
|
|
583
|
-
},
|
|
583
|
+
}, {
|
|
584
|
+
empty: vue.withCtx(() => [
|
|
585
|
+
vue.renderSlot(_ctx.$slots, "empty")
|
|
586
|
+
]),
|
|
587
|
+
_: 3
|
|
588
|
+
}, 8, ["modelValue", "onUpdate:modelValue", "options", "props", "render-label", "onClose"]), [
|
|
584
589
|
[vue.vShow, !filtering.value]
|
|
585
590
|
]),
|
|
586
591
|
_ctx.filterable ? vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(index$a.ElScrollbar), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascader2.js","sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass]\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n effect=\"light\"\n pure\n :persistent=\"persistent\"\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[contentRef]=\"() => togglePopperVisible(false)\"\n :class=\"cascaderKls\"\n :style=\"cascaderStyle\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model=\"inputValue\"\n :placeholder=\"currentPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"inputClass\"\n :tabindex=\"multiple && filterable && !isDisabled ? -1 : undefined\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"cascaderIconKls\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div\n v-if=\"multiple\"\n ref=\"tagWrapper\"\n :class=\"[\n nsCascader.e('tags'),\n nsCascader.is('validate', Boolean(validateState)),\n ]\"\n >\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <template v-if=\"tag.isCollapseTag === false\">\n <span>{{ tag.text }}</span>\n </template>\n <template v-else>\n <el-tooltip\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n effect=\"light\"\n >\n <template #default>\n <span>{{ tag.text }}</span>\n </template>\n <template #content>\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag2, idx) in allPresentTags.slice(\n maxCollapseTags\n )\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag2.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag2.hitState\"\n :closable=\"tag2.closable\"\n disable-transitions\n @close=\"deleteTag(tag2)\"\n >\n <span>{{ tag2.text }}</span>\n </el-tag>\n </div>\n </div>\n </template>\n </el-tooltip>\n </template>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e as KeyboardEvent)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"cascaderPanelRef\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props.props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, ref, useAttrs, watch } from 'vue'\nimport { cloneDeep, debounce } from 'lodash-unified'\nimport { useCssVar, useResizeObserver } from '@vueuse/core'\nimport {\n debugWarn,\n focusNode,\n getSibling,\n isClient,\n isPromise,\n} from '@element-plus/utils'\nimport ElCascaderPanel from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormItem, useFormSize } from '@element-plus/components/form'\nimport { ClickOutside as vClickoutside } from '@element-plus/directives'\nimport {\n useComposition,\n useEmptyValues,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\nimport { cascaderEmits, cascaderProps } from './cascader'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type {\n CascaderNode,\n CascaderPanelInstance,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\nconst COMPONENT_NAME = 'ElCascader'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(cascaderProps)\nconst emit = defineEmits(cascaderEmits)\nconst attrs = useAttrs()\n\nlet inputInitialHeight = 0\nlet pressDeleteCount = 0\n\nconst nsCascader = useNamespace('cascader')\nconst nsInput = useNamespace('input')\n\nconst { t } = useLocale()\nconst { form, formItem } = useFormItem()\nconst { valueOnClear } = useEmptyValues(props)\nconst { isComposing, handleComposition } = useComposition({\n afterComposition(event) {\n const text = (event.target as HTMLInputElement)?.value\n handleInput(text)\n },\n})\n\nconst tooltipRef: Ref<TooltipInstance | null> = ref(null)\nconst input: Ref<InputInstance | null> = ref(null)\nconst tagWrapper = ref(null)\nconst cascaderPanelRef: Ref<CascaderPanelInstance | null> = ref(null)\nconst suggestionPanel: Ref<ScrollbarInstance | null> = ref(null)\nconst popperVisible = ref(false)\nconst inputHover = ref(false)\nconst filtering = ref(false)\nconst filterFocus = ref(false)\nconst inputValue = ref('')\nconst searchInputValue = ref('')\nconst presentTags: Ref<Tag[]> = ref([])\nconst allPresentTags: Ref<Tag[]> = ref([])\nconst suggestions: Ref<CascaderNode[]> = ref([])\n\nconst cascaderStyle = computed<StyleValue>(() => {\n return attrs.style as StyleValue\n})\n\nconst isDisabled = computed(() => props.disabled || form?.disabled)\nconst inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n)\nconst currentPlaceholder = computed(() =>\n searchInputValue.value || presentTags.value.length > 0 || isComposing.value\n ? ''\n : inputPlaceholder.value\n)\nconst realSize = useFormSize()\nconst tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n)\nconst multiple = computed(() => !!props.props.multiple)\nconst readonly = computed(() => !props.filterable || multiple.value)\nconst searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n)\nconst checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => cascaderPanelRef.value?.checkedNodes || []\n)\nconst clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n})\nconst presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ''\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n})\n\nconst validateState = computed(() => formItem?.validateState || '')\n\nconst checkedValue = computed<CascaderValue>({\n get() {\n return cloneDeep(props.modelValue) as CascaderValue\n },\n set(val) {\n // https://github.com/element-plus/element-plus/issues/17647\n const value = val ?? valueOnClear.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n})\n\nconst cascaderKls = computed(() => {\n return [\n nsCascader.b(),\n nsCascader.m(realSize.value),\n nsCascader.is('disabled', isDisabled.value),\n attrs.class,\n ]\n})\n\nconst cascaderIconKls = computed(() => {\n return [\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible.value),\n ]\n})\n\nconst inputClass = computed(() => {\n return nsCascader.is('focus', popperVisible.value || filterFocus.value)\n})\n\nconst contentRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n})\n\nconst togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(cascaderPanelRef.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visibleChange', visible)\n }\n}\n\nconst updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n}\n\nconst hideSuggestionPanel = () => {\n filtering.value = false\n}\n\nconst genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n isCollapseTag: false,\n }\n}\n\nconst deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n cascaderPanelRef.value?.calculateCheckedValue()\n emit('removeTag', node.valueByOption)\n}\n\nconst calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n allPresentTags.value = allTags\n\n if (nodes.length) {\n nodes\n .slice(0, props.maxCollapseTags)\n .forEach((node) => tags.push(genTag(node)))\n const rest = nodes.slice(props.maxCollapseTags)\n const restCount = rest.length\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n isCollapseTag: true,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n}\n\nconst calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = cascaderPanelRef.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n allPresentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n}\n\nconst focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n `.${nsCascader.e('suggestion-item')}`\n )\n } else {\n firstNode = cascaderPanelRef.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n}\n\nconst updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n `.${nsCascader.e('suggestion-list')}`\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n}\n\nconst getCheckedNodes = (leafOnly: boolean) => {\n return cascaderPanelRef.value?.getCheckedNodes(leafOnly)\n}\n\nconst handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expandChange', value)\n}\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (isComposing.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n}\n\nconst handleClear = () => {\n cascaderPanelRef.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n emit('clear')\n}\n\nconst syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n}\n\nconst handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n cascaderPanelRef.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n}\n\nconst handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n ) as HTMLElement\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n }\n}\n\nconst handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount || (props.collapseTags && tags.length > 1))\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n}\n\nconst handleFocus = (e: FocusEvent) => {\n const el = e.target as HTMLInputElement\n const name = nsCascader.e('search-input')\n if (el.className === name) {\n filterFocus.value = true\n }\n emit('focus', e)\n}\n\nconst handleBlur = (e: FocusEvent) => {\n filterFocus.value = false\n emit('blur', e)\n}\n\nconst handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n}, props.debounce)\n\nconst handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n}\n\nconst getInputInnerHeight = (inputInner: HTMLElement): number =>\n Number.parseFloat(\n useCssVar(nsInput.cssVarName('input-height'), inputInner).value\n ) - 2\n\nwatch(filtering, updatePopperPosition)\n\nwatch(\n [checkedNodes, isDisabled, () => props.collapseTags],\n calculatePresentTags\n)\n\nwatch(presentTags, () => {\n nextTick(() => updateStyle())\n})\n\nwatch(realSize, async () => {\n await nextTick()\n const inputInner = input.value!.input!\n inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight\n updateStyle()\n})\n\nwatch(presentText, syncPresentTextValue, { immediate: true })\n\nonMounted(() => {\n const inputInner = input.value!.input!\n\n const inputInnerHeight = getInputInnerHeight(inputInner)\n\n inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n useResizeObserver(inputInner, updateStyle)\n})\n\ndefineExpose({\n /**\n * @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`\n */\n getCheckedNodes,\n /**\n * @description cascader panel ref\n */\n cascaderPanelRef,\n /**\n * @description toggle the visible of popper\n */\n togglePopperVisible,\n /**\n * @description cascader content ref\n */\n contentRef,\n})\n</script>\n"],"names":["useAttrs","useNamespace","useLocale","useFormItem","useEmptyValues","useComposition","ref","computed","useFormSize","UPDATE_MODEL_EVENT","CHANGE_EVENT","debugWarn","nextTick","isClient","EVENT_CODE","focusNode","getSibling","debounce","isPromise","useCssVar","watch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cascader2.js","sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass]\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n effect=\"light\"\n pure\n :persistent=\"persistent\"\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[contentRef]=\"() => togglePopperVisible(false)\"\n :class=\"cascaderKls\"\n :style=\"cascaderStyle\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model=\"inputValue\"\n :placeholder=\"currentPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"inputClass\"\n :tabindex=\"multiple && filterable && !isDisabled ? -1 : undefined\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"cascaderIconKls\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div\n v-if=\"multiple\"\n ref=\"tagWrapper\"\n :class=\"[\n nsCascader.e('tags'),\n nsCascader.is('validate', Boolean(validateState)),\n ]\"\n >\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <template v-if=\"tag.isCollapseTag === false\">\n <span>{{ tag.text }}</span>\n </template>\n <template v-else>\n <el-tooltip\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n effect=\"light\"\n >\n <template #default>\n <span>{{ tag.text }}</span>\n </template>\n <template #content>\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag2, idx) in allPresentTags.slice(\n maxCollapseTags\n )\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag2.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag2.hitState\"\n :closable=\"tag2.closable\"\n disable-transitions\n @close=\"deleteTag(tag2)\"\n >\n <span>{{ tag2.text }}</span>\n </el-tag>\n </div>\n </div>\n </template>\n </el-tooltip>\n </template>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e as KeyboardEvent)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"cascaderPanelRef\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props.props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n >\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </el-cascader-panel>\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, ref, useAttrs, watch } from 'vue'\nimport { cloneDeep, debounce } from 'lodash-unified'\nimport { useCssVar, useResizeObserver } from '@vueuse/core'\nimport {\n debugWarn,\n focusNode,\n getSibling,\n isClient,\n isPromise,\n} from '@element-plus/utils'\nimport ElCascaderPanel from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormItem, useFormSize } from '@element-plus/components/form'\nimport { ClickOutside as vClickoutside } from '@element-plus/directives'\nimport {\n useComposition,\n useEmptyValues,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\nimport { cascaderEmits, cascaderProps } from './cascader'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type {\n CascaderNode,\n CascaderPanelInstance,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\nconst COMPONENT_NAME = 'ElCascader'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(cascaderProps)\nconst emit = defineEmits(cascaderEmits)\nconst attrs = useAttrs()\n\nlet inputInitialHeight = 0\nlet pressDeleteCount = 0\n\nconst nsCascader = useNamespace('cascader')\nconst nsInput = useNamespace('input')\n\nconst { t } = useLocale()\nconst { form, formItem } = useFormItem()\nconst { valueOnClear } = useEmptyValues(props)\nconst { isComposing, handleComposition } = useComposition({\n afterComposition(event) {\n const text = (event.target as HTMLInputElement)?.value\n handleInput(text)\n },\n})\n\nconst tooltipRef: Ref<TooltipInstance | null> = ref(null)\nconst input: Ref<InputInstance | null> = ref(null)\nconst tagWrapper = ref(null)\nconst cascaderPanelRef: Ref<CascaderPanelInstance | null> = ref(null)\nconst suggestionPanel: Ref<ScrollbarInstance | null> = ref(null)\nconst popperVisible = ref(false)\nconst inputHover = ref(false)\nconst filtering = ref(false)\nconst filterFocus = ref(false)\nconst inputValue = ref('')\nconst searchInputValue = ref('')\nconst presentTags: Ref<Tag[]> = ref([])\nconst allPresentTags: Ref<Tag[]> = ref([])\nconst suggestions: Ref<CascaderNode[]> = ref([])\n\nconst cascaderStyle = computed<StyleValue>(() => {\n return attrs.style as StyleValue\n})\n\nconst isDisabled = computed(() => props.disabled || form?.disabled)\nconst inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n)\nconst currentPlaceholder = computed(() =>\n searchInputValue.value || presentTags.value.length > 0 || isComposing.value\n ? ''\n : inputPlaceholder.value\n)\nconst realSize = useFormSize()\nconst tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n)\nconst multiple = computed(() => !!props.props.multiple)\nconst readonly = computed(() => !props.filterable || multiple.value)\nconst searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n)\nconst checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => cascaderPanelRef.value?.checkedNodes || []\n)\nconst clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n})\nconst presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ''\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n})\n\nconst validateState = computed(() => formItem?.validateState || '')\n\nconst checkedValue = computed<CascaderValue>({\n get() {\n return cloneDeep(props.modelValue) as CascaderValue\n },\n set(val) {\n // https://github.com/element-plus/element-plus/issues/17647\n const value = val ?? valueOnClear.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n})\n\nconst cascaderKls = computed(() => {\n return [\n nsCascader.b(),\n nsCascader.m(realSize.value),\n nsCascader.is('disabled', isDisabled.value),\n attrs.class,\n ]\n})\n\nconst cascaderIconKls = computed(() => {\n return [\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible.value),\n ]\n})\n\nconst inputClass = computed(() => {\n return nsCascader.is('focus', popperVisible.value || filterFocus.value)\n})\n\nconst contentRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n})\n\nconst togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(cascaderPanelRef.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visibleChange', visible)\n }\n}\n\nconst updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n}\n\nconst hideSuggestionPanel = () => {\n filtering.value = false\n}\n\nconst genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n isCollapseTag: false,\n }\n}\n\nconst deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n cascaderPanelRef.value?.calculateCheckedValue()\n emit('removeTag', node.valueByOption)\n}\n\nconst calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n allPresentTags.value = allTags\n\n if (nodes.length) {\n nodes\n .slice(0, props.maxCollapseTags)\n .forEach((node) => tags.push(genTag(node)))\n const rest = nodes.slice(props.maxCollapseTags)\n const restCount = rest.length\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n isCollapseTag: true,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n}\n\nconst calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = cascaderPanelRef.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n allPresentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n}\n\nconst focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n `.${nsCascader.e('suggestion-item')}`\n )\n } else {\n firstNode = cascaderPanelRef.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n}\n\nconst updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n `.${nsCascader.e('suggestion-list')}`\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n}\n\nconst getCheckedNodes = (leafOnly: boolean) => {\n return cascaderPanelRef.value?.getCheckedNodes(leafOnly)\n}\n\nconst handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expandChange', value)\n}\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (isComposing.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n}\n\nconst handleClear = () => {\n cascaderPanelRef.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n emit('clear')\n}\n\nconst syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n}\n\nconst handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n cascaderPanelRef.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n}\n\nconst handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n ) as HTMLElement\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n }\n}\n\nconst handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount || (props.collapseTags && tags.length > 1))\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n}\n\nconst handleFocus = (e: FocusEvent) => {\n const el = e.target as HTMLInputElement\n const name = nsCascader.e('search-input')\n if (el.className === name) {\n filterFocus.value = true\n }\n emit('focus', e)\n}\n\nconst handleBlur = (e: FocusEvent) => {\n filterFocus.value = false\n emit('blur', e)\n}\n\nconst handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n}, props.debounce)\n\nconst handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n}\n\nconst getInputInnerHeight = (inputInner: HTMLElement): number =>\n Number.parseFloat(\n useCssVar(nsInput.cssVarName('input-height'), inputInner).value\n ) - 2\n\nwatch(filtering, updatePopperPosition)\n\nwatch(\n [checkedNodes, isDisabled, () => props.collapseTags],\n calculatePresentTags\n)\n\nwatch(presentTags, () => {\n nextTick(() => updateStyle())\n})\n\nwatch(realSize, async () => {\n await nextTick()\n const inputInner = input.value!.input!\n inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight\n updateStyle()\n})\n\nwatch(presentText, syncPresentTextValue, { immediate: true })\n\nonMounted(() => {\n const inputInner = input.value!.input!\n\n const inputInnerHeight = getInputInnerHeight(inputInner)\n\n inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n useResizeObserver(inputInner, updateStyle)\n})\n\ndefineExpose({\n /**\n * @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`\n */\n getCheckedNodes,\n /**\n * @description cascader panel ref\n */\n cascaderPanelRef,\n /**\n * @description toggle the visible of popper\n */\n togglePopperVisible,\n /**\n * @description cascader content ref\n */\n contentRef,\n})\n</script>\n"],"names":["useAttrs","useNamespace","useLocale","useFormItem","useEmptyValues","useComposition","ref","computed","useFormSize","UPDATE_MODEL_EVENT","CHANGE_EVENT","debugWarn","nextTick","isClient","EVENT_CODE","focusNode","getSibling","debounce","isPromise","useCssVar","watch"],"mappings":"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"}
|
|
@@ -281,7 +281,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
281
281
|
ref: (item) => _ctx.menuList[index] = item,
|
|
282
282
|
index,
|
|
283
283
|
nodes: [...menu]
|
|
284
|
-
},
|
|
284
|
+
}, {
|
|
285
|
+
empty: vue.withCtx(() => [
|
|
286
|
+
vue.renderSlot(_ctx.$slots, "empty")
|
|
287
|
+
]),
|
|
288
|
+
_: 2
|
|
289
|
+
}, 1032, ["index", "nodes"]);
|
|
285
290
|
}), 128))
|
|
286
291
|
], 42, ["onKeydown"]);
|
|
287
292
|
}
|