@pisell/materials 2.2.102 → 2.2.103

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.
Files changed (44) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +148 -164
  7. package/build/lowcode/render/default/view.js +22 -36
  8. package/build/lowcode/view.js +22 -36
  9. package/es/components/pisellWalletPassCard/index.js +6 -1
  10. package/es/components/productCard/cartSkuCard/components/packages/utils.d.ts +1 -1
  11. package/es/components/productCard/components/Packages/utils.d.ts +1 -1
  12. package/es/components/walletCard/Guide/index.d.ts +4 -0
  13. package/es/locales/en-US.d.ts +1 -0
  14. package/es/locales/en-US.js +1 -0
  15. package/es/locales/zh-CN.d.ts +1 -0
  16. package/es/locales/zh-CN.js +1 -0
  17. package/es/locales/zh-TW.d.ts +1 -0
  18. package/es/locales/zh-TW.js +1 -0
  19. package/es/utils/platform.d.ts +1 -1
  20. package/lib/components/pisellWalletPassCard/index.js +9 -1
  21. package/lib/components/productCard/cartSkuCard/components/packages/utils.d.ts +1 -1
  22. package/lib/components/productCard/components/Packages/utils.d.ts +1 -1
  23. package/lib/components/walletCard/Guide/index.d.ts +4 -0
  24. package/lib/locales/en-US.d.ts +1 -0
  25. package/lib/locales/en-US.js +1 -0
  26. package/lib/locales/zh-CN.d.ts +1 -0
  27. package/lib/locales/zh-CN.js +1 -0
  28. package/lib/locales/zh-TW.d.ts +1 -0
  29. package/lib/locales/zh-TW.js +1 -0
  30. package/lib/utils/platform.d.ts +1 -1
  31. package/lowcode/pisell-wallet-pass-card/meta.ts +19 -0
  32. package/package.json +1 -1
  33. package/es/components/media/index.d.ts +0 -18
  34. package/es/components/media/index.js +0 -340
  35. package/es/components/media/index.less +0 -100
  36. package/es/components/pisellVHFix/index.d.ts +0 -13
  37. package/es/components/pisellVHFix/index.js +0 -36
  38. package/es/components/pisellVHFix/index.less +0 -10
  39. package/lib/components/media/index.d.ts +0 -18
  40. package/lib/components/media/index.js +0 -265
  41. package/lib/components/media/index.less +0 -100
  42. package/lib/components/pisellVHFix/index.d.ts +0 -13
  43. package/lib/components/pisellVHFix/index.js +0 -56
  44. package/lib/components/pisellVHFix/index.less +0 -10
@@ -1,100 +0,0 @@
1
- .pisell-media {
2
- .pisell-media-current-files {
3
- margin-top: 8px;
4
- display: flex;
5
- flex-wrap: wrap;
6
- gap: 8px;
7
-
8
- .pisell-media-file-item {
9
- position: relative;
10
- border: 1px solid #d9d9d9;
11
- border-radius: 6px;
12
- padding: 4px;
13
- display: flex;
14
- align-items: center;
15
- gap: 8px;
16
-
17
- .pisell-media-file-actions {
18
- position: absolute;
19
- top: 4px;
20
- right: 4px;
21
- opacity: 0;
22
- transition: opacity 0.2s;
23
- }
24
-
25
- &:hover .pisell-media-file-actions {
26
- opacity: 1;
27
- }
28
- }
29
- }
30
-
31
- .pisell-media-modal {
32
- .pisell-media-upload {
33
- margin-bottom: 16px;
34
- padding-bottom: 16px;
35
- border-bottom: 1px solid #f0f0f0;
36
- }
37
-
38
- .pisell-media-list {
39
- display: grid;
40
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
41
- gap: 12px;
42
- max-height: 400px;
43
- overflow-y: auto;
44
-
45
- .pisell-media-item {
46
- border: 2px solid transparent;
47
- border-radius: 8px;
48
- padding: 8px;
49
- cursor: pointer;
50
- background: #fafafa;
51
- transition: all 0.2s;
52
- display: flex;
53
- flex-direction: column;
54
- align-items: center;
55
- text-align: center;
56
- min-height: 120px;
57
-
58
- &:hover {
59
- border-color: #1890ff;
60
- background: #f0f8ff;
61
- }
62
-
63
- &.selected {
64
- border-color: #1890ff;
65
- background: #e6f7ff;
66
- }
67
-
68
- .pisell-media-item-info {
69
- margin-top: 8px;
70
- width: 100%;
71
-
72
- .pisell-media-item-name {
73
- font-size: 12px;
74
- color: #333;
75
- margin-bottom: 4px;
76
- overflow: hidden;
77
- text-overflow: ellipsis;
78
- white-space: nowrap;
79
- }
80
-
81
- .pisell-media-item-size {
82
- font-size: 10px;
83
- color: #999;
84
- }
85
- }
86
- }
87
- }
88
-
89
- .pisell-media-selected {
90
- margin-top: 16px;
91
- padding: 8px 12px;
92
- background: #f6ffed;
93
- border: 1px solid #b7eb8f;
94
- border-radius: 6px;
95
- color: #52c41a;
96
- font-size: 14px;
97
- text-align: center;
98
- }
99
- }
100
- }
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import './index.less';
3
- interface PisellVHFixProps {
4
- children?: React.ReactNode;
5
- className?: string;
6
- style?: React.CSSProperties;
7
- height?: number;
8
- minHeight?: boolean;
9
- maxHeight?: boolean;
10
- minusPixels?: number;
11
- }
12
- declare const PisellVHFix: React.FC<PisellVHFixProps>;
13
- export default PisellVHFix;
@@ -1,36 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import React from 'react';
8
- import { useVH } from "../../hooks/useVH";
9
- import "./index.less";
10
- var PisellVHFix = function PisellVHFix(_ref) {
11
- var children = _ref.children,
12
- className = _ref.className,
13
- style = _ref.style,
14
- _ref$height = _ref.height,
15
- height = _ref$height === void 0 ? 100 : _ref$height,
16
- _ref$minHeight = _ref.minHeight,
17
- minHeight = _ref$minHeight === void 0 ? false : _ref$minHeight,
18
- _ref$maxHeight = _ref.maxHeight,
19
- maxHeight = _ref$maxHeight === void 0 ? false : _ref$maxHeight,
20
- _ref$minusPixels = _ref.minusPixels,
21
- minusPixels = _ref$minusPixels === void 0 ? 0 : _ref$minusPixels;
22
- // 启用vh修复
23
- useVH();
24
- var containerStyle = _objectSpread(_objectSpread(_objectSpread({}, style), {}, {
25
- height: minusPixels > 0 ? "calc(var(--vh, 1vh) * ".concat(height, " - ").concat(minusPixels, "px)") : "calc(var(--vh, 1vh) * ".concat(height, ")")
26
- }, minHeight && {
27
- minHeight: "calc(var(--vh, 1vh) * ".concat(height, ")")
28
- }), maxHeight && {
29
- maxHeight: "calc(var(--vh, 1vh) * ".concat(height, ")")
30
- });
31
- return /*#__PURE__*/React.createElement("div", {
32
- className: "pisell-vh-fix ".concat(className || ''),
33
- style: containerStyle
34
- }, children);
35
- };
36
- export default PisellVHFix;
@@ -1,10 +0,0 @@
1
- .pisell-vh-fix {
2
- box-sizing: border-box;
3
- overflow: hidden;
4
-
5
- // 确保在Safari移动端正确显示
6
- -webkit-overflow-scrolling: touch;
7
-
8
- // 防止iOS Safari的弹性滚动
9
- overscroll-behavior: contain;
10
- }
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- export interface MediaProps {
3
- __designMode?: 'design' | undefined;
4
- value?: string | string[];
5
- onChange?: (value: string | string[]) => void;
6
- multiple?: boolean;
7
- maxCount?: number;
8
- accept?: string;
9
- disabled?: boolean;
10
- className?: string;
11
- style?: React.CSSProperties;
12
- placeholder?: string;
13
- showUploadList?: boolean;
14
- listType?: 'text' | 'picture' | 'picture-card';
15
- }
16
- import './index.less';
17
- declare const Media: React.ForwardRefExoticComponent<MediaProps & React.RefAttributes<HTMLDivElement>>;
18
- export default Media;
@@ -1,265 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/components/media/index.tsx
30
- var media_exports = {};
31
- __export(media_exports, {
32
- default: () => media_default
33
- });
34
- module.exports = __toCommonJS(media_exports);
35
- var import_react = __toESM(require("react"));
36
- var import_antd = require("antd");
37
- var import_icons = require("@ant-design/icons");
38
- var import_ahooks = require("ahooks");
39
- var import_utils = require("../table/utils");
40
- var import_useEngineContext = __toESM(require("../../hooks/useEngineContext"));
41
- var import_index = require("./index.less");
42
- var Media = (0, import_react.forwardRef)((props, ref) => {
43
- const {
44
- __designMode,
45
- value,
46
- onChange,
47
- multiple = false,
48
- maxCount = 10,
49
- accept = "image/*,video/*,audio/*",
50
- disabled = false,
51
- className,
52
- style,
53
- placeholder = "選擇媒體文件",
54
- showUploadList = true,
55
- listType = "picture-card"
56
- } = props;
57
- const [isModalVisible, setIsModalVisible] = (0, import_react.useState)(false);
58
- const [selectedItems, setSelectedItems] = (0, import_react.useState)([]);
59
- const [uploading, setUploading] = (0, import_react.useState)(false);
60
- const { appHelper } = (0, import_useEngineContext.default)();
61
- const { mediaUploadUrl, getHeaders } = (appHelper == null ? void 0 : appHelper.constants) || {};
62
- const { data: mediaList, run: fetchMediaList } = (0, import_ahooks.useRequest)(
63
- async () => {
64
- const { data } = await import_utils.request.getRequest().get(
65
- `/media:list`,
66
- {
67
- page: 1,
68
- pageSize: 100
69
- },
70
- {
71
- isNocobase: true,
72
- fullResult: true,
73
- headers: {
74
- "x-data-source": "pisell2"
75
- }
76
- }
77
- );
78
- return (data == null ? void 0 : data.data) || [];
79
- },
80
- {
81
- manual: true
82
- }
83
- );
84
- const { run: uploadFile } = (0, import_ahooks.useRequest)(
85
- async (file) => {
86
- const formData = new FormData();
87
- formData.append("file", file);
88
- formData.append("group_id", "0");
89
- const { data } = await import_utils.request.getRequest().post(mediaUploadUrl || "/api/media:upload", formData, {
90
- headers: {
91
- ...getHeaders == null ? void 0 : getHeaders(),
92
- "Content-Type": "multipart/form-data"
93
- }
94
- });
95
- return data;
96
- },
97
- {
98
- manual: true,
99
- onSuccess: (result) => {
100
- import_antd.message.success("上傳成功");
101
- fetchMediaList();
102
- },
103
- onError: () => {
104
- import_antd.message.error("上傳失敗");
105
- }
106
- }
107
- );
108
- const handleUpload = (0, import_react.useCallback)(
109
- async (file) => {
110
- if (file.size > 10 * 1024 * 1024) {
111
- import_antd.message.error("文件大小不能超過10MB");
112
- return false;
113
- }
114
- setUploading(true);
115
- try {
116
- await uploadFile(file);
117
- } finally {
118
- setUploading(false);
119
- }
120
- return false;
121
- },
122
- [uploadFile]
123
- );
124
- const showModal = (0, import_react.useCallback)(() => {
125
- if (__designMode === "design") {
126
- return;
127
- }
128
- setIsModalVisible(true);
129
- fetchMediaList();
130
- }, [__designMode, fetchMediaList]);
131
- const handleCancel = (0, import_react.useCallback)(() => {
132
- setIsModalVisible(false);
133
- setSelectedItems([]);
134
- }, []);
135
- const handleSelect = (0, import_react.useCallback)(
136
- (item) => {
137
- if (multiple) {
138
- const isSelected = selectedItems.find(
139
- (selected) => selected.id === item.id
140
- );
141
- if (isSelected) {
142
- setSelectedItems(
143
- selectedItems.filter((selected) => selected.id !== item.id)
144
- );
145
- } else {
146
- if (selectedItems.length >= maxCount) {
147
- import_antd.message.warning(`最多只能選擇${maxCount}個文件`);
148
- return;
149
- }
150
- setSelectedItems([...selectedItems, item]);
151
- }
152
- } else {
153
- setSelectedItems([item]);
154
- }
155
- },
156
- [multiple, selectedItems, maxCount]
157
- );
158
- const handleOk = (0, import_react.useCallback)(() => {
159
- if (selectedItems.length === 0) {
160
- import_antd.message.warning("請選擇媒體文件");
161
- return;
162
- }
163
- const urls = selectedItems.map((item) => item.url);
164
- const result = multiple ? urls : urls[0];
165
- onChange == null ? void 0 : onChange(result);
166
- setIsModalVisible(false);
167
- setSelectedItems([]);
168
- }, [selectedItems, multiple, onChange]);
169
- const renderCurrentFiles = (0, import_react.useMemo)(() => {
170
- if (!value) return null;
171
- const files = Array.isArray(value) ? value : [value];
172
- if (listType === "picture-card") {
173
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-current-files" }, files.map((url, index) => /* @__PURE__ */ import_react.default.createElement("div", { key: index, className: "pisell-media-file-item" }, /* @__PURE__ */ import_react.default.createElement(
174
- import_antd.Image,
175
- {
176
- src: url,
177
- alt: `file-${index}`,
178
- width: 80,
179
- height: 80,
180
- style: { objectFit: "cover" }
181
- }
182
- ), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-file-actions" }, /* @__PURE__ */ import_react.default.createElement(
183
- import_antd.Button,
184
- {
185
- type: "text",
186
- size: "small",
187
- onClick: () => {
188
- const newFiles = files.filter((_, i) => i !== index);
189
- onChange == null ? void 0 : onChange(multiple ? newFiles : newFiles[0] || "");
190
- }
191
- },
192
- "刪除"
193
- )))));
194
- }
195
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-current-files" }, files.map((url, index) => /* @__PURE__ */ import_react.default.createElement("div", { key: index, className: "pisell-media-file-item" }, /* @__PURE__ */ import_react.default.createElement("span", null, url), /* @__PURE__ */ import_react.default.createElement(
196
- import_antd.Button,
197
- {
198
- type: "text",
199
- size: "small",
200
- onClick: () => {
201
- const newFiles = files.filter((_, i) => i !== index);
202
- onChange == null ? void 0 : onChange(multiple ? newFiles : newFiles[0] || "");
203
- }
204
- },
205
- "刪除"
206
- ))));
207
- }, [value, listType, multiple, onChange]);
208
- return /* @__PURE__ */ import_react.default.createElement("div", { ref, className: `pisell-media ${className || ""}`, style }, /* @__PURE__ */ import_react.default.createElement(
209
- import_antd.Button,
210
- {
211
- type: "dashed",
212
- icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PictureOutlined, null),
213
- onClick: showModal,
214
- disabled,
215
- style: { width: "100%", height: listType === "picture-card" ? 80 : 32 }
216
- },
217
- placeholder
218
- ), showUploadList && renderCurrentFiles, /* @__PURE__ */ import_react.default.createElement(
219
- import_antd.Modal,
220
- {
221
- title: "媒體庫",
222
- open: isModalVisible,
223
- onCancel: handleCancel,
224
- onOk: handleOk,
225
- width: 800,
226
- okText: "確定",
227
- cancelText: "取消"
228
- },
229
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-modal" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-upload" }, /* @__PURE__ */ import_react.default.createElement(
230
- import_antd.Upload,
231
- {
232
- accept,
233
- beforeUpload: handleUpload,
234
- showUploadList: false,
235
- disabled: uploading
236
- },
237
- /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null), loading: uploading }, "上傳文件")
238
- )), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-list" }, mediaList == null ? void 0 : mediaList.map((item) => {
239
- const isSelected = selectedItems.find(
240
- (selected) => selected.id === item.id
241
- );
242
- return /* @__PURE__ */ import_react.default.createElement(
243
- "button",
244
- {
245
- key: item.id,
246
- className: `pisell-media-item ${isSelected ? "selected" : ""}`,
247
- onClick: () => handleSelect(item),
248
- type: "button"
249
- },
250
- /* @__PURE__ */ import_react.default.createElement(
251
- import_antd.Image,
252
- {
253
- src: item.url,
254
- alt: item.name,
255
- width: 80,
256
- height: 80,
257
- style: { objectFit: "cover" }
258
- }
259
- ),
260
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-item-info" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-item-name" }, item.name), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-item-size" }, (item.size / 1024 / 1024).toFixed(2), " MB"))
261
- );
262
- })), selectedItems.length > 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-media-selected" }, "已選擇 ", selectedItems.length, " 個文件"))
263
- ));
264
- });
265
- var media_default = Media;
@@ -1,100 +0,0 @@
1
- .pisell-media {
2
- .pisell-media-current-files {
3
- margin-top: 8px;
4
- display: flex;
5
- flex-wrap: wrap;
6
- gap: 8px;
7
-
8
- .pisell-media-file-item {
9
- position: relative;
10
- border: 1px solid #d9d9d9;
11
- border-radius: 6px;
12
- padding: 4px;
13
- display: flex;
14
- align-items: center;
15
- gap: 8px;
16
-
17
- .pisell-media-file-actions {
18
- position: absolute;
19
- top: 4px;
20
- right: 4px;
21
- opacity: 0;
22
- transition: opacity 0.2s;
23
- }
24
-
25
- &:hover .pisell-media-file-actions {
26
- opacity: 1;
27
- }
28
- }
29
- }
30
-
31
- .pisell-media-modal {
32
- .pisell-media-upload {
33
- margin-bottom: 16px;
34
- padding-bottom: 16px;
35
- border-bottom: 1px solid #f0f0f0;
36
- }
37
-
38
- .pisell-media-list {
39
- display: grid;
40
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
41
- gap: 12px;
42
- max-height: 400px;
43
- overflow-y: auto;
44
-
45
- .pisell-media-item {
46
- border: 2px solid transparent;
47
- border-radius: 8px;
48
- padding: 8px;
49
- cursor: pointer;
50
- background: #fafafa;
51
- transition: all 0.2s;
52
- display: flex;
53
- flex-direction: column;
54
- align-items: center;
55
- text-align: center;
56
- min-height: 120px;
57
-
58
- &:hover {
59
- border-color: #1890ff;
60
- background: #f0f8ff;
61
- }
62
-
63
- &.selected {
64
- border-color: #1890ff;
65
- background: #e6f7ff;
66
- }
67
-
68
- .pisell-media-item-info {
69
- margin-top: 8px;
70
- width: 100%;
71
-
72
- .pisell-media-item-name {
73
- font-size: 12px;
74
- color: #333;
75
- margin-bottom: 4px;
76
- overflow: hidden;
77
- text-overflow: ellipsis;
78
- white-space: nowrap;
79
- }
80
-
81
- .pisell-media-item-size {
82
- font-size: 10px;
83
- color: #999;
84
- }
85
- }
86
- }
87
- }
88
-
89
- .pisell-media-selected {
90
- margin-top: 16px;
91
- padding: 8px 12px;
92
- background: #f6ffed;
93
- border: 1px solid #b7eb8f;
94
- border-radius: 6px;
95
- color: #52c41a;
96
- font-size: 14px;
97
- text-align: center;
98
- }
99
- }
100
- }
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import './index.less';
3
- interface PisellVHFixProps {
4
- children?: React.ReactNode;
5
- className?: string;
6
- style?: React.CSSProperties;
7
- height?: number;
8
- minHeight?: boolean;
9
- maxHeight?: boolean;
10
- minusPixels?: number;
11
- }
12
- declare const PisellVHFix: React.FC<PisellVHFixProps>;
13
- export default PisellVHFix;
@@ -1,56 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/components/pisellVHFix/index.tsx
30
- var pisellVHFix_exports = {};
31
- __export(pisellVHFix_exports, {
32
- default: () => pisellVHFix_default
33
- });
34
- module.exports = __toCommonJS(pisellVHFix_exports);
35
- var import_react = __toESM(require("react"));
36
- var import_useVH = require("../../hooks/useVH");
37
- var import_index = require("./index.less");
38
- var PisellVHFix = ({
39
- children,
40
- className,
41
- style,
42
- height = 100,
43
- minHeight = false,
44
- maxHeight = false,
45
- minusPixels = 0
46
- }) => {
47
- (0, import_useVH.useVH)();
48
- const containerStyle = {
49
- ...style,
50
- height: minusPixels > 0 ? `calc(var(--vh, 1vh) * ${height} - ${minusPixels}px)` : `calc(var(--vh, 1vh) * ${height})`,
51
- ...minHeight && { minHeight: `calc(var(--vh, 1vh) * ${height})` },
52
- ...maxHeight && { maxHeight: `calc(var(--vh, 1vh) * ${height})` }
53
- };
54
- return /* @__PURE__ */ import_react.default.createElement("div", { className: `pisell-vh-fix ${className || ""}`, style: containerStyle }, children);
55
- };
56
- var pisellVHFix_default = PisellVHFix;
@@ -1,10 +0,0 @@
1
- .pisell-vh-fix {
2
- box-sizing: border-box;
3
- overflow: hidden;
4
-
5
- // 确保在Safari移动端正确显示
6
- -webkit-overflow-scrolling: touch;
7
-
8
- // 防止iOS Safari的弹性滚动
9
- overscroll-behavior: contain;
10
- }