@varlet/ui 1.27.0 → 1.27.1
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/es/snackbar/style/index.js +1 -1
- package/es/snackbar/style/less.js +1 -1
- package/es/style.css +1 -1
- package/es/uploader/Uploader.js +14 -3
- package/es/uploader/uploader.css +1 -1
- package/es/uploader/uploader.less +5 -7
- package/es/varlet.esm.js +14 -4
- package/highlight/web-types.json +1 -1
- package/lib/snackbar/style/index.js +1 -1
- package/lib/snackbar/style/less.js +1 -1
- package/lib/style.css +1 -1
- package/lib/uploader/Uploader.js +14 -3
- package/lib/uploader/uploader.css +1 -1
- package/lib/uploader/uploader.less +5 -7
- package/package.json +4 -4
- package/types/uploader.d.ts +11 -4
- package/umd/varlet.js +4 -4
package/lib/uploader/Uploader.js
CHANGED
|
@@ -101,9 +101,13 @@ function render(_ctx, _cache) {
|
|
|
101
101
|
/* KEYED_FRAGMENT */
|
|
102
102
|
)), !_ctx.maxlength || _ctx.modelValue.length < _ctx.maxlength ? (0, _vue.withDirectives)(((0, _vue.openBlock)(), (0, _vue.createElementBlock)("div", {
|
|
103
103
|
key: 0,
|
|
104
|
-
class: (0, _vue.normalizeClass)(_ctx.classes(
|
|
104
|
+
class: (0, _vue.normalizeClass)(_ctx.classes([!_ctx.$slots.default, _ctx.n('action') + " var-elevation--2"], [_ctx.disabled || _ctx.formDisabled, _ctx.n('--disabled')])),
|
|
105
|
+
onClick: _cache[1] || (_cache[1] = function () {
|
|
106
|
+
return _ctx.triggerAction && _ctx.triggerAction(...arguments);
|
|
107
|
+
})
|
|
105
108
|
}, [(0, _vue.createElementVNode)("input", {
|
|
106
109
|
class: (0, _vue.normalizeClass)(_ctx.n('action-input')),
|
|
110
|
+
ref: "input",
|
|
107
111
|
type: "file",
|
|
108
112
|
multiple: _ctx.multiple,
|
|
109
113
|
accept: _ctx.accept,
|
|
@@ -136,8 +140,8 @@ function render(_ctx, _cache) {
|
|
|
136
140
|
"var-uploader-cover": "",
|
|
137
141
|
position: "center",
|
|
138
142
|
show: _ctx.showPreview,
|
|
139
|
-
"onUpdate:show": _cache[
|
|
140
|
-
onClosed: _cache[
|
|
143
|
+
"onUpdate:show": _cache[2] || (_cache[2] = $event => _ctx.showPreview = $event),
|
|
144
|
+
onClosed: _cache[3] || (_cache[3] = $event => _ctx.currentPreview = null)
|
|
141
145
|
}, {
|
|
142
146
|
default: (0, _vue.withCtx)(() => {
|
|
143
147
|
var _ctx$currentPreview, _ctx$currentPreview2;
|
|
@@ -180,6 +184,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
180
184
|
props: _props.props,
|
|
181
185
|
|
|
182
186
|
setup(props) {
|
|
187
|
+
var input = (0, _vue.ref)();
|
|
183
188
|
var showPreview = (0, _vue.ref)(false);
|
|
184
189
|
var currentPreview = (0, _vue.ref)(null);
|
|
185
190
|
var maxlengthText = (0, _vue.computed)(() => {
|
|
@@ -215,6 +220,10 @@ var _default = (0, _vue.defineComponent)({
|
|
|
215
220
|
return modelValue;
|
|
216
221
|
});
|
|
217
222
|
|
|
223
|
+
var triggerAction = () => {
|
|
224
|
+
input.value.click();
|
|
225
|
+
};
|
|
226
|
+
|
|
218
227
|
var preview = varFile => {
|
|
219
228
|
var {
|
|
220
229
|
disabled,
|
|
@@ -433,6 +442,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
433
442
|
return {
|
|
434
443
|
n,
|
|
435
444
|
classes,
|
|
445
|
+
input,
|
|
436
446
|
files,
|
|
437
447
|
showPreview,
|
|
438
448
|
currentPreview,
|
|
@@ -442,6 +452,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
442
452
|
isHTMLSupportImage: _shared.isHTMLSupportImage,
|
|
443
453
|
formDisabled: form == null ? void 0 : form.disabled,
|
|
444
454
|
formReadonly: form == null ? void 0 : form.readonly,
|
|
455
|
+
triggerAction,
|
|
445
456
|
preview,
|
|
446
457
|
handleChange,
|
|
447
458
|
handleRemove,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --uploader-action-background: #f7f8fa; --uploader-action-icon-color: #888; --uploader-action-icon-size: 24px; --uploader-action-margin: 0 10px 10px 0; --uploader-file-size: 80px; --uploader-file-margin: 0 10px 10px 0; --uploader-file-name-background: #f7f8fa; --uploader-file-name-color: #888; --uploader-file-name-font-size: 12px; --uploader-file-name-padding: 10px; --uploader-file-text-align: center; --uploader-file-close-background: rgba(0, 0, 0, 0.3); --uploader-file-close-size: 24px; --uploader-file-close-icon-font-size: 14px; --uploader-file-close-icon-color: #fff; --uploader-file-cover-fit: cover; --uploader-file-cover-background: #f7f8fa; --uploader-preview-video-width: 100vw; --uploader-preview-video-height: 100vw; --uploader-file-indicator-height: 4px; --uploader-file-indicator-normal-color: var(--color-disabled); --uploader-file-indicator-success-color: var(--color-success); --uploader-file-indicator-error-color: var(--color-danger); --uploader-disabled-color: var(--color-disabled); --uploader-disabled-text-color: var(--color-text-disabled); --uploader-loading-background: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0.3), hsla(0, 0%, 100%, 0));}@keyframes var-uploader-loading-animation { from { transform: translateX(-100%); } to { transform: translateX(100%); }}.var-uploader { width: 100%;}.var-uploader__file-list { width: 100%; display: flex; flex-wrap: wrap;}.var-uploader__file { position: relative; width: var(--uploader-file-size); height: var(--uploader-file-size); margin: var(--uploader-file-margin); overflow: hidden; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-uploader__file-name { position: absolute; width: 100%; height: 100%; line-height: calc(var(--uploader-file-size) - var(--uploader-file-name-padding) * 2); font-size: var(--uploader-file-name-font-size); z-index: 0; background: var(--uploader-file-name-background); padding: var(--uploader-file-name-padding); color: var(--uploader-file-name-color); text-align: var(--uploader-file-text-align); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; user-select: none; transition: background-color 0.25s;}.var-uploader__file-cover { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; background: var(--uploader-file-cover-background); object-fit: var(--uploader-file-cover-fit); pointer-events: none; transition: background-color 0.25s;}.var-uploader__file-close { position: absolute; top: 0; right: 0; z-index: 2; border-top: var(--uploader-file-close-size) solid var(--uploader-file-close-background); border-left: var(--uploader-file-close-size) solid transparent;}.var-uploader__file-close-icon[var-uploader-cover] { position: absolute; top: calc(-1 * var(--uploader-file-close-size)); right: 0; font-size: var(--uploader-file-close-icon-font-size); color: var(--uploader-file-close-icon-color);}.var-uploader__file-indicator { position: absolute; left: 0; bottom: 0; z-index: 2; width: 100%; height: var(--uploader-file-indicator-height); transition: all 0.25s; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; background: var(--uploader-file-indicator-normal-color);}.var-uploader__action { position: relative; display: flex; justify-content: center; align-items: center; color: var(--uploader-action-icon-color); width: var(--uploader-file-size); height: var(--uploader-file-size); background: var(--uploader-action-background); margin: var(--uploader-action-margin); transition: background-color 0.25s;}.var-uploader__action-icon[var-uploader-cover] { font-size: var(--uploader-action-icon-size);}.var-uploader__action-input {
|
|
1
|
+
:root { --uploader-action-background: #f7f8fa; --uploader-action-icon-color: #888; --uploader-action-icon-size: 24px; --uploader-action-margin: 0 10px 10px 0; --uploader-file-size: 80px; --uploader-file-margin: 0 10px 10px 0; --uploader-file-name-background: #f7f8fa; --uploader-file-name-color: #888; --uploader-file-name-font-size: 12px; --uploader-file-name-padding: 10px; --uploader-file-text-align: center; --uploader-file-close-background: rgba(0, 0, 0, 0.3); --uploader-file-close-size: 24px; --uploader-file-close-icon-font-size: 14px; --uploader-file-close-icon-color: #fff; --uploader-file-cover-fit: cover; --uploader-file-cover-background: #f7f8fa; --uploader-preview-video-width: 100vw; --uploader-preview-video-height: 100vw; --uploader-file-indicator-height: 4px; --uploader-file-indicator-normal-color: var(--color-disabled); --uploader-file-indicator-success-color: var(--color-success); --uploader-file-indicator-error-color: var(--color-danger); --uploader-disabled-color: var(--color-disabled); --uploader-disabled-text-color: var(--color-text-disabled); --uploader-loading-background: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0.3), hsla(0, 0%, 100%, 0));}@keyframes var-uploader-loading-animation { from { transform: translateX(-100%); } to { transform: translateX(100%); }}.var-uploader { width: 100%;}.var-uploader__file-list { width: 100%; display: flex; flex-wrap: wrap;}.var-uploader__file { position: relative; width: var(--uploader-file-size); height: var(--uploader-file-size); margin: var(--uploader-file-margin); overflow: hidden; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-uploader__file-name { position: absolute; width: 100%; height: 100%; line-height: calc(var(--uploader-file-size) - var(--uploader-file-name-padding) * 2); font-size: var(--uploader-file-name-font-size); z-index: 0; background: var(--uploader-file-name-background); padding: var(--uploader-file-name-padding); color: var(--uploader-file-name-color); text-align: var(--uploader-file-text-align); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; user-select: none; transition: background-color 0.25s;}.var-uploader__file-cover { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; background: var(--uploader-file-cover-background); object-fit: var(--uploader-file-cover-fit); pointer-events: none; transition: background-color 0.25s;}.var-uploader__file-close { position: absolute; top: 0; right: 0; z-index: 2; border-top: var(--uploader-file-close-size) solid var(--uploader-file-close-background); border-left: var(--uploader-file-close-size) solid transparent;}.var-uploader__file-close-icon[var-uploader-cover] { position: absolute; top: calc(-1 * var(--uploader-file-close-size)); right: 0; font-size: var(--uploader-file-close-icon-font-size); color: var(--uploader-file-close-icon-color);}.var-uploader__file-indicator { position: absolute; left: 0; bottom: 0; z-index: 2; width: 100%; height: var(--uploader-file-indicator-height); transition: all 0.25s; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; background: var(--uploader-file-indicator-normal-color);}.var-uploader__action { position: relative; display: flex; justify-content: center; align-items: center; color: var(--uploader-action-icon-color); width: var(--uploader-file-size); height: var(--uploader-file-size); background: var(--uploader-action-background); margin: var(--uploader-action-margin); transition: background-color 0.25s; cursor: pointer;}.var-uploader__action-icon[var-uploader-cover] { font-size: var(--uploader-action-icon-size);}.var-uploader__action-input { display: block; z-index: 1; width: 0; height: 0; opacity: 0;}.var-uploader__preview[var-uploader-cover] { background: #000; box-shadow: none;}.var-uploader__preview-video { width: var(--uploader-preview-video-width); height: var(--uploader-preview-video-height);}.var-uploader--loading::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; animation: var-uploader-loading-animation 0.6s infinite; background: var(--uploader-loading-background); transition: background-color 0.25s;}.var-uploader--success { background: var(--uploader-file-indicator-success-color);}.var-uploader--error { background: var(--uploader-file-indicator-error-color);}.var-uploader--disabled { background: var(--uploader-disabled-color); color: var(--uploader-disabled-text-color); cursor: not-allowed;}
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
background: var(--uploader-action-background);
|
|
162
162
|
margin: var(--uploader-action-margin);
|
|
163
163
|
transition: background-color 0.25s;
|
|
164
|
+
cursor: pointer;
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
&__action-icon[var-uploader-cover] {
|
|
@@ -168,15 +169,11 @@
|
|
|
168
169
|
}
|
|
169
170
|
|
|
170
171
|
&__action-input {
|
|
171
|
-
|
|
172
|
+
display: block;
|
|
172
173
|
z-index: 1;
|
|
173
|
-
width:
|
|
174
|
-
height:
|
|
175
|
-
top: 0;
|
|
176
|
-
left: 0;
|
|
174
|
+
width: 0;
|
|
175
|
+
height: 0;
|
|
177
176
|
opacity: 0;
|
|
178
|
-
cursor: pointer;
|
|
179
|
-
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
180
177
|
}
|
|
181
178
|
|
|
182
179
|
&__preview[var-uploader-cover] {
|
|
@@ -215,5 +212,6 @@
|
|
|
215
212
|
&--disabled {
|
|
216
213
|
background: var(--uploader-disabled-color);
|
|
217
214
|
color: var(--uploader-disabled-text-color);
|
|
215
|
+
cursor: not-allowed;
|
|
218
216
|
}
|
|
219
217
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@varlet/ui",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.1",
|
|
4
4
|
"description": "A material like components library",
|
|
5
5
|
"module": "es/index.js",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
},
|
|
40
40
|
"gitHead": "ee9c3866bedad96c86365b0f9888a3a6bb781b1f",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@varlet/icons": "1.27.
|
|
42
|
+
"@varlet/icons": "1.27.1",
|
|
43
43
|
"dayjs": "^1.10.4",
|
|
44
44
|
"decimal.js": "^10.2.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@varlet/cli": "1.27.
|
|
48
|
-
"@varlet/touch-emulator": "1.27.
|
|
47
|
+
"@varlet/cli": "1.27.1",
|
|
48
|
+
"@varlet/touch-emulator": "1.27.1",
|
|
49
49
|
"@vue/test-utils": "2.0.0-rc.6",
|
|
50
50
|
"@vue/runtime-core": "3.2.25",
|
|
51
51
|
"typescript": "^4.4.4",
|
package/types/uploader.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ export interface VarFile {
|
|
|
11
11
|
|
|
12
12
|
export type UploaderValidateTriggers = 'onChange' | 'onRemove'
|
|
13
13
|
|
|
14
|
+
export type UploaderVarFileUtils = {
|
|
15
|
+
getLoading(): VarFile[]
|
|
16
|
+
getSuccess(): VarFile[]
|
|
17
|
+
getError(): VarFile[]
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
interface UploaderProps {
|
|
15
21
|
modelValue?: VarFile[]
|
|
16
22
|
accept?: string
|
|
@@ -25,10 +31,11 @@ interface UploaderProps {
|
|
|
25
31
|
hideList?: boolean
|
|
26
32
|
ripple?: boolean
|
|
27
33
|
validateTrigger?: Array<UploaderValidateTriggers>
|
|
28
|
-
rules?: Array<(v: VarFile) => any>
|
|
34
|
+
rules?: Array<(v: VarFile[], u: UploaderVarFileUtils) => any>
|
|
29
35
|
onBeforeRead?: (file: VarFile) => Promise<boolean> | boolean
|
|
30
36
|
onAfterRead?: (file: VarFile) => any
|
|
31
37
|
onOversize?: (file: VarFile) => any
|
|
38
|
+
onBeforeRemove?: (file: VarFile) => any
|
|
32
39
|
onRemove?: (file: VarFile) => any
|
|
33
40
|
'onUpdate:modelValue'?: (files: VarFile[]) => any
|
|
34
41
|
}
|
|
@@ -36,11 +43,11 @@ interface UploaderProps {
|
|
|
36
43
|
export class Uploader extends VarComponent {
|
|
37
44
|
$props: UploaderProps
|
|
38
45
|
|
|
39
|
-
getLoading(
|
|
46
|
+
getLoading(): VarFile[]
|
|
40
47
|
|
|
41
|
-
getSuccess(
|
|
48
|
+
getSuccess(): VarFile[]
|
|
42
49
|
|
|
43
|
-
getError(
|
|
50
|
+
getError(): VarFile[]
|
|
44
51
|
|
|
45
52
|
validate(): Promise<boolean>
|
|
46
53
|
|