py-test-component 1.0.3 → 1.0.4
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.
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* vue-custom-element v3.3.0
|
|
11
|
+
* (c) 2021 Karol Fabjańczuk
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
|
|
9
15
|
/**
|
|
10
16
|
* @license
|
|
11
17
|
* Lodash <https://lodash.com/>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "py-test-component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Vue2 + ElementUI 组件库,支持 React 使用",
|
|
5
5
|
"main": "dist/py-component.js",
|
|
6
6
|
"module": "dist/py-component.esm.js",
|
|
@@ -33,24 +33,25 @@
|
|
|
33
33
|
"dev": "webpack --mode development --watch"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
36
|
+
"element-ui": "^2.15.0",
|
|
37
|
+
"vue": "^2.7.0",
|
|
38
|
+
"vue-custom-element": "^3.3.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
|
-
"webpack": "^5.88.0",
|
|
41
|
-
"webpack-cli": "^5.1.0",
|
|
42
|
-
"vue-loader": "^15.10.1",
|
|
43
|
-
"vue-template-compiler": "^2.7.14",
|
|
44
|
-
"css-loader": "^6.8.1",
|
|
45
|
-
"style-loader": "^1.3.0",
|
|
46
|
-
"babel-loader": "^9.1.2",
|
|
47
41
|
"@babel/core": "^7.22.0",
|
|
48
42
|
"@babel/preset-env": "^7.22.0",
|
|
49
|
-
"@vue/web-component-wrapper": "^1.3.0"
|
|
43
|
+
"@vue/web-component-wrapper": "^1.3.0",
|
|
44
|
+
"babel-loader": "^9.1.2",
|
|
45
|
+
"css-loader": "^6.8.1",
|
|
46
|
+
"style-loader": "^1.3.0",
|
|
47
|
+
"vue-loader": "^15.10.1",
|
|
48
|
+
"vue-template-compiler": "^2.7.14",
|
|
49
|
+
"webpack": "^5.88.0",
|
|
50
|
+
"webpack-cli": "^5.1.0"
|
|
50
51
|
},
|
|
51
52
|
"peerDependencies": {
|
|
52
|
-
"
|
|
53
|
-
"
|
|
53
|
+
"element-ui": "^2.15.0",
|
|
54
|
+
"vue": "^2.7.0"
|
|
54
55
|
},
|
|
55
56
|
"peerDependenciesMeta": {
|
|
56
57
|
"vue": {
|
package/src/react/index.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import { createElement, useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';
|
|
2
2
|
|
|
3
|
+
// 注入 ElementUI CSS(只执行一次)
|
|
4
|
+
let cssInjected = false;
|
|
5
|
+
function injectElementUICSS() {
|
|
6
|
+
if (cssInjected || typeof document === 'undefined') return;
|
|
7
|
+
cssInjected = true;
|
|
8
|
+
|
|
9
|
+
// 检查是否已存在
|
|
10
|
+
if (document.querySelector('link[data-py-component-css]')) return;
|
|
11
|
+
|
|
12
|
+
const link = document.createElement('link');
|
|
13
|
+
link.rel = 'stylesheet';
|
|
14
|
+
link.href = 'https://unpkg.com/element-ui/lib/theme-chalk/index.css';
|
|
15
|
+
link.dataset.pyComponentCss = 'true';
|
|
16
|
+
document.head.appendChild(link);
|
|
17
|
+
}
|
|
18
|
+
|
|
3
19
|
// 加载状态管理
|
|
4
20
|
let loadPromise = null;
|
|
5
21
|
let isLoaded = false;
|
|
@@ -46,6 +62,9 @@ function usePyComponent() {
|
|
|
46
62
|
const [error, setError] = useState(null);
|
|
47
63
|
|
|
48
64
|
useEffect(() => {
|
|
65
|
+
// 自动注入 CSS
|
|
66
|
+
injectElementUICSS();
|
|
67
|
+
|
|
49
68
|
if (isLoaded) {
|
|
50
69
|
setLoaded(true);
|
|
51
70
|
return;
|