This commit is contained in:
2023-08-11 10:45:20 +08:00
commit 161ca982f3
31850 changed files with 2706500 additions and 0 deletions

1
node_modules/vant/es/uploader/index.css generated vendored Normal file
View File

@ -0,0 +1 @@
.van-uploader{position:relative;display:inline-block}.van-uploader__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-uploader__wrapper--disabled{opacity:.5}.van-uploader__input{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;cursor:pointer;opacity:0}.van-uploader__input-wrapper{position:relative}.van-uploader__input:disabled{cursor:not-allowed}.van-uploader__upload{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;width:80px;height:80px;margin:0 8px 8px 0;background-color:#f7f8fa}.van-uploader__upload:active{background-color:#f2f3f5}.van-uploader__upload--readonly:active{background-color:#f7f8fa}.van-uploader__upload-icon{color:#dcdee0;font-size:24px}.van-uploader__upload-text{margin-top:8px;color:#969799;font-size:12px}.van-uploader__preview{position:relative;margin:0 8px 8px 0;cursor:pointer}.van-uploader__preview-image{display:block;width:80px;height:80px;overflow:hidden}.van-uploader__preview-delete{position:absolute;top:0;right:0;width:14px;height:14px;background-color:rgba(0,0,0,.7);border-radius:0 0 0 12px}.van-uploader__preview-delete-icon{position:absolute;top:-2px;right:-2px;color:#fff;font-size:16px;-webkit-transform:scale(.5);transform:scale(.5)}.van-uploader__preview-cover{position:absolute;top:0;right:0;bottom:0;left:0}.van-uploader__mask{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;background-color:rgba(50,50,51,.88)}.van-uploader__mask-icon{font-size:22px}.van-uploader__mask-message{margin-top:6px;padding:0 4px;font-size:12px;line-height:14px}.van-uploader__loading{width:22px;height:22px;color:#fff}.van-uploader__file{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:80px;height:80px;background-color:#f7f8fa}.van-uploader__file-icon{color:#646566;font-size:20px}.van-uploader__file-name{box-sizing:border-box;width:100%;margin-top:8px;padding:0 4px;color:#646566;font-size:12px;text-align:center}

482
node_modules/vant/es/uploader/index.js generated vendored Normal file
View File

@ -0,0 +1,482 @@
import _extends from "@babel/runtime/helpers/esm/extends";
// Utils
import { createNamespace, addUnit, noop, isPromise, isDef } from '../utils';
import { toArray, readFile as _readFile, isOversize, isImageFile } from './utils'; // Mixins
import { FieldMixin } from '../mixins/field'; // Components
import Icon from '../icon';
import Image from '../image';
import Loading from '../loading';
import ImagePreview from '../image-preview';
var _createNamespace = createNamespace('uploader'),
createComponent = _createNamespace[0],
bem = _createNamespace[1];
export default createComponent({
inheritAttrs: false,
mixins: [FieldMixin],
model: {
prop: 'fileList'
},
props: {
disabled: Boolean,
readonly: Boolean,
lazyLoad: Boolean,
uploadText: String,
afterRead: Function,
beforeRead: Function,
beforeDelete: Function,
previewSize: [Number, String],
previewOptions: Object,
name: {
type: [Number, String],
default: ''
},
accept: {
type: String,
default: 'image/*'
},
fileList: {
type: Array,
default: function _default() {
return [];
}
},
maxSize: {
type: [Number, String, Function],
default: Number.MAX_VALUE
},
maxCount: {
type: [Number, String],
default: Number.MAX_VALUE
},
deletable: {
type: Boolean,
default: true
},
showUpload: {
type: Boolean,
default: true
},
previewImage: {
type: Boolean,
default: true
},
previewFullImage: {
type: Boolean,
default: true
},
imageFit: {
type: String,
default: 'cover'
},
resultType: {
type: String,
default: 'dataUrl'
},
uploadIcon: {
type: String,
default: 'photograph'
}
},
computed: {
previewSizeWithUnit: function previewSizeWithUnit() {
return addUnit(this.previewSize);
},
// for form
value: function value() {
return this.fileList;
}
},
created: function created() {
this.urls = [];
},
beforeDestroy: function beforeDestroy() {
this.urls.forEach(function (url) {
return URL.revokeObjectURL(url);
});
},
methods: {
getDetail: function getDetail(index) {
if (index === void 0) {
index = this.fileList.length;
}
return {
name: this.name,
index: index
};
},
onChange: function onChange(event) {
var _this = this;
var files = event.target.files;
if (this.disabled || !files.length) {
return;
}
files = files.length === 1 ? files[0] : [].slice.call(files);
if (this.beforeRead) {
var response = this.beforeRead(files, this.getDetail());
if (!response) {
this.resetInput();
return;
}
if (isPromise(response)) {
response.then(function (data) {
if (data) {
_this.readFile(data);
} else {
_this.readFile(files);
}
}).catch(this.resetInput);
return;
}
}
this.readFile(files);
},
readFile: function readFile(files) {
var _this2 = this;
var oversize = isOversize(files, this.maxSize);
if (Array.isArray(files)) {
var maxCount = this.maxCount - this.fileList.length;
if (files.length > maxCount) {
files = files.slice(0, maxCount);
}
Promise.all(files.map(function (file) {
return _readFile(file, _this2.resultType);
})).then(function (contents) {
var fileList = files.map(function (file, index) {
var result = {
file: file,
status: '',
message: ''
};
if (contents[index]) {
result.content = contents[index];
}
return result;
});
_this2.onAfterRead(fileList, oversize);
});
} else {
_readFile(files, this.resultType).then(function (content) {
var result = {
file: files,
status: '',
message: ''
};
if (content) {
result.content = content;
}
_this2.onAfterRead(result, oversize);
});
}
},
onAfterRead: function onAfterRead(files, oversize) {
var _this3 = this;
this.resetInput();
var validFiles = files;
if (oversize) {
var oversizeFiles = files;
if (Array.isArray(files)) {
oversizeFiles = [];
validFiles = [];
files.forEach(function (item) {
if (item.file) {
if (isOversize(item.file, _this3.maxSize)) {
oversizeFiles.push(item);
} else {
validFiles.push(item);
}
}
});
} else {
validFiles = null;
}
this.$emit('oversize', oversizeFiles, this.getDetail());
}
var isValidFiles = Array.isArray(validFiles) ? Boolean(validFiles.length) : Boolean(validFiles);
if (isValidFiles) {
this.$emit('input', [].concat(this.fileList, toArray(validFiles)));
if (this.afterRead) {
this.afterRead(validFiles, this.getDetail());
}
}
},
onDelete: function onDelete(file, index) {
var _file$beforeDelete,
_this4 = this;
var beforeDelete = (_file$beforeDelete = file.beforeDelete) != null ? _file$beforeDelete : this.beforeDelete;
if (beforeDelete) {
var response = beforeDelete(file, this.getDetail(index));
if (!response) {
return;
}
if (isPromise(response)) {
response.then(function () {
_this4.deleteFile(file, index);
}).catch(noop);
return;
}
}
this.deleteFile(file, index);
},
deleteFile: function deleteFile(file, index) {
var fileList = this.fileList.slice(0);
fileList.splice(index, 1);
this.$emit('input', fileList);
this.$emit('delete', file, this.getDetail(index));
},
resetInput: function resetInput() {
/* istanbul ignore else */
if (this.$refs.input) {
this.$refs.input.value = '';
}
},
onClickUpload: function onClickUpload(event) {
this.$emit('click-upload', event);
},
onPreviewImage: function onPreviewImage(item) {
var _this5 = this;
if (!this.previewFullImage) {
return;
}
var imageFiles = this.fileList.filter(function (item) {
return isImageFile(item);
});
var imageContents = imageFiles.map(function (item) {
if (item.file && !item.url && item.status !== 'failed') {
item.url = URL.createObjectURL(item.file);
_this5.urls.push(item.url);
}
return item.url;
});
this.imagePreview = ImagePreview(_extends({
images: imageContents,
startPosition: imageFiles.indexOf(item),
onClose: function onClose() {
_this5.$emit('close-preview');
}
}, this.previewOptions));
},
// @exposed-api
closeImagePreview: function closeImagePreview() {
if (this.imagePreview) {
this.imagePreview.close();
}
},
// @exposed-api
chooseFile: function chooseFile() {
if (this.disabled) {
return;
}
/* istanbul ignore else */
if (this.$refs.input) {
this.$refs.input.click();
}
},
genPreviewMask: function genPreviewMask(item) {
var h = this.$createElement;
var status = item.status,
message = item.message;
if (status === 'uploading' || status === 'failed') {
var MaskIcon = status === 'failed' ? h(Icon, {
"attrs": {
"name": "close"
},
"class": bem('mask-icon')
}) : h(Loading, {
"class": bem('loading')
});
var showMessage = isDef(message) && message !== '';
return h("div", {
"class": bem('mask')
}, [MaskIcon, showMessage && h("div", {
"class": bem('mask-message')
}, [message])]);
}
},
genPreviewItem: function genPreviewItem(item, index) {
var _item$deletable,
_this6 = this,
_item$previewSize,
_item$imageFit;
var h = this.$createElement;
var deleteAble = (_item$deletable = item.deletable) != null ? _item$deletable : this.deletable;
var showDelete = item.status !== 'uploading' && deleteAble;
var DeleteIcon = showDelete && h("div", {
"class": bem('preview-delete'),
"on": {
"click": function click(event) {
event.stopPropagation();
_this6.onDelete(item, index);
}
}
}, [h(Icon, {
"attrs": {
"name": "cross"
},
"class": bem('preview-delete-icon')
})]);
var PreviewCoverContent = this.slots('preview-cover', _extends({
index: index
}, item));
var PreviewCover = PreviewCoverContent && h("div", {
"class": bem('preview-cover')
}, [PreviewCoverContent]);
var previewSize = (_item$previewSize = item.previewSize) != null ? _item$previewSize : this.previewSize;
var imageFit = (_item$imageFit = item.imageFit) != null ? _item$imageFit : this.imageFit;
var Preview = isImageFile(item) ? h(Image, {
"attrs": {
"fit": imageFit,
"src": item.content || item.url,
"width": previewSize,
"height": previewSize,
"lazyLoad": this.lazyLoad
},
"class": bem('preview-image'),
"on": {
"click": function click() {
_this6.onPreviewImage(item);
}
}
}, [PreviewCover]) : h("div", {
"class": bem('file'),
"style": {
width: this.previewSizeWithUnit,
height: this.previewSizeWithUnit
}
}, [h(Icon, {
"class": bem('file-icon'),
"attrs": {
"name": "description"
}
}), h("div", {
"class": [bem('file-name'), 'van-ellipsis']
}, [item.file ? item.file.name : item.url]), PreviewCover]);
return h("div", {
"class": bem('preview'),
"on": {
"click": function click() {
_this6.$emit('click-preview', item, _this6.getDetail(index));
}
}
}, [Preview, this.genPreviewMask(item), DeleteIcon]);
},
genPreviewList: function genPreviewList() {
if (this.previewImage) {
return this.fileList.map(this.genPreviewItem);
}
},
genUpload: function genUpload() {
var h = this.$createElement;
if (this.fileList.length >= this.maxCount) {
return;
}
var slot = this.slots();
var Input = this.readonly ? null : h("input", {
"attrs": _extends({}, this.$attrs, {
"type": "file",
"accept": this.accept,
"disabled": this.disabled
}),
"ref": "input",
"class": bem('input'),
"on": {
"change": this.onChange
}
});
if (slot) {
return h("div", {
"class": bem('input-wrapper'),
"key": "input-wrapper",
"on": {
"click": this.onClickUpload
}
}, [slot, Input]);
}
var style;
if (this.previewSize) {
var size = this.previewSizeWithUnit;
style = {
width: size,
height: size
};
}
return h("div", {
"directives": [{
name: "show",
value: this.showUpload
}],
"class": bem('upload', {
readonly: this.readonly
}),
"style": style,
"on": {
"click": this.onClickUpload
}
}, [h(Icon, {
"attrs": {
"name": this.uploadIcon
},
"class": bem('upload-icon')
}), this.uploadText && h("span", {
"class": bem('upload-text')
}, [this.uploadText]), Input]);
}
},
render: function render() {
var h = arguments[0];
return h("div", {
"class": bem()
}, [h("div", {
"class": bem('wrapper', {
disabled: this.disabled
})
}, [this.genPreviewList(), this.genUpload()])]);
}
});

163
node_modules/vant/es/uploader/index.less generated vendored Normal file
View File

@ -0,0 +1,163 @@
@import '../style/var';
.van-uploader {
position: relative;
display: inline-block;
&__wrapper {
display: flex;
flex-wrap: wrap;
&--disabled {
opacity: @uploader-disabled-opacity;
}
}
&__input {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden; // to clip file-upload-button
cursor: pointer;
opacity: 0;
&-wrapper {
position: relative;
}
&:disabled {
cursor: not-allowed;
}
}
&__upload {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: @uploader-size;
height: @uploader-size;
margin: 0 @padding-xs @padding-xs 0;
background-color: @uploader-upload-background-color;
&:active {
background-color: @uploader-upload-active-color;
}
&--readonly:active {
background-color: @uploader-upload-background-color;
}
&-icon {
color: @uploader-icon-color;
font-size: @uploader-icon-size;
}
&-text {
margin-top: @padding-xs;
color: @uploader-text-color;
font-size: @uploader-text-font-size;
}
}
&__preview {
position: relative;
margin: 0 @padding-xs @padding-xs 0;
cursor: pointer;
&-image {
display: block;
width: @uploader-size;
height: @uploader-size;
overflow: hidden;
}
&-delete {
position: absolute;
top: 0;
right: 0;
width: @uploader-delete-icon-size;
height: @uploader-delete-icon-size;
background-color: @uploader-delete-background-color;
border-radius: 0 0 0 12px;
&-icon {
position: absolute;
top: -2px;
right: -2px;
color: #fff;
color: @uploader-delete-color;
font-size: 16px;
transform: scale(0.5);
}
}
&-cover {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
}
&__mask {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: @white;
background-color: @uploader-mask-background-color;
&-icon {
font-size: @uploader-mask-icon-size;
}
&-message {
margin-top: 6px;
padding: 0 @padding-base;
font-size: @uploader-mask-message-font-size;
line-height: @uploader-mask-message-line-height;
}
}
&__loading {
width: @uploader-loading-icon-size;
height: @uploader-loading-icon-size;
color: @uploader-loading-icon-color;
}
&__file {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: @uploader-size;
height: @uploader-size;
background-color: @uploader-file-background-color;
&-icon {
color: @uploader-file-icon-color;
font-size: @uploader-file-icon-size;
}
&-name {
box-sizing: border-box;
width: 100%;
margin-top: @uploader-file-name-margin-top;
padding: @uploader-file-name-padding;
color: @uploader-file-name-text-color;
font-size: @uploader-file-name-font-size;
text-align: center;
}
}
}

11
node_modules/vant/es/uploader/style/index.js generated vendored Normal file
View File

@ -0,0 +1,11 @@
import '../../style/base.css';
import '../../overlay/index.css';
import '../../info/index.css';
import '../../icon/index.css';
import '../../image/index.css';
import '../../popup/index.css';
import '../../loading/index.css';
import '../../swipe/index.css';
import '../../swipe-item/index.css';
import '../../image-preview/index.css';
import '../index.css';

11
node_modules/vant/es/uploader/style/less.js generated vendored Normal file
View File

@ -0,0 +1,11 @@
import '../../style/base.less';
import '../../overlay/index.less';
import '../../info/index.less';
import '../../icon/index.less';
import '../../image/index.less';
import '../../popup/index.less';
import '../../loading/index.less';
import '../../swipe/index.less';
import '../../swipe-item/index.less';
import '../../image-preview/index.less';
import '../index.less';

66
node_modules/vant/es/uploader/utils.js generated vendored Normal file
View File

@ -0,0 +1,66 @@
import { isFunction } from '../utils';
export function toArray(item) {
if (Array.isArray(item)) {
return item;
}
return [item];
}
export function readFile(file, resultType) {
return new Promise(function (resolve) {
if (resultType === 'file') {
resolve(null);
return;
}
var reader = new FileReader();
reader.onload = function (event) {
resolve(event.target.result);
};
if (resultType === 'dataUrl') {
reader.readAsDataURL(file);
} else if (resultType === 'text') {
reader.readAsText(file);
}
});
}
export function isOversize(files, maxSize) {
return toArray(files).some(function (file) {
if (file) {
if (isFunction(maxSize)) {
return maxSize(file);
}
return file.size > maxSize;
}
return false;
});
}
var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
export function isImageUrl(url) {
return IMAGE_REGEXP.test(url);
}
export function isImageFile(item) {
// some special urls cannot be recognized
// user can add `isImage` flag to mark it as an image url
if (item.isImage) {
return true;
}
if (item.file && item.file.type) {
return item.file.type.indexOf('image') === 0;
}
if (item.url) {
return isImageUrl(item.url);
}
if (item.content) {
return item.content.indexOf('data:image') === 0;
}
return false;
}