element-ps 1.0.7 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.full.js +71 -68
- package/dist/index.full.min.js +3 -3
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +71 -68
- package/es/index.mjs +4 -4
- package/es/packages/components/affix/index.mjs +2 -2
- package/es/packages/components/affix/src/affix.mjs +5 -22
- package/es/packages/components/affix/src/affix.mjs.map +1 -1
- package/es/packages/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/affix/src/affix2.mjs +22 -5
- package/es/packages/components/affix/src/affix2.mjs.map +1 -1
- package/es/packages/components/alert/index.mjs +2 -2
- package/es/packages/components/alert/src/alert.mjs +5 -34
- package/es/packages/components/alert/src/alert.mjs.map +1 -1
- package/es/packages/components/alert/src/alert.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/alert/src/alert2.mjs +34 -5
- package/es/packages/components/alert/src/alert2.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.vue_vue&type=template&id=02672805&lang.mjs +6 -5
- package/es/packages/components/dialog/src/dialog.vue_vue&type=template&id=02672805&lang.mjs.map +1 -1
- package/es/packages/components/dialog/src/use-dialog.mjs +1 -1
- package/es/packages/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/packages/components/drawer/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/packages/components/drawer/src/index.vue_vue&type=template&id=052d0d8e&lang.mjs +50 -46
- package/es/packages/components/drawer/src/index.vue_vue&type=template&id=052d0d8e&lang.mjs.map +1 -1
- package/es/packages/components/empty/index.mjs +2 -2
- package/es/packages/components/empty/src/empty.mjs +5 -12
- package/es/packages/components/empty/src/empty.mjs.map +1 -1
- package/es/packages/components/empty/src/empty.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/empty/src/empty2.mjs +12 -5
- package/es/packages/components/empty/src/empty2.mjs.map +1 -1
- package/es/packages/components/index.mjs +4 -4
- package/es/packages/components/input-number/index.mjs +2 -2
- package/es/packages/components/input-number/src/input-number.mjs +5 -49
- package/es/packages/components/input-number/src/input-number.mjs.map +1 -1
- package/es/packages/components/input-number/src/input-number.vue_vue&type=script&lang.mjs +1 -1
- package/es/packages/components/input-number/src/input-number2.mjs +49 -5
- package/es/packages/components/input-number/src/input-number2.mjs.map +1 -1
- package/es/packages/components/table/src/table-body/render-helper.mjs +1 -1
- package/es/packages/components/table/src/table-body/render-helper.mjs.map +1 -1
- package/es/packages/components/table/src/table-header/index.mjs +1 -1
- package/es/packages/components/table/src/table-header/index.mjs.map +1 -1
- package/es/packages/components/tabs/src/tabs.mjs +5 -7
- package/es/packages/components/tabs/src/tabs.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/index.js +4 -4
- package/lib/packages/components/affix/index.js +2 -2
- package/lib/packages/components/affix/src/affix.js +5 -21
- package/lib/packages/components/affix/src/affix.js.map +1 -1
- package/lib/packages/components/affix/src/affix.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/affix/src/affix2.js +21 -5
- package/lib/packages/components/affix/src/affix2.js.map +1 -1
- package/lib/packages/components/alert/index.js +2 -2
- package/lib/packages/components/alert/src/alert.js +5 -33
- package/lib/packages/components/alert/src/alert.js.map +1 -1
- package/lib/packages/components/alert/src/alert.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/alert/src/alert2.js +33 -5
- package/lib/packages/components/alert/src/alert2.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.vue_vue&type=script&lang.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.vue_vue&type=template&id=02672805&lang.js +6 -5
- package/lib/packages/components/dialog/src/dialog.vue_vue&type=template&id=02672805&lang.js.map +1 -1
- package/lib/packages/components/dialog/src/use-dialog.js +1 -1
- package/lib/packages/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/packages/components/drawer/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/packages/components/drawer/src/index.vue_vue&type=template&id=052d0d8e&lang.js +50 -46
- package/lib/packages/components/drawer/src/index.vue_vue&type=template&id=052d0d8e&lang.js.map +1 -1
- package/lib/packages/components/empty/index.js +2 -2
- package/lib/packages/components/empty/src/empty.js +6 -12
- package/lib/packages/components/empty/src/empty.js.map +1 -1
- package/lib/packages/components/empty/src/empty.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/empty/src/empty2.js +12 -6
- package/lib/packages/components/empty/src/empty2.js.map +1 -1
- package/lib/packages/components/index.js +4 -4
- package/lib/packages/components/input-number/index.js +2 -2
- package/lib/packages/components/input-number/src/input-number.js +5 -48
- package/lib/packages/components/input-number/src/input-number.js.map +1 -1
- package/lib/packages/components/input-number/src/input-number.vue_vue&type=script&lang.js +1 -1
- package/lib/packages/components/input-number/src/input-number2.js +48 -5
- package/lib/packages/components/input-number/src/input-number2.js.map +1 -1
- package/lib/packages/components/table/src/table-body/render-helper.js +1 -1
- package/lib/packages/components/table/src/table-body/render-helper.js.map +1 -1
- package/lib/packages/components/table/src/table-header/index.js +1 -1
- package/lib/packages/components/table/src/table-header/index.js.map +1 -1
- package/lib/packages/components/tabs/src/tabs.js +4 -6
- package/lib/packages/components/tabs/src/tabs.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 +1 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.js","sources":[
|
|
1
|
+
{"version":3,"file":"empty.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
require('../../../hooks/index.js');
|
|
7
7
|
require('./img-empty.js');
|
|
8
|
-
var empty = require('./
|
|
8
|
+
var empty = require('./empty2.js');
|
|
9
9
|
var imgEmpty_vue_vue_type_script_lang = require('./img-empty.vue_vue&type=script&lang.js');
|
|
10
10
|
var index = require('../../../hooks/use-locale/index.js');
|
|
11
11
|
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const emptyProps = {
|
|
6
|
+
image: {
|
|
7
|
+
type: String,
|
|
8
|
+
default: ""
|
|
9
|
+
},
|
|
10
|
+
imageSize: Number,
|
|
11
|
+
description: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: ""
|
|
14
|
+
}
|
|
15
|
+
};
|
|
7
16
|
|
|
8
|
-
|
|
9
|
-
empty_vue_vue_type_script_lang["default"].__file = "packages/components/empty/src/empty.vue";
|
|
10
|
-
|
|
11
|
-
exports["default"] = empty_vue_vue_type_script_lang["default"];
|
|
17
|
+
exports.emptyProps = emptyProps;
|
|
12
18
|
//# sourceMappingURL=empty2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"empty2.js","sources":["../../../../../../../packages/components/empty/src/empty.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nexport const emptyProps = {\n image: {\n type: String,\n default: '',\n },\n imageSize: Number,\n description: {\n type: String,\n default: '',\n },\n} as const\nexport type EmptyProps = ExtractPropTypes<typeof emptyProps>\n"],"names":[],"mappings":";;;;MAEa,aAAa;AAAA,EACxB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,WAAW;AAAA,EACX,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;;;;"}
|
|
@@ -70,8 +70,8 @@ var index$11 = require('./upload/index.js');
|
|
|
70
70
|
require('./virtual-list/index.js');
|
|
71
71
|
var index$12 = require('./loading/index.js');
|
|
72
72
|
var index$13 = require('./popover/index.js');
|
|
73
|
-
var affix = require('./affix/src/
|
|
74
|
-
var alert = require('./alert/src/
|
|
73
|
+
var affix = require('./affix/src/affix2.js');
|
|
74
|
+
var alert = require('./alert/src/alert2.js');
|
|
75
75
|
var avatar = require('./avatar/src/avatar2.js');
|
|
76
76
|
var backtop = require('./backtop/src/backtop.js');
|
|
77
77
|
var badge = require('./badge/src/badge.js');
|
|
@@ -86,12 +86,12 @@ var configProvider = require('./config-provider/src/config-provider.js');
|
|
|
86
86
|
var useDialog = require('./dialog/src/use-dialog.js');
|
|
87
87
|
var dialog = require('./dialog/src/dialog.js');
|
|
88
88
|
var divider = require('./divider/src/divider.js');
|
|
89
|
-
var empty = require('./empty/src/
|
|
89
|
+
var empty = require('./empty/src/empty2.js');
|
|
90
90
|
var icon = require('./icon/src/icon.js');
|
|
91
91
|
var image = require('./image/src/image.js');
|
|
92
92
|
var imageViewer = require('./image-viewer/src/image-viewer.js');
|
|
93
93
|
var input = require('./input/src/input.js');
|
|
94
|
-
var inputNumber = require('./input-number/src/input-
|
|
94
|
+
var inputNumber = require('./input-number/src/input-number2.js');
|
|
95
95
|
var link = require('./link/src/link.js');
|
|
96
96
|
var menu = require('./menu/src/menu.js');
|
|
97
97
|
var menuItem = require('./menu/src/menu-item.js');
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var withInstall = require('../../utils/with-install.js');
|
|
6
|
-
require('./src/input-
|
|
7
|
-
var inputNumber = require('./src/input-
|
|
6
|
+
require('./src/input-number.js');
|
|
7
|
+
var inputNumber = require('./src/input-number2.js');
|
|
8
8
|
var inputNumber_vue_vue_type_script_lang = require('./src/input-number.vue_vue&type=script&lang.js');
|
|
9
9
|
|
|
10
10
|
const PsInputNumber = withInstall.withInstall(inputNumber_vue_vue_type_script_lang["default"]);
|
|
@@ -2,54 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var inputNumber_vue_vue_type_script_lang = require('./input-number.vue_vue&type=script&lang.js');
|
|
6
|
+
var inputNumber_vue_vue_type_template_id_dec60af6_lang = require('./input-number.vue_vue&type=template&id=dec60af6&lang.js');
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
type: Number,
|
|
10
|
-
default: 1
|
|
11
|
-
},
|
|
12
|
-
stepStrictly: {
|
|
13
|
-
type: Boolean,
|
|
14
|
-
default: false
|
|
15
|
-
},
|
|
16
|
-
max: {
|
|
17
|
-
type: Number,
|
|
18
|
-
default: Infinity
|
|
19
|
-
},
|
|
20
|
-
min: {
|
|
21
|
-
type: Number,
|
|
22
|
-
default: -Infinity
|
|
23
|
-
},
|
|
24
|
-
modelValue: {
|
|
25
|
-
type: Number,
|
|
26
|
-
required: true
|
|
27
|
-
},
|
|
28
|
-
disabled: {
|
|
29
|
-
type: Boolean,
|
|
30
|
-
default: false
|
|
31
|
-
},
|
|
32
|
-
size: {
|
|
33
|
-
type: String,
|
|
34
|
-
values: props.componentSize
|
|
35
|
-
},
|
|
36
|
-
controls: {
|
|
37
|
-
type: Boolean,
|
|
38
|
-
default: true
|
|
39
|
-
},
|
|
40
|
-
controlsPosition: {
|
|
41
|
-
type: String,
|
|
42
|
-
default: "",
|
|
43
|
-
values: ["", "right"]
|
|
44
|
-
},
|
|
45
|
-
name: String,
|
|
46
|
-
label: String,
|
|
47
|
-
placeholder: String,
|
|
48
|
-
precision: {
|
|
49
|
-
type: Number,
|
|
50
|
-
validator: (val) => val >= 0 && val === parseInt(`${val}`, 10)
|
|
51
|
-
}
|
|
52
|
-
});
|
|
8
|
+
inputNumber_vue_vue_type_script_lang["default"].render = inputNumber_vue_vue_type_template_id_dec60af6_lang.render;
|
|
9
|
+
inputNumber_vue_vue_type_script_lang["default"].__file = "packages/components/input-number/src/input-number.vue";
|
|
53
10
|
|
|
54
|
-
exports
|
|
11
|
+
exports["default"] = inputNumber_vue_vue_type_script_lang["default"];
|
|
55
12
|
//# sourceMappingURL=input-number.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number.js","sources":[
|
|
1
|
+
{"version":3,"file":"input-number.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -9,7 +9,7 @@ var index = require('../../input/index.js');
|
|
|
9
9
|
var util = require('../../../utils/util.js');
|
|
10
10
|
var error = require('../../../utils/error.js');
|
|
11
11
|
var icons = require('@element-plus/icons');
|
|
12
|
-
var inputNumber = require('./input-
|
|
12
|
+
var inputNumber = require('./input-number2.js');
|
|
13
13
|
var index$2 = require('../../../hooks/use-form-item/index.js');
|
|
14
14
|
|
|
15
15
|
var script = vue.defineComponent({
|
|
@@ -2,11 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var inputNumber_vue_vue_type_template_id_dec60af6_lang = require('./input-number.vue_vue&type=template&id=dec60af6&lang.js');
|
|
5
|
+
var props = require('../../../utils/props.js');
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const inputNumberProps = props.buildProps({
|
|
8
|
+
step: {
|
|
9
|
+
type: Number,
|
|
10
|
+
default: 1
|
|
11
|
+
},
|
|
12
|
+
stepStrictly: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
max: {
|
|
17
|
+
type: Number,
|
|
18
|
+
default: Infinity
|
|
19
|
+
},
|
|
20
|
+
min: {
|
|
21
|
+
type: Number,
|
|
22
|
+
default: -Infinity
|
|
23
|
+
},
|
|
24
|
+
modelValue: {
|
|
25
|
+
type: Number,
|
|
26
|
+
required: true
|
|
27
|
+
},
|
|
28
|
+
disabled: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
32
|
+
size: {
|
|
33
|
+
type: String,
|
|
34
|
+
values: props.componentSize
|
|
35
|
+
},
|
|
36
|
+
controls: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: true
|
|
39
|
+
},
|
|
40
|
+
controlsPosition: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: "",
|
|
43
|
+
values: ["", "right"]
|
|
44
|
+
},
|
|
45
|
+
name: String,
|
|
46
|
+
label: String,
|
|
47
|
+
placeholder: String,
|
|
48
|
+
precision: {
|
|
49
|
+
type: Number,
|
|
50
|
+
validator: (val) => val >= 0 && val === parseInt(`${val}`, 10)
|
|
51
|
+
}
|
|
52
|
+
});
|
|
10
53
|
|
|
11
|
-
exports
|
|
54
|
+
exports.inputNumberProps = inputNumberProps;
|
|
12
55
|
//# sourceMappingURL=input-number2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-number2.js","sources":["../../../../../../../packages/components/input-number/src/input-number.ts"],"sourcesContent":["import { buildProps, componentSize } from '@element-ps/utils/props'\n\nexport const inputNumberProps = buildProps({\n step: {\n type: Number,\n default: 1,\n },\n stepStrictly: {\n type: Boolean,\n default: false,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n min: {\n type: Number,\n default: -Infinity,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n size: {\n type: String,\n values: componentSize,\n },\n controls: {\n type: Boolean,\n default: true,\n },\n controlsPosition: {\n type: String,\n default: '',\n values: ['', 'right'],\n },\n name: String,\n label: String,\n placeholder: String,\n precision: {\n type: Number,\n validator: (val: number) => val >= 0 && val === parseInt(`${val}`, 10),\n },\n} as const)\n"],"names":["buildProps","componentSize"],"mappings":";;;;;;MAEa,mBAAmBA,iBAAW;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,KAAK;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,KAAK;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQC;AAAA;AAAA,EAEV,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,CAAC,IAAI;AAAA;AAAA,EAEf,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW,CAAC,QAAgB,OAAO,KAAK,QAAQ,SAAS,GAAG,OAAO;AAAA;AAAA;;;;"}
|
|
@@ -99,7 +99,7 @@ function useRender(props) {
|
|
|
99
99
|
colspan,
|
|
100
100
|
onMouseenter: ($event) => handleCellMouseEnter($event, { ...row, tooltipEffect }),
|
|
101
101
|
onMouseleave: handleCellMouseLeave,
|
|
102
|
-
widget: column.widget
|
|
102
|
+
widget: `table-column:default:${column.widget.split(":")[1]}`
|
|
103
103
|
}, [column.renderCell(data)]);
|
|
104
104
|
}));
|
|
105
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-helper.js","sources":["../../../../../../../../packages/components/table/src/table-body/render-helper.ts"],"sourcesContent":["import { h, getCurrentInstance, computed } from 'vue'\nimport { getRowIdentity } from '../util'\nimport useEvents from './events-helper'\nimport useStyles from './styles-helper'\n\nimport type { TableBodyProps } from './defaults'\nimport type {\n RenderRowData,\n Table,\n TreeNode,\n TableProps,\n} from '../table/defaults'\n\nfunction useRender<T>(props: Partial<TableBodyProps<T>>) {\n const instance = getCurrentInstance()\n const parent = instance.parent as Table<T>\n const {\n handleDoubleClick,\n handleClick,\n handleContextMenu,\n handleMouseEnter,\n handleMouseLeave,\n handleCellMouseEnter,\n handleCellMouseLeave,\n tooltipContent,\n tooltipTrigger,\n } = useEvents(props)\n const {\n getRowStyle,\n getRowClass,\n getCellStyle,\n getCellClass,\n getSpan,\n getColspanRealWidth,\n } = useStyles(props)\n const firstDefaultColumnIndex = computed(() => {\n return props.store.states.columns.value.findIndex(\n ({ type }) => type === 'default'\n )\n })\n const getKeyOfRow = (row: T, index: number) => {\n const rowKey = (parent.props as Partial<TableProps<T>>).rowKey\n if (rowKey) {\n return getRowIdentity(row, rowKey)\n }\n return index\n }\n const rowRender = (row: T, $index: number, treeRowData?: TreeNode) => {\n const { tooltipEffect, store } = props\n const { indent, columns } = store.states\n const rowClasses = getRowClass(row, $index)\n let display = true\n if (treeRowData) {\n rowClasses.push(`el-table__row--level-${treeRowData.level}`)\n display = treeRowData.display\n }\n const displayStyle = display\n ? null\n : {\n display: 'none',\n }\n return h(\n 'tr',\n {\n style: [displayStyle, getRowStyle(row, $index)],\n class: rowClasses,\n key: getKeyOfRow(row, $index),\n onDblclick: ($event) => handleDoubleClick($event, row),\n onClick: ($event) => handleClick($event, row),\n onContextmenu: ($event) => handleContextMenu($event, row),\n onMouseenter: () => handleMouseEnter($index),\n onMouseleave: handleMouseLeave,\n },\n columns.value.map((column, cellIndex) => {\n const { rowspan, colspan } = getSpan(row, column, $index, cellIndex)\n if (!rowspan || !colspan) {\n return null\n }\n const columnData = { ...column }\n columnData.realWidth = getColspanRealWidth(\n columns.value,\n colspan,\n cellIndex\n )\n const data: RenderRowData<T> = {\n store: props.store,\n _self: props.context || parent,\n column: columnData,\n row,\n $index,\n }\n if (cellIndex === firstDefaultColumnIndex.value && treeRowData) {\n data.treeNode = {\n indent: treeRowData.level * indent.value,\n level: treeRowData.level,\n }\n if (typeof treeRowData.expanded === 'boolean') {\n data.treeNode.expanded = treeRowData.expanded\n // 表明是懒加载\n if ('loading' in treeRowData) {\n data.treeNode.loading = treeRowData.loading\n }\n if ('noLazyChildren' in treeRowData) {\n data.treeNode.noLazyChildren = treeRowData.noLazyChildren\n }\n }\n }\n const baseKey = `${$index},${cellIndex}`\n const patchKey = columnData.columnKey || columnData.rawColumnKey || ''\n return h(\n 'td',\n {\n style: getCellStyle($index, cellIndex, row, column),\n class: getCellClass($index, cellIndex, row, column),\n key: `${patchKey}${baseKey}`,\n rowspan,\n colspan,\n onMouseenter: ($event) =>\n handleCellMouseEnter($event, { ...row, tooltipEffect }),\n onMouseleave: handleCellMouseLeave,\n widget: column.widget,\n },\n [column.renderCell(data)]\n )\n })\n )\n }\n const wrappedRowRender = (row: T, $index: number) => {\n const store = props.store\n const { isRowExpanded, assertRowKey } = store\n const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } =\n store.states\n const hasExpandColumn = store.states.columns.value.some(\n ({ type }) => type === 'expand'\n )\n if (hasExpandColumn && isRowExpanded(row)) {\n const renderExpanded = parent.renderExpanded\n const tr = rowRender(row, $index, undefined)\n if (!renderExpanded) {\n console.error('[Element Error]renderExpanded is required.')\n return tr\n }\n // 使用二维数组,避免修改 $index\n // Use a two dimensional array avoid modifying $index\n return [\n [\n tr,\n h(\n 'tr',\n {\n key: `expanded-row__${tr.key as string}`,\n },\n [\n h(\n 'td',\n {\n colspan: store.states.columns.value.length,\n class: 'el-table__cell el-table__expanded-cell',\n },\n [renderExpanded({ row, $index, store })]\n ),\n ]\n ),\n ],\n ]\n } else if (Object.keys(treeData.value).length) {\n assertRowKey()\n // TreeTable 时,rowKey 必须由用户设定,不使用 getKeyOfRow 计算\n // 在调用 rowRender 函数时,仍然会计算 rowKey,不太好的操作\n const key = getRowIdentity(row, rowKey.value)\n let cur = treeData.value[key]\n let treeRowData = null\n if (cur) {\n treeRowData = {\n expanded: cur.expanded,\n level: cur.level,\n display: true,\n }\n if (typeof cur.lazy === 'boolean') {\n if (typeof cur.loaded === 'boolean' && cur.loaded) {\n treeRowData.noLazyChildren = !(cur.children && cur.children.length)\n }\n treeRowData.loading = cur.loading\n }\n }\n const tmp = [rowRender(row, $index, treeRowData)]\n // 渲染嵌套数据\n if (cur) {\n // currentRow 记录的是 index,所以还需主动增加 TreeTable 的 index\n let i = 0\n const traverse = (children, parent) => {\n if (!(children && children.length && parent)) return\n children.forEach((node) => {\n // 父节点的 display 状态影响子节点的显示状态\n const innerTreeRowData = {\n display: parent.display && parent.expanded,\n level: parent.level + 1,\n expanded: false,\n noLazyChildren: false,\n loading: false,\n }\n const childKey = getRowIdentity(node, rowKey.value)\n if (childKey === undefined || childKey === null) {\n throw new Error('For nested data item, row-key is required.')\n }\n cur = { ...treeData.value[childKey] }\n // 对于当前节点,分成有无子节点两种情况。\n // 如果包含子节点的,设置 expanded 属性。\n // 对于它子节点的 display 属性由它本身的 expanded 与 display 共同决定。\n if (cur) {\n innerTreeRowData.expanded = cur.expanded\n // 懒加载的某些节点,level 未知\n cur.level = cur.level || innerTreeRowData.level\n cur.display = !!(cur.expanded && innerTreeRowData.display)\n if (typeof cur.lazy === 'boolean') {\n if (typeof cur.loaded === 'boolean' && cur.loaded) {\n innerTreeRowData.noLazyChildren = !(\n cur.children && cur.children.length\n )\n }\n innerTreeRowData.loading = cur.loading\n }\n }\n i++\n tmp.push(rowRender(node, $index + i, innerTreeRowData))\n if (cur) {\n const nodes =\n lazyTreeNodeMap.value[childKey] ||\n node[childrenColumnName.value]\n traverse(nodes, cur)\n }\n })\n }\n // 对于 root 节点,display 一定为 true\n cur.display = true\n const nodes =\n lazyTreeNodeMap.value[key] || row[childrenColumnName.value]\n traverse(nodes, cur)\n }\n return tmp\n } else {\n return rowRender(row, $index, undefined)\n }\n }\n\n return {\n wrappedRowRender,\n tooltipContent,\n tooltipTrigger,\n }\n}\n\nexport default useRender\n"],"names":["getCurrentInstance","useEvents","useStyles","computed","getRowIdentity","h"],"mappings":";;;;;;;;;AAaA,mBAAsB,OAAmC;AACvD,QAAM,WAAWA;AACjB,QAAM,SAAS,SAAS;AACxB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACEC,wBAAU;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACEC,wBAAU;AACd,QAAM,0BAA0BC,aAAS,MAAM;AAC7C,WAAO,MAAM,MAAM,OAAO,QAAQ,MAAM,UACtC,CAAC,EAAE,WAAW,SAAS;AAAA;AAG3B,QAAM,cAAc,CAAC,KAAQ,UAAkB;AAC7C,UAAM,SAAU,OAAO,MAAiC;AACxD,QAAI,QAAQ;AACV,aAAOC,oBAAe,KAAK;AAAA;AAE7B,WAAO;AAAA;AAET,QAAM,YAAY,CAAC,KAAQ,QAAgB,gBAA2B;AACpE,UAAM,EAAE,eAAe,UAAU;AACjC,UAAM,EAAE,QAAQ,YAAY,MAAM;AAClC,UAAM,aAAa,YAAY,KAAK;AACpC,QAAI,UAAU;AACd,QAAI,aAAa;AACf,iBAAW,KAAK,wBAAwB,YAAY;AACpD,gBAAU,YAAY;AAAA;AAExB,UAAM,eAAe,UACjB,OACA;AAAA,MACE,SAAS;AAAA;AAEf,WAAOC,MACL,MACA;AAAA,MACE,OAAO,CAAC,cAAc,YAAY,KAAK;AAAA,MACvC,OAAO;AAAA,MACP,KAAK,YAAY,KAAK;AAAA,MACtB,YAAY,CAAC,WAAW,kBAAkB,QAAQ;AAAA,MAClD,SAAS,CAAC,WAAW,YAAY,QAAQ;AAAA,MACzC,eAAe,CAAC,WAAW,kBAAkB,QAAQ;AAAA,MACrD,cAAc,MAAM,iBAAiB;AAAA,MACrC,cAAc;AAAA,OAEhB,QAAQ,MAAM,IAAI,CAAC,QAAQ,cAAc;AACvC,YAAM,EAAE,SAAS,YAAY,QAAQ,KAAK,QAAQ,QAAQ;AAC1D,UAAI,CAAC,WAAW,CAAC,SAAS;AACxB,eAAO;AAAA;AAET,YAAM,aAAa,KAAK;AACxB,iBAAW,YAAY,oBACrB,QAAQ,OACR,SACA;AAEF,YAAM,OAAyB;AAAA,QAC7B,OAAO,MAAM;AAAA,QACb,OAAO,MAAM,WAAW;AAAA,QACxB,QAAQ;AAAA,QACR;AAAA,QACA;AAAA;AAEF,UAAI,cAAc,wBAAwB,SAAS,aAAa;AAC9D,aAAK,WAAW;AAAA,UACd,QAAQ,YAAY,QAAQ,OAAO;AAAA,UACnC,OAAO,YAAY;AAAA;AAErB,YAAI,OAAO,YAAY,aAAa,WAAW;AAC7C,eAAK,SAAS,WAAW,YAAY;AAErC,cAAI,aAAa,aAAa;AAC5B,iBAAK,SAAS,UAAU,YAAY;AAAA;AAEtC,cAAI,oBAAoB,aAAa;AACnC,iBAAK,SAAS,iBAAiB,YAAY;AAAA;AAAA;AAAA;AAIjD,YAAM,UAAU,GAAG,UAAU;AAC7B,YAAM,WAAW,WAAW,aAAa,WAAW,gBAAgB;AACpE,aAAOA,MACL,MACA;AAAA,QACE,OAAO,aAAa,QAAQ,WAAW,KAAK;AAAA,QAC5C,OAAO,aAAa,QAAQ,WAAW,KAAK;AAAA,QAC5C,KAAK,GAAG,WAAW;AAAA,QACnB;AAAA,QACA;AAAA,QACA,cAAc,CAAC,WACb,qBAAqB,QAAQ,KAAK,KAAK;AAAA,QACzC,cAAc;AAAA,QACd,QAAQ,OAAO;AAAA,SAEjB,CAAC,OAAO,WAAW;AAAA;AAAA;AAK3B,QAAM,mBAAmB,CAAC,KAAQ,WAAmB;AACnD,UAAM,QAAQ,MAAM;AACpB,UAAM,EAAE,eAAe,iBAAiB;AACxC,UAAM,EAAE,UAAU,iBAAiB,oBAAoB,WACrD,MAAM;AACR,UAAM,kBAAkB,MAAM,OAAO,QAAQ,MAAM,KACjD,CAAC,EAAE,WAAW,SAAS;AAEzB,QAAI,mBAAmB,cAAc,MAAM;AACzC,YAAM,iBAAiB,OAAO;AAC9B,YAAM,KAAK,UAAU,KAAK,QAAQ;AAClC,UAAI,CAAC,gBAAgB;AACnB,gBAAQ,MAAM;AACd,eAAO;AAAA;AAIT,aAAO;AAAA,QACL;AAAA,UACE;AAAA,UACAA,MACE,MACA;AAAA,YACE,KAAK,iBAAiB,GAAG;AAAA,aAE3B;AAAA,YACEA,MACE,MACA;AAAA,cACE,SAAS,MAAM,OAAO,QAAQ,MAAM;AAAA,cACpC,OAAO;AAAA,eAET,CAAC,eAAe,EAAE,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,eAMhC,OAAO,KAAK,SAAS,OAAO,QAAQ;AAC7C;AAGA,YAAM,MAAMD,oBAAe,KAAK,OAAO;AACvC,UAAI,MAAM,SAAS,MAAM;AACzB,UAAI,cAAc;AAClB,UAAI,KAAK;AACP,sBAAc;AAAA,UACZ,UAAU,IAAI;AAAA,UACd,OAAO,IAAI;AAAA,UACX,SAAS;AAAA;AAEX,YAAI,OAAO,IAAI,SAAS,WAAW;AACjC,cAAI,OAAO,IAAI,WAAW,aAAa,IAAI,QAAQ;AACjD,wBAAY,iBAAiB,MAAM,YAAY,IAAI,SAAS;AAAA;AAE9D,sBAAY,UAAU,IAAI;AAAA;AAAA;AAG9B,YAAM,MAAM,CAAC,UAAU,KAAK,QAAQ;AAEpC,UAAI,KAAK;AAEP,YAAI,IAAI;AACR,cAAM,WAAW,CAAC,UAAU,YAAW;AACrC,cAAI,cAAc,SAAS,UAAU;AAAS;AAC9C,mBAAS,QAAQ,CAAC,SAAS;AAEzB,kBAAM,mBAAmB;AAAA,cACvB,SAAS,QAAO,WAAW,QAAO;AAAA,cAClC,OAAO,QAAO,QAAQ;AAAA,cACtB,UAAU;AAAA,cACV,gBAAgB;AAAA,cAChB,SAAS;AAAA;AAEX,kBAAM,WAAWA,oBAAe,MAAM,OAAO;AAC7C,gBAAI,aAAa,UAAa,aAAa,MAAM;AAC/C,oBAAM,IAAI,MAAM;AAAA;AAElB,kBAAM,KAAK,SAAS,MAAM;AAI1B,gBAAI,KAAK;AACP,+BAAiB,WAAW,IAAI;AAEhC,kBAAI,QAAQ,IAAI,SAAS,iBAAiB;AAC1C,kBAAI,UAAU,CAAC,MAAM,YAAY,iBAAiB;AAClD,kBAAI,OAAO,IAAI,SAAS,WAAW;AACjC,oBAAI,OAAO,IAAI,WAAW,aAAa,IAAI,QAAQ;AACjD,mCAAiB,iBAAiB,MAC5B,YAAY,IAAI,SAAS;AAAA;AAGjC,iCAAiB,UAAU,IAAI;AAAA;AAAA;AAGnC;AACA,gBAAI,KAAK,UAAU,MAAM,SAAS,GAAG;AACrC,gBAAI,KAAK;AACP,oBAAM,SACJ,gBAAgB,MAAM,aACtB,KAAK,mBAAmB;AAC1B,uBAAS,QAAO;AAAA;AAAA;AAAA;AAKtB,YAAI,UAAU;AACd,cAAM,QACJ,gBAAgB,MAAM,QAAQ,IAAI,mBAAmB;AACvD,iBAAS,OAAO;AAAA;AAElB,aAAO;AAAA,WACF;AACL,aAAO,UAAU,KAAK,QAAQ;AAAA;AAAA;AAIlC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"render-helper.js","sources":["../../../../../../../../packages/components/table/src/table-body/render-helper.ts"],"sourcesContent":["import { h, getCurrentInstance, computed } from 'vue'\nimport { getRowIdentity } from '../util'\nimport useEvents from './events-helper'\nimport useStyles from './styles-helper'\n\nimport type { TableBodyProps } from './defaults'\nimport type {\n RenderRowData,\n Table,\n TreeNode,\n TableProps,\n} from '../table/defaults'\n\nfunction useRender<T>(props: Partial<TableBodyProps<T>>) {\n const instance = getCurrentInstance()\n const parent = instance.parent as Table<T>\n const {\n handleDoubleClick,\n handleClick,\n handleContextMenu,\n handleMouseEnter,\n handleMouseLeave,\n handleCellMouseEnter,\n handleCellMouseLeave,\n tooltipContent,\n tooltipTrigger,\n } = useEvents(props)\n const {\n getRowStyle,\n getRowClass,\n getCellStyle,\n getCellClass,\n getSpan,\n getColspanRealWidth,\n } = useStyles(props)\n const firstDefaultColumnIndex = computed(() => {\n return props.store.states.columns.value.findIndex(\n ({ type }) => type === 'default'\n )\n })\n const getKeyOfRow = (row: T, index: number) => {\n const rowKey = (parent.props as Partial<TableProps<T>>).rowKey\n if (rowKey) {\n return getRowIdentity(row, rowKey)\n }\n return index\n }\n const rowRender = (row: T, $index: number, treeRowData?: TreeNode) => {\n const { tooltipEffect, store } = props\n const { indent, columns } = store.states\n const rowClasses = getRowClass(row, $index)\n let display = true\n if (treeRowData) {\n rowClasses.push(`el-table__row--level-${treeRowData.level}`)\n display = treeRowData.display\n }\n const displayStyle = display\n ? null\n : {\n display: 'none',\n }\n return h(\n 'tr',\n {\n style: [displayStyle, getRowStyle(row, $index)],\n class: rowClasses,\n key: getKeyOfRow(row, $index),\n onDblclick: ($event) => handleDoubleClick($event, row),\n onClick: ($event) => handleClick($event, row),\n onContextmenu: ($event) => handleContextMenu($event, row),\n onMouseenter: () => handleMouseEnter($index),\n onMouseleave: handleMouseLeave,\n },\n columns.value.map((column, cellIndex) => {\n const { rowspan, colspan } = getSpan(row, column, $index, cellIndex)\n if (!rowspan || !colspan) {\n return null\n }\n const columnData = { ...column }\n columnData.realWidth = getColspanRealWidth(\n columns.value,\n colspan,\n cellIndex\n )\n const data: RenderRowData<T> = {\n store: props.store,\n _self: props.context || parent,\n column: columnData,\n row,\n $index,\n }\n if (cellIndex === firstDefaultColumnIndex.value && treeRowData) {\n data.treeNode = {\n indent: treeRowData.level * indent.value,\n level: treeRowData.level,\n }\n if (typeof treeRowData.expanded === 'boolean') {\n data.treeNode.expanded = treeRowData.expanded\n // 表明是懒加载\n if ('loading' in treeRowData) {\n data.treeNode.loading = treeRowData.loading\n }\n if ('noLazyChildren' in treeRowData) {\n data.treeNode.noLazyChildren = treeRowData.noLazyChildren\n }\n }\n }\n const baseKey = `${$index},${cellIndex}`\n const patchKey = columnData.columnKey || columnData.rawColumnKey || ''\n return h(\n 'td',\n {\n style: getCellStyle($index, cellIndex, row, column),\n class: getCellClass($index, cellIndex, row, column),\n key: `${patchKey}${baseKey}`,\n rowspan,\n colspan,\n onMouseenter: ($event) =>\n handleCellMouseEnter($event, { ...row, tooltipEffect }),\n onMouseleave: handleCellMouseLeave,\n widget: `table-column:default:${column.widget.split(':')[1]}`,\n },\n [column.renderCell(data)]\n )\n })\n )\n }\n const wrappedRowRender = (row: T, $index: number) => {\n const store = props.store\n const { isRowExpanded, assertRowKey } = store\n const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } =\n store.states\n const hasExpandColumn = store.states.columns.value.some(\n ({ type }) => type === 'expand'\n )\n if (hasExpandColumn && isRowExpanded(row)) {\n const renderExpanded = parent.renderExpanded\n const tr = rowRender(row, $index, undefined)\n if (!renderExpanded) {\n console.error('[Element Error]renderExpanded is required.')\n return tr\n }\n // 使用二维数组,避免修改 $index\n // Use a two dimensional array avoid modifying $index\n return [\n [\n tr,\n h(\n 'tr',\n {\n key: `expanded-row__${tr.key as string}`,\n },\n [\n h(\n 'td',\n {\n colspan: store.states.columns.value.length,\n class: 'el-table__cell el-table__expanded-cell',\n },\n [renderExpanded({ row, $index, store })]\n ),\n ]\n ),\n ],\n ]\n } else if (Object.keys(treeData.value).length) {\n assertRowKey()\n // TreeTable 时,rowKey 必须由用户设定,不使用 getKeyOfRow 计算\n // 在调用 rowRender 函数时,仍然会计算 rowKey,不太好的操作\n const key = getRowIdentity(row, rowKey.value)\n let cur = treeData.value[key]\n let treeRowData = null\n if (cur) {\n treeRowData = {\n expanded: cur.expanded,\n level: cur.level,\n display: true,\n }\n if (typeof cur.lazy === 'boolean') {\n if (typeof cur.loaded === 'boolean' && cur.loaded) {\n treeRowData.noLazyChildren = !(cur.children && cur.children.length)\n }\n treeRowData.loading = cur.loading\n }\n }\n const tmp = [rowRender(row, $index, treeRowData)]\n // 渲染嵌套数据\n if (cur) {\n // currentRow 记录的是 index,所以还需主动增加 TreeTable 的 index\n let i = 0\n const traverse = (children, parent) => {\n if (!(children && children.length && parent)) return\n children.forEach((node) => {\n // 父节点的 display 状态影响子节点的显示状态\n const innerTreeRowData = {\n display: parent.display && parent.expanded,\n level: parent.level + 1,\n expanded: false,\n noLazyChildren: false,\n loading: false,\n }\n const childKey = getRowIdentity(node, rowKey.value)\n if (childKey === undefined || childKey === null) {\n throw new Error('For nested data item, row-key is required.')\n }\n cur = { ...treeData.value[childKey] }\n // 对于当前节点,分成有无子节点两种情况。\n // 如果包含子节点的,设置 expanded 属性。\n // 对于它子节点的 display 属性由它本身的 expanded 与 display 共同决定。\n if (cur) {\n innerTreeRowData.expanded = cur.expanded\n // 懒加载的某些节点,level 未知\n cur.level = cur.level || innerTreeRowData.level\n cur.display = !!(cur.expanded && innerTreeRowData.display)\n if (typeof cur.lazy === 'boolean') {\n if (typeof cur.loaded === 'boolean' && cur.loaded) {\n innerTreeRowData.noLazyChildren = !(\n cur.children && cur.children.length\n )\n }\n innerTreeRowData.loading = cur.loading\n }\n }\n i++\n tmp.push(rowRender(node, $index + i, innerTreeRowData))\n if (cur) {\n const nodes =\n lazyTreeNodeMap.value[childKey] ||\n node[childrenColumnName.value]\n traverse(nodes, cur)\n }\n })\n }\n // 对于 root 节点,display 一定为 true\n cur.display = true\n const nodes =\n lazyTreeNodeMap.value[key] || row[childrenColumnName.value]\n traverse(nodes, cur)\n }\n return tmp\n } else {\n return rowRender(row, $index, undefined)\n }\n }\n\n return {\n wrappedRowRender,\n tooltipContent,\n tooltipTrigger,\n }\n}\n\nexport default useRender\n"],"names":["getCurrentInstance","useEvents","useStyles","computed","getRowIdentity","h"],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ var TableHeader = vue.defineComponent({
|
|
|
99
99
|
key: `${column.id}-thead`,
|
|
100
100
|
rowSpan: column.rowSpan,
|
|
101
101
|
style: this.getHeaderCellStyle(rowIndex, cellIndex, subColumns, column),
|
|
102
|
-
widget: column.widget
|
|
102
|
+
widget: `table-column:header:${column.widget.split(":")[1]}`
|
|
103
103
|
}, [
|
|
104
104
|
vue.h("div", {
|
|
105
105
|
class: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../../../packages/components/table/src/table-header/index.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n computed,\n onMounted,\n nextTick,\n ref,\n h,\n} from 'vue'\nimport PsCheckbox from '@element-ps/components/checkbox'\nimport FilterPanel from '../filter-panel.vue'\nimport useLayoutObserver from '../layout-observer'\nimport { hColgroup } from '../h-helper'\nimport useStyle from './style.helper'\nimport useUtils from './utils-helper'\n\nimport type { ComponentInternalInstance, Ref, PropType } from 'vue'\nimport type { DefaultRow, Sort, Table } from '../table/defaults'\nimport type { Store } from '../store'\nexport interface TableHeader extends ComponentInternalInstance {\n state: {\n onColumnsChange\n onScrollableChange\n }\n filterPanels: Ref<unknown>\n}\nexport interface TableHeaderProps<T> {\n fixed: string\n store: Store<T>\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'PsTableHeader',\n components: {\n PsCheckbox,\n },\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableHeaderProps<DefaultRow>['store']>,\n },\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableHeaderProps<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props) {\n const instance = getCurrentInstance() as TableHeader\n const parent = instance.parent as Table<unknown>\n const storeData = parent.store.states\n const filterPanels = ref({})\n const { tableLayout, onColumnsChange, onScrollableChange } =\n useLayoutObserver(parent)\n const hasGutter = computed(() => {\n return !props.fixed && tableLayout.gutterWidth\n })\n onMounted(() => {\n nextTick(() => {\n const { prop, order } = props.defaultSort\n const init = true\n parent.store.commit('sort', { prop, order, init })\n })\n })\n const {\n getHeaderRowStyle,\n getHeaderRowClass,\n getHeaderCellStyle,\n getHeaderCellClass,\n } = useStyle(props as TableHeaderProps<unknown>)\n const { isGroup, toggleAllSelection, columnRows } = useUtils(\n props as TableHeaderProps<unknown>\n )\n\n instance.state = {\n onColumnsChange,\n onScrollableChange,\n }\n // eslint-disable-next-line\n instance.filterPanels = filterPanels\n\n return {\n columns: storeData.columns,\n filterPanels,\n hasGutter,\n onColumnsChange,\n onScrollableChange,\n columnRows,\n getHeaderRowClass,\n getHeaderRowStyle,\n getHeaderCellClass,\n getHeaderCellStyle,\n isGroup,\n toggleAllSelection,\n }\n },\n render() {\n return h(\n 'table',\n {\n border: '0',\n cellpadding: '0',\n cellspacing: '0',\n class: 'el-table__header',\n },\n [\n hColgroup(this.columns, this.hasGutter),\n h(\n 'thead',\n {\n class: { 'is-group': this.isGroup, 'has-gutter': this.hasGutter },\n },\n this.columnRows.map((subColumns, rowIndex) =>\n h(\n 'tr',\n {\n class: this.getHeaderRowClass(rowIndex),\n key: rowIndex,\n style: this.getHeaderRowStyle(rowIndex),\n },\n subColumns.map((column, cellIndex) =>\n h(\n 'th',\n {\n class: this.getHeaderCellClass(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n colspan: column.colSpan,\n key: `${column.id}-thead`,\n rowSpan: column.rowSpan,\n style: this.getHeaderCellStyle(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n widget: column.widget
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../packages/components/table/src/table-header/index.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n computed,\n onMounted,\n nextTick,\n ref,\n h,\n} from 'vue'\nimport PsCheckbox from '@element-ps/components/checkbox'\nimport FilterPanel from '../filter-panel.vue'\nimport useLayoutObserver from '../layout-observer'\nimport { hColgroup } from '../h-helper'\nimport useStyle from './style.helper'\nimport useUtils from './utils-helper'\n\nimport type { ComponentInternalInstance, Ref, PropType } from 'vue'\nimport type { DefaultRow, Sort, Table } from '../table/defaults'\nimport type { Store } from '../store'\nexport interface TableHeader extends ComponentInternalInstance {\n state: {\n onColumnsChange\n onScrollableChange\n }\n filterPanels: Ref<unknown>\n}\nexport interface TableHeaderProps<T> {\n fixed: string\n store: Store<T>\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'PsTableHeader',\n components: {\n PsCheckbox,\n },\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableHeaderProps<DefaultRow>['store']>,\n },\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableHeaderProps<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props) {\n const instance = getCurrentInstance() as TableHeader\n const parent = instance.parent as Table<unknown>\n const storeData = parent.store.states\n const filterPanels = ref({})\n const { tableLayout, onColumnsChange, onScrollableChange } =\n useLayoutObserver(parent)\n const hasGutter = computed(() => {\n return !props.fixed && tableLayout.gutterWidth\n })\n onMounted(() => {\n nextTick(() => {\n const { prop, order } = props.defaultSort\n const init = true\n parent.store.commit('sort', { prop, order, init })\n })\n })\n const {\n getHeaderRowStyle,\n getHeaderRowClass,\n getHeaderCellStyle,\n getHeaderCellClass,\n } = useStyle(props as TableHeaderProps<unknown>)\n const { isGroup, toggleAllSelection, columnRows } = useUtils(\n props as TableHeaderProps<unknown>\n )\n\n instance.state = {\n onColumnsChange,\n onScrollableChange,\n }\n // eslint-disable-next-line\n instance.filterPanels = filterPanels\n\n return {\n columns: storeData.columns,\n filterPanels,\n hasGutter,\n onColumnsChange,\n onScrollableChange,\n columnRows,\n getHeaderRowClass,\n getHeaderRowStyle,\n getHeaderCellClass,\n getHeaderCellStyle,\n isGroup,\n toggleAllSelection,\n }\n },\n render() {\n return h(\n 'table',\n {\n border: '0',\n cellpadding: '0',\n cellspacing: '0',\n class: 'el-table__header',\n },\n [\n hColgroup(this.columns, this.hasGutter),\n h(\n 'thead',\n {\n class: { 'is-group': this.isGroup, 'has-gutter': this.hasGutter },\n },\n this.columnRows.map((subColumns, rowIndex) =>\n h(\n 'tr',\n {\n class: this.getHeaderRowClass(rowIndex),\n key: rowIndex,\n style: this.getHeaderRowStyle(rowIndex),\n },\n subColumns.map((column, cellIndex) =>\n h(\n 'th',\n {\n class: this.getHeaderCellClass(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n colspan: column.colSpan,\n key: `${column.id}-thead`,\n rowSpan: column.rowSpan,\n style: this.getHeaderCellStyle(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n widget: `table-column:header:${column.widget.split(':')[1]}`,\n },\n [\n h(\n 'div',\n {\n class: [\n 'cell',\n column.filteredValue &&\n column.filteredValue.length > 0\n ? 'highlight'\n : '',\n column.labelClassName,\n ],\n },\n [\n column.renderHeader\n ? column.renderHeader({\n column,\n $index: cellIndex,\n store: this.store,\n _self: this.$parent,\n })\n : column.label,\n column.sortable &&\n h(\n 'span',\n {\n class: 'caret-wrapper',\n },\n [\n h('i', {\n class: 'sort-caret ascending',\n }),\n h('i', {\n class: 'sort-caret descending',\n }),\n ]\n ),\n column.filterable &&\n h(FilterPanel, {\n store: this.$parent.store,\n placement: column.filterPlacement || 'bottom-start',\n column,\n upDataColumn: (key, value) => {\n column[key] = value\n },\n }),\n ]\n ),\n ]\n )\n )\n )\n )\n ),\n ]\n )\n },\n})\n"],"names":["defineComponent","PsCheckbox","getCurrentInstance","ref","useLayoutObserver","computed","useStyle","useUtils","h","hColgroup","FilterPanel"],"mappings":"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"}
|
|
@@ -81,12 +81,10 @@ var Tabs = vue.defineComponent({
|
|
|
81
81
|
panes.value = [];
|
|
82
82
|
}
|
|
83
83
|
};
|
|
84
|
-
vue.onUpdated(() =>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
vue.
|
|
88
|
-
setPaneInstances();
|
|
89
|
-
});
|
|
84
|
+
vue.onUpdated(() => setPaneInstances());
|
|
85
|
+
vue.onMounted(() => setPaneInstances());
|
|
86
|
+
vue.watch(() => props.activeName, (modelValue) => currentName.value = modelValue);
|
|
87
|
+
vue.watch(() => props.modelValue, (modelValue) => currentName.value = modelValue);
|
|
90
88
|
return {
|
|
91
89
|
nav$,
|
|
92
90
|
currentName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../../../../../../packages/components/tabs/src/tabs.ts"],"sourcesContent":["import {\n defineComponent,\n Fragment,\n getCurrentInstance,\n h,\n onMounted,\n onUpdated,\n provide,\n ref,\n} from 'vue'\nimport { Plus } from '@element-plus/icons'\nimport PsIcon from '@element-ps/components/icon'\nimport TabNav from './tab-nav.vue'\n\nimport type { Component, ComponentInternalInstance, PropType, VNode } from 'vue'\nimport type {\n BeforeLeave,\n IElTabsProps,\n ITabType,\n ITabPosition,\n Pane,\n RootTabs,\n UpdatePaneStateCallback,\n} from './token'\n\nexport default defineComponent({\n name: 'PsTabs',\n components: { TabNav },\n props: {\n type: {\n type: String as PropType<ITabType>,\n default: '',\n },\n activeName: {\n type: String,\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: String,\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String as PropType<ITabPosition>,\n default: 'top',\n },\n beforeLeave: {\n type: Function as PropType<BeforeLeave>,\n default: null,\n },\n stretch: Boolean,\n },\n setup(props: IElTabsProps, ctx) {\n const nav$ = ref<typeof TabNav>(null)\n const currentName = ref(props.modelValue || props.activeName || '0')\n const panes = ref([])\n const instance = getCurrentInstance()\n const paneStatesMap = {}\n\n provide<RootTabs>('rootTabs', {\n props,\n currentName,\n })\n\n provide<UpdatePaneStateCallback>('updatePaneState', (pane: Pane) => {\n paneStatesMap[pane.uid] = pane\n })\n\n const getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n ) => {\n Array.from((vnode.children || []) as ArrayLike<VNode>).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'PsTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n }\n\n const setPaneInstances = (isForceUpdate = false) => {\n if (ctx.slots.default) {\n const children = instance.subTree.children\n\n const content = Array.from(children as ArrayLike<VNode>).find(\n ({ props }) => {\n return props.class === 'el-tabs__content'\n }\n )\n\n if (!content) return\n\n const paneInstanceList: Pane[] = getPaneInstanceFromSlot(content).map(\n (paneComponent) => {\n return paneStatesMap[paneComponent.uid]\n }\n )\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n onUpdated(() =>
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../../../../../packages/components/tabs/src/tabs.ts"],"sourcesContent":["import {\n defineComponent,\n Fragment,\n getCurrentInstance,\n h,\n onMounted,\n onUpdated,\n provide,\n ref, watch,\n} from 'vue'\nimport { Plus } from '@element-plus/icons'\nimport PsIcon from '@element-ps/components/icon'\nimport TabNav from './tab-nav.vue'\n\nimport type { Component, ComponentInternalInstance, PropType, VNode } from 'vue'\nimport type {\n BeforeLeave,\n IElTabsProps,\n ITabType,\n ITabPosition,\n Pane,\n RootTabs,\n UpdatePaneStateCallback,\n} from './token'\n\nexport default defineComponent({\n name: 'PsTabs',\n components: { TabNav },\n props: {\n type: {\n type: String as PropType<ITabType>,\n default: '',\n },\n activeName: {\n type: String,\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: String,\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String as PropType<ITabPosition>,\n default: 'top',\n },\n beforeLeave: {\n type: Function as PropType<BeforeLeave>,\n default: null,\n },\n stretch: Boolean,\n },\n setup(props: IElTabsProps, ctx) {\n const nav$ = ref<typeof TabNav>(null)\n const currentName = ref(props.modelValue || props.activeName || '0')\n const panes = ref([])\n const instance = getCurrentInstance()\n const paneStatesMap = {}\n\n provide<RootTabs>('rootTabs', {\n props,\n currentName,\n })\n\n provide<UpdatePaneStateCallback>('updatePaneState', (pane: Pane) => {\n paneStatesMap[pane.uid] = pane\n })\n\n const getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n ) => {\n Array.from((vnode.children || []) as ArrayLike<VNode>).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'PsTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n }\n\n const setPaneInstances = (isForceUpdate = false) => {\n if (ctx.slots.default) {\n const children = instance.subTree.children\n\n const content = Array.from(children as ArrayLike<VNode>).find(\n ({ props }) => {\n return props.class === 'el-tabs__content'\n }\n )\n\n if (!content) return\n\n const paneInstanceList: Pane[] = getPaneInstanceFromSlot(content).map(\n (paneComponent) => {\n return paneStatesMap[paneComponent.uid]\n }\n )\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n onUpdated(() => setPaneInstances())\n onMounted(() => setPaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => currentName.value = modelValue\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => currentName.value = modelValue\n )\n\n return {\n nav$,\n currentName,\n panes,\n }\n },\n\n render() {\n const {\n type,\n currentName,\n panes,\n editable,\n addable,\n tabPosition,\n stretch,\n } = this\n\n const newButton =\n editable || addable\n ? h(\n 'span',\n {\n class: 'el-tabs__new-tab',\n tabindex: '0',\n },\n [h(PsIcon, { class: 'is-icon-plus' }, { default: () => h(Plus) })]\n )\n : null\n\n const header = h(\n 'div',\n {\n class: ['el-tabs__header', `is-${tabPosition}`],\n },\n [\n newButton,\n h(TabNav, {\n currentName,\n editable,\n type,\n panes,\n stretch,\n ref: 'nav$',\n }),\n ]\n )\n\n const panels = h(\n 'div',\n {\n class: 'el-tabs__content',\n },\n this.$slots?.default()\n )\n\n return h(\n 'div',\n {\n class: {\n 'el-tabs': true,\n 'el-tabs--card': type === 'card',\n [`el-tabs--${tabPosition}`]: true,\n 'el-tabs--border-card': type === 'border-card',\n },\n },\n tabPosition !== 'bottom' ? [header, panels] : [panels, header]\n )\n },\n})\n"],"names":["defineComponent","TabNav","ref","getCurrentInstance","Fragment","h","PsIcon","Plus"],"mappings":";;;;;;;;;;AAyBA,WAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,UAAEC;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,UAAU;AAAA,IACV,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,SAAS;AAAA;AAAA,EAEX,MAAM,OAAqB,KAAK;AAC9B,UAAM,OAAOC,QAAmB;AAChC,UAAM,cAAcA,QAAI,MAAM,cAAc,MAAM,cAAc;AAChE,UAAM,QAAQA,QAAI;AAClB,UAAM,WAAWC;AACjB,UAAM,gBAAgB;AAEtB,gBAAkB,YAAY;AAAA,MAC5B;AAAA,MACA;AAAA;AAGF,gBAAiC,mBAAmB,CAAC,SAAe;AAClE,oBAAc,KAAK,OAAO;AAAA;AAG5B,UAAM,0BAA0B,CAC9B,OACA,mBAAgD,OAC7C;AACH,YAAM,KAAM,MAAM,YAAY,IAAyB,QAAQ,CAAC,SAAS;AACvE,YAAI,OAAO,KAAK;AAChB,eAAQ,KAAmB,QAAQ;AACnC,YAAI,SAAS,eAAe,KAAK,WAAW;AAC1C,2BAAiB,KAAK,KAAK;AAAA,mBAClB,SAASC,gBAAY,SAAS,YAAY;AACnD,kCAAwB,MAAM;AAAA;AAAA;AAGlC,aAAO;AAAA;AAGT,UAAM,mBAAmB,CAAC,gBAAgB,UAAU;AAClD,UAAI,IAAI,MAAM,SAAS;AACrB,cAAM,WAAW,SAAS,QAAQ;AAElC,cAAM,UAAU,MAAM,KAAK,UAA8B,KACvD,CAAC,EAAE,oBAAY;AACb,iBAAO,OAAM,UAAU;AAAA;AAI3B,YAAI,CAAC;AAAS;AAEd,cAAM,mBAA2B,wBAAwB,SAAS,IAChE,CAAC,kBAAkB;AACjB,iBAAO,cAAc,cAAc;AAAA;AAGvC,cAAM,eAAe,mBACF,WAAW,MAAM,MAAM,UACxC,iBAAiB,MACf,CAAC,MAAM,UAAU,KAAK,QAAQ,MAAM,MAAM,OAAO;AAIrD,YAAI,iBAAiB,cAAc;AACjC,gBAAM,QAAQ;AAAA;AAAA,iBAEP,MAAM,MAAM,WAAW,GAAG;AACnC,cAAM,QAAQ;AAAA;AAAA;AAIlB,kBAAU,MAAM;AAChB,kBAAU,MAAM;AAEhB,cACE,MAAM,MAAM,YACZ,CAAC,eAAe,YAAY,QAAQ;AAGtC,cACE,MAAM,MAAM,YACZ,CAAC,eAAe,YAAY,QAAQ;AAGtC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,EAIJ,SAAS;AA1IX;AA2II,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE;AAEJ,UAAM,YACJ,YAAY,UACRC,MACE,QACA;AAAA,MACE,OAAO;AAAA,MACP,UAAU;AAAA,OAEd,CAACA,MAAEC,cAAQ,EAAE,OAAO,kBAAkB,EAAE,SAAS,MAAMD,MAAEE,mBAEzD;AAEN,UAAM,SAASF,MACb,OACA;AAAA,MACE,OAAO,CAAC,mBAAmB,MAAM;AAAA,OAEnC;AAAA,MACE;AAAA,MACAA,MAAEJ,4CAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK;AAAA;AAAA;AAKX,UAAM,SAASI,MACb,OACA;AAAA,MACE,OAAO;AAAA,OAET,WAAK,WAAL,mBAAa;AAGf,WAAOA,MACL,OACA;AAAA,MACE,OAAO;AAAA,QACL,WAAW;AAAA,QACX,iBAAiB,SAAS;AAAA,SACzB,YAAY,gBAAgB;AAAA,QAC7B,wBAAwB,SAAS;AAAA;AAAA,OAGrC,gBAAgB,WAAW,CAAC,QAAQ,UAAU,CAAC,QAAQ;AAAA;AAAA;;;;"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
1
|
+
export declare const version = "1.0.1";
|
package/lib/version.js
CHANGED
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../packages/element-ps/version.ts"],"sourcesContent":["export const version = '1.0.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../packages/element-ps/version.ts"],"sourcesContent":["export const version = '1.0.1'\n"],"names":[],"mappings":";;;;MAAa,UAAU;;;;"}
|
package/package.json
CHANGED
package/web-types.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json","framework":"vue","name":"element-ps","version":"1.0.
|
|
1
|
+
{"$schema":"https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json","framework":"vue","name":"element-ps","version":"1.0.11","contributions":{"html":{"types-syntax":"typescript","description-markup":"markdown"}}}
|