diff --git a/.gitignore b/.gitignore index 57cd299..f0f94c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules src/images/.svn -miniprogram_npm .idea .DS_Store diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts b/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.js b/src/miniprogram_npm/@vant/weapp/action-sheet/index.js new file mode 100644 index 0000000..8403b68 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +(0, component_1.VantComponent)({ + classes: ['list-class'], + mixins: [button_1.button], + props: { + show: Boolean, + title: String, + cancelText: String, + description: String, + round: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 100, + }, + actions: { + type: Array, + value: [], + }, + overlay: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + closeOnClickAction: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + methods: { + onSelect: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile; + var item = actions[index]; + if (item) { + this.$emit('select', item); + if (closeOnClickAction) { + this.onClose(); + } + if (item.openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: item.getUserProfileDesc || ' ', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + } + }, + onCancel: function () { + this.$emit('cancel'); + }, + onClose: function () { + this.$emit('close'); + }, + onClickOverlay: function () { + this.$emit('click-overlay'); + this.onClose(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.json b/src/miniprogram_npm/@vant/weapp/action-sheet/index.json new file mode 100644 index 0000000..19bf989 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-popup": "../popup/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml new file mode 100644 index 0000000..6311e33 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml @@ -0,0 +1,70 @@ + + + + + {{ title }} + + + + {{ description }} + + + + + + {{ item.name }} + {{ item.subname }} + + + + + + + + + {{ cancelText }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss new file mode 100644 index 0000000..eedd361 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/area/index.d.ts b/src/miniprogram_npm/@vant/weapp/area/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/area/index.js b/src/miniprogram_npm/@vant/weapp/area/index.js new file mode 100644 index 0000000..73de66d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.js @@ -0,0 +1,235 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var shared_1 = require("../picker/shared"); +var utils_1 = require("../common/utils"); +var EMPTY_CODE = '000000'; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: { + type: Boolean, + value: true, + }, value: { + type: String, + observer: function (value) { + this.code = value; + this.setValues(); + }, + }, areaList: { + type: Object, + value: {}, + observer: 'setValues', + }, columnsNum: { + type: null, + value: 3, + }, columnsPlaceholder: { + type: Array, + observer: function (val) { + this.setData({ + typeToColumnsPlaceholder: { + province: val[0] || '', + city: val[1] || '', + county: val[2] || '', + }, + }); + }, + } }), + data: { + columns: [{ values: [] }, { values: [] }, { values: [] }], + typeToColumnsPlaceholder: {}, + }, + mounted: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + _this.setValues(); + }); + }, + methods: { + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-area__picker'); + } + return this.picker; + }, + onCancel: function (event) { + this.emit('cancel', event.detail); + }, + onConfirm: function (event) { + var index = event.detail.index; + var value = event.detail.value; + value = this.parseValues(value); + this.emit('confirm', { value: value, index: index }); + }, + emit: function (type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + parseValues: function (values) { + var columnsPlaceholder = this.data.columnsPlaceholder; + return values.map(function (value, index) { + if (value && + (!value.code || value.name === columnsPlaceholder[index])) { + return __assign(__assign({}, value), { code: '', name: '' }); + } + return value; + }); + }, + onChange: function (event) { + var _this = this; + var _a; + var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value; + this.code = value[index].code; + (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () { + _this.$emit('change', { + picker: picker, + values: _this.parseValues(picker.getValues()), + index: index, + }); + }); + }, + getConfig: function (type) { + var areaList = this.data.areaList; + return (areaList && areaList["".concat(type, "_list")]) || {}; + }, + getList: function (type, code) { + if (type !== 'province' && !code) { + return []; + } + var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; + var list = this.getConfig(type); + var result = Object.keys(list).map(function (code) { return ({ + code: code, + name: list[code], + }); }); + if (code != null) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + result = result.filter(function (item) { return item.code.indexOf(code) === 0; }); + } + if (typeToColumnsPlaceholder[type] && result.length) { + // set columns placeholder + var codeFill = type === 'province' + ? '' + : type === 'city' + ? EMPTY_CODE.slice(2, 4) + : EMPTY_CODE.slice(4, 6); + result.unshift({ + code: "".concat(code).concat(codeFill), + name: typeToColumnsPlaceholder[type], + }); + } + return result; + }, + getIndex: function (type, code) { + var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; + var list = this.getList(type, code.slice(0, compareNum - 2)); + // oversea code + if (code[0] === '9' && type === 'province') { + compareNum = 1; + } + code = code.slice(0, compareNum); + for (var i = 0; i < list.length; i++) { + if (list[i].code.slice(0, compareNum) === code) { + return i; + } + } + return 0; + }, + setValues: function () { + var picker = this.getPicker(); + if (!picker) { + return; + } + var code = this.code || this.getDefaultCode(); + var provinceList = this.getList('province'); + var cityList = this.getList('city', code.slice(0, 2)); + var stack = []; + var indexes = []; + var columnsNum = this.data.columnsNum; + if (columnsNum >= 1) { + stack.push(picker.setColumnValues(0, provinceList, false)); + indexes.push(this.getIndex('province', code)); + } + if (columnsNum >= 2) { + stack.push(picker.setColumnValues(1, cityList, false)); + indexes.push(this.getIndex('city', code)); + if (cityList.length && code.slice(2, 4) === '00') { + code = cityList[0].code; + } + } + if (columnsNum === 3) { + stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false)); + indexes.push(this.getIndex('county', code)); + } + return Promise.all(stack) + .catch(function () { }) + .then(function () { return picker.setIndexes(indexes); }) + .catch(function () { }); + }, + getDefaultCode: function () { + var columnsPlaceholder = this.data.columnsPlaceholder; + if (columnsPlaceholder.length) { + return EMPTY_CODE; + } + var countyCodes = Object.keys(this.getConfig('county')); + if (countyCodes[0]) { + return countyCodes[0]; + } + var cityCodes = Object.keys(this.getConfig('city')); + if (cityCodes[0]) { + return cityCodes[0]; + } + return ''; + }, + getValues: function () { + var picker = this.getPicker(); + if (!picker) { + return []; + } + return this.parseValues(picker.getValues().filter(function (value) { return !!value; })); + }, + getDetail: function () { + var values = this.getValues(); + var area = { + code: '', + country: '', + province: '', + city: '', + county: '', + }; + if (!values.length) { + return area; + } + var names = values.map(function (item) { return item.name; }); + area.code = values[values.length - 1].code; + if (area.code[0] === '9') { + area.country = names[1] || ''; + area.province = names[2] || ''; + } + else { + area.province = names[0] || ''; + area.city = names[1] || ''; + area.county = names[2] || ''; + } + return area; + }, + reset: function (code) { + this.code = code || ''; + return this.setValues(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/area/index.json b/src/miniprogram_npm/@vant/weapp/area/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxml b/src/miniprogram_npm/@vant/weapp/area/index.wxml new file mode 100644 index 0000000..3a437b7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxml @@ -0,0 +1,20 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxs b/src/miniprogram_npm/@vant/weapp/area/index.wxs new file mode 100644 index 0000000..07723c1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxs @@ -0,0 +1,8 @@ +/* eslint-disable */ +function displayColumns(columns, columnsNum) { + return columns.slice(0, +columnsNum); +} + +module.exports = { + displayColumns: displayColumns, +}; diff --git a/src/miniprogram_npm/@vant/weapp/area/index.wxss b/src/miniprogram_npm/@vant/weapp/area/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/area/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/button/index.d.ts b/src/miniprogram_npm/@vant/weapp/button/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/button/index.js b/src/miniprogram_npm/@vant/weapp/button/index.js new file mode 100644 index 0000000..984135c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var version_1 = require("../common/version"); +var mixins = [button_1.button]; +if ((0, version_1.canIUseFormFieldButton)()) { + mixins.push('wx://form-field-button'); +} +(0, component_1.VantComponent)({ + mixins: mixins, + classes: ['hover-class', 'loading-class'], + data: { + baseStyle: '', + }, + props: { + formType: String, + icon: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + plain: Boolean, + block: Boolean, + round: Boolean, + square: Boolean, + loading: Boolean, + hairline: Boolean, + disabled: Boolean, + loadingText: String, + customStyle: String, + loadingType: { + type: String, + value: 'circular', + }, + type: { + type: String, + value: 'default', + }, + dataset: null, + size: { + type: String, + value: 'normal', + }, + loadingSize: { + type: String, + value: '20px', + }, + color: String, + }, + methods: { + onClick: function (event) { + var _this = this; + this.$emit('click', event); + var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang; + if (openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: getUserProfileDesc || ' ', + lang: lang || 'en', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/button/index.json b/src/miniprogram_npm/@vant/weapp/button/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxml b/src/miniprogram_npm/@vant/weapp/button/index.wxml new file mode 100644 index 0000000..e7f60f1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + {{ loadingText }} + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxs b/src/miniprogram_npm/@vant/weapp/button/index.wxs new file mode 100644 index 0000000..8b649fe --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxs @@ -0,0 +1,39 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + if (!data.color) { + return data.customStyle; + } + + var properties = { + color: data.plain ? data.color : '#fff', + background: data.plain ? null : data.color, + }; + + // hide border when color is linear-gradient + if (data.color.indexOf('gradient') !== -1) { + properties.border = 0; + } else { + properties['border-color'] = data.color; + } + + return style([properties, data.customStyle]); +} + +function loadingColor(data) { + if (data.plain) { + return data.color ? data.color : '#c9c9c9'; + } + + if (data.type === 'default') { + return '#c9c9c9'; + } + + return '#fff'; +} + +module.exports = { + rootStyle: rootStyle, + loadingColor: loadingColor, +}; diff --git a/src/miniprogram_npm/@vant/weapp/button/index.wxss b/src/miniprogram_npm/@vant/weapp/button/index.wxss new file mode 100644 index 0000000..bd8bb5a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml new file mode 100644 index 0000000..2ddb048 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + {{ + computed.getButtonDisabled(type, currentDate, minRange) + ? confirmDisabledText + : confirmText + }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js new file mode 100644 index 0000000..544b3a4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + subtitle: String, + showTitle: Boolean, + showSubtitle: Boolean, + firstDayOfWeek: { + type: Number, + observer: 'initWeekDay', + }, + }, + data: { + weekdays: [], + }, + created: function () { + this.initWeekDay(); + }, + methods: { + initWeekDay: function () { + var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六']; + var firstDayOfWeek = this.data.firstDayOfWeek || 0; + this.setData({ + weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true), + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml new file mode 100644 index 0000000..7e56c83 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml @@ -0,0 +1,16 @@ + + + + {{ title }} + + + + {{ subtitle }} + + + + + {{ item }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss new file mode 100644 index 0000000..272537e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts new file mode 100644 index 0000000..3ccf85a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts @@ -0,0 +1,6 @@ +export interface Day { + date: Date; + type: string; + text: number; + bottomInfo?: string; +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js new file mode 100644 index 0000000..4d137f5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js @@ -0,0 +1,158 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +var utils_1 = require("../../utils"); +(0, component_1.VantComponent)({ + props: { + date: { + type: null, + observer: 'setDays', + }, + type: { + type: String, + observer: 'setDays', + }, + color: String, + minDate: { + type: null, + observer: 'setDays', + }, + maxDate: { + type: null, + observer: 'setDays', + }, + showMark: Boolean, + rowHeight: null, + formatter: { + type: null, + observer: 'setDays', + }, + currentDate: { + type: null, + observer: 'setDays', + }, + firstDayOfWeek: { + type: Number, + observer: 'setDays', + }, + allowSameDay: Boolean, + showSubtitle: Boolean, + showMonthTitle: Boolean, + }, + data: { + visible: true, + days: [], + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.days[index]; + if (item.type !== 'disabled') { + this.$emit('click', item); + } + }, + setDays: function () { + var days = []; + var startDate = new Date(this.data.date); + var year = startDate.getFullYear(); + var month = startDate.getMonth(); + var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1); + for (var day = 1; day <= totalDay; day++) { + var date = new Date(year, month, day); + var type = this.getDayType(date); + var config = { + date: date, + type: type, + text: day, + bottomInfo: this.getBottomInfo(type), + }; + if (this.data.formatter) { + config = this.data.formatter(config); + } + days.push(config); + } + this.setData({ days: days }); + }, + getMultipleDayType: function (day) { + var currentDate = this.data.currentDate; + if (!Array.isArray(currentDate)) { + return ''; + } + var isSelected = function (date) { + return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; }); + }; + if (isSelected(day)) { + var prevDay = (0, utils_1.getPrevDay)(day); + var nextDay = (0, utils_1.getNextDay)(day); + var prevSelected = isSelected(prevDay); + var nextSelected = isSelected(nextDay); + if (prevSelected && nextSelected) { + return 'multiple-middle'; + } + if (prevSelected) { + return 'end'; + } + return nextSelected ? 'start' : 'multiple-selected'; + } + return ''; + }, + getRangeDayType: function (day) { + var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (!Array.isArray(currentDate)) { + return ''; + } + var startDay = currentDate[0], endDay = currentDate[1]; + if (!startDay) { + return ''; + } + var compareToStart = (0, utils_1.compareDay)(day, startDay); + if (!endDay) { + return compareToStart === 0 ? 'start' : ''; + } + var compareToEnd = (0, utils_1.compareDay)(day, endDay); + if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { + return 'start-end'; + } + if (compareToStart === 0) { + return 'start'; + } + if (compareToEnd === 0) { + return 'end'; + } + if (compareToStart > 0 && compareToEnd < 0) { + return 'middle'; + } + return ''; + }, + getDayType: function (day) { + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate; + if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) { + return 'disabled'; + } + if (type === 'single') { + return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : ''; + } + if (type === 'multiple') { + return this.getMultipleDayType(day); + } + /* istanbul ignore else */ + if (type === 'range') { + return this.getRangeDayType(day); + } + return ''; + }, + getBottomInfo: function (type) { + if (this.data.type === 'range') { + if (type === 'start') { + return '开始'; + } + if (type === 'end') { + return '结束'; + } + if (type === 'start-end') { + return '开始/结束'; + } + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml new file mode 100644 index 0000000..0c73b2f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{ computed.formatMonthTitle(date) }} + + + + + {{ computed.getMark(date) }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs new file mode 100644 index 0000000..55e45a5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs @@ -0,0 +1,71 @@ +/* eslint-disable */ +var utils = require('../../utils.wxs'); + +function getMark(date) { + return getDate(date).getMonth() + 1; +} + +var ROW_HEIGHT = 64; + +function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) { + var style = []; + var current = getDate(date).getDay() || 7; + var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) : + current === 7 && firstDayOfWeek === 0 ? 0 : + (current - firstDayOfWeek); + + if (index === 0) { + style.push(['margin-left', (100 * offset) / 7 + '%']); + } + + if (rowHeight !== ROW_HEIGHT) { + style.push(['height', rowHeight + 'px']); + } + + if (color) { + if ( + type === 'start' || + type === 'end' || + type === 'start-end' || + type === 'multiple-selected' || + type === 'multiple-middle' + ) { + style.push(['background', color]); + } else if (type === 'middle') { + style.push(['color', color]); + } + } + + return style + .map(function(item) { + return item.join(':'); + }) + .join(';'); +} + +function formatMonthTitle(date) { + date = getDate(date); + return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; +} + +function getMonthStyle(visible, date, rowHeight) { + if (!visible) { + date = getDate(date); + + var totalDay = utils.getMonthEndDay( + date.getFullYear(), + date.getMonth() + 1 + ); + var offset = getDate(date).getDay(); + var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; + + return 'padding-bottom:' + padding + 'px'; + } +} + +module.exports = { + getMark: getMark, + getDayStyle: getDayStyle, + formatMonthTitle: formatMonthTitle, + getMonthStyle: getMonthStyle +}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss new file mode 100644 index 0000000..9aee73d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.js b/src/miniprogram_npm/@vant/weapp/calendar/index.js new file mode 100644 index 0000000..7a7324d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.js @@ -0,0 +1,383 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +var toast_1 = __importDefault(require("../toast/toast")); +var utils_2 = require("../common/utils"); +var initialMinDate = (0, utils_1.getToday)().getTime(); +var initialMaxDate = (function () { + var now = (0, utils_1.getToday)(); + return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime(); +})(); +var getTime = function (date) { + return date instanceof Date ? date.getTime() : date; +}; +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + color: String, + show: { + type: Boolean, + observer: function (val) { + if (val) { + this.initRect(); + this.scrollIntoView(); + } + }, + }, + formatter: null, + confirmText: { + type: String, + value: '确定', + }, + confirmDisabledText: { + type: String, + value: '确定', + }, + rangePrompt: String, + showRangePrompt: { + type: Boolean, + value: true, + }, + defaultDate: { + type: null, + value: (0, utils_1.getToday)().getTime(), + observer: function (val) { + this.setData({ currentDate: val }); + this.scrollIntoView(); + }, + }, + allowSameDay: Boolean, + type: { + type: String, + value: 'single', + observer: 'reset', + }, + minDate: { + type: Number, + value: initialMinDate, + }, + maxDate: { + type: Number, + value: initialMaxDate, + }, + position: { + type: String, + value: 'bottom', + }, + rowHeight: { + type: null, + value: utils_1.ROW_HEIGHT, + }, + round: { + type: Boolean, + value: true, + }, + poppable: { + type: Boolean, + value: true, + }, + showMark: { + type: Boolean, + value: true, + }, + showTitle: { + type: Boolean, + value: true, + }, + showConfirm: { + type: Boolean, + value: true, + }, + showSubtitle: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + maxRange: { + type: null, + value: null, + }, + minRange: { + type: Number, + value: 1, + }, + firstDayOfWeek: { + type: Number, + value: 0, + }, + readonly: Boolean, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + subtitle: '', + currentDate: null, + scrollIntoView: '', + }, + watch: { + minDate: function () { + this.initRect(); + }, + maxDate: function () { + this.initRect(); + }, + }, + created: function () { + this.setData({ + currentDate: this.getInitialDate(this.data.defaultDate), + }); + }, + mounted: function () { + if (this.data.show || !this.data.poppable) { + this.initRect(); + this.scrollIntoView(); + } + }, + methods: { + reset: function () { + this.setData({ currentDate: this.getInitialDate(this.data.defaultDate) }); + this.scrollIntoView(); + }, + initRect: function () { + var _this = this; + if (this.contentObserver != null) { + this.contentObserver.disconnect(); + } + var contentObserver = this.createIntersectionObserver({ + thresholds: [0, 0.1, 0.9, 1], + observeAll: true, + }); + this.contentObserver = contentObserver; + contentObserver.relativeTo('.van-calendar__body'); + contentObserver.observe('.month', function (res) { + if (res.boundingClientRect.top <= res.relativeRect.top) { + // @ts-ignore + _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) }); + } + }); + }, + limitDateRange: function (date, minDate, maxDate) { + if (minDate === void 0) { minDate = null; } + if (maxDate === void 0) { maxDate = null; } + minDate = minDate || this.data.minDate; + maxDate = maxDate || this.data.maxDate; + if ((0, utils_1.compareDay)(date, minDate) === -1) { + return minDate; + } + if ((0, utils_1.compareDay)(date, maxDate) === 1) { + return maxDate; + } + return date; + }, + getInitialDate: function (defaultDate) { + var _this = this; + if (defaultDate === void 0) { defaultDate = null; } + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay; + if (!defaultDate) + return []; + var now = (0, utils_1.getToday)().getTime(); + if (type === 'range') { + if (!Array.isArray(defaultDate)) { + defaultDate = []; + } + var _b = defaultDate || [], startDay = _b[0], endDay = _b[1]; + var startDate = getTime(startDay || now); + var start = this.limitDateRange(startDate, minDate, allowSameDay ? startDate : (0, utils_1.getPrevDay)(new Date(maxDate)).getTime()); + var date = getTime(endDay || now); + var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime()); + return [start, end]; + } + if (type === 'multiple') { + if (Array.isArray(defaultDate)) { + return defaultDate.map(function (date) { return _this.limitDateRange(date); }); + } + return [this.limitDateRange(now)]; + } + if (!defaultDate || Array.isArray(defaultDate)) { + defaultDate = now; + } + return this.limitDateRange(defaultDate); + }, + scrollIntoView: function () { + var _this = this; + (0, utils_2.requestAnimationFrame)(function () { + var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate; + if (!currentDate) + return; + // @ts-ignore + var targetDate = type === 'single' ? currentDate : currentDate[0]; + var displayed = show || !poppable; + if (!targetDate || !displayed) { + return; + } + var months = (0, utils_1.getMonths)(minDate, maxDate); + months.some(function (month, index) { + if ((0, utils_1.compareMonth)(month, targetDate) === 0) { + _this.setData({ scrollIntoView: "month".concat(index) }); + return true; + } + return false; + }); + }); + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + }, + onClickDay: function (event) { + if (this.data.readonly) { + return; + } + var date = event.detail.date; + var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (type === 'range') { + // @ts-ignore + var startDay_1 = currentDate[0], endDay = currentDate[1]; + if (startDay_1 && !endDay) { + var compareToStart = (0, utils_1.compareDay)(date, startDay_1); + if (compareToStart === 1) { + var days_1 = this.selectComponent('.month').data.days; + days_1.some(function (day, index) { + var isDisabled = day.type === 'disabled' && + getTime(startDay_1) < getTime(day.date) && + getTime(day.date) < getTime(date); + if (isDisabled) { + (date = days_1[index - 1].date); + } + return isDisabled; + }); + this.select([startDay_1, date], true); + } + else if (compareToStart === -1) { + this.select([date, null]); + } + else if (allowSameDay) { + this.select([date, date], true); + } + } + else { + this.select([date, null]); + } + } + else if (type === 'multiple') { + var selectedIndex_1; + // @ts-ignore + var selected = currentDate.some(function (dateItem, index) { + var equal = (0, utils_1.compareDay)(dateItem, date) === 0; + if (equal) { + selectedIndex_1 = index; + } + return equal; + }); + if (selected) { + // @ts-ignore + var cancelDate = currentDate.splice(selectedIndex_1, 1); + this.setData({ currentDate: currentDate }); + this.unselect(cancelDate); + } + else { + // @ts-ignore + this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false)); + } + } + else { + this.select(date, true); + } + }, + unselect: function (dateArray) { + var date = dateArray[0]; + if (date) { + this.$emit('unselect', (0, utils_1.copyDates)(date)); + } + }, + select: function (date, complete) { + if (complete && this.data.type === 'range') { + var valid = this.checkRange(date); + if (!valid) { + // auto selected to max range if showConfirm + if (this.data.showConfirm) { + this.emit([ + date[0], + (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1), + ]); + } + else { + this.emit(date); + } + return; + } + } + this.emit(date); + if (complete && !this.data.showConfirm) { + this.onConfirm(); + } + }, + emit: function (date) { + this.setData({ + currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), + }); + this.$emit('select', (0, utils_1.copyDates)(date)); + }, + checkRange: function (date) { + var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt; + if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) { + if (showRangePrompt) { + (0, toast_1.default)({ + context: this, + message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"), + }); + } + this.$emit('over-range'); + return false; + } + return true; + }, + onConfirm: function () { + var _this = this; + if (this.data.type === 'range' && + !this.checkRange(this.data.currentDate)) { + return; + } + wx.nextTick(function () { + // @ts-ignore + _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate)); + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.json b/src/miniprogram_npm/@vant/weapp/calendar/index.json new file mode 100644 index 0000000..397d5ae --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "header": "./components/header/index", + "month": "./components/month/index", + "van-button": "../button/index", + "van-popup": "../popup/index", + "van-toast": "../toast/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxml b/src/miniprogram_npm/@vant/weapp/calendar/index.wxml new file mode 100644 index 0000000..9d0fc6b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxs b/src/miniprogram_npm/@vant/weapp/calendar/index.wxs new file mode 100644 index 0000000..0a56646 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxs @@ -0,0 +1,37 @@ +/* eslint-disable */ +var utils = require('./utils.wxs'); + +function getMonths(minDate, maxDate) { + var months = []; + var cursor = getDate(minDate); + + cursor.setDate(1); + + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); + + return months; +} + +function getButtonDisabled(type, currentDate, minRange) { + if (currentDate == null) { + return true; + } + + if (type === 'range') { + return !currentDate[0] || !currentDate[1]; + } + + if (type === 'multiple') { + return currentDate.length < minRange; + } + + return !currentDate; +} + +module.exports = { + getMonths: getMonths, + getButtonDisabled: getButtonDisabled +}; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/index.wxss b/src/miniprogram_npm/@vant/weapp/calendar/index.wxss new file mode 100644 index 0000000..a1f1cf0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,90%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts b/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts new file mode 100644 index 0000000..889e6e7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts @@ -0,0 +1,12 @@ +export declare const ROW_HEIGHT = 64; +export declare function formatMonthTitle(date: Date): string; +export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1; +export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1; +export declare function getDayByOffset(date: Date, offset: number): Date; +export declare function getPrevDay(date: Date): Date; +export declare function getNextDay(date: Date): Date; +export declare function getToday(): Date; +export declare function calcDateNum(date: [Date, Date]): number; +export declare function copyDates(dates: Date | Date[]): Date | Date[]; +export declare function getMonthEndDay(year: number, month: number): number; +export declare function getMonths(minDate: number, maxDate: number): number[]; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.js b/src/miniprogram_npm/@vant/weapp/calendar/utils.js new file mode 100644 index 0000000..c9e5df7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0; +exports.ROW_HEIGHT = 64; +function formatMonthTitle(date) { + if (!(date instanceof Date)) { + date = new Date(date); + } + return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708"); +} +exports.formatMonthTitle = formatMonthTitle; +function compareMonth(date1, date2) { + if (!(date1 instanceof Date)) { + date1 = new Date(date1); + } + if (!(date2 instanceof Date)) { + date2 = new Date(date2); + } + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + return year1 > year2 ? 1 : -1; +} +exports.compareMonth = compareMonth; +function compareDay(day1, day2) { + if (!(day1 instanceof Date)) { + day1 = new Date(day1); + } + if (!(day2 instanceof Date)) { + day2 = new Date(day2); + } + var compareMonthResult = compareMonth(day1, day2); + if (compareMonthResult === 0) { + var date1 = day1.getDate(); + var date2 = day2.getDate(); + return date1 === date2 ? 0 : date1 > date2 ? 1 : -1; + } + return compareMonthResult; +} +exports.compareDay = compareDay; +function getDayByOffset(date, offset) { + date = new Date(date); + date.setDate(date.getDate() + offset); + return date; +} +exports.getDayByOffset = getDayByOffset; +function getPrevDay(date) { + return getDayByOffset(date, -1); +} +exports.getPrevDay = getPrevDay; +function getNextDay(date) { + return getDayByOffset(date, 1); +} +exports.getNextDay = getNextDay; +function getToday() { + var today = new Date(); + today.setHours(0, 0, 0, 0); + return today; +} +exports.getToday = getToday; +function calcDateNum(date) { + var day1 = new Date(date[0]).getTime(); + var day2 = new Date(date[1]).getTime(); + return (day2 - day1) / (1000 * 60 * 60 * 24) + 1; +} +exports.calcDateNum = calcDateNum; +function copyDates(dates) { + if (Array.isArray(dates)) { + return dates.map(function (date) { + if (date === null) { + return date; + } + return new Date(date); + }); + } + return new Date(dates); +} +exports.copyDates = copyDates; +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +exports.getMonthEndDay = getMonthEndDay; +function getMonths(minDate, maxDate) { + var months = []; + var cursor = new Date(minDate); + cursor.setDate(1); + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (compareMonth(cursor, maxDate) !== 1); + return months; +} +exports.getMonths = getMonths; diff --git a/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs b/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs new file mode 100644 index 0000000..e57f6b3 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/calendar/utils.wxs @@ -0,0 +1,25 @@ +/* eslint-disable */ +function getMonthEndDay(year, month) { + return 32 - getDate(year, month - 1, 32).getDate(); +} + +function compareMonth(date1, date2) { + date1 = getDate(date1); + date2 = getDate(date2); + + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + + return year1 > year2 ? 1 : -1; +} + +module.exports = { + getMonthEndDay: getMonthEndDay, + compareMonth: compareMonth +}; diff --git a/src/miniprogram_npm/@vant/weapp/card/index.d.ts b/src/miniprogram_npm/@vant/weapp/card/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/card/index.js b/src/miniprogram_npm/@vant/weapp/card/index.js new file mode 100644 index 0000000..2815655 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'num-class', + 'desc-class', + 'thumb-class', + 'title-class', + 'price-class', + 'origin-price-class', + ], + mixins: [link_1.link], + props: { + tag: String, + num: String, + desc: String, + thumb: String, + title: String, + price: { + type: String, + observer: 'updatePrice', + }, + centered: Boolean, + lazyLoad: Boolean, + thumbLink: String, + originPrice: String, + thumbMode: { + type: String, + value: 'aspectFit', + }, + currency: { + type: String, + value: '¥', + }, + }, + methods: { + updatePrice: function () { + var price = this.data.price; + var priceArr = price.toString().split('.'); + this.setData({ + integerStr: priceArr[0], + decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '', + }); + }, + onClickThumb: function () { + this.jumpLink('thumbLink'); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/card/index.json b/src/miniprogram_npm/@vant/weapp/card/index.json new file mode 100644 index 0000000..e917407 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-tag": "../tag/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/card/index.wxml b/src/miniprogram_npm/@vant/weapp/card/index.wxml new file mode 100644 index 0000000..62173e4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + {{ tag }} + + + + + + + {{ title }} + + + {{ desc }} + + + + + + + + + {{ currency }} + {{ integerStr }} + {{ decimalStr }} + + + {{ currency }} {{ originPrice }} + + x {{ num }} + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/card/index.wxss b/src/miniprogram_npm/@vant/weapp/card/index.wxss new file mode 100644 index 0000000..0f4d7c5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/card/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts b/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.js b/src/miniprogram_npm/@vant/weapp/cascader/index.js new file mode 100644 index 0000000..f7c239c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.js @@ -0,0 +1,224 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var FieldName; +(function (FieldName) { + FieldName["TEXT"] = "text"; + FieldName["VALUE"] = "value"; + FieldName["CHILDREN"] = "children"; +})(FieldName || (FieldName = {})); +var defaultFieldNames = { + text: FieldName.TEXT, + value: FieldName.VALUE, + children: FieldName.CHILDREN, +}; +(0, component_1.VantComponent)({ + props: { + title: String, + value: { + type: String, + }, + placeholder: { + type: String, + value: '请选择', + }, + activeColor: { + type: String, + value: '#1989fa', + }, + options: { + type: Array, + value: [], + }, + swipeable: { + type: Boolean, + value: false, + }, + closeable: { + type: Boolean, + value: true, + }, + showHeader: { + type: Boolean, + value: true, + }, + closeIcon: { + type: String, + value: 'cross', + }, + fieldNames: { + type: Object, + value: defaultFieldNames, + observer: 'updateFieldNames', + }, + useTitleSlot: Boolean, + }, + data: { + tabs: [], + activeTab: 0, + textKey: FieldName.TEXT, + valueKey: FieldName.VALUE, + childrenKey: FieldName.CHILDREN, + innerValue: '', + }, + watch: { + options: function () { + this.updateTabs(); + }, + value: function (newVal) { + this.updateValue(newVal); + }, + }, + created: function () { + this.updateTabs(); + }, + methods: { + updateValue: function (val) { + var _this = this; + if (val !== undefined) { + var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; }); + if (values.indexOf(val) > -1) { + return; + } + } + this.innerValue = val; + this.updateTabs(); + }, + updateFieldNames: function () { + var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d; + this.setData({ + textKey: text, + valueKey: value, + childrenKey: children, + }); + }, + getSelectedOptionsByValue: function (options, value) { + for (var i = 0; i < options.length; i++) { + var option = options[i]; + if (option[this.data.valueKey] === value) { + return [option]; + } + if (option[this.data.childrenKey]) { + var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value); + if (selectedOptions) { + return __spreadArray([option], selectedOptions, true); + } + } + } + }, + updateTabs: function () { + var _this = this; + var options = this.data.options; + var innerValue = this.innerValue; + if (!options.length) { + return; + } + if (innerValue !== undefined) { + var selectedOptions = this.getSelectedOptionsByValue(options, innerValue); + if (selectedOptions) { + var optionsCursor_1 = options; + var tabs_1 = selectedOptions.map(function (option) { + var tab = { + options: optionsCursor_1, + selected: option, + }; + var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; }); + if (next) { + optionsCursor_1 = next[_this.data.childrenKey]; + } + return tab; + }); + if (optionsCursor_1) { + tabs_1.push({ + options: optionsCursor_1, + selected: null, + }); + } + this.setData({ + tabs: tabs_1, + }); + wx.nextTick(function () { + _this.setData({ + activeTab: tabs_1.length - 1, + }); + }); + return; + } + } + this.setData({ + tabs: [ + { + options: options, + selected: null, + }, + ], + activeTab: 0, + }); + }, + onClose: function () { + this.$emit('close'); + }, + onClickTab: function (e) { + var _a = e.detail, tabIndex = _a.index, title = _a.title; + this.$emit('click-tab', { title: title, tabIndex: tabIndex }); + this.setData({ + activeTab: tabIndex, + }); + }, + // 选中 + onSelect: function (e) { + var _this = this; + var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex; + if (option && option.disabled) { + return; + } + var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey; + var tabs = this.data.tabs; + tabs[tabIndex].selected = option; + if (tabs.length > tabIndex + 1) { + tabs = tabs.slice(0, tabIndex + 1); + } + if (option[childrenKey]) { + var nextTab = { + options: option[childrenKey], + selected: null, + }; + if (tabs[tabIndex + 1]) { + tabs[tabIndex + 1] = nextTab; + } + else { + tabs.push(nextTab); + } + wx.nextTick(function () { + _this.setData({ + activeTab: tabIndex + 1, + }); + }); + } + this.setData({ + tabs: tabs, + }); + var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean); + var value = option[valueKey]; + var params = { + value: value, + tabIndex: tabIndex, + selectedOptions: selectedOptions, + }; + this.innerValue = value; + this.$emit('change', params); + if (!option[childrenKey]) { + this.$emit('finish', params); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.json b/src/miniprogram_npm/@vant/weapp/cascader/index.json new file mode 100644 index 0000000..d0f75eb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-tab": "../tab/index", + "van-tabs": "../tabs/index" + } +} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxml b/src/miniprogram_npm/@vant/weapp/cascader/index.wxml new file mode 100644 index 0000000..9417234 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxml @@ -0,0 +1,54 @@ + + + + + {{ title }} + + + + + + + + + + + {{ option[textKey] }} + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxs b/src/miniprogram_npm/@vant/weapp/cascader/index.wxs new file mode 100644 index 0000000..b1aab58 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxs @@ -0,0 +1,24 @@ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function isSelected(tab, valueKey, option) { + return tab.selected && tab.selected[valueKey] === option[valueKey] +} + +function optionClass(tab, valueKey, option) { + return utils.bem('cascader__option', { selected: isSelected(tab, valueKey, option), disabled: option.disabled }) +} + +function optionStyle(data) { + var color = data.option.color || (isSelected(data.tab, data.valueKey, data.option) ? data.activeColor : undefined); + return style({ + color + }); +} + + +module.exports = { + isSelected: isSelected, + optionClass: optionClass, + optionStyle: optionStyle, +}; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cascader/index.wxss b/src/miniprogram_npm/@vant/weapp/cascader/index.wxss new file mode 100644 index 0000000..7062486 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cascader/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts b/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.js b/src/miniprogram_npm/@vant/weapp/cell-group/index.js new file mode 100644 index 0000000..34a93a6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + title: String, + border: { + type: Boolean, + value: true, + }, + inset: Boolean, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.json b/src/miniprogram_npm/@vant/weapp/cell-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml new file mode 100644 index 0000000..311e064 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxml @@ -0,0 +1,11 @@ + + + + {{ title }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss new file mode 100644 index 0000000..08b252f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.d.ts b/src/miniprogram_npm/@vant/weapp/cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.js b/src/miniprogram_npm/@vant/weapp/cell/index.js new file mode 100644 index 0000000..80f3039 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'title-class', + 'label-class', + 'value-class', + 'right-icon-class', + 'hover-class', + ], + mixins: [link_1.link], + props: { + title: null, + value: null, + icon: String, + size: String, + label: String, + center: Boolean, + isLink: Boolean, + required: Boolean, + clickable: Boolean, + titleWidth: String, + customStyle: String, + arrowDirection: String, + useLabelSlot: Boolean, + border: { + type: Boolean, + value: true, + }, + titleStyle: String, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.json b/src/miniprogram_npm/@vant/weapp/cell/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxml b/src/miniprogram_npm/@vant/weapp/cell/index.wxml new file mode 100644 index 0000000..8387c3c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxml @@ -0,0 +1,47 @@ + + + + + + + + + + {{ title }} + + + + + {{ label }} + + + + + {{ value }} + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxs b/src/miniprogram_npm/@vant/weapp/cell/index.wxs new file mode 100644 index 0000000..e3500c4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function titleStyle(data) { + return style([ + { + 'max-width': addUnit(data.titleWidth), + 'min-width': addUnit(data.titleWidth), + }, + data.titleStyle, + ]); +} + +module.exports = { + titleStyle: titleStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/cell/index.wxss b/src/miniprogram_npm/@vant/weapp/cell/index.wxss new file mode 100644 index 0000000..1802f8e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js new file mode 100644 index 0000000..80c93a1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useChildren)('checkbox', function (target) { + this.updateChild(target); + }), + props: { + max: Number, + value: { + type: Array, + observer: 'updateChildren', + }, + disabled: { + type: Boolean, + observer: 'updateChildren', + }, + direction: { + type: String, + value: 'vertical', + }, + }, + methods: { + updateChildren: function () { + var _this = this; + this.children.forEach(function (child) { return _this.updateChild(child); }); + }, + updateChild: function (child) { + var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction; + child.setData({ + value: value.indexOf(child.data.name) !== -1, + parentDisabled: disabled, + direction: direction, + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml new file mode 100644 index 0000000..638bf9d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss new file mode 100644 index 0000000..c5666d7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts b/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.js b/src/miniprogram_npm/@vant/weapp/checkbox/index.js new file mode 100644 index 0000000..6247365 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +function emit(target, value) { + target.$emit('input', value); + target.$emit('change', value); +} +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useParent)('checkbox-group'), + classes: ['icon-class', 'label-class'], + props: { + value: Boolean, + disabled: Boolean, + useIconSlot: Boolean, + checkedColor: String, + labelPosition: { + type: String, + value: 'right', + }, + labelDisabled: Boolean, + shape: { + type: String, + value: 'round', + }, + iconSize: { + type: null, + value: 20, + }, + }, + data: { + parentDisabled: false, + direction: 'vertical', + }, + methods: { + emitChange: function (value) { + if (this.parent) { + this.setParentValue(this.parent, value); + } + else { + emit(this, value); + } + }, + toggle: function () { + var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !parentDisabled) { + this.emitChange(!value); + } + }, + onClickLabel: function () { + var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !labelDisabled && !parentDisabled) { + this.emitChange(!value); + } + }, + setParentValue: function (parent, value) { + var parentValue = parent.data.value.slice(); + var name = this.data.name; + var max = parent.data.max; + if (value) { + if (max && parentValue.length >= max) { + return; + } + if (parentValue.indexOf(name) === -1) { + parentValue.push(name); + emit(parent, parentValue); + } + } + else { + var index = parentValue.indexOf(name); + if (index !== -1) { + parentValue.splice(index, 1); + emit(parent, parentValue); + } + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.json b/src/miniprogram_npm/@vant/weapp/checkbox/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml new file mode 100644 index 0000000..39a7bb0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs new file mode 100644 index 0000000..eb9c772 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxs @@ -0,0 +1,20 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { + var styles = { + 'font-size': addUnit(iconSize), + }; + + if (checkedColor && value && !disabled && !parentDisabled) { + styles['border-color'] = checkedColor; + styles['background-color'] = checkedColor; + } + + return style(styles); +} + +module.exports = { + iconStyle: iconStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss new file mode 100644 index 0000000..da2272a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/checkbox/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts b/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts new file mode 100644 index 0000000..8a0b71e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts @@ -0,0 +1,4 @@ +/// +type CanvasContext = WechatMiniprogram.CanvasContext; +export declare function adaptor(ctx: CanvasContext & Record): CanvasContext; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/circle/canvas.js b/src/miniprogram_npm/@vant/weapp/circle/canvas.js new file mode 100644 index 0000000..d81df74 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/canvas.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.adaptor = void 0; +function adaptor(ctx) { + // @ts-ignore + return Object.assign(ctx, { + setStrokeStyle: function (val) { + ctx.strokeStyle = val; + }, + setLineWidth: function (val) { + ctx.lineWidth = val; + }, + setLineCap: function (val) { + ctx.lineCap = val; + }, + setFillStyle: function (val) { + ctx.fillStyle = val; + }, + setFontSize: function (val) { + ctx.font = String(val); + }, + setGlobalAlpha: function (val) { + ctx.globalAlpha = val; + }, + setLineJoin: function (val) { + ctx.lineJoin = val; + }, + setTextAlign: function (val) { + ctx.textAlign = val; + }, + setMiterLimit: function (val) { + ctx.miterLimit = val; + }, + setShadow: function (offsetX, offsetY, blur, color) { + ctx.shadowOffsetX = offsetX; + ctx.shadowOffsetY = offsetY; + ctx.shadowBlur = blur; + ctx.shadowColor = color; + }, + setTextBaseline: function (val) { + ctx.textBaseline = val; + }, + createCircularGradient: function () { }, + draw: function () { }, + }); +} +exports.adaptor = adaptor; diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.d.ts b/src/miniprogram_npm/@vant/weapp/circle/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.js b/src/miniprogram_npm/@vant/weapp/circle/index.js new file mode 100644 index 0000000..e131e4b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.js @@ -0,0 +1,207 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var version_1 = require("../common/version"); +var canvas_1 = require("./canvas"); +function format(rate) { + return Math.min(Math.max(rate, 0), 100); +} +var PERIMETER = 2 * Math.PI; +var BEGIN_ANGLE = -Math.PI / 2; +var STEP = 1; +(0, component_1.VantComponent)({ + props: { + text: String, + lineCap: { + type: String, + value: 'round', + }, + value: { + type: Number, + value: 0, + observer: 'reRender', + }, + speed: { + type: Number, + value: 50, + }, + size: { + type: Number, + value: 100, + observer: function () { + this.drawCircle(this.currentValue); + }, + }, + fill: String, + layerColor: { + type: String, + value: color_1.WHITE, + }, + color: { + type: null, + value: color_1.BLUE, + observer: function () { + var _this = this; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + }, + type: { + type: String, + value: '', + }, + strokeWidth: { + type: Number, + value: 4, + }, + clockwise: { + type: Boolean, + value: true, + }, + }, + data: { + hoverColor: color_1.BLUE, + }, + methods: { + getContext: function () { + var _this = this; + var _a = this.data, type = _a.type, size = _a.size; + if (type === '' || !(0, version_1.canIUseCanvas2d)()) { + var ctx = wx.createCanvasContext('van-circle', this); + return Promise.resolve(ctx); + } + var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio; + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(_this) + .select('#van-circle') + .node() + .exec(function (res) { + var canvas = res[0].node; + var ctx = canvas.getContext(type); + if (!_this.inited) { + _this.inited = true; + canvas.width = size * dpr; + canvas.height = size * dpr; + ctx.scale(dpr, dpr); + } + resolve((0, canvas_1.adaptor)(ctx)); + }); + }); + }, + setHoverColor: function () { + var _this = this; + var _a = this.data, color = _a.color, size = _a.size; + if ((0, validator_1.isObj)(color)) { + return this.getContext().then(function (context) { + if (!context) + return; + var LinearColor = context.createLinearGradient(size, 0, 0, 0); + Object.keys(color) + .sort(function (a, b) { return parseFloat(a) - parseFloat(b); }) + .map(function (key) { + return LinearColor.addColorStop(parseFloat(key) / 100, color[key]); + }); + _this.hoverColor = LinearColor; + }); + } + this.hoverColor = color; + return Promise.resolve(); + }, + presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) { + var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size; + var position = size / 2; + var radius = position - strokeWidth / 2; + context.setStrokeStyle(strokeStyle); + context.setLineWidth(strokeWidth); + context.setLineCap(lineCap); + context.beginPath(); + context.arc(position, position, radius, beginAngle, endAngle, !clockwise); + context.stroke(); + if (fill) { + context.setFillStyle(fill); + context.fill(); + } + }, + renderLayerCircle: function (context) { + var _a = this.data, layerColor = _a.layerColor, fill = _a.fill; + this.presetCanvas(context, layerColor, 0, PERIMETER, fill); + }, + renderHoverCircle: function (context, formatValue) { + var clockwise = this.data.clockwise; + // 结束角度 + var progress = PERIMETER * (formatValue / 100); + var endAngle = clockwise + ? BEGIN_ANGLE + progress + : 3 * Math.PI - (BEGIN_ANGLE + progress); + this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle); + }, + drawCircle: function (currentValue) { + var _this = this; + var size = this.data.size; + this.getContext().then(function (context) { + if (!context) + return; + context.clearRect(0, 0, size, size); + _this.renderLayerCircle(context); + var formatValue = format(currentValue); + if (formatValue !== 0) { + _this.renderHoverCircle(context, formatValue); + } + context.draw(); + }); + }, + reRender: function () { + var _this = this; + // tofector 动画暂时没有想到好的解决方案 + var _a = this.data, value = _a.value, speed = _a.speed; + if (speed <= 0 || speed > 1000) { + this.drawCircle(value); + return; + } + this.clearMockInterval(); + this.currentValue = this.currentValue || 0; + var run = function () { + _this.interval = setTimeout(function () { + if (_this.currentValue !== value) { + if (Math.abs(_this.currentValue - value) < STEP) { + _this.currentValue = value; + } + else if (_this.currentValue < value) { + _this.currentValue += STEP; + } + else { + _this.currentValue -= STEP; + } + _this.drawCircle(_this.currentValue); + run(); + } + else { + _this.clearMockInterval(); + } + }, 1000 / speed); + }; + run(); + }, + clearMockInterval: function () { + if (this.interval) { + clearTimeout(this.interval); + this.interval = null; + } + }, + }, + mounted: function () { + var _this = this; + this.currentValue = this.data.value; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + destroyed: function () { + this.clearMockInterval(); + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.json b/src/miniprogram_npm/@vant/weapp/circle/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.wxml b/src/miniprogram_npm/@vant/weapp/circle/index.wxml new file mode 100644 index 0000000..52bc59f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + {{ text }} + diff --git a/src/miniprogram_npm/@vant/weapp/circle/index.wxss b/src/miniprogram_npm/@vant/weapp/circle/index.wxss new file mode 100644 index 0000000..2200751 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/circle/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/col/index.d.ts b/src/miniprogram_npm/@vant/weapp/col/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/col/index.js b/src/miniprogram_npm/@vant/weapp/col/index.js new file mode 100644 index 0000000..63c56eb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('row'), + props: { + span: Number, + offset: Number, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/col/index.json b/src/miniprogram_npm/@vant/weapp/col/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxml b/src/miniprogram_npm/@vant/weapp/col/index.wxml new file mode 100644 index 0000000..975348b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxs b/src/miniprogram_npm/@vant/weapp/col/index.wxs new file mode 100644 index 0000000..507c1cb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'padding-right': addUnit(data.gutter / 2), + 'padding-left': addUnit(data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/col/index.wxss b/src/miniprogram_npm/@vant/weapp/col/index.wxss new file mode 100644 index 0000000..2fa265e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/col/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts new file mode 100644 index 0000000..32157b6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts @@ -0,0 +1,2 @@ +/// +export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js new file mode 100644 index 0000000..5734087 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/animate.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setContentAnimate = void 0; +var utils_1 = require("../common/utils"); +function useAnimation(context, expanded, mounted, height) { + var animation = wx.createAnimation({ + duration: 0, + timingFunction: 'ease-in-out', + }); + if (expanded) { + if (height === 0) { + animation.height('auto').top(1).step(); + } + else { + animation + .height(height) + .top(1) + .step({ + duration: mounted ? 300 : 1, + }) + .height('auto') + .step(); + } + context.setData({ + animation: animation.export(), + }); + return; + } + animation.height(height).top(0).step({ duration: 1 }).height(0).step({ + duration: 300, + }); + context.setData({ + animation: animation.export(), + }); +} +function setContentAnimate(context, expanded, mounted) { + (0, utils_1.getRect)(context, '.van-collapse-item__content') + .then(function (rect) { return rect.height; }) + .then(function (height) { + useAnimation(context, expanded, mounted, height); + }); +} +exports.setContentAnimate = setContentAnimate; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.js b/src/miniprogram_npm/@vant/weapp/collapse-item/index.js new file mode 100644 index 0000000..982490e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var animate_1 = require("./animate"); +(0, component_1.VantComponent)({ + classes: ['title-class', 'content-class'], + relation: (0, relation_1.useParent)('collapse'), + props: { + size: String, + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: true, + }, + isLink: { + type: Boolean, + value: true, + }, + }, + data: { + expanded: false, + }, + mounted: function () { + this.updateExpanded(); + this.mounted = true; + }, + methods: { + updateExpanded: function () { + if (!this.parent) { + return; + } + var _a = this.parent.data, value = _a.value, accordion = _a.accordion; + var _b = this.parent.children, children = _b === void 0 ? [] : _b; + var name = this.data.name; + var index = children.indexOf(this); + var currentName = name == null ? index : name; + var expanded = accordion + ? value === currentName + : (value || []).some(function (name) { return name === currentName; }); + if (expanded !== this.data.expanded) { + (0, animate_1.setContentAnimate)(this, expanded, this.mounted); + } + this.setData({ index: index, expanded: expanded }); + }, + onClick: function () { + if (this.data.disabled) { + return; + } + var _a = this.data, name = _a.name, expanded = _a.expanded; + var index = this.parent.children.indexOf(this); + var currentName = name == null ? index : name; + this.parent.switch(currentName, !expanded); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.json b/src/miniprogram_npm/@vant/weapp/collapse-item/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml new file mode 100644 index 0000000..f11d0d4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss new file mode 100644 index 0000000..4a65b5a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts b/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.js b/src/miniprogram_npm/@vant/weapp/collapse/index.js new file mode 100644 index 0000000..943d542 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('collapse-item'), + props: { + value: { + type: null, + observer: 'updateExpanded', + }, + accordion: { + type: Boolean, + observer: 'updateExpanded', + }, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + updateExpanded: function () { + this.children.forEach(function (child) { + child.updateExpanded(); + }); + }, + switch: function (name, expanded) { + var _a = this.data, accordion = _a.accordion, value = _a.value; + var changeItem = name; + if (!accordion) { + name = expanded + ? (value || []).concat(name) + : (value || []).filter(function (activeName) { return activeName !== name; }); + } + else { + name = expanded ? name : ''; + } + if (expanded) { + this.$emit('open', changeItem); + } + else { + this.$emit('close', changeItem); + } + this.$emit('change', name); + this.$emit('input', name); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.json b/src/miniprogram_npm/@vant/weapp/collapse/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.wxml b/src/miniprogram_npm/@vant/weapp/collapse/index.wxml new file mode 100644 index 0000000..fd4e171 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/collapse/index.wxss b/src/miniprogram_npm/@vant/weapp/collapse/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/collapse/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/color.d.ts b/src/miniprogram_npm/@vant/weapp/common/color.d.ts new file mode 100644 index 0000000..386f307 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/color.d.ts @@ -0,0 +1,7 @@ +export declare const RED = "#ee0a24"; +export declare const BLUE = "#1989fa"; +export declare const WHITE = "#fff"; +export declare const GREEN = "#07c160"; +export declare const ORANGE = "#ff976a"; +export declare const GRAY = "#323233"; +export declare const GRAY_DARK = "#969799"; diff --git a/src/miniprogram_npm/@vant/weapp/common/color.js b/src/miniprogram_npm/@vant/weapp/common/color.js new file mode 100644 index 0000000..008a45a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/color.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0; +exports.RED = '#ee0a24'; +exports.BLUE = '#1989fa'; +exports.WHITE = '#fff'; +exports.GREEN = '#07c160'; +exports.ORANGE = '#ff976a'; +exports.GRAY = '#323233'; +exports.GRAY_DARK = '#969799'; diff --git a/src/miniprogram_npm/@vant/weapp/common/component.d.ts b/src/miniprogram_npm/@vant/weapp/common/component.d.ts new file mode 100644 index 0000000..1d0fd27 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/component.d.ts @@ -0,0 +1,4 @@ +/// +import { VantComponentOptions } from 'definitions/index'; +declare function VantComponent(vantOptions: VantComponentOptions): void; +export { VantComponent }; diff --git a/src/miniprogram_npm/@vant/weapp/common/component.js b/src/miniprogram_npm/@vant/weapp/common/component.js new file mode 100644 index 0000000..66da00e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/component.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VantComponent = void 0; +var basic_1 = require("../mixins/basic"); +function mapKeys(source, target, map) { + Object.keys(map).forEach(function (key) { + if (source[key]) { + target[map[key]] = source[key]; + } + }); +} +function VantComponent(vantOptions) { + var options = {}; + mapKeys(vantOptions, options, { + data: 'data', + props: 'properties', + watch: 'observers', + mixins: 'behaviors', + methods: 'methods', + beforeCreate: 'created', + created: 'attached', + mounted: 'ready', + destroyed: 'detached', + classes: 'externalClasses', + }); + // add default externalClasses + options.externalClasses = options.externalClasses || []; + options.externalClasses.push('custom-class'); + // add default behaviors + options.behaviors = options.behaviors || []; + options.behaviors.push(basic_1.basic); + // add relations + var relation = vantOptions.relation; + if (relation) { + options.relations = relation.relations; + options.behaviors.push(relation.mixin); + } + // map field to form-field behavior + if (vantOptions.field) { + options.behaviors.push('wx://form-field'); + } + // add default options + options.options = { + multipleSlots: true, + addGlobalClass: true, + }; + Component(options); +} +exports.VantComponent = VantComponent; diff --git a/src/miniprogram_npm/@vant/weapp/common/index.wxss b/src/miniprogram_npm/@vant/weapp/common/index.wxss new file mode 100644 index 0000000..a73bb7a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/index.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{clear:both;content:"";display:table}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/relation.d.ts b/src/miniprogram_npm/@vant/weapp/common/relation.d.ts new file mode 100644 index 0000000..10193fa --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/relation.d.ts @@ -0,0 +1,15 @@ +/// +type TrivialInstance = WechatMiniprogram.Component.TrivialInstance; +export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/common/relation.js b/src/miniprogram_npm/@vant/weapp/common/relation.js new file mode 100644 index 0000000..008256c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/relation.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useChildren = exports.useParent = void 0; +function useParent(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'ancestor', + linked: function () { + onEffect && onEffect.call(this); + }, + linkChanged: function () { + onEffect && onEffect.call(this); + }, + unlinked: function () { + onEffect && onEffect.call(this); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'parent', { + get: function () { return _this.getRelationNodes(path)[0]; }, + }); + Object.defineProperty(this, 'index', { + // @ts-ignore + get: function () { var _a, _b; return (_b = (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(_this); }, + }); + }, + }), + }; +} +exports.useParent = useParent; +function useChildren(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'descendant', + linked: function (target) { + onEffect && onEffect.call(this, target); + }, + linkChanged: function (target) { + onEffect && onEffect.call(this, target); + }, + unlinked: function (target) { + onEffect && onEffect.call(this, target); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'children', { + get: function () { return _this.getRelationNodes(path) || []; }, + }); + }, + }), + }; +} +exports.useChildren = useChildren; diff --git a/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss b/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss new file mode 100644 index 0000000..442246f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss @@ -0,0 +1 @@ +.van-clearfix:after{clear:both;content:"";display:table} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss b/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss new file mode 100644 index 0000000..ee701df --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss b/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss new file mode 100644 index 0000000..f7c6260 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss @@ -0,0 +1 @@ +.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss b/src/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/style/var.wxss b/src/miniprogram_npm/@vant/weapp/common/style/var.wxss new file mode 100644 index 0000000..e69de29 diff --git a/src/miniprogram_npm/@vant/weapp/common/utils.d.ts b/src/miniprogram_npm/@vant/weapp/common/utils.d.ts new file mode 100644 index 0000000..a77d8c6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/utils.d.ts @@ -0,0 +1,21 @@ +/// +/// +/// +/// +/// +export { isDef } from './validator'; +export { getSystemInfoSync } from './version'; +export declare function range(num: number, min: number, max: number): number; +export declare function nextTick(cb: (...args: any[]) => void): void; +export declare function addUnit(value?: string | number): string | undefined; +export declare function requestAnimationFrame(cb: () => void): NodeJS.Timeout; +export declare function pickExclude(obj: unknown, keys: string[]): {}; +export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void; +export declare function toPromise(promiseLike: Promise | unknown): Promise; +export declare function addNumber(num1: any, num2: any): number; +export declare const clamp: (num: any, min: any, max: any) => number; +export declare function getCurrentPage(): T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject; +export declare const isPC: boolean; +export declare const isWxWork: boolean; diff --git a/src/miniprogram_npm/@vant/weapp/common/utils.js b/src/miniprogram_npm/@vant/weapp/common/utils.js new file mode 100644 index 0000000..1727628 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/utils.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isWxWork = exports.isPC = exports.getCurrentPage = exports.clamp = exports.addNumber = exports.toPromise = exports.groupSetData = exports.getAllRect = exports.getRect = exports.pickExclude = exports.requestAnimationFrame = exports.addUnit = exports.nextTick = exports.range = exports.getSystemInfoSync = exports.isDef = void 0; +var validator_1 = require("./validator"); +var version_1 = require("./version"); +var validator_2 = require("./validator"); +Object.defineProperty(exports, "isDef", { enumerable: true, get: function () { return validator_2.isDef; } }); +var version_2 = require("./version"); +Object.defineProperty(exports, "getSystemInfoSync", { enumerable: true, get: function () { return version_2.getSystemInfoSync; } }); +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +exports.range = range; +function nextTick(cb) { + if ((0, version_1.canIUseNextTick)()) { + wx.nextTick(cb); + } + else { + setTimeout(function () { + cb(); + }, 1000 / 30); + } +} +exports.nextTick = nextTick; +function addUnit(value) { + if (!(0, validator_1.isDef)(value)) { + return undefined; + } + value = String(value); + return (0, validator_1.isNumber)(value) ? "".concat(value, "px") : value; +} +exports.addUnit = addUnit; +function requestAnimationFrame(cb) { + return setTimeout(function () { + cb(); + }, 1000 / 30); +} +exports.requestAnimationFrame = requestAnimationFrame; +function pickExclude(obj, keys) { + if (!(0, validator_1.isPlainObject)(obj)) { + return {}; + } + return Object.keys(obj).reduce(function (prev, key) { + if (!keys.includes(key)) { + prev[key] = obj[key]; + } + return prev; + }, {}); +} +exports.pickExclude = pickExclude; +function getRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .select(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getRect = getRect; +function getAllRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .selectAll(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getAllRect = getAllRect; +function groupSetData(context, cb) { + if ((0, version_1.canIUseGroupSetData)()) { + context.groupSetData(cb); + } + else { + cb(); + } +} +exports.groupSetData = groupSetData; +function toPromise(promiseLike) { + if ((0, validator_1.isPromise)(promiseLike)) { + return promiseLike; + } + return Promise.resolve(promiseLike); +} +exports.toPromise = toPromise; +// 浮点数精度处理 +function addNumber(num1, num2) { + var cardinal = Math.pow(10, 10); + return Math.round((num1 + num2) * cardinal) / cardinal; +} +exports.addNumber = addNumber; +// 限制value在[min, max]之间 +var clamp = function (num, min, max) { return Math.min(Math.max(num, min), max); }; +exports.clamp = clamp; +function getCurrentPage() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +exports.getCurrentPage = getCurrentPage; +exports.isPC = ['mac', 'windows'].includes((0, version_1.getSystemInfoSync)().platform); +// 是否企业微信 +exports.isWxWork = (0, version_1.getSystemInfoSync)().environment === 'wxwork'; diff --git a/src/miniprogram_npm/@vant/weapp/common/validator.d.ts b/src/miniprogram_npm/@vant/weapp/common/validator.d.ts new file mode 100644 index 0000000..152894a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/validator.d.ts @@ -0,0 +1,9 @@ +export declare function isFunction(val: unknown): val is Function; +export declare function isPlainObject(val: unknown): val is Record; +export declare function isPromise(val: unknown): val is Promise; +export declare function isDef(value: unknown): boolean; +export declare function isObj(x: unknown): x is Record; +export declare function isNumber(value: string): boolean; +export declare function isBoolean(value: unknown): value is boolean; +export declare function isImageUrl(url: string): boolean; +export declare function isVideoUrl(url: string): boolean; diff --git a/src/miniprogram_npm/@vant/weapp/common/validator.js b/src/miniprogram_npm/@vant/weapp/common/validator.js new file mode 100644 index 0000000..169e796 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/validator.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isVideoUrl = exports.isImageUrl = exports.isBoolean = exports.isNumber = exports.isObj = exports.isDef = exports.isPromise = exports.isPlainObject = exports.isFunction = void 0; +// eslint-disable-next-line @typescript-eslint/ban-types +function isFunction(val) { + return typeof val === 'function'; +} +exports.isFunction = isFunction; +function isPlainObject(val) { + return val !== null && typeof val === 'object' && !Array.isArray(val); +} +exports.isPlainObject = isPlainObject; +function isPromise(val) { + return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch); +} +exports.isPromise = isPromise; +function isDef(value) { + return value !== undefined && value !== null; +} +exports.isDef = isDef; +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} +exports.isObj = isObj; +function isNumber(value) { + return /^\d+(\.\d+)?$/.test(value); +} +exports.isNumber = isNumber; +function isBoolean(value) { + return typeof value === 'boolean'; +} +exports.isBoolean = isBoolean; +var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; +var VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i; +function isImageUrl(url) { + return IMAGE_REGEXP.test(url); +} +exports.isImageUrl = isImageUrl; +function isVideoUrl(url) { + return VIDEO_REGEXP.test(url); +} +exports.isVideoUrl = isVideoUrl; diff --git a/src/miniprogram_npm/@vant/weapp/common/version.d.ts b/src/miniprogram_npm/@vant/weapp/common/version.d.ts new file mode 100644 index 0000000..3393221 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/version.d.ts @@ -0,0 +1,15 @@ +/// +interface WxWorkSystemInfo extends WechatMiniprogram.SystemInfo { + environment?: 'wxwork'; +} +interface SystemInfo extends WxWorkSystemInfo, WechatMiniprogram.SystemInfo { +} +export declare function getSystemInfoSync(): SystemInfo; +export declare function canIUseModel(): boolean; +export declare function canIUseFormFieldButton(): boolean; +export declare function canIUseAnimate(): boolean; +export declare function canIUseGroupSetData(): boolean; +export declare function canIUseNextTick(): boolean; +export declare function canIUseCanvas2d(): boolean; +export declare function canIUseGetUserProfile(): boolean; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/common/version.js b/src/miniprogram_npm/@vant/weapp/common/version.js new file mode 100644 index 0000000..5937008 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/common/version.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.canIUseGetUserProfile = exports.canIUseCanvas2d = exports.canIUseNextTick = exports.canIUseGroupSetData = exports.canIUseAnimate = exports.canIUseFormFieldButton = exports.canIUseModel = exports.getSystemInfoSync = void 0; +var systemInfo; +function getSystemInfoSync() { + if (systemInfo == null) { + systemInfo = wx.getSystemInfoSync(); + } + return systemInfo; +} +exports.getSystemInfoSync = getSystemInfoSync; +function compareVersion(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + var len = Math.max(v1.length, v2.length); + while (v1.length < len) { + v1.push('0'); + } + while (v2.length < len) { + v2.push('0'); + } + for (var i = 0; i < len; i++) { + var num1 = parseInt(v1[i], 10); + var num2 = parseInt(v2[i], 10); + if (num1 > num2) { + return 1; + } + if (num1 < num2) { + return -1; + } + } + return 0; +} +function gte(version) { + var system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, version) >= 0; +} +function canIUseModel() { + return gte('2.9.3'); +} +exports.canIUseModel = canIUseModel; +function canIUseFormFieldButton() { + return gte('2.10.3'); +} +exports.canIUseFormFieldButton = canIUseFormFieldButton; +function canIUseAnimate() { + return gte('2.9.0'); +} +exports.canIUseAnimate = canIUseAnimate; +function canIUseGroupSetData() { + return gte('2.4.0'); +} +exports.canIUseGroupSetData = canIUseGroupSetData; +function canIUseNextTick() { + try { + return wx.canIUse('nextTick'); + } + catch (e) { + return gte('2.7.1'); + } +} +exports.canIUseNextTick = canIUseNextTick; +function canIUseCanvas2d() { + return gte('2.9.0'); +} +exports.canIUseCanvas2d = canIUseCanvas2d; +function canIUseGetUserProfile() { + return !!wx.getUserProfile; +} +exports.canIUseGetUserProfile = canIUseGetUserProfile; diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts b/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.js b/src/miniprogram_npm/@vant/weapp/config-provider/index.js new file mode 100644 index 0000000..21fb1c4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + themeVars: { + type: Object, + value: {}, + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.json b/src/miniprogram_npm/@vant/weapp/config-provider/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml new file mode 100644 index 0000000..3cfb461 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs new file mode 100644 index 0000000..7ca0203 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/config-provider/index.wxs @@ -0,0 +1,29 @@ +/* eslint-disable */ +var object = require('../wxs/object.wxs'); +var style = require('../wxs/style.wxs'); + +function kebabCase(word) { + var newWord = word + .replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }) + .toLowerCase() + .replace(getRegExp("^-"), ''); + + return newWord; +} + +function mapThemeVarsToCSSVars(themeVars) { + var cssVars = {}; + object.keys(themeVars).forEach(function (key) { + var cssVarsKey = '--' + kebabCase(key); + cssVars[cssVarsKey] = themeVars[key]; + }); + + return style(cssVars); +} + +module.exports = { + kebabCase: kebabCase, + mapThemeVarsToCSSVars: mapThemeVarsToCSSVars, +}; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts b/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.js b/src/miniprogram_npm/@vant/weapp/count-down/index.js new file mode 100644 index 0000000..afc780b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +function simpleTick(fn) { + return setTimeout(fn, 30); +} +(0, component_1.VantComponent)({ + props: { + useSlot: Boolean, + millisecond: Boolean, + time: { + type: Number, + observer: 'reset', + }, + format: { + type: String, + value: 'HH:mm:ss', + }, + autoStart: { + type: Boolean, + value: true, + }, + }, + data: { + timeData: (0, utils_1.parseTimeData)(0), + formattedTime: '0', + }, + destroyed: function () { + clearTimeout(this.tid); + this.tid = null; + }, + methods: { + // 开始 + start: function () { + if (this.counting) { + return; + } + this.counting = true; + this.endTime = Date.now() + this.remain; + this.tick(); + }, + // 暂停 + pause: function () { + this.counting = false; + clearTimeout(this.tid); + }, + // 重置 + reset: function () { + this.pause(); + this.remain = this.data.time; + this.setRemain(this.remain); + if (this.data.autoStart) { + this.start(); + } + }, + tick: function () { + if (this.data.millisecond) { + this.microTick(); + } + else { + this.macroTick(); + } + }, + microTick: function () { + var _this = this; + this.tid = simpleTick(function () { + _this.setRemain(_this.getRemain()); + if (_this.remain !== 0) { + _this.microTick(); + } + }); + }, + macroTick: function () { + var _this = this; + this.tid = simpleTick(function () { + var remain = _this.getRemain(); + if (!(0, utils_1.isSameSecond)(remain, _this.remain) || remain === 0) { + _this.setRemain(remain); + } + if (_this.remain !== 0) { + _this.macroTick(); + } + }); + }, + getRemain: function () { + return Math.max(this.endTime - Date.now(), 0); + }, + setRemain: function (remain) { + this.remain = remain; + var timeData = (0, utils_1.parseTimeData)(remain); + if (this.data.useSlot) { + this.$emit('change', timeData); + } + this.setData({ + formattedTime: (0, utils_1.parseFormat)(this.data.format, timeData), + }); + if (remain === 0) { + this.pause(); + this.$emit('finish'); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.json b/src/miniprogram_npm/@vant/weapp/count-down/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.wxml b/src/miniprogram_npm/@vant/weapp/count-down/index.wxml new file mode 100644 index 0000000..e206e16 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.wxml @@ -0,0 +1,4 @@ + + + {{ formattedTime }} + diff --git a/src/miniprogram_npm/@vant/weapp/count-down/index.wxss b/src/miniprogram_npm/@vant/weapp/count-down/index.wxss new file mode 100644 index 0000000..8b957f7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-font-size,14px);line-height:var(--count-down-line-height,20px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts b/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts new file mode 100644 index 0000000..876a6c1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts @@ -0,0 +1,10 @@ +export type TimeData = { + days: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; +}; +export declare function parseTimeData(time: number): TimeData; +export declare function parseFormat(format: string, timeData: TimeData): string; +export declare function isSameSecond(time1: number, time2: number): boolean; diff --git a/src/miniprogram_npm/@vant/weapp/count-down/utils.js b/src/miniprogram_npm/@vant/weapp/count-down/utils.js new file mode 100644 index 0000000..a7cfa5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/count-down/utils.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isSameSecond = exports.parseFormat = exports.parseTimeData = void 0; +function padZero(num, targetLength) { + if (targetLength === void 0) { targetLength = 2; } + var str = num + ''; + while (str.length < targetLength) { + str = '0' + str; + } + return str; +} +var SECOND = 1000; +var MINUTE = 60 * SECOND; +var HOUR = 60 * MINUTE; +var DAY = 24 * HOUR; +function parseTimeData(time) { + var days = Math.floor(time / DAY); + var hours = Math.floor((time % DAY) / HOUR); + var minutes = Math.floor((time % HOUR) / MINUTE); + var seconds = Math.floor((time % MINUTE) / SECOND); + var milliseconds = Math.floor(time % SECOND); + return { + days: days, + hours: hours, + minutes: minutes, + seconds: seconds, + milliseconds: milliseconds, + }; +} +exports.parseTimeData = parseTimeData; +function parseFormat(format, timeData) { + var days = timeData.days; + var hours = timeData.hours, minutes = timeData.minutes, seconds = timeData.seconds, milliseconds = timeData.milliseconds; + if (format.indexOf('DD') === -1) { + hours += days * 24; + } + else { + format = format.replace('DD', padZero(days)); + } + if (format.indexOf('HH') === -1) { + minutes += hours * 60; + } + else { + format = format.replace('HH', padZero(hours)); + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60; + } + else { + format = format.replace('mm', padZero(minutes)); + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000; + } + else { + format = format.replace('ss', padZero(seconds)); + } + return format.replace('SSS', padZero(milliseconds, 3)); +} +exports.parseFormat = parseFormat; +function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000); +} +exports.isSameSecond = isSameSecond; diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js new file mode 100644 index 0000000..e30afef --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.js @@ -0,0 +1,329 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var shared_1 = require("../picker/shared"); +var currentYear = new Date().getFullYear(); +function isValidDate(date) { + return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime()); +} +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +function padZero(val) { + return "00".concat(val).slice(-2); +} +function times(n, iteratee) { + var index = -1; + var result = Array(n < 0 ? 0 : n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} +function getTrueValue(formattedValue) { + if (formattedValue === undefined) { + formattedValue = '1'; + } + while (isNaN(parseInt(formattedValue, 10))) { + formattedValue = formattedValue.slice(1); + } + return parseInt(formattedValue, 10); +} +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +var defaultFormatter = function (type, value) { return value; }; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { value: { + type: null, + observer: 'updateValue', + }, filter: null, type: { + type: String, + value: 'datetime', + observer: 'updateValue', + }, showToolbar: { + type: Boolean, + value: true, + }, formatter: { + type: null, + value: defaultFormatter, + }, minDate: { + type: Number, + value: new Date(currentYear - 10, 0, 1).getTime(), + observer: 'updateValue', + }, maxDate: { + type: Number, + value: new Date(currentYear + 10, 11, 31).getTime(), + observer: 'updateValue', + }, minHour: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxHour: { + type: Number, + value: 23, + observer: 'updateValue', + }, minMinute: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxMinute: { + type: Number, + value: 59, + observer: 'updateValue', + } }), + data: { + innerValue: Date.now(), + columns: [], + }, + methods: { + updateValue: function () { + var _this = this; + var data = this.data; + var val = this.correctValue(data.value); + var isEqual = val === data.innerValue; + this.updateColumnValue(val).then(function () { + if (!isEqual) { + _this.$emit('input', val); + } + }); + }, + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-datetime-picker'); + var picker_1 = this.picker; + var setColumnValues_1 = picker_1.setColumnValues; + picker_1.setColumnValues = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false)); + }; + } + return this.picker; + }, + updateColumns: function () { + var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a; + var results = this.getOriginColumns().map(function (column) { return ({ + values: column.values.map(function (value) { return formatter(column.type, value); }), + }); }); + return this.set({ columns: results }); + }, + getOriginColumns: function () { + var filter = this.data.filter; + var results = this.getRanges().map(function (_a) { + var type = _a.type, range = _a.range; + var values = times(range[1] - range[0] + 1, function (index) { + var value = range[0] + index; + return type === 'year' ? "".concat(value) : padZero(value); + }); + if (filter) { + values = filter(type, values); + } + return { type: type, values: values }; + }); + return results; + }, + getRanges: function () { + var data = this.data; + if (data.type === 'time') { + return [ + { + type: 'hour', + range: [data.minHour, data.maxHour], + }, + { + type: 'minute', + range: [data.minMinute, data.maxMinute], + }, + ]; + } + var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute; + var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute; + var result = [ + { + type: 'year', + range: [minYear, maxYear], + }, + { + type: 'month', + range: [minMonth, maxMonth], + }, + { + type: 'day', + range: [minDate, maxDate], + }, + { + type: 'hour', + range: [minHour, maxHour], + }, + { + type: 'minute', + range: [minMinute, maxMinute], + }, + ]; + if (data.type === 'date') + result.splice(3, 2); + if (data.type === 'year-month') + result.splice(2, 3); + return result; + }, + correctValue: function (value) { + var data = this.data; + // validate value + var isDateType = data.type !== 'time'; + if (isDateType && !isValidDate(value)) { + value = data.minDate; + } + else if (!isDateType && !value) { + var minHour = data.minHour; + value = "".concat(padZero(minHour), ":00"); + } + // time type + if (!isDateType) { + var _a = value.split(':'), hour = _a[0], minute = _a[1]; + hour = padZero(range(hour, data.minHour, data.maxHour)); + minute = padZero(range(minute, data.minMinute, data.maxMinute)); + return "".concat(hour, ":").concat(minute); + } + // date type + value = Math.max(value, data.minDate); + value = Math.min(value, data.maxDate); + return value; + }, + getBoundary: function (type, innerValue) { + var _a; + var value = new Date(innerValue); + var boundary = new Date(this.data["".concat(type, "Date")]); + var year = boundary.getFullYear(); + var month = 1; + var date = 1; + var hour = 0; + var minute = 0; + if (type === 'max') { + month = 12; + date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1); + hour = 23; + minute = 59; + } + if (value.getFullYear() === year) { + month = boundary.getMonth() + 1; + if (value.getMonth() + 1 === month) { + date = boundary.getDate(); + if (value.getDate() === date) { + hour = boundary.getHours(); + if (value.getHours() === hour) { + minute = boundary.getMinutes(); + } + } + } + } + return _a = {}, + _a["".concat(type, "Year")] = year, + _a["".concat(type, "Month")] = month, + _a["".concat(type, "Date")] = date, + _a["".concat(type, "Hour")] = hour, + _a["".concat(type, "Minute")] = minute, + _a; + }, + onCancel: function () { + this.$emit('cancel'); + }, + onConfirm: function () { + this.$emit('confirm', this.data.innerValue); + }, + onChange: function () { + var _this = this; + var data = this.data; + var value; + var picker = this.getPicker(); + var originColumns = this.getOriginColumns(); + if (data.type === 'time') { + var indexes = picker.getIndexes(); + value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1] + .values[indexes[1]]); + } + else { + var indexes = picker.getIndexes(); + var values = indexes.map(function (value, index) { return originColumns[index].values[value]; }); + var year = getTrueValue(values[0]); + var month = getTrueValue(values[1]); + var maxDate = getMonthEndDay(year, month); + var date = getTrueValue(values[2]); + if (data.type === 'year-month') { + date = 1; + } + date = date > maxDate ? maxDate : date; + var hour = 0; + var minute = 0; + if (data.type === 'datetime') { + hour = getTrueValue(values[3]); + minute = getTrueValue(values[4]); + } + value = new Date(year, month - 1, date, hour, minute); + } + value = this.correctValue(value); + this.updateColumnValue(value).then(function () { + _this.$emit('input', value); + _this.$emit('change', picker); + }); + }, + updateColumnValue: function (value) { + var _this = this; + var values = []; + var type = this.data.type; + var formatter = this.data.formatter || defaultFormatter; + var picker = this.getPicker(); + if (type === 'time') { + var pair = value.split(':'); + values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; + } + else { + var date = new Date(value); + values = [ + formatter('year', "".concat(date.getFullYear())), + formatter('month', padZero(date.getMonth() + 1)), + ]; + if (type === 'date') { + values.push(formatter('day', padZero(date.getDate()))); + } + if (type === 'datetime') { + values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes()))); + } + } + return this.set({ innerValue: value }) + .then(function () { return _this.updateColumns(); }) + .then(function () { return picker.setValues(values); }); + }, + }, + created: function () { + var _this = this; + var innerValue = this.correctValue(this.data.value); + this.updateColumnValue(innerValue).then(function () { + _this.$emit('input', innerValue); + }); + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml new file mode 100644 index 0000000..ade2202 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml @@ -0,0 +1,16 @@ + diff --git a/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts b/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts new file mode 100644 index 0000000..c90321f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/definitions/index.d.ts @@ -0,0 +1,29 @@ +/// +interface VantComponentInstance { + parent: WechatMiniprogram.Component.TrivialInstance; + children: WechatMiniprogram.Component.TrivialInstance[]; + index: number; + $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void; + setView: (value: Record, callback?: () => void) => void; +} +export type VantComponentOptions = { + data?: Data; + field?: boolean; + classes?: string[]; + mixins?: string[]; + props?: Props; + relation?: { + relations: Record; + mixin: string; + }; + watch?: Record any>; + methods?: Methods; + beforeCreate?: () => void; + created?: () => void; + mounted?: () => void; + destroyed?: () => void; +} & ThisType, Props, Methods> & Record>; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/definitions/index.js b/src/miniprogram_npm/@vant/weapp/definitions/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/definitions/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts b/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts new file mode 100644 index 0000000..db2da5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts @@ -0,0 +1,55 @@ +/// +/// +export type Action = 'confirm' | 'cancel' | 'overlay'; +type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance; +interface DialogOptions { + lang?: string; + show?: boolean; + title?: string; + width?: string | number | null; + zIndex?: number; + theme?: string; + context?: (() => DialogContext) | DialogContext; + message?: string; + overlay?: boolean; + selector?: string; + ariaLabel?: string; + /** + * @deprecated use custom-class instead + */ + className?: string; + customStyle?: string; + transition?: string; + /** + * @deprecated use beforeClose instead + */ + asyncClose?: boolean; + beforeClose?: null | ((action: Action) => Promise | void); + businessId?: number; + sessionFrom?: string; + overlayStyle?: string; + appParameter?: string; + messageAlign?: string; + sendMessageImg?: string; + showMessageCard?: boolean; + sendMessagePath?: string; + sendMessageTitle?: string; + confirmButtonText?: string; + cancelButtonText?: string; + showConfirmButton?: boolean; + showCancelButton?: boolean; + closeOnClickOverlay?: boolean; + confirmButtonOpenType?: string; +} +declare const Dialog: { + (options: DialogOptions): Promise; + alert(options: DialogOptions): Promise; + confirm(options: DialogOptions): Promise; + close(): void; + stopLoading(): void; + currentOptions: DialogOptions; + defaultOptions: DialogOptions; + setDefaultOptions(options: DialogOptions): void; + resetDefaultOptions(): void; +}; +export default Dialog; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/dialog.js b/src/miniprogram_npm/@vant/weapp/dialog/dialog.js new file mode 100644 index 0000000..400f4f1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/dialog.js @@ -0,0 +1,92 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var queue = []; +var defaultOptions = { + show: false, + title: '', + width: null, + theme: 'default', + message: '', + zIndex: 100, + overlay: true, + selector: '#van-dialog', + className: '', + asyncClose: false, + beforeClose: null, + transition: 'scale', + customStyle: '', + messageAlign: '', + overlayStyle: '', + confirmButtonText: '确认', + cancelButtonText: '取消', + showConfirmButton: true, + showCancelButton: false, + closeOnClickOverlay: false, + confirmButtonOpenType: '', +}; +var currentOptions = __assign({}, defaultOptions); +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +var Dialog = function (options) { + options = __assign(__assign({}, currentOptions), options); + return new Promise(function (resolve, reject) { + var context = (typeof options.context === 'function' + ? options.context() + : options.context) || getContext(); + var dialog = context.selectComponent(options.selector); + delete options.context; + delete options.selector; + if (dialog) { + dialog.setData(__assign({ callback: function (action, instance) { + action === 'confirm' ? resolve(instance) : reject(instance); + } }, options)); + wx.nextTick(function () { + dialog.setData({ show: true }); + }); + queue.push(dialog); + } + else { + console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确'); + } + }); +}; +Dialog.alert = function (options) { return Dialog(options); }; +Dialog.confirm = function (options) { + return Dialog(__assign({ showCancelButton: true }, options)); +}; +Dialog.close = function () { + queue.forEach(function (dialog) { + dialog.close(); + }); + queue = []; +}; +Dialog.stopLoading = function () { + queue.forEach(function (dialog) { + dialog.stopLoading(); + }); +}; +Dialog.currentOptions = currentOptions; +Dialog.defaultOptions = defaultOptions; +Dialog.setDefaultOptions = function (options) { + currentOptions = __assign(__assign({}, currentOptions), options); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions(); +exports.default = Dialog; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts b/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.js b/src/miniprogram_npm/@vant/weapp/dialog/index.js new file mode 100644 index 0000000..b0acfa0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + mixins: [button_1.button], + classes: ['cancle-button-class', 'confirm-button-class'], + props: { + show: { + type: Boolean, + observer: function (show) { + !show && this.stopLoading(); + }, + }, + title: String, + message: String, + theme: { + type: String, + value: 'default', + }, + confirmButtonId: String, + className: String, + customStyle: String, + asyncClose: Boolean, + messageAlign: String, + beforeClose: null, + overlayStyle: String, + useSlot: Boolean, + useTitleSlot: Boolean, + useConfirmButtonSlot: Boolean, + useCancelButtonSlot: Boolean, + showCancelButton: Boolean, + closeOnClickOverlay: Boolean, + confirmButtonOpenType: String, + width: null, + zIndex: { + type: Number, + value: 2000, + }, + confirmButtonText: { + type: String, + value: '确认', + }, + cancelButtonText: { + type: String, + value: '取消', + }, + confirmButtonColor: { + type: String, + value: color_1.RED, + }, + cancelButtonColor: { + type: String, + value: color_1.GRAY, + }, + showConfirmButton: { + type: Boolean, + value: true, + }, + overlay: { + type: Boolean, + value: true, + }, + transition: { + type: String, + value: 'scale', + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + loading: { + confirm: false, + cancel: false, + }, + callback: (function () { }), + }, + methods: { + onConfirm: function () { + this.handleAction('confirm'); + }, + onCancel: function () { + this.handleAction('cancel'); + }, + onClickOverlay: function () { + this.close('overlay'); + }, + close: function (action) { + var _this = this; + this.setData({ show: false }); + wx.nextTick(function () { + _this.$emit('close', action); + var callback = _this.data.callback; + if (callback) { + callback(action, _this); + } + }); + }, + stopLoading: function () { + this.setData({ + loading: { + confirm: false, + cancel: false, + }, + }); + }, + handleAction: function (action) { + var _a; + var _this = this; + this.$emit(action, { dialog: this }); + var _b = this.data, asyncClose = _b.asyncClose, beforeClose = _b.beforeClose; + if (!asyncClose && !beforeClose) { + this.close(action); + return; + } + this.setData((_a = {}, + _a["loading.".concat(action)] = true, + _a)); + if (beforeClose) { + (0, utils_1.toPromise)(beforeClose(action)).then(function (value) { + if (value) { + _this.close(action); + } + else { + _this.stopLoading(); + } + }); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.json b/src/miniprogram_npm/@vant/weapp/dialog/index.json new file mode 100644 index 0000000..43417fc --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-button": "../button/index", + "van-goods-action": "../goods-action/index", + "van-goods-action-button": "../goods-action-button/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.wxml b/src/miniprogram_npm/@vant/weapp/dialog/index.wxml new file mode 100644 index 0000000..a1d8e3c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.wxml @@ -0,0 +1,125 @@ + + + + + + {{ title }} + + + + + {{ message }} + + + + + {{ cancelButtonText }} + + + {{ confirmButtonText }} + + + + + + + + + {{ cancelButtonText }} + + + + + + + + {{ confirmButtonText }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dialog/index.wxss b/src/miniprogram_npm/@vant/weapp/dialog/index.wxss new file mode 100644 index 0000000..507a789 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dialog/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dialog-border-radius,16px);font-size:var(--dialog-font-size,16px);overflow:hidden;top:45%!important;width:var(--dialog-width,320px)}@media (max-width:321px){.van-dialog{width:var(--dialog-small-screen-width,90%)}}.van-dialog__header{font-weight:var(--dialog-header-font-weight,500);line-height:var(--dialog-header-line-height,24px);padding-top:var(--dialog-header-padding-top,24px);text-align:center}.van-dialog__header--isolated{padding:var(--dialog-header-isolated-padding,24px 0)}.van-dialog__message{-webkit-overflow-scrolling:touch;font-size:var(--dialog-message-font-size,14px);line-height:var(--dialog-message-line-height,20px);max-height:var(--dialog-message-max-height,60vh);overflow-y:auto;padding:var(--dialog-message-padding,24px);text-align:center}.van-dialog__message-text{word-wrap:break-word}.van-dialog__message--hasTitle{color:var(--dialog-has-title-message-text-color,#646566);padding-top:var(--dialog-has-title-message-padding-top,8px)}.van-dialog__message--round-button{color:#323233;padding-bottom:16px}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex}.van-dialog__footer--round-button{padding:8px 24px 16px!important;position:relative!important}.van-dialog__button{flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog-bounce-enter{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;transform:translate3d(-50%,-50%,0) scale(.9)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.d.ts b/src/miniprogram_npm/@vant/weapp/divider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.js b/src/miniprogram_npm/@vant/weapp/divider/index.js new file mode 100644 index 0000000..5c63844 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + dashed: Boolean, + hairline: Boolean, + contentPosition: String, + fontSize: String, + borderColor: String, + textColor: String, + customStyle: String, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.json b/src/miniprogram_npm/@vant/weapp/divider/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxml b/src/miniprogram_npm/@vant/weapp/divider/index.wxml new file mode 100644 index 0000000..f6a5a45 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxs b/src/miniprogram_npm/@vant/weapp/divider/index.wxs new file mode 100644 index 0000000..215b14f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style([ + { + 'border-color': data.borderColor, + color: data.textColor, + 'font-size': addUnit(data.fontSize), + }, + data.customStyle, + ]); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/divider/index.wxss b/src/miniprogram_npm/@vant/weapp/divider/index.wxss new file mode 100644 index 0000000..e91dc44 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/divider/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js new file mode 100644 index 0000000..826c26a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.js @@ -0,0 +1,136 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['item-title-class'], + field: true, + relation: (0, relation_1.useParent)('dropdown-menu', function () { + this.updateDataFromParent(); + }), + props: { + value: { + type: null, + observer: 'rerender', + }, + title: { + type: String, + observer: 'rerender', + }, + disabled: Boolean, + titleClass: { + type: String, + observer: 'rerender', + }, + options: { + type: Array, + value: [], + observer: 'rerender', + }, + popupStyle: String, + useBeforeToggle: { + type: Boolean, + value: false, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + transition: true, + showPopup: false, + showWrapper: false, + displayTitle: '', + safeAreaTabBar: false, + }, + methods: { + rerender: function () { + var _this = this; + wx.nextTick(function () { + var _a; + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData(); + }); + }, + updateDataFromParent: function () { + if (this.parent) { + var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction, safeAreaTabBar = _a.safeAreaTabBar; + this.setData({ + overlay: overlay, + duration: duration, + activeColor: activeColor, + closeOnClickOverlay: closeOnClickOverlay, + direction: direction, + safeAreaTabBar: safeAreaTabBar, + }); + } + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + this.setData({ showWrapper: false }); + }, + onOptionTap: function (event) { + var option = event.currentTarget.dataset.option; + var value = option.value; + var shouldEmitChange = this.data.value !== value; + this.setData({ showPopup: false, value: value }); + this.$emit('close'); + this.rerender(); + if (shouldEmitChange) { + this.$emit('change', value); + } + }, + toggle: function (show, options) { + var _this = this; + if (options === void 0) { options = {}; } + var showPopup = this.data.showPopup; + if (typeof show !== 'boolean') { + show = !showPopup; + } + if (show === showPopup) { + return; + } + this.onBeforeToggle(show).then(function (status) { + var _a; + if (!status) { + return; + } + _this.setData({ + transition: !options.immediate, + showPopup: show, + }); + if (show) { + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) { + _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true }); + _this.rerender(); + }); + } + else { + _this.rerender(); + } + }); + }, + onBeforeToggle: function (status) { + var _this = this; + var useBeforeToggle = this.data.useBeforeToggle; + if (!useBeforeToggle) { + return Promise.resolve(true); + } + return new Promise(function (resolve) { + _this.$emit('before-toggle', { + status: status, + callback: function (value) { return resolve(value); }, + }); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json new file mode 100644 index 0000000..88d5409 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml new file mode 100644 index 0000000..63904f4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml @@ -0,0 +1,50 @@ + + + + + + + {{ item.text }} + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss new file mode 100644 index 0000000..80505e9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:var(--dropdown-menu-option-active-color,#ee0a24)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts new file mode 100644 index 0000000..774eb4c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts @@ -0,0 +1,5 @@ +export interface Option { + text: string; + value: string | number; + icon: string; +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js new file mode 100644 index 0000000..aed2921 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +var ARRAY = []; +(0, component_1.VantComponent)({ + field: true, + classes: ['title-class'], + relation: (0, relation_1.useChildren)('dropdown-item', function () { + this.updateItemListData(); + }), + props: { + activeColor: { + type: String, + observer: 'updateChildrenData', + }, + overlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + zIndex: { + type: Number, + value: 10, + }, + duration: { + type: Number, + value: 200, + observer: 'updateChildrenData', + }, + direction: { + type: String, + value: 'down', + observer: 'updateChildrenData', + }, + safeAreaTabBar: { + type: Boolean, + value: false, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + closeOnClickOutside: { + type: Boolean, + value: true, + }, + }, + data: { + itemListData: [], + }, + beforeCreate: function () { + var windowHeight = (0, utils_1.getSystemInfoSync)().windowHeight; + this.windowHeight = windowHeight; + ARRAY.push(this); + }, + destroyed: function () { + var _this = this; + ARRAY = ARRAY.filter(function (item) { return item !== _this; }); + }, + methods: { + updateItemListData: function () { + this.setData({ + itemListData: this.children.map(function (child) { return child.data; }), + }); + }, + updateChildrenData: function () { + this.children.forEach(function (child) { + child.updateDataFromParent(); + }); + }, + toggleItem: function (active) { + this.children.forEach(function (item, index) { + var showPopup = item.data.showPopup; + if (index === active) { + item.toggle(); + } + else if (showPopup) { + item.toggle(false, { immediate: true }); + } + }); + }, + close: function () { + this.children.forEach(function (child) { + child.toggle(false, { immediate: true }); + }); + }, + getChildWrapperStyle: function () { + var _this = this; + var _a = this.data, zIndex = _a.zIndex, direction = _a.direction; + return (0, utils_1.getRect)(this, '.van-dropdown-menu').then(function (rect) { + var _a = rect.top, top = _a === void 0 ? 0 : _a, _b = rect.bottom, bottom = _b === void 0 ? 0 : _b; + var offset = direction === 'down' ? bottom : _this.windowHeight - top; + var wrapperStyle = "z-index: ".concat(zIndex, ";"); + if (direction === 'down') { + wrapperStyle += "top: ".concat((0, utils_1.addUnit)(offset), ";"); + } + else { + wrapperStyle += "bottom: ".concat((0, utils_1.addUnit)(offset), ";"); + } + return wrapperStyle; + }); + }, + onTitleTap: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var child = this.children[index]; + if (!child.data.disabled) { + ARRAY.forEach(function (menuItem) { + if (menuItem && + menuItem.data.closeOnClickOutside && + menuItem !== _this) { + menuItem.close(); + } + }); + this.toggleItem(index); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml new file mode 100644 index 0000000..ec165a9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml @@ -0,0 +1,23 @@ + + + + + + + + {{ computed.displayTitle(item) }} + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs new file mode 100644 index 0000000..6538854 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs @@ -0,0 +1,16 @@ +/* eslint-disable */ +function displayTitle(item) { + if (item.title) { + return item.title; + } + + var match = item.options.filter(function(option) { + return option.value === item.value; + }); + var displayTitle = match.length ? match[0].text : ''; + return displayTitle; +} + +module.exports = { + displayTitle: displayTitle +}; diff --git a/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss new file mode 100644 index 0000000..dba000e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow:var(--dropdown-menu-box-shadow,0 2px 12px hsla(210,1%,40%,.12));display:flex;height:var(--dropdown-menu-height,50px);-webkit-user-select:none;user-select:none}.van-dropdown-menu__item{align-items:center;display:flex;flex:1;justify-content:center;min-width:0}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:var(--dropdown-menu-title-disabled-text-color,#969799)}.van-dropdown-menu__title{box-sizing:border-box;color:var(--dropdown-menu-title-text-color,#323233);font-size:var(--dropdown-menu-title-font-size,15px);line-height:var(--dropdown-menu-title-line-height,18px);max-width:100%;padding:var(--dropdown-menu-title-padding,0 24px 0 8px);position:relative}.van-dropdown-menu__title:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:3px;content:"";margin-top:-5px;opacity:.8;position:absolute;right:11px;top:50%;transform:rotate(-45deg)}.van-dropdown-menu__title--active{color:var(--dropdown-menu-title-active-text-color,#ee0a24)}.van-dropdown-menu__title--down:after{margin-top:-1px;transform:rotate(135deg)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.d.ts b/src/miniprogram_npm/@vant/weapp/empty/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.js b/src/miniprogram_npm/@vant/weapp/empty/index.js new file mode 100644 index 0000000..755e638 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + description: String, + image: { + type: String, + value: 'default', + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.json b/src/miniprogram_npm/@vant/weapp/empty/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxml b/src/miniprogram_npm/@vant/weapp/empty/index.wxml new file mode 100644 index 0000000..9c7b719 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + {{ description }} + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxs b/src/miniprogram_npm/@vant/weapp/empty/index.wxs new file mode 100644 index 0000000..cf92ece --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxs @@ -0,0 +1,15 @@ +/* eslint-disable */ +var PRESETS = ['error', 'search', 'default', 'network']; + +function imageUrl(image) { + if (PRESETS.indexOf(image) !== -1) { + return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png'; + } + + return image; +} + +module.exports = { + imageUrl: imageUrl, +}; + diff --git a/src/miniprogram_npm/@vant/weapp/empty/index.wxss b/src/miniprogram_npm/@vant/weapp/empty/index.wxss new file mode 100644 index 0000000..0fb74fe --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/empty/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/field/index.d.ts b/src/miniprogram_npm/@vant/weapp/field/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/field/index.js b/src/miniprogram_npm/@vant/weapp/field/index.js new file mode 100644 index 0000000..ee64d5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.js @@ -0,0 +1,152 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var props_1 = require("./props"); +(0, component_1.VantComponent)({ + field: true, + classes: ['input-class', 'right-icon-class', 'label-class'], + props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: { + type: Boolean, + observer: 'setShowClear', + }, clearable: { + type: Boolean, + observer: 'setShowClear', + }, clearTrigger: { + type: String, + value: 'focus', + }, border: { + type: Boolean, + value: true, + }, titleWidth: { + type: String, + value: '6.2em', + }, clearIcon: { + type: String, + value: 'clear', + }, extraEventParams: { + type: Boolean, + value: false, + } }), + data: { + focused: false, + innerValue: '', + showClear: false, + }, + watch: { + value: function (value) { + if (value !== this.value) { + this.setData({ innerValue: value }); + this.value = value; + this.setShowClear(); + } + }, + clearTrigger: function () { + this.setShowClear(); + }, + }, + created: function () { + this.value = this.data.value; + this.setData({ innerValue: this.value }); + }, + methods: { + formatValue: function (value) { + var maxlength = this.data.maxlength; + if (maxlength !== -1 && value.length > maxlength) { + return value.slice(0, maxlength); + } + return value; + }, + onInput: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + var formatValue = this.formatValue(value); + this.value = formatValue; + this.setShowClear(); + return this.emitChange(__assign(__assign({}, event.detail), { value: formatValue })); + }, + onFocus: function (event) { + this.focused = true; + this.setShowClear(); + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + this.focused = false; + this.setShowClear(); + this.$emit('blur', event.detail); + }, + onClickIcon: function () { + this.$emit('click-icon'); + }, + onClickInput: function (event) { + this.$emit('click-input', event.detail); + }, + onClear: function () { + var _this = this; + this.setData({ innerValue: '' }); + this.value = ''; + this.setShowClear(); + (0, utils_1.nextTick)(function () { + _this.emitChange({ value: '' }); + _this.$emit('clear', ''); + }); + }, + onConfirm: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + this.value = value; + this.setShowClear(); + this.$emit('confirm', value); + }, + setValue: function (value) { + this.value = value; + this.setShowClear(); + if (value === '') { + this.setData({ innerValue: '' }); + } + this.emitChange({ value: value }); + }, + onLineChange: function (event) { + this.$emit('linechange', event.detail); + }, + onKeyboardHeightChange: function (event) { + this.$emit('keyboardheightchange', event.detail); + }, + onBindNicknameReview: function (event) { + this.$emit('nicknamereview', event.detail); + }, + emitChange: function (detail) { + var extraEventParams = this.data.extraEventParams; + this.setData({ value: detail.value }); + var result; + var data = extraEventParams + ? __assign(__assign({}, detail), { callback: function (data) { + result = data; + } }) : detail.value; + this.$emit('input', data); + this.$emit('change', data); + return result; + }, + setShowClear: function () { + var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger; + var _b = this, focused = _b.focused, value = _b.value; + var showClear = false; + if (clearable && !readonly) { + var hasValue = !!value; + var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused); + showClear = hasValue && trigger; + } + this.setView({ showClear: showClear }); + }, + noop: function () { }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/field/index.json b/src/miniprogram_npm/@vant/weapp/field/index.json new file mode 100644 index 0000000..5906c50 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxml b/src/miniprogram_npm/@vant/weapp/field/index.wxml new file mode 100644 index 0000000..6018993 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxml @@ -0,0 +1,56 @@ + + + + + + + {{ label }} + + + + + + + + + + + + + + + + + + + + + {{ value.length >= maxlength ? maxlength : value.length }}/{{ maxlength }} + + + {{ errorMessage }} + + diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxs b/src/miniprogram_npm/@vant/weapp/field/index.wxs new file mode 100644 index 0000000..78575b9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function inputStyle(autosize) { + if (autosize && autosize.constructor === 'Object') { + return style({ + 'min-height': addUnit(autosize.minHeight), + 'max-height': addUnit(autosize.maxHeight), + }); + } + + return ''; +} + +module.exports = { + inputStyle: inputStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/field/index.wxss b/src/miniprogram_npm/@vant/weapp/field/index.wxss new file mode 100644 index 0000000..5f7d306 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--field-label-color,#646566)}.van-field__label--disabled{color:var(--field-disabled-text-color,#c8c9cc)}.van-field__body{align-items:center;display:flex}.van-field__body--textarea{box-sizing:border-box;line-height:1.2em;min-height:var(--cell-line-height,24px);padding:3.6px 0}.van-field__control:empty+.van-field__control{display:block}.van-field__control{background-color:initial;border:0;box-sizing:border-box;color:var(--field-input-text-color,#323233);display:none;height:var(--cell-line-height,24px);line-height:inherit;margin:0;min-height:var(--cell-line-height,24px);padding:0;position:relative;resize:none;text-align:left;width:100%}.van-field__control:empty{display:none}.van-field__control--textarea{height:var(--field-text-area-min-height,18px);min-height:var(--field-text-area-min-height,18px)}.van-field__control--error{color:var(--field-input-error-text-color,#ee0a24)}.van-field__control--disabled{background-color:initial;color:var(--field-input-disabled-text-color,#c8c9cc);opacity:1}.van-field__control--center{text-align:center}.van-field__control--right{text-align:right}.van-field__control--custom{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__placeholder{color:var(--field-placeholder-text-color,#c8c9cc);left:0;pointer-events:none;position:absolute;right:0;top:0}.van-field__placeholder--error{color:var(--field-error-message-color,#ee0a24)}.van-field__icon-root{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__clear-root,.van-field__icon-container{line-height:inherit;margin-right:calc(var(--padding-xs, 8px)*-1);padding:0 var(--padding-xs,8px);vertical-align:middle}.van-field__button,.van-field__clear-root,.van-field__icon-container{flex-shrink:0}.van-field__clear-root{color:var(--field-clear-icon-color,#c8c9cc);font-size:var(--field-clear-icon-size,16px)}.van-field__icon-container{color:var(--field-icon-container-color,#969799);font-size:var(--field-icon-size,16px)}.van-field__icon-container:empty{display:none}.van-field__button{padding-left:var(--padding-xs,8px)}.van-field__button:empty{display:none}.van-field__error-message{color:var(--field-error-message-color,#ee0a24);display:block;font-size:var(--field-error-message-text-font-size,12px);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{color:var(--field-word-limit-color,#646566);font-size:var(--field-word-limit-font-size,12px);line-height:var(--field-word-limit-line-height,16px);margin-top:var(--padding-base,4px);text-align:right}.van-field__word-num{display:inline}.van-field__word-num--full{color:var(--field-word-num-full-color,#ee0a24)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/field/input.wxml b/src/miniprogram_npm/@vant/weapp/field/input.wxml new file mode 100644 index 0000000..86b288b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/input.wxml @@ -0,0 +1,31 @@ + + diff --git a/src/miniprogram_npm/@vant/weapp/field/props.d.ts b/src/miniprogram_npm/@vant/weapp/field/props.d.ts new file mode 100644 index 0000000..5cd130a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/props.d.ts @@ -0,0 +1,4 @@ +/// +export declare const commonProps: WechatMiniprogram.Component.PropertyOption; +export declare const inputProps: WechatMiniprogram.Component.PropertyOption; +export declare const textareaProps: WechatMiniprogram.Component.PropertyOption; diff --git a/src/miniprogram_npm/@vant/weapp/field/props.js b/src/miniprogram_npm/@vant/weapp/field/props.js new file mode 100644 index 0000000..5ec647b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/props.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.textareaProps = exports.inputProps = exports.commonProps = void 0; +exports.commonProps = { + value: String, + placeholder: String, + placeholderStyle: String, + placeholderClass: String, + disabled: Boolean, + maxlength: { + type: Number, + value: -1, + }, + cursorSpacing: { + type: Number, + value: 50, + }, + autoFocus: Boolean, + focus: Boolean, + cursor: { + type: Number, + value: -1, + }, + selectionStart: { + type: Number, + value: -1, + }, + selectionEnd: { + type: Number, + value: -1, + }, + adjustPosition: { + type: Boolean, + value: true, + }, + holdKeyboard: Boolean, +}; +exports.inputProps = { + type: { + type: String, + value: 'text', + }, + password: Boolean, + confirmType: String, + confirmHold: Boolean, + alwaysEmbed: Boolean, +}; +exports.textareaProps = { + autoHeight: Boolean, + fixed: Boolean, + showConfirmBar: { + type: Boolean, + value: true, + }, + disableDefaultPadding: { + type: Boolean, + value: true, + }, +}; diff --git a/src/miniprogram_npm/@vant/weapp/field/textarea.wxml b/src/miniprogram_npm/@vant/weapp/field/textarea.wxml new file mode 100644 index 0000000..945d03e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/textarea.wxml @@ -0,0 +1,32 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/field/types.d.ts b/src/miniprogram_npm/@vant/weapp/field/types.d.ts new file mode 100644 index 0000000..357ccbe --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/types.d.ts @@ -0,0 +1,8 @@ +export interface InputDetails { + /** 输入框内容 */ + value: string; + /** 光标位置 */ + cursor?: number; + /** keyCode 为键值 (目前工具还不支持返回keyCode参数) `2.1.0` 起支持 */ + keyCode?: number; +} diff --git a/src/miniprogram_npm/@vant/weapp/field/types.js b/src/miniprogram_npm/@vant/weapp/field/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/field/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-button/index.js b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.js new file mode 100644 index 0000000..8179e89 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var button_1 = require("../mixins/button"); +var link_1 = require("../mixins/link"); +(0, component_1.VantComponent)({ + mixins: [link_1.link, button_1.button], + relation: (0, relation_1.useParent)('goods-action'), + props: { + text: String, + color: String, + size: { + type: String, + value: 'normal', + }, + loading: Boolean, + disabled: Boolean, + plain: Boolean, + type: { + type: String, + value: 'danger', + }, + customStyle: { + type: String, + value: '', + }, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + updateStyle: function () { + if (this.parent == null) { + return; + } + var index = this.index; + var _a = this.parent.children, children = _a === void 0 ? [] : _a; + this.setData({ + isFirst: index === 0, + isLast: index === children.length - 1, + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-button/index.json b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.json new file mode 100644 index 0000000..b567686 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-button": "../button/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml new file mode 100644 index 0000000..4530ab8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml @@ -0,0 +1,35 @@ + + + {{ text }} + + diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss new file mode 100644 index 0000000..759a1d9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';:host{flex:1}.van-goods-action-button{--button-warning-background-color:var(--goods-action-button-warning-color,linear-gradient(to right,#ffd01e,#ff8917));--button-danger-background-color:var(--goods-action-button-danger-color,linear-gradient(to right,#ff6034,#ee0a24));--button-default-height:var(--goods-action-button-height,40px);--button-line-height:var(--goods-action-button-line-height,20px);--button-plain-background-color:var(--goods-action-button-plain-color,#fff);--button-border-width:0;display:block}.van-goods-action-button--first{--button-border-radius:999px 0 0 var(--goods-action-button-border-radius,999px);margin-left:5px}.van-goods-action-button--last{--button-border-radius:0 999px var(--goods-action-button-border-radius,999px) 0;margin-right:5px}.van-goods-action-button--first.van-goods-action-button--last{--button-border-radius:var(--goods-action-button-border-radius,999px)}.van-goods-action-button--plain{--button-border-width:1px}.van-goods-action-button__inner{font-weight:var(--font-weight-bold,500)!important;width:100%}@media (max-width:321px){.van-goods-action-button{font-size:13px}} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.js b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.js new file mode 100644 index 0000000..828e1f5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var link_1 = require("../mixins/link"); +(0, component_1.VantComponent)({ + classes: ['icon-class', 'text-class', 'info-class'], + mixins: [link_1.link, button_1.button], + props: { + text: String, + dot: Boolean, + info: String, + icon: String, + size: String, + color: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + disabled: Boolean, + loading: Boolean, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.json b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.json new file mode 100644 index 0000000..93bfe8a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-button": "../button/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml new file mode 100644 index 0000000..30c1a8c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml @@ -0,0 +1,41 @@ + + + + + + {{ text }} + diff --git a/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss new file mode 100644 index 0000000..6e4758d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-goods-action-icon{border:none!important;color:var(--goods-action-icon-text-color,#646566)!important;display:flex!important;flex-direction:column;font-size:var(--goods-action-icon-font-size,10px)!important;height:var(--goods-action-icon-height,50px)!important;justify-content:center!important;line-height:1!important;min-width:var(--goods-action-icon-width,48px)}.van-goods-action-icon__icon{color:var(--goods-action-icon-color,#323233);display:flex;font-size:var(--goods-action-icon-size,18px);margin:0 auto 5px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/goods-action/index.d.ts b/src/miniprogram_npm/@vant/weapp/goods-action/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/goods-action/index.js b/src/miniprogram_npm/@vant/weapp/goods-action/index.js new file mode 100644 index 0000000..e49bcbc --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('goods-action-button', function () { + this.children.forEach(function (item) { + item.updateStyle(); + }); + }), + props: { + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/goods-action/index.json b/src/miniprogram_npm/@vant/weapp/goods-action/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/goods-action/index.wxml b/src/miniprogram_npm/@vant/weapp/goods-action/index.wxml new file mode 100644 index 0000000..569450c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/goods-action/index.wxss b/src/miniprogram_npm/@vant/weapp/goods-action/index.wxss new file mode 100644 index 0000000..7793e77 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/goods-action/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-goods-action{align-items:center;background-color:var(--goods-action-background-color,#fff);bottom:0;box-sizing:initial;display:flex;height:var(--goods-action-height,50px);left:0;position:fixed;right:0}.van-goods-action--safe{padding-bottom:env(safe-area-inset-bottom)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/grid-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.js b/src/miniprogram_npm/@vant/weapp/grid-item/index.js new file mode 100644 index 0000000..a7d47a2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var link_1 = require("../mixins/link"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('grid'), + classes: ['content-class', 'icon-class', 'text-class'], + mixins: [link_1.link], + props: { + icon: String, + iconColor: String, + iconPrefix: { + type: String, + value: 'van-icon', + }, + dot: Boolean, + info: null, + badge: null, + text: String, + useSlot: Boolean, + }, + data: { + viewStyle: '', + }, + mounted: function () { + this.updateStyle(); + }, + methods: { + updateStyle: function () { + if (!this.parent) { + return; + } + var _a = this.parent, data = _a.data, children = _a.children; + var columnNum = data.columnNum, border = data.border, square = data.square, gutter = data.gutter, clickable = data.clickable, center = data.center, direction = data.direction, reverse = data.reverse, iconSize = data.iconSize; + this.setData({ + center: center, + border: border, + square: square, + gutter: gutter, + clickable: clickable, + direction: direction, + reverse: reverse, + iconSize: iconSize, + index: children.indexOf(this), + columnNum: columnNum, + }); + }, + onClick: function () { + this.$emit('click'); + this.jumpLink(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.json b/src/miniprogram_npm/@vant/weapp/grid-item/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.wxml b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxml new file mode 100644 index 0000000..e95087d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + {{ text }} + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.wxs b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxs new file mode 100644 index 0000000..2cfe37d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxs @@ -0,0 +1,32 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function wrapperStyle(data) { + var width = 100 / data.columnNum + '%'; + + return style({ + width: width, + 'padding-top': data.square ? width : null, + 'padding-right': addUnit(data.gutter), + 'margin-top': + data.index >= data.columnNum && !data.square + ? addUnit(data.gutter) + : null, + }); +} + +function contentStyle(data) { + return data.square + ? style({ + right: addUnit(data.gutter), + bottom: addUnit(data.gutter), + height: 'auto', + }) + : ''; +} + +module.exports = { + wrapperStyle: wrapperStyle, + contentStyle: contentStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/grid-item/index.wxss b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxss new file mode 100644 index 0000000..acaea84 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-grid-item{box-sizing:border-box;float:left;position:relative}.van-grid-item--square{height:0}.van-grid-item__content{background-color:var(--grid-item-content-background-color,#fff);box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:var(--grid-item-content-padding,16px 8px)}.van-grid-item__content:after{border-width:0 1px 1px 0;z-index:1}.van-grid-item__content--surround:after{border-width:1px}.van-grid-item__content--center{align-items:center;justify-content:center}.van-grid-item__content--square{left:0;position:absolute;right:0;top:0}.van-grid-item__content--horizontal{flex-direction:row}.van-grid-item__content--horizontal .van-grid-item__text{margin:0 0 0 8px}.van-grid-item__content--reverse{flex-direction:column-reverse}.van-grid-item__content--reverse .van-grid-item__text{margin:0 0 8px}.van-grid-item__content--horizontal.van-grid-item__content--reverse{flex-direction:row-reverse}.van-grid-item__content--horizontal.van-grid-item__content--reverse .van-grid-item__text{margin:0 8px 0 0}.van-grid-item__content--clickable:active{background-color:var(--grid-item-content-active-color,#f2f3f5)}.van-grid-item__icon{align-items:center;display:flex;font-size:var(--grid-item-icon-size,26px);height:var(--grid-item-icon-size,26px)}.van-grid-item__text{word-wrap:break-word;color:var(--grid-item-text-color,#646566);font-size:var(--grid-item-text-font-size,12px)}.van-grid-item__icon+.van-grid-item__text{margin-top:8px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.d.ts b/src/miniprogram_npm/@vant/weapp/grid/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.js b/src/miniprogram_npm/@vant/weapp/grid/index.js new file mode 100644 index 0000000..28d14f4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('grid-item'), + props: { + square: { + type: Boolean, + observer: 'updateChildren', + }, + gutter: { + type: null, + value: 0, + observer: 'updateChildren', + }, + clickable: { + type: Boolean, + observer: 'updateChildren', + }, + columnNum: { + type: Number, + value: 4, + observer: 'updateChildren', + }, + center: { + type: Boolean, + value: true, + observer: 'updateChildren', + }, + border: { + type: Boolean, + value: true, + observer: 'updateChildren', + }, + direction: { + type: String, + observer: 'updateChildren', + }, + iconSize: { + type: String, + observer: 'updateChildren', + }, + reverse: { + type: Boolean, + value: false, + observer: 'updateChildren', + }, + }, + methods: { + updateChildren: function () { + this.children.forEach(function (child) { + child.updateStyle(); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.json b/src/miniprogram_npm/@vant/weapp/grid/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.wxml b/src/miniprogram_npm/@vant/weapp/grid/index.wxml new file mode 100644 index 0000000..2e4118f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.wxml @@ -0,0 +1,8 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.wxs b/src/miniprogram_npm/@vant/weapp/grid/index.wxs new file mode 100644 index 0000000..cd3b1bd --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.wxs @@ -0,0 +1,13 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style({ + 'padding-left': addUnit(data.gutter), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/grid/index.wxss b/src/miniprogram_npm/@vant/weapp/grid/index.wxss new file mode 100644 index 0000000..e347440 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/grid/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-grid{box-sizing:border-box;overflow:hidden;position:relative} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.d.ts b/src/miniprogram_npm/@vant/weapp/icon/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.js b/src/miniprogram_npm/@vant/weapp/icon/index.js new file mode 100644 index 0000000..6758092 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['info-class'], + props: { + dot: Boolean, + info: null, + size: null, + color: String, + customStyle: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + name: String, + }, + methods: { + onClick: function () { + this.$emit('click'); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.json b/src/miniprogram_npm/@vant/weapp/icon/index.json new file mode 100644 index 0000000..bf0ebe0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.wxml b/src/miniprogram_npm/@vant/weapp/icon/index.wxml new file mode 100644 index 0000000..91b47f9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.wxml @@ -0,0 +1,20 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.wxs b/src/miniprogram_npm/@vant/weapp/icon/index.wxs new file mode 100644 index 0000000..a906f76 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.wxs @@ -0,0 +1,43 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function isImage(name) { + return name.indexOf('/') !== -1; +} + +function rootClass(data) { + var classes = ['custom-class']; + + if (data.classPrefix !== 'van-icon') { + classes.push('van-icon--custom') + } + + if (data.classPrefix != null) { + classes.push(data.classPrefix); + } + + if (isImage(data.name)) { + classes.push('van-icon--image'); + } else if (data.classPrefix != null) { + classes.push(data.classPrefix + '-' + data.name); + } + + return classes.join(' '); +} + +function rootStyle(data) { + return style([ + { + color: data.color, + 'font-size': addUnit(data.size), + }, + data.customStyle, + ]); +} + +module.exports = { + isImage: isImage, + rootClass: rootClass, + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/icon/index.wxss b/src/miniprogram_npm/@vant/weapp/icon/index.wxss new file mode 100644 index 0000000..feb3d7e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/icon/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-icon{text-rendering:auto;-webkit-font-smoothing:antialiased;font:normal normal normal 14px/1 vant-icon;font:normal normal normal 14px/1 var(--van-icon-font-family,"vant-icon");font-size:inherit;position:relative}.van-icon,.van-icon:before{display:inline-block}.van-icon-contact:before{content:"\e753"}.van-icon-notes:before{content:"\e63c"}.van-icon-records:before{content:"\e63d"}.van-icon-cash-back-record:before{content:"\e63e"}.van-icon-newspaper:before{content:"\e63f"}.van-icon-discount:before{content:"\e640"}.van-icon-completed:before{content:"\e641"}.van-icon-user:before{content:"\e642"}.van-icon-description:before{content:"\e643"}.van-icon-list-switch:before{content:"\e6ad"}.van-icon-list-switching:before{content:"\e65a"}.van-icon-link-o:before{content:"\e751"}.van-icon-miniprogram-o:before{content:"\e752"}.van-icon-qq:before{content:"\e74e"}.van-icon-wechat-moments:before{content:"\e74f"}.van-icon-weibo:before{content:"\e750"}.van-icon-cash-o:before{content:"\e74d"}.van-icon-guide-o:before{content:"\e74c"}.van-icon-invitation:before{content:"\e6d6"}.van-icon-shield-o:before{content:"\e74b"}.van-icon-exchange:before{content:"\e6af"}.van-icon-eye:before{content:"\e6b0"}.van-icon-enlarge:before{content:"\e6b1"}.van-icon-expand-o:before{content:"\e6b2"}.van-icon-eye-o:before{content:"\e6b3"}.van-icon-expand:before{content:"\e6b4"}.van-icon-filter-o:before{content:"\e6b5"}.van-icon-fire:before{content:"\e6b6"}.van-icon-fail:before{content:"\e6b7"}.van-icon-failure:before{content:"\e6b8"}.van-icon-fire-o:before{content:"\e6b9"}.van-icon-flag-o:before{content:"\e6ba"}.van-icon-font:before{content:"\e6bb"}.van-icon-font-o:before{content:"\e6bc"}.van-icon-gem-o:before{content:"\e6bd"}.van-icon-flower-o:before{content:"\e6be"}.van-icon-gem:before{content:"\e6bf"}.van-icon-gift-card:before{content:"\e6c0"}.van-icon-friends:before{content:"\e6c1"}.van-icon-friends-o:before{content:"\e6c2"}.van-icon-gold-coin:before{content:"\e6c3"}.van-icon-gold-coin-o:before{content:"\e6c4"}.van-icon-good-job-o:before{content:"\e6c5"}.van-icon-gift:before{content:"\e6c6"}.van-icon-gift-o:before{content:"\e6c7"}.van-icon-gift-card-o:before{content:"\e6c8"}.van-icon-good-job:before{content:"\e6c9"}.van-icon-home-o:before{content:"\e6ca"}.van-icon-goods-collect:before{content:"\e6cb"}.van-icon-graphic:before{content:"\e6cc"}.van-icon-goods-collect-o:before{content:"\e6cd"}.van-icon-hot-o:before{content:"\e6ce"}.van-icon-info:before{content:"\e6cf"}.van-icon-hotel-o:before{content:"\e6d0"}.van-icon-info-o:before{content:"\e6d1"}.van-icon-hot-sale-o:before{content:"\e6d2"}.van-icon-hot:before{content:"\e6d3"}.van-icon-like:before{content:"\e6d4"}.van-icon-idcard:before{content:"\e6d5"}.van-icon-like-o:before{content:"\e6d7"}.van-icon-hot-sale:before{content:"\e6d8"}.van-icon-location-o:before{content:"\e6d9"}.van-icon-location:before{content:"\e6da"}.van-icon-label:before{content:"\e6db"}.van-icon-lock:before{content:"\e6dc"}.van-icon-label-o:before{content:"\e6dd"}.van-icon-map-marked:before{content:"\e6de"}.van-icon-logistics:before{content:"\e6df"}.van-icon-manager:before{content:"\e6e0"}.van-icon-more:before{content:"\e6e1"}.van-icon-live:before{content:"\e6e2"}.van-icon-manager-o:before{content:"\e6e3"}.van-icon-medal:before{content:"\e6e4"}.van-icon-more-o:before{content:"\e6e5"}.van-icon-music-o:before{content:"\e6e6"}.van-icon-music:before{content:"\e6e7"}.van-icon-new-arrival-o:before{content:"\e6e8"}.van-icon-medal-o:before{content:"\e6e9"}.van-icon-new-o:before{content:"\e6ea"}.van-icon-free-postage:before{content:"\e6eb"}.van-icon-newspaper-o:before{content:"\e6ec"}.van-icon-new-arrival:before{content:"\e6ed"}.van-icon-minus:before{content:"\e6ee"}.van-icon-orders-o:before{content:"\e6ef"}.van-icon-new:before{content:"\e6f0"}.van-icon-paid:before{content:"\e6f1"}.van-icon-notes-o:before{content:"\e6f2"}.van-icon-other-pay:before{content:"\e6f3"}.van-icon-pause-circle:before{content:"\e6f4"}.van-icon-pause:before{content:"\e6f5"}.van-icon-pause-circle-o:before{content:"\e6f6"}.van-icon-peer-pay:before{content:"\e6f7"}.van-icon-pending-payment:before{content:"\e6f8"}.van-icon-passed:before{content:"\e6f9"}.van-icon-plus:before{content:"\e6fa"}.van-icon-phone-circle-o:before{content:"\e6fb"}.van-icon-phone-o:before{content:"\e6fc"}.van-icon-printer:before{content:"\e6fd"}.van-icon-photo-fail:before{content:"\e6fe"}.van-icon-phone:before{content:"\e6ff"}.van-icon-photo-o:before{content:"\e700"}.van-icon-play-circle:before{content:"\e701"}.van-icon-play:before{content:"\e702"}.van-icon-phone-circle:before{content:"\e703"}.van-icon-point-gift-o:before{content:"\e704"}.van-icon-point-gift:before{content:"\e705"}.van-icon-play-circle-o:before{content:"\e706"}.van-icon-shrink:before{content:"\e707"}.van-icon-photo:before{content:"\e708"}.van-icon-qr:before{content:"\e709"}.van-icon-qr-invalid:before{content:"\e70a"}.van-icon-question-o:before{content:"\e70b"}.van-icon-revoke:before{content:"\e70c"}.van-icon-replay:before{content:"\e70d"}.van-icon-service:before{content:"\e70e"}.van-icon-question:before{content:"\e70f"}.van-icon-search:before{content:"\e710"}.van-icon-refund-o:before{content:"\e711"}.van-icon-service-o:before{content:"\e712"}.van-icon-scan:before{content:"\e713"}.van-icon-share:before{content:"\e714"}.van-icon-send-gift-o:before{content:"\e715"}.van-icon-share-o:before{content:"\e716"}.van-icon-setting:before{content:"\e717"}.van-icon-points:before{content:"\e718"}.van-icon-photograph:before{content:"\e719"}.van-icon-shop:before{content:"\e71a"}.van-icon-shop-o:before{content:"\e71b"}.van-icon-shop-collect-o:before{content:"\e71c"}.van-icon-shop-collect:before{content:"\e71d"}.van-icon-smile:before{content:"\e71e"}.van-icon-shopping-cart-o:before{content:"\e71f"}.van-icon-sign:before{content:"\e720"}.van-icon-sort:before{content:"\e721"}.van-icon-star-o:before{content:"\e722"}.van-icon-smile-comment-o:before{content:"\e723"}.van-icon-stop:before{content:"\e724"}.van-icon-stop-circle-o:before{content:"\e725"}.van-icon-smile-o:before{content:"\e726"}.van-icon-star:before{content:"\e727"}.van-icon-success:before{content:"\e728"}.van-icon-stop-circle:before{content:"\e729"}.van-icon-records-o:before{content:"\e72a"}.van-icon-shopping-cart:before{content:"\e72b"}.van-icon-tosend:before{content:"\e72c"}.van-icon-todo-list:before{content:"\e72d"}.van-icon-thumb-circle-o:before{content:"\e72e"}.van-icon-thumb-circle:before{content:"\e72f"}.van-icon-umbrella-circle:before{content:"\e730"}.van-icon-underway:before{content:"\e731"}.van-icon-upgrade:before{content:"\e732"}.van-icon-todo-list-o:before{content:"\e733"}.van-icon-tv-o:before{content:"\e734"}.van-icon-underway-o:before{content:"\e735"}.van-icon-user-o:before{content:"\e736"}.van-icon-vip-card-o:before{content:"\e737"}.van-icon-vip-card:before{content:"\e738"}.van-icon-send-gift:before{content:"\e739"}.van-icon-wap-home:before{content:"\e73a"}.van-icon-wap-nav:before{content:"\e73b"}.van-icon-volume-o:before{content:"\e73c"}.van-icon-video:before{content:"\e73d"}.van-icon-wap-home-o:before{content:"\e73e"}.van-icon-volume:before{content:"\e73f"}.van-icon-warning:before{content:"\e740"}.van-icon-weapp-nav:before{content:"\e741"}.van-icon-wechat-pay:before{content:"\e742"}.van-icon-warning-o:before{content:"\e743"}.van-icon-wechat:before{content:"\e744"}.van-icon-setting-o:before{content:"\e745"}.van-icon-youzan-shield:before{content:"\e746"}.van-icon-warn-o:before{content:"\e747"}.van-icon-smile-comment:before{content:"\e748"}.van-icon-user-circle-o:before{content:"\e749"}.van-icon-video-o:before{content:"\e74a"}.van-icon-add-square:before{content:"\e65c"}.van-icon-add:before{content:"\e65d"}.van-icon-arrow-down:before{content:"\e65e"}.van-icon-arrow-up:before{content:"\e65f"}.van-icon-arrow:before{content:"\e660"}.van-icon-after-sale:before{content:"\e661"}.van-icon-add-o:before{content:"\e662"}.van-icon-alipay:before{content:"\e663"}.van-icon-ascending:before{content:"\e664"}.van-icon-apps-o:before{content:"\e665"}.van-icon-aim:before{content:"\e666"}.van-icon-award:before{content:"\e667"}.van-icon-arrow-left:before{content:"\e668"}.van-icon-award-o:before{content:"\e669"}.van-icon-audio:before{content:"\e66a"}.van-icon-bag-o:before{content:"\e66b"}.van-icon-balance-list:before{content:"\e66c"}.van-icon-back-top:before{content:"\e66d"}.van-icon-bag:before{content:"\e66e"}.van-icon-balance-pay:before{content:"\e66f"}.van-icon-balance-o:before{content:"\e670"}.van-icon-bar-chart-o:before{content:"\e671"}.van-icon-bars:before{content:"\e672"}.van-icon-balance-list-o:before{content:"\e673"}.van-icon-birthday-cake-o:before{content:"\e674"}.van-icon-bookmark:before{content:"\e675"}.van-icon-bill:before{content:"\e676"}.van-icon-bell:before{content:"\e677"}.van-icon-browsing-history-o:before{content:"\e678"}.van-icon-browsing-history:before{content:"\e679"}.van-icon-bookmark-o:before{content:"\e67a"}.van-icon-bulb-o:before{content:"\e67b"}.van-icon-bullhorn-o:before{content:"\e67c"}.van-icon-bill-o:before{content:"\e67d"}.van-icon-calendar-o:before{content:"\e67e"}.van-icon-brush-o:before{content:"\e67f"}.van-icon-card:before{content:"\e680"}.van-icon-cart-o:before{content:"\e681"}.van-icon-cart-circle:before{content:"\e682"}.van-icon-cart-circle-o:before{content:"\e683"}.van-icon-cart:before{content:"\e684"}.van-icon-cash-on-deliver:before{content:"\e685"}.van-icon-cash-back-record-o:before{content:"\e686"}.van-icon-cashier-o:before{content:"\e687"}.van-icon-chart-trending-o:before{content:"\e688"}.van-icon-certificate:before{content:"\e689"}.van-icon-chat:before{content:"\e68a"}.van-icon-clear:before{content:"\e68b"}.van-icon-chat-o:before{content:"\e68c"}.van-icon-checked:before{content:"\e68d"}.van-icon-clock:before{content:"\e68e"}.van-icon-clock-o:before{content:"\e68f"}.van-icon-close:before{content:"\e690"}.van-icon-closed-eye:before{content:"\e691"}.van-icon-circle:before{content:"\e692"}.van-icon-cluster-o:before{content:"\e693"}.van-icon-column:before{content:"\e694"}.van-icon-comment-circle-o:before{content:"\e695"}.van-icon-cluster:before{content:"\e696"}.van-icon-comment:before{content:"\e697"}.van-icon-comment-o:before{content:"\e698"}.van-icon-comment-circle:before{content:"\e699"}.van-icon-completed-o:before{content:"\e69a"}.van-icon-credit-pay:before{content:"\e69b"}.van-icon-coupon:before{content:"\e69c"}.van-icon-debit-pay:before{content:"\e69d"}.van-icon-coupon-o:before{content:"\e69e"}.van-icon-contact-o:before{content:"\e69f"}.van-icon-descending:before{content:"\e6a0"}.van-icon-desktop-o:before{content:"\e6a1"}.van-icon-diamond-o:before{content:"\e6a2"}.van-icon-description-o:before{content:"\e6a3"}.van-icon-delete:before{content:"\e6a4"}.van-icon-diamond:before{content:"\e6a5"}.van-icon-delete-o:before{content:"\e6a6"}.van-icon-cross:before{content:"\e6a7"}.van-icon-edit:before{content:"\e6a8"}.van-icon-ellipsis:before{content:"\e6a9"}.van-icon-down:before{content:"\e6aa"}.van-icon-discount-o:before{content:"\e6ab"}.van-icon-ecard-pay:before{content:"\e6ac"}.van-icon-envelop-o:before{content:"\e6ae"}@font-face{font-display:auto;font-family:vant-icon;font-style:normal;font-weight:400;src:url(//at.alicdn.com/t/c/font_2553510_kfwma2yq1rs.woff2?t=1694918397022) format("woff2"),url(//at.alicdn.com/t/c/font_2553510_kfwma2yq1rs.woff?t=1694918397022) format("woff")}:host{align-items:center;display:inline-flex;justify-content:center}.van-icon--custom{position:relative}.van-icon--image{height:1em;width:1em}.van-icon__image{height:100%;width:100%}.van-icon__info{z-index:1} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/image/index.d.ts b/src/miniprogram_npm/@vant/weapp/image/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/image/index.js b/src/miniprogram_npm/@vant/weapp/image/index.js new file mode 100644 index 0000000..40f6812 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +(0, component_1.VantComponent)({ + mixins: [button_1.button], + classes: ['custom-class', 'loading-class', 'error-class', 'image-class'], + props: { + src: { + type: String, + observer: function () { + this.setData({ + error: false, + loading: true, + }); + }, + }, + round: Boolean, + width: null, + height: null, + radius: null, + lazyLoad: Boolean, + useErrorSlot: Boolean, + useLoadingSlot: Boolean, + showMenuByLongpress: Boolean, + fit: { + type: String, + value: 'fill', + }, + webp: { + type: Boolean, + value: false, + }, + showError: { + type: Boolean, + value: true, + }, + showLoading: { + type: Boolean, + value: true, + }, + }, + data: { + error: false, + loading: true, + viewStyle: '', + }, + methods: { + onLoad: function (event) { + this.setData({ + loading: false, + }); + this.$emit('load', event.detail); + }, + onError: function (event) { + this.setData({ + loading: false, + error: true, + }); + this.$emit('error', event.detail); + }, + onClick: function (event) { + this.$emit('click', event.detail); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/image/index.json b/src/miniprogram_npm/@vant/weapp/image/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/image/index.wxml b/src/miniprogram_npm/@vant/weapp/image/index.wxml new file mode 100644 index 0000000..a6f573c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.wxml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/image/index.wxs b/src/miniprogram_npm/@vant/weapp/image/index.wxs new file mode 100644 index 0000000..cec14b8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.wxs @@ -0,0 +1,32 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style([ + { + width: addUnit(data.width), + height: addUnit(data.height), + 'border-radius': addUnit(data.radius), + }, + data.radius ? 'overflow: hidden' : null, + ]); +} + +var FIT_MODE_MAP = { + none: 'center', + fill: 'scaleToFill', + cover: 'aspectFill', + contain: 'aspectFit', + widthFix: 'widthFix', + heightFix: 'heightFix', +}; + +function mode(fit) { + return FIT_MODE_MAP[fit]; +} + +module.exports = { + rootStyle: rootStyle, + mode: mode, +}; diff --git a/src/miniprogram_npm/@vant/weapp/image/index.wxss b/src/miniprogram_npm/@vant/weapp/image/index.wxss new file mode 100644 index 0000000..a9c6ebb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/image/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-image{display:inline-block;position:relative}.van-image--round{border-radius:50%;overflow:hidden}.van-image--round .van-image__img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;height:100%;width:100%}.van-image__error,.van-image__loading{align-items:center;background-color:var(--image-placeholder-background-color,#f7f8fa);color:var(--image-placeholder-text-color,#969799);display:flex;flex-direction:column;font-size:var(--image-placeholder-font-size,14px);justify-content:center;left:0;position:absolute;top:0}.van-image__loading-icon{color:var(--image-loading-icon-color,#dcdee0);font-size:var(--image-loading-icon-size,32px)!important}.van-image__error-icon{color:var(--image-error-icon-color,#dcdee0);font-size:var(--image-error-icon-size,32px)!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts b/src/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/index-anchor/index.js b/src/miniprogram_npm/@vant/weapp/index-anchor/index.js new file mode 100644 index 0000000..9a361a9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-anchor/index.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('index-bar'), + props: { + useSlot: Boolean, + index: null, + }, + data: { + active: false, + wrapperStyle: '', + anchorStyle: '', + }, + methods: { + scrollIntoView: function (scrollTop) { + var _this = this; + (0, utils_1.getRect)(this, '.van-index-anchor-wrapper').then(function (rect) { + wx.pageScrollTo({ + duration: 0, + scrollTop: scrollTop + rect.top - _this.parent.data.stickyOffsetTop, + }); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/index-anchor/index.json b/src/miniprogram_npm/@vant/weapp/index-anchor/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-anchor/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxml b/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxml new file mode 100644 index 0000000..49affa7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxml @@ -0,0 +1,14 @@ + + + + + {{ index }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxss b/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxss new file mode 100644 index 0000000..4b91560 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-anchor/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-index-anchor{background-color:var(--index-anchor-background-color,transparent);color:var(--index-anchor-text-color,#323233);font-size:var(--index-anchor-font-size,14px);font-weight:var(--index-anchor-font-weight,500);line-height:var(--index-anchor-line-height,32px);padding:var(--index-anchor-padding,0 16px)}.van-index-anchor--active{background-color:var(--index-anchor-active-background-color,#fff);color:var(--index-anchor-active-text-color,#07c160);left:0;right:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/index-bar/index.d.ts b/src/miniprogram_npm/@vant/weapp/index-bar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-bar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/index-bar/index.js b/src/miniprogram_npm/@vant/weapp/index-bar/index.js new file mode 100644 index 0000000..afc5412 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-bar/index.js @@ -0,0 +1,243 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +var page_scroll_1 = require("../mixins/page-scroll"); +var indexList = function () { + var indexList = []; + var charCodeOfA = 'A'.charCodeAt(0); + for (var i = 0; i < 26; i++) { + indexList.push(String.fromCharCode(charCodeOfA + i)); + } + return indexList; +}; +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('index-anchor', function () { + this.updateData(); + }), + props: { + sticky: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 1, + }, + highlightColor: { + type: String, + value: color_1.GREEN, + }, + stickyOffsetTop: { + type: Number, + value: 0, + }, + indexList: { + type: Array, + value: indexList(), + }, + }, + mixins: [ + (0, page_scroll_1.pageScrollMixin)(function (event) { + this.scrollTop = (event === null || event === void 0 ? void 0 : event.scrollTop) || 0; + this.onScroll(); + }), + ], + data: { + activeAnchorIndex: null, + showSidebar: false, + }, + created: function () { + this.scrollTop = 0; + }, + methods: { + updateData: function () { + var _this = this; + wx.nextTick(function () { + if (_this.timer != null) { + clearTimeout(_this.timer); + } + _this.timer = setTimeout(function () { + _this.setData({ + showSidebar: !!_this.children.length, + }); + _this.setRect().then(function () { + _this.onScroll(); + }); + }, 0); + }); + }, + setRect: function () { + return Promise.all([ + this.setAnchorsRect(), + this.setListRect(), + this.setSiderbarRect(), + ]); + }, + setAnchorsRect: function () { + var _this = this; + return Promise.all(this.children.map(function (anchor) { + return (0, utils_1.getRect)(anchor, '.van-index-anchor-wrapper').then(function (rect) { + Object.assign(anchor, { + height: rect.height, + top: rect.top + _this.scrollTop, + }); + }); + })); + }, + setListRect: function () { + var _this = this; + return (0, utils_1.getRect)(this, '.van-index-bar').then(function (rect) { + if (!(0, utils_1.isDef)(rect)) { + return; + } + Object.assign(_this, { + height: rect.height, + top: rect.top + _this.scrollTop, + }); + }); + }, + setSiderbarRect: function () { + var _this = this; + return (0, utils_1.getRect)(this, '.van-index-bar__sidebar').then(function (res) { + if (!(0, utils_1.isDef)(res)) { + return; + } + _this.sidebar = { + height: res.height, + top: res.top, + }; + }); + }, + setDiffData: function (_a) { + var target = _a.target, data = _a.data; + var diffData = {}; + Object.keys(data).forEach(function (key) { + if (target.data[key] !== data[key]) { + diffData[key] = data[key]; + } + }); + if (Object.keys(diffData).length) { + target.setData(diffData); + } + }, + getAnchorRect: function (anchor) { + return (0, utils_1.getRect)(anchor, '.van-index-anchor-wrapper').then(function (rect) { return ({ + height: rect.height, + top: rect.top, + }); }); + }, + getActiveAnchorIndex: function () { + var _a = this, children = _a.children, scrollTop = _a.scrollTop; + var _b = this.data, sticky = _b.sticky, stickyOffsetTop = _b.stickyOffsetTop; + for (var i = this.children.length - 1; i >= 0; i--) { + var preAnchorHeight = i > 0 ? children[i - 1].height : 0; + var reachTop = sticky ? preAnchorHeight + stickyOffsetTop : 0; + if (reachTop + scrollTop >= children[i].top) { + return i; + } + } + return -1; + }, + onScroll: function () { + var _this = this; + var _a = this, _b = _a.children, children = _b === void 0 ? [] : _b, scrollTop = _a.scrollTop; + if (!children.length) { + return; + } + var _c = this.data, sticky = _c.sticky, stickyOffsetTop = _c.stickyOffsetTop, zIndex = _c.zIndex, highlightColor = _c.highlightColor; + var active = this.getActiveAnchorIndex(); + this.setDiffData({ + target: this, + data: { + activeAnchorIndex: active, + }, + }); + if (sticky) { + var isActiveAnchorSticky_1 = false; + if (active !== -1) { + isActiveAnchorSticky_1 = + children[active].top <= stickyOffsetTop + scrollTop; + } + children.forEach(function (item, index) { + if (index === active) { + var wrapperStyle = ''; + var anchorStyle = "\n color: ".concat(highlightColor, ";\n "); + if (isActiveAnchorSticky_1) { + wrapperStyle = "\n height: ".concat(children[index].height, "px;\n "); + anchorStyle = "\n position: fixed;\n top: ".concat(stickyOffsetTop, "px;\n z-index: ").concat(zIndex, ";\n color: ").concat(highlightColor, ";\n "); + } + _this.setDiffData({ + target: item, + data: { + active: true, + anchorStyle: anchorStyle, + wrapperStyle: wrapperStyle, + }, + }); + } + else if (index === active - 1) { + var currentAnchor = children[index]; + var currentOffsetTop = currentAnchor.top; + var targetOffsetTop = index === children.length - 1 + ? _this.top + : children[index + 1].top; + var parentOffsetHeight = targetOffsetTop - currentOffsetTop; + var translateY = parentOffsetHeight - currentAnchor.height; + var anchorStyle = "\n position: relative;\n transform: translate3d(0, ".concat(translateY, "px, 0);\n z-index: ").concat(zIndex, ";\n color: ").concat(highlightColor, ";\n "); + _this.setDiffData({ + target: item, + data: { + active: true, + anchorStyle: anchorStyle, + }, + }); + } + else { + _this.setDiffData({ + target: item, + data: { + active: false, + anchorStyle: '', + wrapperStyle: '', + }, + }); + } + }); + } + }, + onClick: function (event) { + this.scrollToAnchor(event.target.dataset.index); + }, + onTouchMove: function (event) { + var sidebarLength = this.children.length; + var touch = event.touches[0]; + var itemHeight = this.sidebar.height / sidebarLength; + var index = Math.floor((touch.clientY - this.sidebar.top) / itemHeight); + if (index < 0) { + index = 0; + } + else if (index > sidebarLength - 1) { + index = sidebarLength - 1; + } + this.scrollToAnchor(index); + }, + onTouchStop: function () { + this.scrollToAnchorIndex = null; + }, + scrollToAnchor: function (index) { + var _this = this; + if (typeof index !== 'number' || this.scrollToAnchorIndex === index) { + return; + } + this.scrollToAnchorIndex = index; + var anchor = this.children.find(function (item) { return item.data.index === _this.data.indexList[index]; }); + if (anchor) { + anchor.scrollIntoView(this.scrollTop); + this.$emit('select', anchor.data.index); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/index-bar/index.json b/src/miniprogram_npm/@vant/weapp/index-bar/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-bar/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/index-bar/index.wxml b/src/miniprogram_npm/@vant/weapp/index-bar/index.wxml new file mode 100644 index 0000000..19a59cf --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-bar/index.wxml @@ -0,0 +1,22 @@ + + + + + + {{ item }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/index-bar/index.wxss b/src/miniprogram_npm/@vant/weapp/index-bar/index.wxss new file mode 100644 index 0000000..8568801 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/index-bar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-index-bar{position:relative}.van-index-bar__sidebar{display:flex;flex-direction:column;position:fixed;right:0;text-align:center;top:50%;transform:translateY(-50%);-webkit-user-select:none;user-select:none}.van-index-bar__index{font-size:var(--index-bar-index-font-size,10px);font-weight:500;line-height:var(--index-bar-index-line-height,14px);padding:0 var(--padding-base,4px) 0 var(--padding-md,16px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/info/index.d.ts b/src/miniprogram_npm/@vant/weapp/info/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/info/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/info/index.js b/src/miniprogram_npm/@vant/weapp/info/index.js new file mode 100644 index 0000000..e61af73 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/info/index.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + dot: Boolean, + info: null, + customStyle: String, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/info/index.json b/src/miniprogram_npm/@vant/weapp/info/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/info/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/info/index.wxml b/src/miniprogram_npm/@vant/weapp/info/index.wxml new file mode 100644 index 0000000..b39b524 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/info/index.wxml @@ -0,0 +1,7 @@ + + +{{ dot ? '' : info }} diff --git a/src/miniprogram_npm/@vant/weapp/info/index.wxss b/src/miniprogram_npm/@vant/weapp/info/index.wxss new file mode 100644 index 0000000..375ed5a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/info/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-info{align-items:center;background-color:var(--info-background-color,#ee0a24);border:var(--info-border-width,1px) solid #fff;border-radius:var(--info-size,16px);box-sizing:border-box;color:var(--info-color,#fff);display:inline-flex;font-family:var(--info-font-family,-apple-system-font,Helvetica Neue,Arial,sans-serif);font-size:var(--info-font-size,12px);font-weight:var(--info-font-weight,500);height:var(--info-size,16px);justify-content:center;min-width:var(--info-size,16px);padding:var(--info-padding,0 3px);position:absolute;right:0;top:0;transform:translate(50%,-50%);transform-origin:100%;white-space:nowrap}.van-info--dot{background-color:var(--info-dot-color,#ee0a24);border-radius:100%;height:var(--info-dot-size,8px);min-width:0;width:var(--info-dot-size,8px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.d.ts b/src/miniprogram_npm/@vant/weapp/loading/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.js b/src/miniprogram_npm/@vant/weapp/loading/index.js new file mode 100644 index 0000000..be9c0ef --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + color: String, + vertical: Boolean, + type: { + type: String, + value: 'circular', + }, + size: String, + textSize: String, + }, + data: { + array12: Array.from({ length: 12 }), + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.json b/src/miniprogram_npm/@vant/weapp/loading/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.wxml b/src/miniprogram_npm/@vant/weapp/loading/index.wxml new file mode 100644 index 0000000..7d4a539 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.wxml @@ -0,0 +1,19 @@ + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.wxs b/src/miniprogram_npm/@vant/weapp/loading/index.wxs new file mode 100644 index 0000000..02a0b80 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.wxs @@ -0,0 +1,22 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function spinnerStyle(data) { + return style({ + color: data.color, + width: addUnit(data.size), + height: addUnit(data.size), + }); +} + +function textStyle(data) { + return style({ + 'font-size': addUnit(data.textSize), + }); +} + +module.exports = { + spinnerStyle: spinnerStyle, + textStyle: textStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/loading/index.wxss b/src/miniprogram_npm/@vant/weapp/loading/index.wxss new file mode 100644 index 0000000..fc84e84 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/loading/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{align-items:center;color:var(--loading-spinner-color,#c8c9cc);display:inline-flex;justify-content:center}.van-loading__spinner{animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;box-sizing:border-box;height:var(--loading-spinner-size,30px);max-height:100%;max-width:100%;position:relative;width:var(--loading-spinner-size,30px)}.van-loading__spinner--spinner{animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-radius:100%;border-top-color:initial}.van-loading__text{color:var(--loading-text-color,#969799);font-size:var(--loading-text-font-size,14px);line-height:var(--loading-text-line-height,20px);margin-left:var(--padding-xs,8px)}.van-loading__text:empty{display:none}.van-loading--vertical{flex-direction:column}.van-loading--vertical .van-loading__text{margin:var(--padding-xs,8px) 0 0}.van-loading__dot{height:100%;left:0;position:absolute;top:0;width:100%}.van-loading__dot:before{background-color:currentColor;border-radius:40%;content:" ";display:block;height:25%;margin:0 auto;width:2px}.van-loading__dot:first-of-type{opacity:1;transform:rotate(30deg)}.van-loading__dot:nth-of-type(2){opacity:.9375;transform:rotate(60deg)}.van-loading__dot:nth-of-type(3){opacity:.875;transform:rotate(90deg)}.van-loading__dot:nth-of-type(4){opacity:.8125;transform:rotate(120deg)}.van-loading__dot:nth-of-type(5){opacity:.75;transform:rotate(150deg)}.van-loading__dot:nth-of-type(6){opacity:.6875;transform:rotate(180deg)}.van-loading__dot:nth-of-type(7){opacity:.625;transform:rotate(210deg)}.van-loading__dot:nth-of-type(8){opacity:.5625;transform:rotate(240deg)}.van-loading__dot:nth-of-type(9){opacity:.5;transform:rotate(270deg)}.van-loading__dot:nth-of-type(10){opacity:.4375;transform:rotate(300deg)}.van-loading__dot:nth-of-type(11){opacity:.375;transform:rotate(330deg)}.van-loading__dot:nth-of-type(12){opacity:.3125;transform:rotate(1turn)}@keyframes van-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/mixins/basic.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/basic.d.ts new file mode 100644 index 0000000..b273369 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/basic.d.ts @@ -0,0 +1 @@ +export declare const basic: string; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/basic.js b/src/miniprogram_npm/@vant/weapp/mixins/basic.js new file mode 100644 index 0000000..405161a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/basic.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.basic = void 0; +exports.basic = Behavior({ + methods: { + $emit: function (name, detail, options) { + this.triggerEvent(name, detail, options); + }, + set: function (data) { + this.setData(data); + return new Promise(function (resolve) { return wx.nextTick(resolve); }); + }, + // high performance setData + setView: function (data, callback) { + var _this = this; + var target = {}; + var hasChange = false; + Object.keys(data).forEach(function (key) { + if (data[key] !== _this.data[key]) { + target[key] = data[key]; + hasChange = true; + } + }); + if (hasChange) { + return this.setData(target, callback); + } + return callback && callback(); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/mixins/button.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/button.d.ts new file mode 100644 index 0000000..b51db87 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/button.d.ts @@ -0,0 +1 @@ +export declare const button: string; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/button.js b/src/miniprogram_npm/@vant/weapp/mixins/button.js new file mode 100644 index 0000000..8c1c499 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/button.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.button = void 0; +var version_1 = require("../common/version"); +exports.button = Behavior({ + externalClasses: ['hover-class'], + properties: { + id: String, + buttonId: String, + lang: String, + businessId: Number, + sessionFrom: String, + sendMessageTitle: String, + sendMessagePath: String, + sendMessageImg: String, + showMessageCard: Boolean, + appParameter: String, + ariaLabel: String, + openType: String, + getUserProfileDesc: String, + }, + data: { + canIUseGetUserProfile: (0, version_1.canIUseGetUserProfile)(), + }, + methods: { + onGetUserInfo: function (event) { + this.triggerEvent('getuserinfo', event.detail); + }, + onContact: function (event) { + this.triggerEvent('contact', event.detail); + }, + onGetPhoneNumber: function (event) { + this.triggerEvent('getphonenumber', event.detail); + }, + onGetRealTimePhoneNumber: function (event) { + this.triggerEvent('getrealtimephonenumber', event.detail); + }, + onError: function (event) { + this.triggerEvent('error', event.detail); + }, + onLaunchApp: function (event) { + this.triggerEvent('launchapp', event.detail); + }, + onOpenSetting: function (event) { + this.triggerEvent('opensetting', event.detail); + }, + onAgreePrivacyAuthorization: function (event) { + this.triggerEvent('agreeprivacyauthorization', event.detail); + }, + onChooseAvatar: function (event) { + this.triggerEvent('chooseavatar', event.detail); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/mixins/link.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/link.d.ts new file mode 100644 index 0000000..d58043b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/link.d.ts @@ -0,0 +1 @@ +export declare const link: string; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/link.js b/src/miniprogram_npm/@vant/weapp/mixins/link.js new file mode 100644 index 0000000..14cb7e8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/link.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.link = void 0; +exports.link = Behavior({ + properties: { + url: String, + linkType: { + type: String, + value: 'navigateTo', + }, + }, + methods: { + jumpLink: function (urlKey) { + if (urlKey === void 0) { urlKey = 'url'; } + var url = this.data[urlKey]; + if (url) { + if (this.data.linkType === 'navigateTo' && + getCurrentPages().length > 9) { + wx.redirectTo({ url: url }); + } + else { + wx[this.data.linkType]({ url: url }); + } + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts new file mode 100644 index 0000000..4625447 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts @@ -0,0 +1,6 @@ +/// +/// +type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption; +type Scroller = (this: WechatMiniprogram.Component.TrivialInstance, event?: IPageScrollOption) => void; +export declare function pageScrollMixin(scroller: Scroller): string; +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.js b/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.js new file mode 100644 index 0000000..fce7049 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/page-scroll.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pageScrollMixin = void 0; +var validator_1 = require("../common/validator"); +var utils_1 = require("../common/utils"); +function onPageScroll(event) { + var _a = (0, utils_1.getCurrentPage)().vanPageScroller, vanPageScroller = _a === void 0 ? [] : _a; + vanPageScroller.forEach(function (scroller) { + if (typeof scroller === 'function') { + // @ts-ignore + scroller(event); + } + }); +} +function pageScrollMixin(scroller) { + return Behavior({ + attached: function () { + var page = (0, utils_1.getCurrentPage)(); + if (!(0, utils_1.isDef)(page)) { + return; + } + var _scroller = scroller.bind(this); + var _a = page.vanPageScroller, vanPageScroller = _a === void 0 ? [] : _a; + if ((0, validator_1.isFunction)(page.onPageScroll) && page.onPageScroll !== onPageScroll) { + vanPageScroller.push(page.onPageScroll.bind(page)); + } + vanPageScroller.push(_scroller); + page.vanPageScroller = vanPageScroller; + page.onPageScroll = onPageScroll; + this._scroller = _scroller; + }, + detached: function () { + var _this = this; + var page = (0, utils_1.getCurrentPage)(); + if (!(0, utils_1.isDef)(page) || !(0, utils_1.isDef)(page.vanPageScroller)) { + return; + } + var vanPageScroller = page.vanPageScroller; + var index = vanPageScroller.findIndex(function (v) { return v === _this._scroller; }); + if (index > -1) { + page.vanPageScroller.splice(index, 1); + } + this._scroller = undefined; + }, + }); +} +exports.pageScrollMixin = pageScrollMixin; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/touch.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/touch.d.ts new file mode 100644 index 0000000..35ee831 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/touch.d.ts @@ -0,0 +1 @@ +export declare const touch: string; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/touch.js b/src/miniprogram_npm/@vant/weapp/mixins/touch.js new file mode 100644 index 0000000..d762c2c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/touch.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.touch = void 0; +// @ts-nocheck +var MIN_DISTANCE = 10; +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} +exports.touch = Behavior({ + methods: { + resetTouchStatus: function () { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + touchStart: function (event) { + this.resetTouchStatus(); + var touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + touchMove: function (event) { + var touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = + this.direction || getDirection(this.offsetX, this.offsetY); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/mixins/transition.d.ts b/src/miniprogram_npm/@vant/weapp/mixins/transition.d.ts new file mode 100644 index 0000000..dd829e5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/transition.d.ts @@ -0,0 +1 @@ +export declare function transition(showDefaultValue: boolean): string; diff --git a/src/miniprogram_npm/@vant/weapp/mixins/transition.js b/src/miniprogram_npm/@vant/weapp/mixins/transition.js new file mode 100644 index 0000000..8cc6ca9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/mixins/transition.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transition = void 0; +// @ts-nocheck +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var getClassNames = function (name) { return ({ + enter: "van-".concat(name, "-enter van-").concat(name, "-enter-active enter-class enter-active-class"), + 'enter-to': "van-".concat(name, "-enter-to van-").concat(name, "-enter-active enter-to-class enter-active-class"), + leave: "van-".concat(name, "-leave van-").concat(name, "-leave-active leave-class leave-active-class"), + 'leave-to': "van-".concat(name, "-leave-to van-").concat(name, "-leave-active leave-to-class leave-active-class"), +}); }; +function transition(showDefaultValue) { + return Behavior({ + properties: { + customStyle: String, + // @ts-ignore + show: { + type: Boolean, + value: showDefaultValue, + observer: 'observeShow', + }, + // @ts-ignore + duration: { + type: null, + value: 300, + }, + name: { + type: String, + value: 'fade', + }, + }, + data: { + type: '', + inited: false, + display: false, + }, + ready: function () { + if (this.data.show === true) { + this.observeShow(true, false); + } + }, + methods: { + observeShow: function (value, old) { + if (value === old) { + return; + } + value ? this.enter() : this.leave(); + }, + enter: function () { + var _this = this; + if (this.enterFinishedPromise) + return; + this.enterFinishedPromise = new Promise(function (resolve) { + var _a = _this.data, duration = _a.duration, name = _a.name; + var classNames = getClassNames(name); + var currentDuration = (0, validator_1.isObj)(duration) ? duration.enter : duration; + if (_this.status === 'enter') { + return; + } + _this.status = 'enter'; + _this.$emit('before-enter'); + (0, utils_1.requestAnimationFrame)(function () { + if (_this.status !== 'enter') { + return; + } + _this.$emit('enter'); + _this.setData({ + inited: true, + display: true, + classes: classNames.enter, + currentDuration: currentDuration, + }); + (0, utils_1.requestAnimationFrame)(function () { + if (_this.status !== 'enter') { + return; + } + _this.transitionEnded = false; + _this.setData({ classes: classNames['enter-to'] }); + resolve(); + }); + }); + }); + }, + leave: function () { + var _this = this; + if (!this.enterFinishedPromise) + return; + this.enterFinishedPromise.then(function () { + if (!_this.data.display) { + return; + } + var _a = _this.data, duration = _a.duration, name = _a.name; + var classNames = getClassNames(name); + var currentDuration = (0, validator_1.isObj)(duration) ? duration.leave : duration; + _this.status = 'leave'; + _this.$emit('before-leave'); + (0, utils_1.requestAnimationFrame)(function () { + if (_this.status !== 'leave') { + return; + } + _this.$emit('leave'); + _this.setData({ + classes: classNames.leave, + currentDuration: currentDuration, + }); + (0, utils_1.requestAnimationFrame)(function () { + if (_this.status !== 'leave') { + return; + } + _this.transitionEnded = false; + setTimeout(function () { + _this.onTransitionEnd(); + _this.enterFinishedPromise = null; + }, currentDuration); + _this.setData({ classes: classNames['leave-to'] }); + }); + }); + }); + }, + onTransitionEnd: function () { + if (this.transitionEnded) { + return; + } + this.transitionEnded = true; + this.$emit("after-".concat(this.status)); + var _a = this.data, show = _a.show, display = _a.display; + if (!show && display) { + this.setData({ display: false }); + } + }, + }, + }); +} +exports.transition = transition; diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts b/src/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.js b/src/miniprogram_npm/@vant/weapp/nav-bar/index.js new file mode 100644 index 0000000..376b561 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + classes: ['title-class'], + props: { + title: String, + fixed: { + type: Boolean, + observer: 'setHeight', + }, + placeholder: { + type: Boolean, + observer: 'setHeight', + }, + leftText: String, + rightText: String, + customStyle: String, + leftArrow: Boolean, + border: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 1, + }, + safeAreaInsetTop: { + type: Boolean, + value: true, + }, + }, + data: { + height: 46, + }, + created: function () { + var statusBarHeight = (0, utils_1.getSystemInfoSync)().statusBarHeight; + this.setData({ + statusBarHeight: statusBarHeight, + height: 46 + statusBarHeight, + }); + }, + mounted: function () { + this.setHeight(); + }, + methods: { + onClickLeft: function () { + this.$emit('click-left'); + }, + onClickRight: function () { + this.$emit('click-right'); + }, + setHeight: function () { + var _this = this; + if (!this.data.fixed || !this.data.placeholder) { + return; + } + wx.nextTick(function () { + (0, utils_1.getRect)(_this, '.van-nav-bar').then(function (res) { + if (res && 'height' in res) { + _this.setData({ height: res.height }); + } + }); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.json b/src/miniprogram_npm/@vant/weapp/nav-bar/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxml b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxml new file mode 100644 index 0000000..b6405fd --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxml @@ -0,0 +1,42 @@ + + + + + + + + + + + {{ leftText }} + + + + + {{ title }} + + + + {{ rightText }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxs b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxs new file mode 100644 index 0000000..55b4158 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxs @@ -0,0 +1,13 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function barStyle(data) { + return style({ + 'z-index': data.zIndex, + 'padding-top': data.safeAreaInsetTop ? data.statusBarHeight + 'px' : 0, + }); +} + +module.exports = { + barStyle: barStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxss b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxss new file mode 100644 index 0000000..d11c31e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/nav-bar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-nav-bar{background-color:var(--nav-bar-background-color,#fff);box-sizing:initial;height:var(--nav-bar-height,46px);line-height:var(--nav-bar-height,46px);position:relative;text-align:center;-webkit-user-select:none;user-select:none}.van-nav-bar__content{height:100%;position:relative}.van-nav-bar__text{color:var(--nav-bar-text-color,#1989fa);display:inline-block;margin:0 calc(var(--padding-md, 16px)*-1);padding:0 var(--padding-md,16px);vertical-align:middle}.van-nav-bar__text--hover{background-color:#f2f3f5}.van-nav-bar__arrow{color:var(--nav-bar-icon-color,#1989fa)!important;font-size:var(--nav-bar-arrow-size,16px)!important;vertical-align:middle}.van-nav-bar__arrow+.van-nav-bar__text{margin-left:-20px;padding-left:25px}.van-nav-bar--fixed{left:0;position:fixed;top:0;width:100%}.van-nav-bar__title{color:var(--nav-bar-title-text-color,#323233);font-size:var(--nav-bar-title-font-size,16px);font-weight:var(--font-weight-bold,500);margin:0 auto;max-width:60%}.van-nav-bar__left,.van-nav-bar__right{align-items:center;bottom:0;display:flex;font-size:var(--font-size-md,14px);position:absolute;top:0}.van-nav-bar__left{left:var(--padding-md,16px)}.van-nav-bar__right{right:var(--padding-md,16px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts b/src/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.js b/src/miniprogram_npm/@vant/weapp/notice-bar/index.js new file mode 100644 index 0000000..db2a755 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.js @@ -0,0 +1,125 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + props: { + text: { + type: String, + value: '', + observer: 'init', + }, + mode: { + type: String, + value: '', + }, + url: { + type: String, + value: '', + }, + openType: { + type: String, + value: 'navigate', + }, + delay: { + type: Number, + value: 1, + }, + speed: { + type: Number, + value: 60, + observer: 'init', + }, + scrollable: null, + leftIcon: { + type: String, + value: '', + }, + color: String, + backgroundColor: String, + background: String, + wrapable: Boolean, + }, + data: { + show: true, + }, + created: function () { + this.resetAnimation = wx.createAnimation({ + duration: 0, + timingFunction: 'linear', + }); + }, + destroyed: function () { + this.timer && clearTimeout(this.timer); + }, + mounted: function () { + this.init(); + }, + methods: { + init: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + Promise.all([ + (0, utils_1.getRect)(_this, '.van-notice-bar__content'), + (0, utils_1.getRect)(_this, '.van-notice-bar__wrap'), + ]).then(function (rects) { + var contentRect = rects[0], wrapRect = rects[1]; + var _a = _this.data, speed = _a.speed, scrollable = _a.scrollable, delay = _a.delay; + if (contentRect == null || + wrapRect == null || + !contentRect.width || + !wrapRect.width || + scrollable === false) { + return; + } + if (scrollable || wrapRect.width < contentRect.width) { + var duration = ((wrapRect.width + contentRect.width) / speed) * 1000; + _this.wrapWidth = wrapRect.width; + _this.contentWidth = contentRect.width; + _this.duration = duration; + _this.animation = wx.createAnimation({ + duration: duration, + timingFunction: 'linear', + delay: delay, + }); + _this.scroll(true); + } + }); + }); + }, + scroll: function (isInit) { + var _this = this; + if (isInit === void 0) { isInit = false; } + this.timer && clearTimeout(this.timer); + this.timer = null; + this.setData({ + animationData: this.resetAnimation + .translateX(isInit ? 0 : this.wrapWidth) + .step() + .export(), + }); + (0, utils_1.requestAnimationFrame)(function () { + _this.setData({ + animationData: _this.animation + .translateX(-_this.contentWidth) + .step() + .export(), + }); + }); + this.timer = setTimeout(function () { + _this.scroll(); + }, this.duration + this.data.delay); + }, + onClickIcon: function (event) { + if (this.data.mode === 'closeable') { + this.timer && clearTimeout(this.timer); + this.timer = null; + this.setData({ show: false }); + this.$emit('close', event.detail); + } + }, + onClick: function (event) { + this.$emit('click', event); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.json b/src/miniprogram_npm/@vant/weapp/notice-bar/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxml b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxml new file mode 100644 index 0000000..21b0973 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxml @@ -0,0 +1,38 @@ + + + + + + + + + + {{ text }} + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxs b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxs new file mode 100644 index 0000000..11e6456 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxs @@ -0,0 +1,15 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style({ + color: data.color, + 'background-color': data.backgroundColor, + background: data.background, + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxss b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxss new file mode 100644 index 0000000..497636c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notice-bar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-notice-bar{align-items:center;background-color:var(--notice-bar-background-color,#fffbe8);color:var(--notice-bar-text-color,#ed6a0c);display:flex;font-size:var(--notice-bar-font-size,14px);height:var(--notice-bar-height,40px);line-height:var(--notice-bar-line-height,24px);padding:var(--notice-bar-padding,0 16px)}.van-notice-bar--withicon{padding-right:40px;position:relative}.van-notice-bar--wrapable{height:auto;padding:var(--notice-bar-wrapable-padding,8px 16px)}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal}.van-notice-bar__left-icon{align-items:center;display:flex;margin-right:4px;vertical-align:middle}.van-notice-bar__left-icon,.van-notice-bar__right-icon{font-size:var(--notice-bar-icon-size,16px);min-width:var(--notice-bar-icon-min-width,22px)}.van-notice-bar__right-icon{position:absolute;right:15px;top:10px}.van-notice-bar__wrap{flex:1;height:var(--notice-bar-line-height,24px);overflow:hidden;position:relative}.van-notice-bar__content{position:absolute;white-space:nowrap}.van-notice-bar__content.van-ellipsis{max-width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.d.ts b/src/miniprogram_npm/@vant/weapp/notify/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.js b/src/miniprogram_npm/@vant/weapp/notify/index.js new file mode 100644 index 0000000..a9526aa --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + props: { + message: String, + background: String, + type: { + type: String, + value: 'danger', + }, + color: { + type: String, + value: color_1.WHITE, + }, + duration: { + type: Number, + value: 3000, + }, + zIndex: { + type: Number, + value: 110, + }, + safeAreaInsetTop: { + type: Boolean, + value: false, + }, + top: null, + }, + data: { + show: false, + onOpened: null, + onClose: null, + onClick: null, + }, + created: function () { + var statusBarHeight = (0, utils_1.getSystemInfoSync)().statusBarHeight; + this.setData({ statusBarHeight: statusBarHeight }); + }, + methods: { + show: function () { + var _this = this; + var _a = this.data, duration = _a.duration, onOpened = _a.onOpened; + clearTimeout(this.timer); + this.setData({ show: true }); + wx.nextTick(onOpened); + if (duration > 0 && duration !== Infinity) { + this.timer = setTimeout(function () { + _this.hide(); + }, duration); + } + }, + hide: function () { + var onClose = this.data.onClose; + clearTimeout(this.timer); + this.setData({ show: false }); + wx.nextTick(onClose); + }, + onTap: function (event) { + var onClick = this.data.onClick; + if (onClick) { + onClick(event.detail); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.json b/src/miniprogram_npm/@vant/weapp/notify/index.json new file mode 100644 index 0000000..c14a65f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-transition": "../transition/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.wxml b/src/miniprogram_npm/@vant/weapp/notify/index.wxml new file mode 100644 index 0000000..42d913e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.wxml @@ -0,0 +1,21 @@ + + + + + + + {{ message }} + + diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.wxs b/src/miniprogram_npm/@vant/weapp/notify/index.wxs new file mode 100644 index 0000000..bbb94c2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.wxs @@ -0,0 +1,22 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style({ + 'z-index': data.zIndex, + top: addUnit(data.top), + }); +} + +function notifyStyle(data) { + return style({ + background: data.background, + color: data.color, + }); +} + +module.exports = { + rootStyle: rootStyle, + notifyStyle: notifyStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/notify/index.wxss b/src/miniprogram_npm/@vant/weapp/notify/index.wxss new file mode 100644 index 0000000..c030e9b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-notify{word-wrap:break-word;font-size:var(--notify-font-size,14px);line-height:var(--notify-line-height,20px);padding:var(--notify-padding,6px 15px);text-align:center}.van-notify__container{box-sizing:border-box;left:0;position:fixed;top:0;width:100%}.van-notify--primary{background-color:var(--notify-primary-background-color,#1989fa)}.van-notify--success{background-color:var(--notify-success-background-color,#07c160)}.van-notify--danger{background-color:var(--notify-danger-background-color,#ee0a24)}.van-notify--warning{background-color:var(--notify-warning-background-color,#ff976a)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/notify/notify.d.ts b/src/miniprogram_npm/@vant/weapp/notify/notify.d.ts new file mode 100644 index 0000000..d5213cb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/notify.d.ts @@ -0,0 +1,22 @@ +interface NotifyOptions { + type?: 'primary' | 'success' | 'danger' | 'warning'; + color?: string; + zIndex?: number; + top?: number; + message: string; + context?: any; + duration?: number; + selector?: string; + background?: string; + safeAreaInsetTop?: boolean; + onClick?: () => void; + onOpened?: () => void; + onClose?: () => void; +} +declare function Notify(options: NotifyOptions | string): any; +declare namespace Notify { + var clear: (options?: NotifyOptions | undefined) => void; + var setDefaultOptions: (options: NotifyOptions) => void; + var resetDefaultOptions: () => void; +} +export default Notify; diff --git a/src/miniprogram_npm/@vant/weapp/notify/notify.js b/src/miniprogram_npm/@vant/weapp/notify/notify.js new file mode 100644 index 0000000..d470431 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/notify/notify.js @@ -0,0 +1,67 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var defaultOptions = { + selector: '#van-notify', + type: 'danger', + message: '', + background: '', + duration: 3000, + zIndex: 110, + top: 0, + color: color_1.WHITE, + safeAreaInsetTop: false, + onClick: function () { }, + onOpened: function () { }, + onClose: function () { }, +}; +var currentOptions = __assign({}, defaultOptions); +function parseOptions(message) { + if (message == null) { + return {}; + } + return typeof message === 'string' ? { message: message } : message; +} +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +function Notify(options) { + options = __assign(__assign({}, currentOptions), parseOptions(options)); + var context = options.context || getContext(); + var notify = context.selectComponent(options.selector); + delete options.context; + delete options.selector; + if (notify) { + notify.setData(options); + notify.show(); + return notify; + } + console.warn('未找到 van-notify 节点,请确认 selector 及 context 是否正确'); +} +exports.default = Notify; +Notify.clear = function (options) { + options = __assign(__assign({}, defaultOptions), parseOptions(options)); + var context = options.context || getContext(); + var notify = context.selectComponent(options.selector); + if (notify) { + notify.hide(); + } +}; +Notify.setDefaultOptions = function (options) { + Object.assign(currentOptions, options); +}; +Notify.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); +}; diff --git a/src/miniprogram_npm/@vant/weapp/overlay/index.d.ts b/src/miniprogram_npm/@vant/weapp/overlay/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/overlay/index.js b/src/miniprogram_npm/@vant/weapp/overlay/index.js new file mode 100644 index 0000000..9b58b5f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/index.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + show: Boolean, + customStyle: String, + duration: { + type: null, + value: 300, + }, + zIndex: { + type: Number, + value: 1, + }, + lockScroll: { + type: Boolean, + value: true, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + methods: { + onClick: function () { + this.$emit('click'); + }, + // for prevent touchmove + noop: function () { }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/overlay/index.json b/src/miniprogram_npm/@vant/weapp/overlay/index.json new file mode 100644 index 0000000..c14a65f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-transition": "../transition/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/overlay/index.wxml b/src/miniprogram_npm/@vant/weapp/overlay/index.wxml new file mode 100644 index 0000000..17fc56f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/index.wxml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/overlay/index.wxss b/src/miniprogram_npm/@vant/weapp/overlay/index.wxss new file mode 100644 index 0000000..d1ad81a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-overlay{background-color:var(--overlay-background-color,rgba(0,0,0,.7));height:100%;left:0;position:fixed;top:0;width:100%} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/overlay/overlay.wxml b/src/miniprogram_npm/@vant/weapp/overlay/overlay.wxml new file mode 100644 index 0000000..017e801 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/overlay/overlay.wxml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/panel/index.d.ts b/src/miniprogram_npm/@vant/weapp/panel/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/panel/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/panel/index.js b/src/miniprogram_npm/@vant/weapp/panel/index.js new file mode 100644 index 0000000..818b8c5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/panel/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['header-class', 'footer-class'], + props: { + desc: String, + title: String, + status: String, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/panel/index.json b/src/miniprogram_npm/@vant/weapp/panel/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/panel/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/panel/index.wxml b/src/miniprogram_npm/@vant/weapp/panel/index.wxml new file mode 100644 index 0000000..1843703 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/panel/index.wxml @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/panel/index.wxss b/src/miniprogram_npm/@vant/weapp/panel/index.wxss new file mode 100644 index 0000000..485edcd --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/panel/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-panel{background:var(--panel-background-color,#fff)}.van-panel__header-value{color:var(--panel-header-value-color,#ee0a24)}.van-panel__footer{padding:var(--panel-footer-padding,8px 16px)}.van-panel__footer:empty{display:none} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.d.ts b/src/miniprogram_npm/@vant/weapp/picker-column/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.js b/src/miniprogram_npm/@vant/weapp/picker-column/index.js new file mode 100644 index 0000000..9dbf17c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var DEFAULT_DURATION = 200; +(0, component_1.VantComponent)({ + classes: ['active-class'], + props: { + valueKey: String, + className: String, + itemHeight: Number, + visibleItemCount: Number, + initialOptions: { + type: Array, + value: [], + }, + defaultIndex: { + type: Number, + value: 0, + observer: function (value) { + this.setIndex(value); + }, + }, + }, + data: { + startY: 0, + offset: 0, + duration: 0, + startOffset: 0, + options: [], + currentIndex: 0, + }, + created: function () { + var _this = this; + var _a = this.data, defaultIndex = _a.defaultIndex, initialOptions = _a.initialOptions; + this.set({ + currentIndex: defaultIndex, + options: initialOptions, + }).then(function () { + _this.setIndex(defaultIndex); + }); + }, + methods: { + getCount: function () { + return this.data.options.length; + }, + onTouchStart: function (event) { + this.setData({ + startY: event.touches[0].clientY, + startOffset: this.data.offset, + duration: 0, + }); + }, + onTouchMove: function (event) { + var data = this.data; + var deltaY = event.touches[0].clientY - data.startY; + this.setData({ + offset: (0, utils_1.range)(data.startOffset + deltaY, -(this.getCount() * data.itemHeight), data.itemHeight), + }); + }, + onTouchEnd: function () { + var data = this.data; + if (data.offset !== data.startOffset) { + this.setData({ duration: DEFAULT_DURATION }); + var index = (0, utils_1.range)(Math.round(-data.offset / data.itemHeight), 0, this.getCount() - 1); + this.setIndex(index, true); + } + }, + onClickItem: function (event) { + var index = event.currentTarget.dataset.index; + this.setIndex(index, true); + }, + adjustIndex: function (index) { + var data = this.data; + var count = this.getCount(); + index = (0, utils_1.range)(index, 0, count); + for (var i = index; i < count; i++) { + if (!this.isDisabled(data.options[i])) + return i; + } + for (var i = index - 1; i >= 0; i--) { + if (!this.isDisabled(data.options[i])) + return i; + } + }, + isDisabled: function (option) { + return (0, validator_1.isObj)(option) && option.disabled; + }, + getOptionText: function (option) { + var data = this.data; + return (0, validator_1.isObj)(option) && data.valueKey in option + ? option[data.valueKey] + : option; + }, + setIndex: function (index, userAction) { + var _this = this; + var data = this.data; + index = this.adjustIndex(index) || 0; + var offset = -index * data.itemHeight; + if (index !== data.currentIndex) { + return this.set({ offset: offset, currentIndex: index }).then(function () { + userAction && _this.$emit('change', index); + }); + } + return this.set({ offset: offset }); + }, + setValue: function (value) { + var options = this.data.options; + for (var i = 0; i < options.length; i++) { + if (this.getOptionText(options[i]) === value) { + return this.setIndex(i); + } + } + return Promise.resolve(); + }, + getValue: function () { + var data = this.data; + return data.options[data.currentIndex]; + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.json b/src/miniprogram_npm/@vant/weapp/picker-column/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.wxml b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxml new file mode 100644 index 0000000..f2c8da2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxml @@ -0,0 +1,23 @@ + + + + + + {{ computed.optionText(option, valueKey) }} + + diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.wxs b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxs new file mode 100644 index 0000000..2d5a611 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxs @@ -0,0 +1,36 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} + +function optionText(option, valueKey) { + return isObj(option) && option[valueKey] != null ? option[valueKey] : option; +} + +function rootStyle(data) { + return style({ + height: addUnit(data.itemHeight * data.visibleItemCount), + }); +} + +function wrapperStyle(data) { + var offset = addUnit( + data.offset + (data.itemHeight * (data.visibleItemCount - 1)) / 2 + ); + + return style({ + transition: 'transform ' + data.duration + 'ms', + 'line-height': addUnit(data.itemHeight), + transform: 'translate3d(0, ' + offset + ', 0)', + }); +} + +module.exports = { + optionText: optionText, + rootStyle: rootStyle, + wrapperStyle: wrapperStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/picker-column/index.wxss b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxss new file mode 100644 index 0000000..519a438 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker-column/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-picker-column{color:var(--picker-option-text-color,#000);font-size:var(--picker-option-font-size,16px);overflow:hidden;text-align:center}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{color:var(--picker-option-selected-text-color,#323233);font-weight:var(--font-weight-bold,500)}.van-picker-column__item--disabled{opacity:var(--picker-option-disabled-opacity,.3)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.d.ts b/src/miniprogram_npm/@vant/weapp/picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.js b/src/miniprogram_npm/@vant/weapp/picker/index.js new file mode 100644 index 0000000..06d1826 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.js @@ -0,0 +1,161 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var shared_1 = require("./shared"); +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { valueKey: { + type: String, + value: 'text', + }, toolbarPosition: { + type: String, + value: 'top', + }, defaultIndex: { + type: Number, + value: 0, + }, columns: { + type: Array, + value: [], + observer: function (columns) { + if (columns === void 0) { columns = []; } + this.simple = columns.length && !columns[0].values; + if (Array.isArray(this.children) && this.children.length) { + this.setColumns().catch(function () { }); + } + }, + } }), + beforeCreate: function () { + var _this = this; + Object.defineProperty(this, 'children', { + get: function () { return _this.selectAllComponents('.van-picker__column') || []; }, + }); + }, + methods: { + noop: function () { }, + setColumns: function () { + var _this = this; + var data = this.data; + var columns = this.simple ? [{ values: data.columns }] : data.columns; + var stack = columns.map(function (column, index) { + return _this.setColumnValues(index, column.values); + }); + return Promise.all(stack); + }, + emit: function (event) { + var type = event.currentTarget.dataset.type; + if (this.simple) { + this.$emit(type, { + value: this.getColumnValue(0), + index: this.getColumnIndex(0), + }); + } + else { + this.$emit(type, { + value: this.getValues(), + index: this.getIndexes(), + }); + } + }, + onChange: function (event) { + if (this.simple) { + this.$emit('change', { + picker: this, + value: this.getColumnValue(0), + index: this.getColumnIndex(0), + }); + } + else { + this.$emit('change', { + picker: this, + value: this.getValues(), + index: event.currentTarget.dataset.index, + }); + } + }, + // get column instance by index + getColumn: function (index) { + return this.children[index]; + }, + // get column value by index + getColumnValue: function (index) { + var column = this.getColumn(index); + return column && column.getValue(); + }, + // set column value by index + setColumnValue: function (index, value) { + var column = this.getColumn(index); + if (column == null) { + return Promise.reject(new Error('setColumnValue: 对应列不存在')); + } + return column.setValue(value); + }, + // get column option index by column index + getColumnIndex: function (columnIndex) { + return (this.getColumn(columnIndex) || {}).data.currentIndex; + }, + // set column option index by column index + setColumnIndex: function (columnIndex, optionIndex) { + var column = this.getColumn(columnIndex); + if (column == null) { + return Promise.reject(new Error('setColumnIndex: 对应列不存在')); + } + return column.setIndex(optionIndex); + }, + // get options of column by index + getColumnValues: function (index) { + return (this.children[index] || {}).data.options; + }, + // set options of column by index + setColumnValues: function (index, options, needReset) { + if (needReset === void 0) { needReset = true; } + var column = this.children[index]; + if (column == null) { + return Promise.reject(new Error('setColumnValues: 对应列不存在')); + } + var isSame = JSON.stringify(column.data.options) === JSON.stringify(options); + if (isSame) { + return Promise.resolve(); + } + return column.set({ options: options }).then(function () { + if (needReset) { + column.setIndex(0); + } + }); + }, + // get values of all columns + getValues: function () { + return this.children.map(function (child) { return child.getValue(); }); + }, + // set values of all columns + setValues: function (values) { + var _this = this; + var stack = values.map(function (value, index) { + return _this.setColumnValue(index, value); + }); + return Promise.all(stack); + }, + // get indexes of all columns + getIndexes: function () { + return this.children.map(function (child) { return child.data.currentIndex; }); + }, + // set indexes of all columns + setIndexes: function (indexes) { + var _this = this; + var stack = indexes.map(function (optionIndex, columnIndex) { + return _this.setColumnIndex(columnIndex, optionIndex); + }); + return Promise.all(stack); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.json b/src/miniprogram_npm/@vant/weapp/picker/index.json new file mode 100644 index 0000000..2fcec89 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "picker-column": "../picker-column/index", + "loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.wxml b/src/miniprogram_npm/@vant/weapp/picker/index.wxml new file mode 100644 index 0000000..8564ccc --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.wxml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.wxs b/src/miniprogram_npm/@vant/weapp/picker/index.wxs new file mode 100644 index 0000000..0abbd10 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.wxs @@ -0,0 +1,42 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); +var array = require('../wxs/array.wxs'); + +function columnsStyle(data) { + return style({ + height: addUnit(data.itemHeight * data.visibleItemCount), + }); +} + +function maskStyle(data) { + return style({ + 'background-size': + '100% ' + addUnit((data.itemHeight * (data.visibleItemCount - 1)) / 2), + }); +} + +function frameStyle(data) { + return style({ + height: addUnit(data.itemHeight), + }); +} + +function columns(columns) { + if (!array.isArray(columns)) { + return []; + } + + if (columns.length && !columns[0].values) { + return [{ values: columns }]; + } + + return columns; +} + +module.exports = { + columnsStyle: columnsStyle, + frameStyle: frameStyle, + maskStyle: maskStyle, + columns: columns, +}; diff --git a/src/miniprogram_npm/@vant/weapp/picker/index.wxss b/src/miniprogram_npm/@vant/weapp/picker/index.wxss new file mode 100644 index 0000000..d924abb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-picker{-webkit-text-size-adjust:100%;background-color:var(--picker-background-color,#fff);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:flex;height:var(--picker-toolbar-height,44px);justify-content:space-between;line-height:var(--picker-toolbar-height,44px)}.van-picker__cancel,.van-picker__confirm{font-size:var(--picker-action-font-size,14px);padding:var(--picker-action-padding,0 16px)}.van-picker__cancel--hover,.van-picker__confirm--hover{opacity:.7}.van-picker__confirm{color:var(--picker-confirm-action-color,#576b95)}.van-picker__cancel{color:var(--picker-cancel-action-color,#969799)}.van-picker__title{font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);max-width:50%;text-align:center}.van-picker__columns{display:flex;position:relative}.van-picker__column{flex:1 1;width:0}.van-picker__loading{align-items:center;background-color:var(--picker-loading-mask-color,hsla(0,0%,100%,.9));bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:4}.van-picker__mask{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-image:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-position:top,bottom;background-repeat:no-repeat;height:100%;left:0;top:0;width:100%;z-index:2}.van-picker__frame,.van-picker__mask{pointer-events:none;position:absolute}.van-picker__frame{left:16px;right:16px;top:50%;transform:translateY(-50%);z-index:1} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/picker/shared.d.ts b/src/miniprogram_npm/@vant/weapp/picker/shared.d.ts new file mode 100644 index 0000000..c548045 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/shared.d.ts @@ -0,0 +1,21 @@ +export declare const pickerProps: { + title: StringConstructor; + loading: BooleanConstructor; + showToolbar: BooleanConstructor; + cancelButtonText: { + type: StringConstructor; + value: string; + }; + confirmButtonText: { + type: StringConstructor; + value: string; + }; + visibleItemCount: { + type: NumberConstructor; + value: number; + }; + itemHeight: { + type: NumberConstructor; + value: number; + }; +}; diff --git a/src/miniprogram_npm/@vant/weapp/picker/shared.js b/src/miniprogram_npm/@vant/weapp/picker/shared.js new file mode 100644 index 0000000..3d40a8c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/shared.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pickerProps = void 0; +exports.pickerProps = { + title: String, + loading: Boolean, + showToolbar: Boolean, + cancelButtonText: { + type: String, + value: '取消', + }, + confirmButtonText: { + type: String, + value: '确认', + }, + visibleItemCount: { + type: Number, + value: 6, + }, + itemHeight: { + type: Number, + value: 44, + }, +}; diff --git a/src/miniprogram_npm/@vant/weapp/picker/toolbar.wxml b/src/miniprogram_npm/@vant/weapp/picker/toolbar.wxml new file mode 100644 index 0000000..414f612 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/picker/toolbar.wxml @@ -0,0 +1,23 @@ + + + {{ cancelButtonText }} + + {{ + title + }} + + {{ confirmButtonText }} + + diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.d.ts b/src/miniprogram_npm/@vant/weapp/popup/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.js b/src/miniprogram_npm/@vant/weapp/popup/index.js new file mode 100644 index 0000000..18b08e6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.js @@ -0,0 +1,99 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var transition_1 = require("../mixins/transition"); +(0, component_1.VantComponent)({ + classes: [ + 'enter-class', + 'enter-active-class', + 'enter-to-class', + 'leave-class', + 'leave-active-class', + 'leave-to-class', + 'close-icon-class', + ], + mixins: [(0, transition_1.transition)(false)], + props: { + round: Boolean, + closeable: Boolean, + customStyle: String, + overlayStyle: String, + transition: { + type: String, + observer: 'observeClass', + }, + zIndex: { + type: Number, + value: 100, + }, + overlay: { + type: Boolean, + value: true, + }, + closeIcon: { + type: String, + value: 'cross', + }, + closeIconPosition: { + type: String, + value: 'top-right', + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + position: { + type: String, + value: 'center', + observer: 'observeClass', + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + safeAreaInsetTop: { + type: Boolean, + value: false, + }, + safeAreaTabBar: { + type: Boolean, + value: false, + }, + lockScroll: { + type: Boolean, + value: true, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + created: function () { + this.observeClass(); + }, + methods: { + onClickCloseIcon: function () { + this.$emit('close'); + }, + onClickOverlay: function () { + this.$emit('click-overlay'); + if (this.data.closeOnClickOverlay) { + this.$emit('close'); + } + }, + observeClass: function () { + var _a = this.data, transition = _a.transition, position = _a.position, duration = _a.duration; + var updateData = { + name: transition || position, + }; + if (transition === 'none') { + updateData.duration = 0; + this.originDuration = duration; + } + else if (this.originDuration != null) { + updateData.duration = this.originDuration; + } + this.setData(updateData); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.json b/src/miniprogram_npm/@vant/weapp/popup/index.json new file mode 100644 index 0000000..88a6eab --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-overlay": "../overlay/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.wxml b/src/miniprogram_npm/@vant/weapp/popup/index.wxml new file mode 100644 index 0000000..ab824b1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.wxml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.wxs b/src/miniprogram_npm/@vant/weapp/popup/index.wxs new file mode 100644 index 0000000..8d59f24 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function popupStyle(data) { + return style([ + { + 'z-index': data.zIndex, + '-webkit-transition-duration': data.currentDuration + 'ms', + 'transition-duration': data.currentDuration + 'ms', + }, + data.display ? null : 'display: none', + data.customStyle, + ]); +} + +module.exports = { + popupStyle: popupStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/popup/index.wxss b/src/miniprogram_npm/@vant/weapp/popup/index.wxss new file mode 100644 index 0000000..91983b4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-popup{-webkit-overflow-scrolling:touch;animation:ease both;background-color:var(--popup-background-color,#fff);box-sizing:border-box;max-height:100%;overflow-y:auto;position:fixed;transition-timing-function:ease}.van-popup--center{left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:var(--popup-round-border-radius,16px)}.van-popup--top{left:0;top:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px))}.van-popup--right{right:0;top:50%;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px))}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0}.van-popup--left{left:0;top:50%;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0}.van-popup--bottom.van-popup--safe{padding-bottom:env(safe-area-inset-bottom)}.van-popup--bottom.van-popup--safeTabBar,.van-popup--top.van-popup--safeTabBar{bottom:var(--tabbar-height,50px)}.van-popup--safeTop{padding-top:env(safe-area-inset-top)}.van-popup__close-icon{color:var(--popup-close-icon-color,#969799);font-size:var(--popup-close-icon-size,18px);position:absolute;z-index:var(--popup-close-icon-z-index,1)}.van-popup__close-icon--top-left{left:var(--popup-close-icon-margin,16px);top:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--top-right{right:var(--popup-close-icon-margin,16px);top:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--bottom-left{bottom:var(--popup-close-icon-margin,16px);left:var(--popup-close-icon-margin,16px)}.van-popup__close-icon--bottom-right{bottom:var(--popup-close-icon-margin,16px);right:var(--popup-close-icon-margin,16px)}.van-popup__close-icon:active{opacity:.6}.van-scale-enter-active,.van-scale-leave-active{transition-property:opacity,transform}.van-scale-enter,.van-scale-leave-to{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-center-enter-active,.van-center-leave-active{transition-property:opacity}.van-center-enter,.van-center-leave-to{opacity:0}.van-bottom-enter-active,.van-bottom-leave-active,.van-left-enter-active,.van-left-leave-active,.van-right-enter-active,.van-right-leave-active,.van-top-enter-active,.van-top-leave-active{transition-property:transform}.van-bottom-enter,.van-bottom-leave-to{transform:translate3d(0,100%,0)}.van-top-enter,.van-top-leave-to{transform:translate3d(0,-100%,0)}.van-left-enter,.van-left-leave-to{transform:translate3d(-100%,-50%,0)}.van-right-enter,.van-right-leave-to{transform:translate3d(100%,-50%,0)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/popup/popup.wxml b/src/miniprogram_npm/@vant/weapp/popup/popup.wxml new file mode 100644 index 0000000..bd8f508 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/popup/popup.wxml @@ -0,0 +1,16 @@ + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.d.ts b/src/miniprogram_npm/@vant/weapp/progress/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.js b/src/miniprogram_npm/@vant/weapp/progress/index.js new file mode 100644 index 0000000..3bca928 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + props: { + inactive: Boolean, + percentage: { + type: Number, + observer: 'setLeft', + }, + pivotText: String, + pivotColor: String, + trackColor: String, + showPivot: { + type: Boolean, + value: true, + }, + color: { + type: String, + value: color_1.BLUE, + }, + textColor: { + type: String, + value: '#fff', + }, + strokeWidth: { + type: null, + value: 4, + }, + }, + data: { + right: 0, + }, + mounted: function () { + this.setLeft(); + }, + methods: { + setLeft: function () { + var _this = this; + Promise.all([ + (0, utils_1.getRect)(this, '.van-progress'), + (0, utils_1.getRect)(this, '.van-progress__pivot'), + ]).then(function (_a) { + var portion = _a[0], pivot = _a[1]; + if (portion && pivot) { + _this.setData({ + right: (pivot.width * (_this.data.percentage - 100)) / 100, + }); + } + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.json b/src/miniprogram_npm/@vant/weapp/progress/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.wxml b/src/miniprogram_npm/@vant/weapp/progress/index.wxml new file mode 100644 index 0000000..e81514d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.wxml @@ -0,0 +1,20 @@ + + + + + + + {{ computed.pivotText(pivotText, percentage) }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.wxs b/src/miniprogram_npm/@vant/weapp/progress/index.wxs new file mode 100644 index 0000000..5b1e8e6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.wxs @@ -0,0 +1,36 @@ +/* eslint-disable */ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function pivotText(pivotText, percentage) { + return pivotText || percentage + '%'; +} + +function rootStyle(data) { + return style({ + 'height': data.strokeWidth ? utils.addUnit(data.strokeWidth) : '', + 'background': data.trackColor, + }); +} + +function portionStyle(data) { + return style({ + background: data.inactive ? '#cacaca' : data.color, + width: data.percentage ? data.percentage + '%' : '', + }); +} + +function pivotStyle(data) { + return style({ + color: data.textColor, + right: data.right + 'px', + background: data.pivotColor ? data.pivotColor : data.inactive ? '#cacaca' : data.color, + }); +} + +module.exports = { + pivotText: pivotText, + rootStyle: rootStyle, + portionStyle: portionStyle, + pivotStyle: pivotStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/progress/index.wxss b/src/miniprogram_npm/@vant/weapp/progress/index.wxss new file mode 100644 index 0000000..a08972a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/progress/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-progress{background:var(--progress-background-color,#ebedf0);border-radius:var(--progress-height,4px);height:var(--progress-height,4px);position:relative}.van-progress__portion{background:var(--progress-color,#1989fa);border-radius:inherit;height:100%;left:0;position:absolute}.van-progress__pivot{background-color:var(--progress-pivot-background-color,#1989fa);border-radius:1em;box-sizing:border-box;color:var(--progress-pivot-text-color,#fff);font-size:var(--progress-pivot-font-size,10px);line-height:var(--progress-pivot-line-height,1.6);min-width:3.6em;padding:var(--progress-pivot-padding,0 5px);position:absolute;text-align:center;top:50%;transform:translateY(-50%);word-break:keep-all} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/radio-group/index.d.ts b/src/miniprogram_npm/@vant/weapp/radio-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/radio-group/index.js b/src/miniprogram_npm/@vant/weapp/radio-group/index.js new file mode 100644 index 0000000..ddb2a60 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio-group/index.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useChildren)('radio'), + props: { + value: { + type: null, + observer: 'updateChildren', + }, + direction: String, + disabled: { + type: Boolean, + observer: 'updateChildren', + }, + }, + methods: { + updateChildren: function () { + this.children.forEach(function (child) { return child.updateFromParent(); }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/radio-group/index.json b/src/miniprogram_npm/@vant/weapp/radio-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/radio-group/index.wxml b/src/miniprogram_npm/@vant/weapp/radio-group/index.wxml new file mode 100644 index 0000000..0ab17af --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio-group/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/radio-group/index.wxss b/src/miniprogram_npm/@vant/weapp/radio-group/index.wxss new file mode 100644 index 0000000..4e3b5d4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-radio-group--horizontal{display:flex;flex-wrap:wrap} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.d.ts b/src/miniprogram_npm/@vant/weapp/radio/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.js b/src/miniprogram_npm/@vant/weapp/radio/index.js new file mode 100644 index 0000000..61a86d5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var version_1 = require("../common/version"); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useParent)('radio-group', function () { + this.updateFromParent(); + }), + classes: ['icon-class', 'label-class'], + props: { + name: null, + value: null, + disabled: Boolean, + useIconSlot: Boolean, + checkedColor: String, + labelPosition: { + type: String, + value: 'right', + }, + labelDisabled: Boolean, + shape: { + type: String, + value: 'round', + }, + iconSize: { + type: null, + value: 20, + }, + }, + data: { + direction: '', + parentDisabled: false, + }, + methods: { + updateFromParent: function () { + if (!this.parent) { + return; + } + var _a = this.parent.data, value = _a.value, parentDisabled = _a.disabled, direction = _a.direction; + this.setData({ + value: value, + direction: direction, + parentDisabled: parentDisabled, + }); + }, + emitChange: function (value) { + var instance = this.parent || this; + instance.$emit('input', value); + instance.$emit('change', value); + if ((0, version_1.canIUseModel)()) { + instance.setData({ value: value }); + } + }, + onChange: function () { + if (!this.data.disabled && !this.data.parentDisabled) { + this.emitChange(this.data.name); + } + }, + onClickLabel: function () { + var _a = this.data, disabled = _a.disabled, parentDisabled = _a.parentDisabled, labelDisabled = _a.labelDisabled, name = _a.name; + if (!(disabled || parentDisabled) && !labelDisabled) { + this.emitChange(name); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.json b/src/miniprogram_npm/@vant/weapp/radio/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.wxml b/src/miniprogram_npm/@vant/weapp/radio/index.wxml new file mode 100644 index 0000000..5f898c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.wxml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.wxs b/src/miniprogram_npm/@vant/weapp/radio/index.wxs new file mode 100644 index 0000000..a428aad --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.wxs @@ -0,0 +1,33 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function iconStyle(data) { + var styles = { + 'font-size': addUnit(data.iconSize), + }; + + if ( + data.checkedColor && + !(data.disabled || data.parentDisabled) && + data.value === data.name + ) { + styles['border-color'] = data.checkedColor; + styles['background-color'] = data.checkedColor; + } + + return style(styles); +} + +function iconCustomStyle(data) { + return style({ + 'line-height': addUnit(data.iconSize), + 'font-size': '.8em', + display: 'block', + }); +} + +module.exports = { + iconStyle: iconStyle, + iconCustomStyle: iconCustomStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/radio/index.wxss b/src/miniprogram_npm/@vant/weapp/radio/index.wxss new file mode 100644 index 0000000..257b0c7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/radio/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-radio{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-radio__icon-wrap{flex:none}.van-radio--horizontal{margin-right:var(--padding-sm,12px)}.van-radio__icon{align-items:center;border:1px solid var(--radio-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--radio-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--radio-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-radio__icon--round{border-radius:100%}.van-radio__icon--checked{background-color:var(--radio-checked-icon-color,#1989fa);border-color:var(--radio-checked-icon-color,#1989fa);color:#fff}.van-radio__icon--disabled{background-color:var(--radio-disabled-background-color,#ebedf0);border-color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__icon--disabled.van-radio__icon--checked{color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__label{word-wrap:break-word;color:var(--radio-label-color,#323233);line-height:var(--radio-size,20px);padding-left:var(--radio-label-margin,10px)}.van-radio__label--left{float:left;margin:0 var(--radio-label-margin,10px) 0 0}.van-radio__label--disabled{color:var(--radio-disabled-label-color,#c8c9cc)}.van-radio__label:empty{margin:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/rate/index.d.ts b/src/miniprogram_npm/@vant/weapp/rate/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/rate/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/rate/index.js b/src/miniprogram_npm/@vant/weapp/rate/index.js new file mode 100644 index 0000000..30a96de --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/rate/index.js @@ -0,0 +1,93 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var version_1 = require("../common/version"); +(0, component_1.VantComponent)({ + field: true, + classes: ['icon-class'], + props: { + value: { + type: Number, + observer: function (value) { + if (value !== this.data.innerValue) { + this.setData({ innerValue: value }); + } + }, + }, + readonly: Boolean, + disabled: Boolean, + allowHalf: Boolean, + size: null, + icon: { + type: String, + value: 'star', + }, + voidIcon: { + type: String, + value: 'star-o', + }, + color: String, + voidColor: String, + disabledColor: String, + count: { + type: Number, + value: 5, + observer: function (value) { + this.setData({ innerCountArray: Array.from({ length: value }) }); + }, + }, + gutter: null, + touchable: { + type: Boolean, + value: true, + }, + }, + data: { + innerValue: 0, + innerCountArray: Array.from({ length: 5 }), + }, + methods: { + onSelect: function (event) { + var _this = this; + var data = this.data; + var score = event.currentTarget.dataset.score; + if (!data.disabled && !data.readonly) { + this.setData({ innerValue: score + 1 }); + if ((0, version_1.canIUseModel)()) { + this.setData({ value: score + 1 }); + } + wx.nextTick(function () { + _this.$emit('input', score + 1); + _this.$emit('change', score + 1); + }); + } + }, + onTouchMove: function (event) { + var _this = this; + var touchable = this.data.touchable; + if (!touchable) + return; + var clientX = event.touches[0].clientX; + (0, utils_1.getAllRect)(this, '.van-rate__icon').then(function (list) { + var target = list + .sort(function (cur, next) { return cur.dataset.score - next.dataset.score; }) + .find(function (item) { return clientX >= item.left && clientX <= item.right; }); + if (target != null) { + _this.onSelect(__assign(__assign({}, event), { currentTarget: target })); + } + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/rate/index.json b/src/miniprogram_npm/@vant/weapp/rate/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/rate/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/rate/index.wxml b/src/miniprogram_npm/@vant/weapp/rate/index.wxml new file mode 100644 index 0000000..049714c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/rate/index.wxml @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/rate/index.wxss b/src/miniprogram_npm/@vant/weapp/rate/index.wxss new file mode 100644 index 0000000..470e4f4 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/rate/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.van-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.van-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:100%}.van-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.van-rate__icon--full,.van-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.van-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/row/index.d.ts b/src/miniprogram_npm/@vant/weapp/row/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/row/index.js b/src/miniprogram_npm/@vant/weapp/row/index.js new file mode 100644 index 0000000..c27acd6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('col', function (target) { + var gutter = this.data.gutter; + if (gutter) { + target.setData({ gutter: gutter }); + } + }), + props: { + gutter: { + type: Number, + observer: 'setGutter', + }, + }, + methods: { + setGutter: function () { + var _this = this; + this.children.forEach(function (col) { + col.setData(_this.data); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/row/index.json b/src/miniprogram_npm/@vant/weapp/row/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/row/index.wxml b/src/miniprogram_npm/@vant/weapp/row/index.wxml new file mode 100644 index 0000000..69a4359 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/row/index.wxs b/src/miniprogram_npm/@vant/weapp/row/index.wxs new file mode 100644 index 0000000..f5c5958 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'margin-right': addUnit(-data.gutter / 2), + 'margin-left': addUnit(-data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/row/index.wxss b/src/miniprogram_npm/@vant/weapp/row/index.wxss new file mode 100644 index 0000000..bb8946b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/row/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-row:after{clear:both;content:"";display:table} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/search/index.d.ts b/src/miniprogram_npm/@vant/weapp/search/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/search/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/search/index.js b/src/miniprogram_npm/@vant/weapp/search/index.js new file mode 100644 index 0000000..b5348b0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/search/index.js @@ -0,0 +1,100 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var version_1 = require("../common/version"); +(0, component_1.VantComponent)({ + field: true, + classes: ['field-class', 'input-class', 'cancel-class'], + props: { + value: { + type: String, + value: '', + }, + label: String, + focus: Boolean, + error: Boolean, + disabled: Boolean, + readonly: Boolean, + inputAlign: String, + showAction: Boolean, + useActionSlot: Boolean, + useLeftIconSlot: Boolean, + useRightIconSlot: Boolean, + leftIcon: { + type: String, + value: 'search', + }, + rightIcon: String, + placeholder: String, + placeholderStyle: String, + actionText: { + type: String, + value: '取消', + }, + background: { + type: String, + value: '#ffffff', + }, + maxlength: { + type: Number, + value: -1, + }, + shape: { + type: String, + value: 'square', + }, + clearable: { + type: Boolean, + value: true, + }, + clearTrigger: { + type: String, + value: 'focus', + }, + clearIcon: { + type: String, + value: 'clear', + }, + cursorSpacing: { + type: Number, + value: 0, + }, + }, + methods: { + onChange: function (event) { + if ((0, version_1.canIUseModel)()) { + this.setData({ value: event.detail }); + } + this.$emit('change', event.detail); + }, + onCancel: function () { + var _this = this; + /** + * 修复修改输入框值时,输入框失焦和赋值同时触发,赋值失效 + * https://github.com/youzan/vant-weapp/issues/1768 + */ + setTimeout(function () { + if ((0, version_1.canIUseModel)()) { + _this.setData({ value: '' }); + } + _this.$emit('cancel'); + _this.$emit('change', ''); + }, 200); + }, + onSearch: function (event) { + this.$emit('search', event.detail); + }, + onFocus: function (event) { + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + this.$emit('blur', event.detail); + }, + onClear: function (event) { + this.$emit('clear', event.detail); + }, + onClickInput: function (event) { + this.$emit('click-input', event.detail); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/search/index.json b/src/miniprogram_npm/@vant/weapp/search/index.json new file mode 100644 index 0000000..b4cfe91 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/search/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-field": "../field/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/search/index.wxml b/src/miniprogram_npm/@vant/weapp/search/index.wxml new file mode 100644 index 0000000..cbcb47a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/search/index.wxml @@ -0,0 +1,54 @@ + + + + + {{ label }} + + + + + + + + + + + {{ actionText }} + + diff --git a/src/miniprogram_npm/@vant/weapp/search/index.wxss b/src/miniprogram_npm/@vant/weapp/search/index.wxss new file mode 100644 index 0000000..4f306b0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/search/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-search{align-items:center;box-sizing:border-box;display:flex;padding:var(--search-padding,10px 12px)}.van-search__content{background-color:var(--search-background-color,#f7f8fa);border-radius:2px;display:flex;flex:1;padding-left:var(--padding-sm,12px)}.van-search__content--round{border-radius:999px}.van-search__label{color:var(--search-label-color,#323233);font-size:var(--search-label-font-size,14px);line-height:var(--search-input-height,34px);padding:var(--search-label-padding,0 5px)}.van-search__field{flex:1}.van-search__field__left-icon{color:var(--search-left-icon-color,#969799)}.van-search--withaction{padding-right:0}.van-search__action{color:var(--search-action-text-color,#323233);font-size:var(--search-action-font-size,14px);line-height:var(--search-input-height,34px)}.van-search__action--hover{background-color:#f2f3f5}.van-search__action-button{padding:var(--search-action-padding,0 8px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts b/src/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.js b/src/miniprogram_npm/@vant/weapp/share-sheet/index.js new file mode 100644 index 0000000..11604a7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + // whether to show popup + show: Boolean, + // overlay custom style + overlayStyle: String, + // z-index + zIndex: { + type: Number, + value: 100, + }, + title: String, + cancelText: { + type: String, + value: '取消', + }, + description: String, + options: { + type: Array, + value: [], + }, + overlay: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + duration: { + type: null, + value: 300, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + methods: { + onClickOverlay: function () { + this.$emit('click-overlay'); + }, + onCancel: function () { + this.onClose(); + this.$emit('cancel'); + }, + onSelect: function (event) { + this.$emit('select', event.detail); + }, + onClose: function () { + this.$emit('close'); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.json b/src/miniprogram_npm/@vant/weapp/share-sheet/index.json new file mode 100644 index 0000000..15a7c22 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "options": "./options" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxml b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxml new file mode 100644 index 0000000..72a5b25 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxml @@ -0,0 +1,47 @@ + + + + + + + + {{ title }} + + + + + + {{ description }} + + + + + + + + + + + {{ cancelText }} + + diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxs b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxs new file mode 100644 index 0000000..2149ee9 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxs @@ -0,0 +1,12 @@ +/* eslint-disable */ +function isMulti(options) { + if (options == null || options[0] == null) { + return false; + } + + return "Array" === options.constructor && "Array" === options[0].constructor; +} + +module.exports = { + isMulti: isMulti +}; diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxss b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxss new file mode 100644 index 0000000..e8d8dae --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-share-sheet__header{padding:12px 16px 4px;text-align:center}.van-share-sheet__title{color:#323233;font-size:14px;font-weight:400;line-height:20px;margin-top:8px}.van-share-sheet__title:empty,.van-share-sheet__title:not(:empty)+.van-share-sheet__title{display:none}.van-share-sheet__description{color:#969799;display:block;font-size:12px;line-height:16px;margin-top:8px}.van-share-sheet__description:empty,.van-share-sheet__description:not(:empty)+.van-share-sheet__description{display:none}.van-share-sheet__cancel{background:#fff;border:none;box-sizing:initial;display:block;font-size:16px;height:auto;line-height:48px;padding:0;text-align:center;width:100%}.van-share-sheet__cancel:before{background-color:#f7f8fa;content:" ";display:block;height:8px}.van-share-sheet__cancel:after{display:none}.van-share-sheet__cancel:active{background-color:#f2f3f5} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts b/src/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.js b/src/miniprogram_npm/@vant/weapp/share-sheet/options.js new file mode 100644 index 0000000..0432d4f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.js @@ -0,0 +1,27 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + options: Array, + showBorder: Boolean, + }, + methods: { + onSelect: function (event) { + var index = event.currentTarget.dataset.index; + var option = this.data.options[index]; + this.$emit('select', __assign(__assign({}, option), { index: index })); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.json b/src/miniprogram_npm/@vant/weapp/share-sheet/options.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxml b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxml new file mode 100644 index 0000000..2983ebb --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxml @@ -0,0 +1,20 @@ + + + + + + + + {{ item.name }} + + {{ item.description }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxs b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxs new file mode 100644 index 0000000..a116d32 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxs @@ -0,0 +1,14 @@ +/* eslint-disable */ +var PRESET_ICONS = ['qq', 'link', 'weibo', 'wechat', 'poster', 'qrcode', 'weapp-qrcode', 'wechat-moments']; + +function getIconURL(icon) { + if (PRESET_ICONS.indexOf(icon) !== -1) { + return 'https://img.yzcdn.cn/vant/share-sheet-' + icon + '.png'; + } + + return icon; +} + +module.exports = { + getIconURL: getIconURL, +}; diff --git a/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxss b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxss new file mode 100644 index 0000000..b7f5455 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/share-sheet/options.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-share-sheet__options{-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto;overflow-y:visible;padding:16px 0 16px 8px;position:relative}.van-share-sheet__options--border:before{border-top:1px solid #ebedf0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:0;top:0;transform:scaleY(.5);transform-origin:center}.van-share-sheet__options::-webkit-scrollbar{height:0}.van-share-sheet__option{align-items:center;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.van-share-sheet__option:active{opacity:.7}.van-share-sheet__button{background-color:initial;border:0;height:auto;line-height:inherit;padding:0}.van-share-sheet__button:after{border:0}.van-share-sheet__icon{height:48px;margin:0 16px;width:48px}.van-share-sheet__name{color:#646566;font-size:12px;margin-top:8px;padding:0 4px}.van-share-sheet__option-description{color:#c8c9cc;font-size:12px;padding:0 4px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/sidebar-item/index.js b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.js new file mode 100644 index 0000000..eac568f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + classes: ['active-class', 'disabled-class'], + relation: (0, relation_1.useParent)('sidebar'), + props: { + dot: Boolean, + badge: null, + info: null, + title: String, + disabled: Boolean, + }, + methods: { + onClick: function () { + var _this = this; + var parent = this.parent; + if (!parent || this.data.disabled) { + return; + } + var index = parent.children.indexOf(this); + parent.setActive(index).then(function () { + _this.$emit('click', index); + parent.$emit('change', index); + }); + }, + setActive: function (selected) { + return this.setData({ selected: selected }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/sidebar-item/index.json b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.json new file mode 100644 index 0000000..bf0ebe0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml new file mode 100644 index 0000000..c5c08a6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml @@ -0,0 +1,18 @@ + + + + + + {{ title }} + + + diff --git a/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss new file mode 100644 index 0000000..f1ce421 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-sidebar-item{background-color:var(--sidebar-background-color,#f7f8fa);border-left:3px solid transparent;box-sizing:border-box;color:var(--sidebar-text-color,#323233);display:block;font-size:var(--sidebar-font-size,14px);line-height:var(--sidebar-line-height,20px);overflow:hidden;padding:var(--sidebar-padding,20px 12px 20px 8px);-webkit-user-select:none;user-select:none}.van-sidebar-item__text{display:inline-block;position:relative;word-break:break-all}.van-sidebar-item--hover:not(.van-sidebar-item--disabled){background-color:var(--sidebar-active-color,#f2f3f5)}.van-sidebar-item:after{border-bottom-width:1px}.van-sidebar-item--selected{border-color:var(--sidebar-selected-border-color,#ee0a24);color:var(--sidebar-selected-text-color,#323233);font-weight:var(--sidebar-selected-font-weight,500)}.van-sidebar-item--selected:after{border-right-width:1px}.van-sidebar-item--selected,.van-sidebar-item--selected.van-sidebar-item--hover{background-color:var(--sidebar-selected-background-color,#fff)}.van-sidebar-item--disabled{color:var(--sidebar-disabled-text-color,#c8c9cc)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/sidebar/index.d.ts b/src/miniprogram_npm/@vant/weapp/sidebar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/sidebar/index.js b/src/miniprogram_npm/@vant/weapp/sidebar/index.js new file mode 100644 index 0000000..f3e0a58 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar/index.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('sidebar-item', function () { + this.setActive(this.data.activeKey); + }), + props: { + activeKey: { + type: Number, + value: 0, + observer: 'setActive', + }, + }, + beforeCreate: function () { + this.currentActive = -1; + }, + methods: { + setActive: function (activeKey) { + var _a = this, children = _a.children, currentActive = _a.currentActive; + if (!children.length) { + return Promise.resolve(); + } + this.currentActive = activeKey; + var stack = []; + if (currentActive !== activeKey && children[currentActive]) { + stack.push(children[currentActive].setActive(false)); + } + if (children[activeKey]) { + stack.push(children[activeKey].setActive(true)); + } + return Promise.all(stack); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/sidebar/index.json b/src/miniprogram_npm/@vant/weapp/sidebar/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/sidebar/index.wxml b/src/miniprogram_npm/@vant/weapp/sidebar/index.wxml new file mode 100644 index 0000000..96b11c7 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/miniprogram_npm/@vant/weapp/sidebar/index.wxss b/src/miniprogram_npm/@vant/weapp/sidebar/index.wxss new file mode 100644 index 0000000..5a2d44f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sidebar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-sidebar{width:var(--sidebar-width,80px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/skeleton/index.d.ts b/src/miniprogram_npm/@vant/weapp/skeleton/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/skeleton/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/skeleton/index.js b/src/miniprogram_npm/@vant/weapp/skeleton/index.js new file mode 100644 index 0000000..2ab3175 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/skeleton/index.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['avatar-class', 'title-class', 'row-class'], + props: { + row: { + type: Number, + value: 0, + observer: function (value) { + this.setData({ rowArray: Array.from({ length: value }) }); + }, + }, + title: Boolean, + avatar: Boolean, + loading: { + type: Boolean, + value: true, + }, + animate: { + type: Boolean, + value: true, + }, + avatarSize: { + type: String, + value: '32px', + }, + avatarShape: { + type: String, + value: 'round', + }, + titleWidth: { + type: String, + value: '40%', + }, + rowWidth: { + type: null, + value: '100%', + observer: function (val) { + this.setData({ isArray: val instanceof Array }); + }, + }, + }, + data: { + isArray: false, + rowArray: [], + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/skeleton/index.json b/src/miniprogram_npm/@vant/weapp/skeleton/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/skeleton/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/miniprogram_npm/@vant/weapp/skeleton/index.wxml b/src/miniprogram_npm/@vant/weapp/skeleton/index.wxml new file mode 100644 index 0000000..058e2ef --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/skeleton/index.wxml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/skeleton/index.wxss b/src/miniprogram_npm/@vant/weapp/skeleton/index.wxss new file mode 100644 index 0000000..d59a5ed --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/skeleton/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-skeleton{box-sizing:border-box;display:flex;padding:var(--skeleton-padding,0 16px);width:100%}.van-skeleton__avatar{background-color:var(--skeleton-avatar-background-color,#f2f3f5);flex-shrink:0;margin-right:var(--padding-md,16px)}.van-skeleton__avatar--round{border-radius:100%}.van-skeleton__content{flex:1}.van-skeleton__avatar+.van-skeleton__content{padding-top:var(--padding-xs,8px)}.van-skeleton__row,.van-skeleton__title{background-color:var(--skeleton-row-background-color,#f2f3f5);height:var(--skeleton-row-height,16px)}.van-skeleton__title{margin:0}.van-skeleton__row:not(:first-child){margin-top:var(--skeleton-row-margin-top,12px)}.van-skeleton__title+.van-skeleton__row{margin-top:20px}.van-skeleton--animate{animation:van-skeleton-blink 1.2s ease-in-out infinite}@keyframes van-skeleton-blink{50%{opacity:.6}} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.d.ts b/src/miniprogram_npm/@vant/weapp/slider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.js b/src/miniprogram_npm/@vant/weapp/slider/index.js new file mode 100644 index 0000000..92adca8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.js @@ -0,0 +1,206 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var touch_1 = require("../mixins/touch"); +var version_1 = require("../common/version"); +var utils_1 = require("../common/utils"); +var DRAG_STATUS = { + START: 'start', + MOVING: 'moving', + END: 'end', +}; +(0, component_1.VantComponent)({ + mixins: [touch_1.touch], + props: { + range: Boolean, + disabled: Boolean, + useButtonSlot: Boolean, + activeColor: String, + inactiveColor: String, + max: { + type: Number, + value: 100, + }, + min: { + type: Number, + value: 0, + }, + step: { + type: Number, + value: 1, + }, + value: { + type: null, + value: 0, + observer: function (val) { + if (val !== this.value) { + this.updateValue(val); + } + }, + }, + vertical: Boolean, + barHeight: null, + }, + created: function () { + this.updateValue(this.data.value); + }, + methods: { + onTouchStart: function (event) { + var _this = this; + if (this.data.disabled) + return; + var index = event.currentTarget.dataset.index; + if (typeof index === 'number') { + this.buttonIndex = index; + } + this.touchStart(event); + this.startValue = this.format(this.value); + this.newValue = this.value; + if (this.isRange(this.newValue)) { + this.startValue = this.newValue.map(function (val) { return _this.format(val); }); + } + else { + this.startValue = this.format(this.newValue); + } + this.dragStatus = DRAG_STATUS.START; + }, + onTouchMove: function (event) { + var _this = this; + if (this.data.disabled) + return; + if (this.dragStatus === DRAG_STATUS.START) { + this.$emit('drag-start'); + } + this.touchMove(event); + this.dragStatus = DRAG_STATUS.MOVING; + (0, utils_1.getRect)(this, '.van-slider').then(function (rect) { + var vertical = _this.data.vertical; + var delta = vertical ? _this.deltaY : _this.deltaX; + var total = vertical ? rect.height : rect.width; + var diff = (delta / total) * _this.getRange(); + if (_this.isRange(_this.startValue)) { + _this.newValue[_this.buttonIndex] = + _this.startValue[_this.buttonIndex] + diff; + } + else { + _this.newValue = _this.startValue + diff; + } + _this.updateValue(_this.newValue, false, true); + }); + }, + onTouchEnd: function () { + var _this = this; + if (this.data.disabled) + return; + if (this.dragStatus === DRAG_STATUS.MOVING) { + this.dragStatus = DRAG_STATUS.END; + (0, utils_1.nextTick)(function () { + _this.updateValue(_this.newValue, true); + _this.$emit('drag-end'); + }); + } + }, + onClick: function (event) { + var _this = this; + if (this.data.disabled) + return; + var min = this.data.min; + (0, utils_1.getRect)(this, '.van-slider').then(function (rect) { + var vertical = _this.data.vertical; + var touch = event.touches[0]; + var delta = vertical + ? touch.clientY - rect.top + : touch.clientX - rect.left; + var total = vertical ? rect.height : rect.width; + var value = Number(min) + (delta / total) * _this.getRange(); + if (_this.isRange(_this.value)) { + var _a = _this.value, left = _a[0], right = _a[1]; + var middle = (left + right) / 2; + if (value <= middle) { + _this.updateValue([value, right], true); + } + else { + _this.updateValue([left, value], true); + } + } + else { + _this.updateValue(value, true); + } + }); + }, + isRange: function (val) { + var range = this.data.range; + return range && Array.isArray(val); + }, + handleOverlap: function (value) { + if (value[0] > value[1]) { + return value.slice(0).reverse(); + } + return value; + }, + updateValue: function (value, end, drag) { + var _this = this; + if (this.isRange(value)) { + value = this.handleOverlap(value).map(function (val) { return _this.format(val); }); + } + else { + value = this.format(value); + } + this.value = value; + var vertical = this.data.vertical; + var mainAxis = vertical ? 'height' : 'width'; + this.setData({ + wrapperStyle: "\n background: ".concat(this.data.inactiveColor || '', ";\n ").concat(vertical ? 'width' : 'height', ": ").concat((0, utils_1.addUnit)(this.data.barHeight) || '', ";\n "), + barStyle: "\n ".concat(mainAxis, ": ").concat(this.calcMainAxis(), ";\n left: ").concat(vertical ? 0 : this.calcOffset(), ";\n top: ").concat(vertical ? this.calcOffset() : 0, ";\n ").concat(drag ? 'transition: none;' : '', "\n "), + }); + if (drag) { + this.$emit('drag', { value: value }); + } + if (end) { + this.$emit('change', value); + } + if ((drag || end) && (0, version_1.canIUseModel)()) { + this.setData({ value: value }); + } + }, + getScope: function () { + return Number(this.data.max) - Number(this.data.min); + }, + getRange: function () { + var _a = this.data, max = _a.max, min = _a.min; + return max - min; + }, + getOffsetWidth: function (current, min) { + var scope = this.getScope(); + // 避免最小值小于最小step时出现负数情况 + return "".concat(Math.max(((current - min) * 100) / scope, 0), "%"); + }, + // 计算选中条的长度百分比 + calcMainAxis: function () { + var value = this.value; + var min = this.data.min; + if (this.isRange(value)) { + return this.getOffsetWidth(value[1], value[0]); + } + return this.getOffsetWidth(value, Number(min)); + }, + // 计算选中条的开始位置的偏移量 + calcOffset: function () { + var value = this.value; + var min = this.data.min; + var scope = this.getScope(); + if (this.isRange(value)) { + return "".concat(((value[0] - Number(min)) * 100) / scope, "%"); + } + return '0%'; + }, + format: function (value) { + var min = +this.data.min; + var max = +this.data.max; + var step = +this.data.step; + value = (0, utils_1.clamp)(value, min, max); + var diff = Math.round((value - min) / step) * step; + return (0, utils_1.addNumber)(min, diff); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.json b/src/miniprogram_npm/@vant/weapp/slider/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.wxml b/src/miniprogram_npm/@vant/weapp/slider/index.wxml new file mode 100644 index 0000000..7c0184f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.wxml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.wxs b/src/miniprogram_npm/@vant/weapp/slider/index.wxs new file mode 100644 index 0000000..7c43e6e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.wxs @@ -0,0 +1,14 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function barStyle(barHeight, activeColor) { + return style({ + height: addUnit(barHeight), + background: activeColor, + }); +} + +module.exports = { + barStyle: barStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/slider/index.wxss b/src/miniprogram_npm/@vant/weapp/slider/index.wxss new file mode 100644 index 0000000..d1587de --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/slider/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-slider{background-color:var(--slider-inactive-background-color,#ebedf0);border-radius:999px;height:var(--slider-bar-height,2px);position:relative}.van-slider:before{bottom:calc(var(--padding-xs, 8px)*-1);content:"";left:0;position:absolute;right:0;top:calc(var(--padding-xs, 8px)*-1)}.van-slider__bar{background-color:var(--slider-active-background-color,#1989fa);border-radius:inherit;height:100%;position:relative;transition:all .2s;width:100%}.van-slider__button{background-color:var(--slider-button-background-color,#fff);border-radius:var(--slider-button-border-radius,50%);box-shadow:var(--slider-button-box-shadow,0 1px 2px rgba(0,0,0,.5));height:var(--slider-button-height,24px);width:var(--slider-button-width,24px)}.van-slider__button-wrapper,.van-slider__button-wrapper-right{position:absolute;right:0;top:50%;transform:translate3d(50%,-50%,0)}.van-slider__button-wrapper-left{left:0;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.van-slider--disabled{opacity:var(--slider-disabled-opacity,.5)}.van-slider--vertical{display:inline-block;height:100%;width:var(--slider-bar-height,2px)}.van-slider--vertical .van-slider__button-wrapper,.van-slider--vertical .van-slider__button-wrapper-right{bottom:0;right:50%;top:auto;transform:translate3d(50%,50%,0)}.van-slider--vertical .van-slider__button-wrapper-left{left:auto;right:50%;top:0;transform:translate3d(50%,-50%,0)}.van-slider--vertical:before{bottom:0;left:-8px;right:-8px;top:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.d.ts b/src/miniprogram_npm/@vant/weapp/stepper/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.js b/src/miniprogram_npm/@vant/weapp/stepper/index.js new file mode 100644 index 0000000..7e650a8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.js @@ -0,0 +1,198 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var LONG_PRESS_START_TIME = 600; +var LONG_PRESS_INTERVAL = 200; +// add num and avoid float number +function add(num1, num2) { + var cardinal = Math.pow(10, 10); + return Math.round((num1 + num2) * cardinal) / cardinal; +} +function equal(value1, value2) { + return String(value1) === String(value2); +} +(0, component_1.VantComponent)({ + field: true, + classes: ['input-class', 'plus-class', 'minus-class'], + props: { + value: { + type: null, + }, + integer: { + type: Boolean, + observer: 'check', + }, + disabled: Boolean, + inputWidth: String, + buttonSize: String, + asyncChange: Boolean, + disableInput: Boolean, + decimalLength: { + type: Number, + value: null, + observer: 'check', + }, + min: { + type: null, + value: 1, + observer: 'check', + }, + max: { + type: null, + value: Number.MAX_SAFE_INTEGER, + observer: 'check', + }, + step: { + type: null, + value: 1, + }, + showPlus: { + type: Boolean, + value: true, + }, + showMinus: { + type: Boolean, + value: true, + }, + disablePlus: Boolean, + disableMinus: Boolean, + longPress: { + type: Boolean, + value: true, + }, + theme: String, + alwaysEmbed: Boolean, + }, + data: { + currentValue: '', + }, + watch: { + value: function () { + this.observeValue(); + }, + }, + created: function () { + this.setData({ + currentValue: this.format(this.data.value), + }); + }, + methods: { + observeValue: function () { + var value = this.data.value; + this.setData({ currentValue: this.format(value) }); + }, + check: function () { + var val = this.format(this.data.currentValue); + if (!equal(val, this.data.currentValue)) { + this.setData({ currentValue: val }); + } + }, + isDisabled: function (type) { + var _a = this.data, disabled = _a.disabled, disablePlus = _a.disablePlus, disableMinus = _a.disableMinus, currentValue = _a.currentValue, max = _a.max, min = _a.min; + if (type === 'plus') { + return disabled || disablePlus || +currentValue >= +max; + } + return disabled || disableMinus || +currentValue <= +min; + }, + onFocus: function (event) { + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + var value = this.format(event.detail.value); + this.setData({ currentValue: value }); + this.emitChange(value); + this.$emit('blur', __assign(__assign({}, event.detail), { value: value })); + }, + // filter illegal characters + filter: function (value) { + value = String(value).replace(/[^0-9.-]/g, ''); + if (this.data.integer && value.indexOf('.') !== -1) { + value = value.split('.')[0]; + } + return value; + }, + // limit value range + format: function (value) { + value = this.filter(value); + // format range + value = value === '' ? 0 : +value; + value = Math.max(Math.min(this.data.max, value), this.data.min); + // format decimal + if ((0, validator_1.isDef)(this.data.decimalLength)) { + value = value.toFixed(this.data.decimalLength); + } + return value; + }, + onInput: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + // allow input to be empty + if (value === '') { + return; + } + var formatted = this.format(value); + this.emitChange(formatted); + }, + emitChange: function (value) { + if (!this.data.asyncChange) { + this.setData({ currentValue: value }); + } + this.$emit('change', value); + }, + onChange: function () { + var type = this.type; + if (this.isDisabled(type)) { + this.$emit('overlimit', type); + return; + } + var diff = type === 'minus' ? -this.data.step : +this.data.step; + var value = this.format(add(+this.data.currentValue, diff)); + this.emitChange(value); + this.$emit(type); + }, + longPressStep: function () { + var _this = this; + this.longPressTimer = setTimeout(function () { + _this.onChange(); + _this.longPressStep(); + }, LONG_PRESS_INTERVAL); + }, + onTap: function (event) { + var type = event.currentTarget.dataset.type; + this.type = type; + this.onChange(); + }, + onTouchStart: function (event) { + var _this = this; + if (!this.data.longPress) { + return; + } + clearTimeout(this.longPressTimer); + var type = event.currentTarget.dataset.type; + this.type = type; + this.isLongPress = false; + this.longPressTimer = setTimeout(function () { + _this.isLongPress = true; + _this.onChange(); + _this.longPressStep(); + }, LONG_PRESS_START_TIME); + }, + onTouchEnd: function () { + if (!this.data.longPress) { + return; + } + clearTimeout(this.longPressTimer); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.json b/src/miniprogram_npm/@vant/weapp/stepper/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.wxml b/src/miniprogram_npm/@vant/weapp/stepper/index.wxml new file mode 100644 index 0000000..6dd44bc --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.wxml @@ -0,0 +1,43 @@ + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.wxs b/src/miniprogram_npm/@vant/weapp/stepper/index.wxs new file mode 100644 index 0000000..a13e818 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.wxs @@ -0,0 +1,22 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function buttonStyle(data) { + return style({ + width: addUnit(data.buttonSize), + height: addUnit(data.buttonSize), + }); +} + +function inputStyle(data) { + return style({ + width: addUnit(data.inputWidth), + height: addUnit(data.buttonSize), + }); +} + +module.exports = { + buttonStyle: buttonStyle, + inputStyle: inputStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/stepper/index.wxss b/src/miniprogram_npm/@vant/weapp/stepper/index.wxss new file mode 100644 index 0000000..2561a7e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/stepper/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-stepper{font-size:0}.van-stepper__minus,.van-stepper__plus{background-color:var(--stepper-background-color,#f2f3f5);border:0;box-sizing:border-box;color:var(--stepper-button-icon-color,#323233);display:inline-block;height:var(--stepper-input-height,28px);margin:1px;padding:var(--padding-base,4px);position:relative;vertical-align:middle;width:var(--stepper-input-height,28px)}.van-stepper__minus:before,.van-stepper__plus:before{height:1px;width:9px}.van-stepper__minus:after,.van-stepper__plus:after{height:9px;width:1px}.van-stepper__minus:empty.van-stepper__minus:after,.van-stepper__minus:empty.van-stepper__minus:before,.van-stepper__minus:empty.van-stepper__plus:after,.van-stepper__minus:empty.van-stepper__plus:before,.van-stepper__plus:empty.van-stepper__minus:after,.van-stepper__plus:empty.van-stepper__minus:before,.van-stepper__plus:empty.van-stepper__plus:after,.van-stepper__plus:empty.van-stepper__plus:before{background-color:currentColor;bottom:0;content:"";left:0;margin:auto;position:absolute;right:0;top:0}.van-stepper__minus--hover,.van-stepper__plus--hover{background-color:var(--stepper-active-color,#e8e8e8)}.van-stepper__minus--disabled,.van-stepper__plus--disabled{color:var(--stepper-button-disabled-icon-color,#c8c9cc)}.van-stepper__minus--disabled,.van-stepper__minus--disabled.van-stepper__minus--hover,.van-stepper__minus--disabled.van-stepper__plus--hover,.van-stepper__plus--disabled,.van-stepper__plus--disabled.van-stepper__minus--hover,.van-stepper__plus--disabled.van-stepper__plus--hover{background-color:var(--stepper-button-disabled-color,#f7f8fa)}.van-stepper__minus{border-radius:var(--stepper-border-radius,var(--stepper-border-radius,4px)) 0 0 var(--stepper-border-radius,var(--stepper-border-radius,4px))}.van-stepper__minus:after{display:none}.van-stepper__plus{border-radius:0 var(--stepper-border-radius,var(--stepper-border-radius,4px)) var(--stepper-border-radius,var(--stepper-border-radius,4px)) 0}.van-stepper--round .van-stepper__input{background-color:initial!important}.van-stepper--round .van-stepper__minus,.van-stepper--round .van-stepper__plus{border-radius:100%}.van-stepper--round .van-stepper__minus:active,.van-stepper--round .van-stepper__plus:active{opacity:.7}.van-stepper--round .van-stepper__minus--disabled,.van-stepper--round .van-stepper__minus--disabled:active,.van-stepper--round .van-stepper__plus--disabled,.van-stepper--round .van-stepper__plus--disabled:active{opacity:.3}.van-stepper--round .van-stepper__plus{background-color:#ee0a24;color:#fff}.van-stepper--round .van-stepper__minus{background-color:#fff;border:1px solid #ee0a24;color:#ee0a24}.van-stepper__input{-webkit-appearance:none;background-color:var(--stepper-background-color,#f2f3f5);border:0;border-radius:0;border-width:1px 0;box-sizing:border-box;color:var(--stepper-input-text-color,#323233);display:inline-block;font-size:var(--stepper-input-font-size,14px);height:var(--stepper-input-height,28px);margin:1px;min-height:0;padding:1px;text-align:center;vertical-align:middle;width:var(--stepper-input-width,32px)}.van-stepper__input--disabled{background-color:var(--stepper-input-disabled-background-color,#f2f3f5);color:var(--stepper-input-disabled-text-color,#c8c9cc)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/steps/index.d.ts b/src/miniprogram_npm/@vant/weapp/steps/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/steps/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/steps/index.js b/src/miniprogram_npm/@vant/weapp/steps/index.js new file mode 100644 index 0000000..1a9986a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/steps/index.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var color_1 = require("../common/color"); +(0, component_1.VantComponent)({ + classes: ['desc-class'], + props: { + icon: String, + steps: Array, + active: Number, + direction: { + type: String, + value: 'horizontal', + }, + activeColor: { + type: String, + value: color_1.GREEN, + }, + inactiveColor: { + type: String, + value: color_1.GRAY_DARK, + }, + activeIcon: { + type: String, + value: 'checked', + }, + inactiveIcon: String, + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + this.$emit('click-step', index); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/steps/index.json b/src/miniprogram_npm/@vant/weapp/steps/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/steps/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/steps/index.wxml b/src/miniprogram_npm/@vant/weapp/steps/index.wxml new file mode 100644 index 0000000..00c8e10 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/steps/index.wxml @@ -0,0 +1,54 @@ + + + + + + + {{ item.text }} + {{ item.desc }} + + + + + + + + + + + + + + + +function get(index, active) { + if (index < active) { + return 'finish'; + } else if (index === active) { + return 'process'; + } + + return 'inactive'; +} + +module.exports = get; + diff --git a/src/miniprogram_npm/@vant/weapp/steps/index.wxss b/src/miniprogram_npm/@vant/weapp/steps/index.wxss new file mode 100644 index 0000000..c653884 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/steps/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-steps{background-color:var(--steps-background-color,#fff);overflow:hidden}.van-steps--horizontal{padding:10px}.van-steps--horizontal .van-step__wrapper{display:flex;overflow:hidden;position:relative}.van-steps--vertical{padding-left:10px}.van-steps--vertical .van-step__wrapper{padding:0 0 0 20px}.van-step{color:var(--step-text-color,#969799);flex:1;font-size:var(--step-font-size,14px);position:relative}.van-step--finish{color:var(--step-finish-text-color,#323233)}.van-step__circle{background-color:var(--step-circle-color,#969799);border-radius:50%;height:var(--step-circle-size,5px);width:var(--step-circle-size,5px)}.van-step--horizontal{padding-bottom:14px}.van-step--horizontal:first-child .van-step__title{transform:none}.van-step--horizontal:first-child .van-step__circle-container{padding:0 8px 0 0;transform:translate3d(0,50%,0)}.van-step--horizontal:last-child{position:absolute;right:0;width:auto}.van-step--horizontal:last-child .van-step__title{text-align:right;transform:none}.van-step--horizontal:last-child .van-step__circle-container{padding:0 0 0 8px;right:0;transform:translate3d(0,50%,0)}.van-step--horizontal .van-step__circle-container{background-color:#fff;bottom:6px;padding:0 var(--padding-xs,8px);position:absolute;transform:translate3d(-50%,50%,0);z-index:1}.van-step--horizontal .van-step__title{display:inline-block;font-size:var(--step-horizontal-title-font-size,12px);transform:translate3d(-50%,0,0)}.van-step--horizontal .van-step__line{background-color:var(--step-line-color,#ebedf0);bottom:6px;height:1px;left:0;position:absolute;right:0;transform:translate3d(0,50%,0)}.van-step--horizontal.van-step--process{color:var(--step-process-text-color,#323233)}.van-step--horizontal.van-step--process .van-step__icon{display:block;font-size:var(--step-icon-size,12px);line-height:1}.van-step--vertical{line-height:18px;padding:10px 10px 10px 0}.van-step--vertical:after{border-bottom-width:1px}.van-step--vertical:last-child:after{border-bottom-width:none}.van-step--vertical:first-child:before{background-color:#fff;content:"";height:20px;left:-15px;position:absolute;top:0;width:1px;z-index:1}.van-step--vertical .van-step__circle,.van-step--vertical .van-step__icon,.van-step--vertical .van-step__line{left:-14px;position:absolute;top:19px;transform:translate3d(-50%,-50%,0);z-index:2}.van-step--vertical .van-step__icon{background-color:var(--steps-background-color,#fff);font-size:var(--step-icon-size,12px);line-height:1}.van-step--vertical .van-step__line{background-color:var(--step-line-color,#ebedf0);height:100%;transform:translate3d(-50%,0,0);width:1px;z-index:1} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.d.ts b/src/miniprogram_npm/@vant/weapp/sticky/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.js b/src/miniprogram_npm/@vant/weapp/sticky/index.js new file mode 100644 index 0000000..ffeb125 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var page_scroll_1 = require("../mixins/page-scroll"); +var ROOT_ELEMENT = '.van-sticky'; +(0, component_1.VantComponent)({ + props: { + zIndex: { + type: Number, + value: 99, + }, + offsetTop: { + type: Number, + value: 0, + observer: 'onScroll', + }, + disabled: { + type: Boolean, + observer: 'onScroll', + }, + container: { + type: null, + observer: 'onScroll', + }, + scrollTop: { + type: null, + observer: function (val) { + this.onScroll({ scrollTop: val }); + }, + }, + }, + mixins: [ + (0, page_scroll_1.pageScrollMixin)(function (event) { + if (this.data.scrollTop != null) { + return; + } + this.onScroll(event); + }), + ], + data: { + height: 0, + fixed: false, + transform: 0, + }, + mounted: function () { + this.onScroll(); + }, + methods: { + onScroll: function (_a) { + var _this = this; + var _b = _a === void 0 ? {} : _a, scrollTop = _b.scrollTop; + var _c = this.data, container = _c.container, offsetTop = _c.offsetTop, disabled = _c.disabled; + if (disabled) { + this.setDataAfterDiff({ + fixed: false, + transform: 0, + }); + return; + } + this.scrollTop = scrollTop || this.scrollTop; + if (typeof container === 'function') { + Promise.all([(0, utils_1.getRect)(this, ROOT_ELEMENT), this.getContainerRect()]) + .then(function (_a) { + var root = _a[0], container = _a[1]; + if (offsetTop + root.height > container.height + container.top) { + _this.setDataAfterDiff({ + fixed: false, + transform: container.height - root.height, + }); + } + else if (offsetTop >= root.top) { + _this.setDataAfterDiff({ + fixed: true, + height: root.height, + transform: 0, + }); + } + else { + _this.setDataAfterDiff({ fixed: false, transform: 0 }); + } + }) + .catch(function () { }); + return; + } + (0, utils_1.getRect)(this, ROOT_ELEMENT).then(function (root) { + if (!(0, validator_1.isDef)(root) || (!root.width && !root.height)) { + return; + } + if (offsetTop >= root.top) { + _this.setDataAfterDiff({ fixed: true, height: root.height }); + _this.transform = 0; + } + else { + _this.setDataAfterDiff({ fixed: false }); + } + }); + }, + setDataAfterDiff: function (data) { + var _this = this; + wx.nextTick(function () { + var diff = Object.keys(data).reduce(function (prev, key) { + if (data[key] !== _this.data[key]) { + prev[key] = data[key]; + } + return prev; + }, {}); + if (Object.keys(diff).length > 0) { + _this.setData(diff); + } + _this.$emit('scroll', { + scrollTop: _this.scrollTop, + isFixed: data.fixed || _this.data.fixed, + }); + }); + }, + getContainerRect: function () { + var nodesRef = this.data.container(); + if (!nodesRef) { + return Promise.reject(new Error('not found container')); + } + return new Promise(function (resolve) { return nodesRef.boundingClientRect(resolve).exec(); }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.json b/src/miniprogram_npm/@vant/weapp/sticky/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.wxml b/src/miniprogram_npm/@vant/weapp/sticky/index.wxml new file mode 100644 index 0000000..15e9f4a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.wxml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.wxs b/src/miniprogram_npm/@vant/weapp/sticky/index.wxs new file mode 100644 index 0000000..be99d89 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.wxs @@ -0,0 +1,25 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function wrapStyle(data) { + return style({ + transform: data.transform + ? 'translate3d(0, ' + data.transform + 'px, 0)' + : '', + top: data.fixed ? addUnit(data.offsetTop) : '', + 'z-index': data.zIndex, + }); +} + +function containerStyle(data) { + return style({ + height: data.fixed ? addUnit(data.height) : '', + 'z-index': data.zIndex, + }); +} + +module.exports = { + wrapStyle: wrapStyle, + containerStyle: containerStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/sticky/index.wxss b/src/miniprogram_npm/@vant/weapp/sticky/index.wxss new file mode 100644 index 0000000..34d76aa --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/sticky/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-sticky{position:relative}.van-sticky-wrap--fixed{left:0;position:fixed;right:0} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts b/src/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/submit-bar/index.js b/src/miniprogram_npm/@vant/weapp/submit-bar/index.js new file mode 100644 index 0000000..d3bfc25 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/submit-bar/index.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['bar-class', 'price-class', 'button-class'], + props: { + tip: { + type: null, + observer: 'updateTip', + }, + tipIcon: String, + type: Number, + price: { + type: null, + observer: 'updatePrice', + }, + label: String, + loading: Boolean, + disabled: Boolean, + buttonText: String, + currency: { + type: String, + value: '¥', + }, + buttonType: { + type: String, + value: 'danger', + }, + decimalLength: { + type: Number, + value: 2, + observer: 'updatePrice', + }, + suffixLabel: String, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + }, + methods: { + updatePrice: function () { + var _a = this.data, price = _a.price, decimalLength = _a.decimalLength; + var priceStrArr = typeof price === 'number' && + (price / 100).toFixed(decimalLength).split('.'); + this.setData({ + hasPrice: typeof price === 'number', + integerStr: priceStrArr && priceStrArr[0], + decimalStr: decimalLength && priceStrArr ? ".".concat(priceStrArr[1]) : '', + }); + }, + updateTip: function () { + this.setData({ hasTip: typeof this.data.tip === 'string' }); + }, + onSubmit: function (event) { + this.$emit('submit', event.detail); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/submit-bar/index.json b/src/miniprogram_npm/@vant/weapp/submit-bar/index.json new file mode 100644 index 0000000..bda9b8d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/submit-bar/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-button": "../button/index", + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxml b/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxml new file mode 100644 index 0000000..a56dd46 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxml @@ -0,0 +1,44 @@ + + + + + + + + + {{ tip }} + + + + + + + + {{ label || '合计:' }} + + {{ currency }} + {{ integerStr }}{{decimalStr}} + + {{ suffixLabel }} + + + {{ loading ? '' : buttonText }} + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxss b/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxss new file mode 100644 index 0000000..8379a30 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/submit-bar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-submit-bar{background-color:var(--submit-bar-background-color,#fff);bottom:0;left:0;position:fixed;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--submit-bar-z-index,100)}.van-submit-bar__tip{background-color:var(--submit-bar-tip-background-color,#fff7cc);color:var(--submit-bar-tip-color,#f56723);font-size:var(--submit-bar-tip-font-size,12px);line-height:var(--submit-bar-tip-line-height,1.5);padding:var(--submit-bar-tip-padding,10px)}.van-submit-bar__tip:empty{display:none}.van-submit-bar__tip-icon{margin-right:4px;vertical-align:middle}.van-submit-bar__tip-text{display:inline;vertical-align:middle}.van-submit-bar__bar{align-items:center;background-color:var(--submit-bar-background-color,#fff);display:flex;font-size:var(--submit-bar-text-font-size,14px);height:var(--submit-bar-height,50px);justify-content:flex-end;padding:var(--submit-bar-padding,0 16px)}.van-submit-bar__safe{height:constant(safe-area-inset-bottom);height:env(safe-area-inset-bottom)}.van-submit-bar__text{color:var(--submit-bar-text-color,#323233);flex:1;font-weight:var(--font-weight-bold,500);padding-right:var(--padding-sm,12px);text-align:right}.van-submit-bar__price{color:var(--submit-bar-price-color,#ee0a24);font-size:var(--submit-bar-price-font-size,12px);font-weight:var(--font-weight-bold,500)}.van-submit-bar__price-integer{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;font-size:20px}.van-submit-bar__currency{font-size:var(--submit-bar-currency-font-size,12px)}.van-submit-bar__suffix-label{margin-left:5px}.van-submit-bar__button{--button-default-height:var(--submit-bar-button-height,40px)!important;--button-line-height:var(--submit-bar-button-height,40px)!important;font-weight:var(--font-weight-bold,500);width:var(--submit-bar-button-width,110px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/swipe-cell/index.js b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.js new file mode 100644 index 0000000..1582b6c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var touch_1 = require("../mixins/touch"); +var utils_1 = require("../common/utils"); +var THRESHOLD = 0.3; +var ARRAY = []; +(0, component_1.VantComponent)({ + props: { + disabled: Boolean, + leftWidth: { + type: Number, + value: 0, + observer: function (leftWidth) { + if (leftWidth === void 0) { leftWidth = 0; } + if (this.offset > 0) { + this.swipeMove(leftWidth); + } + }, + }, + rightWidth: { + type: Number, + value: 0, + observer: function (rightWidth) { + if (rightWidth === void 0) { rightWidth = 0; } + if (this.offset < 0) { + this.swipeMove(-rightWidth); + } + }, + }, + asyncClose: Boolean, + name: { + type: null, + value: '', + }, + }, + mixins: [touch_1.touch], + data: { + catchMove: false, + wrapperStyle: '', + }, + created: function () { + this.offset = 0; + ARRAY.push(this); + }, + destroyed: function () { + var _this = this; + ARRAY = ARRAY.filter(function (item) { return item !== _this; }); + }, + methods: { + open: function (position) { + var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth; + var offset = position === 'left' ? leftWidth : -rightWidth; + this.swipeMove(offset); + this.$emit('open', { + position: position, + name: this.data.name, + }); + }, + close: function () { + this.swipeMove(0); + }, + swipeMove: function (offset) { + if (offset === void 0) { offset = 0; } + this.offset = (0, utils_1.range)(offset, -this.data.rightWidth, this.data.leftWidth); + var transform = "translate3d(".concat(this.offset, "px, 0, 0)"); + var transition = this.dragging + ? 'none' + : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)'; + this.setData({ + wrapperStyle: "\n -webkit-transform: ".concat(transform, ";\n -webkit-transition: ").concat(transition, ";\n transform: ").concat(transform, ";\n transition: ").concat(transition, ";\n "), + }); + }, + swipeLeaveTransition: function () { + var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth; + var offset = this.offset; + if (rightWidth > 0 && -offset > rightWidth * THRESHOLD) { + this.open('right'); + } + else if (leftWidth > 0 && offset > leftWidth * THRESHOLD) { + this.open('left'); + } + else { + this.swipeMove(0); + } + this.setData({ catchMove: false }); + }, + startDrag: function (event) { + if (this.data.disabled) { + return; + } + this.startOffset = this.offset; + this.touchStart(event); + }, + noop: function () { }, + onDrag: function (event) { + var _this = this; + if (this.data.disabled) { + return; + } + this.touchMove(event); + if (this.direction !== 'horizontal') { + return; + } + this.dragging = true; + ARRAY.filter(function (item) { return item !== _this && item.offset !== 0; }).forEach(function (item) { return item.close(); }); + this.setData({ catchMove: true }); + this.swipeMove(this.startOffset + this.deltaX); + }, + endDrag: function () { + if (this.data.disabled) { + return; + } + this.dragging = false; + this.swipeLeaveTransition(); + }, + onClick: function (event) { + var _a = event.currentTarget.dataset.key, position = _a === void 0 ? 'outside' : _a; + this.$emit('click', position); + if (!this.offset) { + return; + } + if (this.data.asyncClose) { + this.$emit('close', { + position: position, + instance: this, + name: this.data.name, + }); + } + else { + this.swipeMove(0); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/swipe-cell/index.json b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml new file mode 100644 index 0000000..3f7f726 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss new file mode 100644 index 0000000..3a265bf --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-swipe-cell{overflow:hidden;position:relative}.van-swipe-cell__left,.van-swipe-cell__right{height:100%;position:absolute;top:0}.van-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;transform:translate3d(100%,0,0)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.d.ts b/src/miniprogram_npm/@vant/weapp/switch/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.js b/src/miniprogram_npm/@vant/weapp/switch/index.js new file mode 100644 index 0000000..1d2317f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + field: true, + classes: ['node-class'], + props: { + checked: null, + loading: Boolean, + disabled: Boolean, + activeColor: String, + inactiveColor: String, + size: { + type: String, + value: '30', + }, + activeValue: { + type: null, + value: true, + }, + inactiveValue: { + type: null, + value: false, + }, + }, + methods: { + onClick: function () { + var _a = this.data, activeValue = _a.activeValue, inactiveValue = _a.inactiveValue, disabled = _a.disabled, loading = _a.loading; + if (disabled || loading) { + return; + } + var checked = this.data.checked === activeValue; + var value = checked ? inactiveValue : activeValue; + this.$emit('input', value); + this.$emit('change', value); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.json b/src/miniprogram_npm/@vant/weapp/switch/index.json new file mode 100644 index 0000000..01077f5 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.wxml b/src/miniprogram_npm/@vant/weapp/switch/index.wxml new file mode 100644 index 0000000..4e9789b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.wxml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.wxs b/src/miniprogram_npm/@vant/weapp/switch/index.wxs new file mode 100644 index 0000000..3ae387a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.wxs @@ -0,0 +1,26 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + var currentColor = data.checked === data.activeValue ? data.activeColor : data.inactiveColor; + + return style({ + 'font-size': addUnit(data.size), + 'background-color': currentColor, + }); +} + +var BLUE = '#1989fa'; +var GRAY_DARK = '#969799'; + +function loadingColor(data) { + return data.checked === data.activeValue + ? data.activeColor || BLUE + : data.inactiveColor || GRAY_DARK; +} + +module.exports = { + rootStyle: rootStyle, + loadingColor: loadingColor, +}; diff --git a/src/miniprogram_npm/@vant/weapp/switch/index.wxss b/src/miniprogram_npm/@vant/weapp/switch/index.wxss new file mode 100644 index 0000000..35929de --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/switch/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-switch{background-color:var(--switch-background-color,#fff);border:var(--switch-border,1px solid rgba(0,0,0,.1));border-radius:var(--switch-node-size,1em);box-sizing:initial;display:inline-block;height:var(--switch-height,1em);position:relative;transition:background-color var(--switch-transition-duration,.3s);width:var(--switch-width,2em)}.van-switch__node{background-color:var(--switch-node-background-color,#fff);border-radius:100%;box-shadow:var(--switch-node-box-shadow,0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05));height:var(--switch-node-size,1em);left:0;position:absolute;top:0;transition:var(--switch-transition-duration,.3s) cubic-bezier(.3,1.05,.4,1.05);width:var(--switch-node-size,1em);z-index:var(--switch-node-z-index,1)}.van-switch__loading{height:50%;left:25%;position:absolute!important;top:25%;width:50%}.van-switch--on{background-color:var(--switch-on-background-color,#1989fa)}.van-switch--on .van-switch__node{transform:translateX(calc(var(--switch-width, 2em) - var(--switch-node-size, 1em)))}.van-switch--disabled{opacity:var(--switch-disabled-opacity,.4)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tab/index.d.ts b/src/miniprogram_npm/@vant/weapp/tab/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tab/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tab/index.js b/src/miniprogram_npm/@vant/weapp/tab/index.js new file mode 100644 index 0000000..ae4d06b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tab/index.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('tabs'), + props: { + dot: { + type: Boolean, + observer: 'update', + }, + info: { + type: null, + observer: 'update', + }, + title: { + type: String, + observer: 'update', + }, + disabled: { + type: Boolean, + observer: 'update', + }, + titleStyle: { + type: String, + observer: 'update', + }, + name: { + type: null, + value: '', + }, + }, + data: { + active: false, + }, + methods: { + getComputedName: function () { + if (this.data.name !== '') { + return this.data.name; + } + return this.index; + }, + updateRender: function (active, parent) { + var parentData = parent.data; + this.inited = this.inited || active; + this.setData({ + active: active, + shouldRender: this.inited || !parentData.lazyRender, + shouldShow: active || parentData.animated, + }); + }, + update: function () { + if (this.parent) { + this.parent.updateTabs(); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tab/index.json b/src/miniprogram_npm/@vant/weapp/tab/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tab/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/tab/index.wxml b/src/miniprogram_npm/@vant/weapp/tab/index.wxml new file mode 100644 index 0000000..f5e99f2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tab/index.wxml @@ -0,0 +1,8 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tab/index.wxss b/src/miniprogram_npm/@vant/weapp/tab/index.wxss new file mode 100644 index 0000000..1c90c88 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tab/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';:host{box-sizing:border-box;flex-shrink:0;width:100%}.van-tab__pane{-webkit-overflow-scrolling:touch;box-sizing:border-box;overflow-y:auto}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tabbar-item/index.js b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.js new file mode 100644 index 0000000..58a5065 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + props: { + info: null, + name: null, + icon: String, + dot: Boolean, + url: { + type: String, + value: '', + }, + linkType: { + type: String, + value: 'redirectTo', + }, + iconPrefix: { + type: String, + value: 'van-icon', + }, + }, + relation: (0, relation_1.useParent)('tabbar'), + data: { + active: false, + activeColor: '', + inactiveColor: '', + }, + methods: { + onClick: function () { + var parent = this.parent; + if (parent) { + var index = parent.children.indexOf(this); + var active = this.data.name || index; + if (active !== this.data.active) { + parent.$emit('change', active); + } + } + var _a = this.data, url = _a.url, linkType = _a.linkType; + if (url && wx[linkType]) { + return wx[linkType]({ url: url }); + } + this.$emit('click'); + }, + updateFromParent: function () { + var parent = this.parent; + if (!parent) { + return; + } + var index = parent.children.indexOf(this); + var parentData = parent.data; + var data = this.data; + var active = (data.name || index) === parentData.active; + var patch = {}; + if (active !== data.active) { + patch.active = active; + } + if (parentData.activeColor !== data.activeColor) { + patch.activeColor = parentData.activeColor; + } + if (parentData.inactiveColor !== data.inactiveColor) { + patch.inactiveColor = parentData.inactiveColor; + } + if (Object.keys(patch).length > 0) { + this.setData(patch); + } + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tabbar-item/index.json b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.json new file mode 100644 index 0000000..16f174c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-info": "../info/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml new file mode 100644 index 0000000..524728f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss new file mode 100644 index 0000000..21ee224 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';:host{flex:1}.van-tabbar-item{align-items:center;color:var(--tabbar-item-text-color,#646566);display:flex;flex-direction:column;font-size:var(--tabbar-item-font-size,12px);height:100%;justify-content:center;line-height:var(--tabbar-item-line-height,1)}.van-tabbar-item__icon{font-size:var(--tabbar-item-icon-size,22px);margin-bottom:var(--tabbar-item-margin-bottom,4px);position:relative}.van-tabbar-item__icon__inner{display:block;min-width:1em}.van-tabbar-item--active{color:var(--tabbar-item-active-color,#1989fa)}.van-tabbar-item__info{margin-top:2px} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tabbar/index.d.ts b/src/miniprogram_npm/@vant/weapp/tabbar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tabbar/index.js b/src/miniprogram_npm/@vant/weapp/tabbar/index.js new file mode 100644 index 0000000..3db793d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar/index.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('tabbar-item', function () { + this.updateChildren(); + }), + props: { + active: { + type: null, + observer: 'updateChildren', + }, + activeColor: { + type: String, + observer: 'updateChildren', + }, + inactiveColor: { + type: String, + observer: 'updateChildren', + }, + fixed: { + type: Boolean, + value: true, + observer: 'setHeight', + }, + placeholder: { + type: Boolean, + observer: 'setHeight', + }, + border: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 1, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + }, + data: { + height: 50, + }, + methods: { + updateChildren: function () { + var children = this.children; + if (!Array.isArray(children) || !children.length) { + return; + } + children.forEach(function (child) { return child.updateFromParent(); }); + }, + setHeight: function () { + var _this = this; + if (!this.data.fixed || !this.data.placeholder) { + return; + } + wx.nextTick(function () { + (0, utils_1.getRect)(_this, '.van-tabbar').then(function (res) { + _this.setData({ height: res.height }); + }); + }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tabbar/index.json b/src/miniprogram_npm/@vant/weapp/tabbar/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/tabbar/index.wxml b/src/miniprogram_npm/@vant/weapp/tabbar/index.wxml new file mode 100644 index 0000000..43bb111 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar/index.wxml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tabbar/index.wxss b/src/miniprogram_npm/@vant/weapp/tabbar/index.wxss new file mode 100644 index 0000000..42b6c1e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabbar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-tabbar{background-color:var(--tabbar-background-color,#fff);box-sizing:initial;display:flex;height:var(--tabbar-height,50px);width:100%}.van-tabbar--fixed{bottom:0;left:0;position:fixed}.van-tabbar--safe{padding-bottom:env(safe-area-inset-bottom)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.d.ts b/src/miniprogram_npm/@vant/weapp/tabs/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.js b/src/miniprogram_npm/@vant/weapp/tabs/index.js new file mode 100644 index 0000000..3121957 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.js @@ -0,0 +1,327 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var touch_1 = require("../mixins/touch"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + mixins: [touch_1.touch], + classes: [ + 'nav-class', + 'tab-class', + 'tab-active-class', + 'line-class', + 'wrap-class', + ], + relation: (0, relation_1.useChildren)('tab', function () { + this.updateTabs(); + }), + props: { + sticky: Boolean, + border: Boolean, + swipeable: Boolean, + titleActiveColor: String, + titleInactiveColor: String, + color: String, + animated: { + type: Boolean, + observer: function () { + var _this = this; + this.children.forEach(function (child, index) { + return child.updateRender(index === _this.data.currentIndex, _this); + }); + }, + }, + lineWidth: { + type: null, + value: 40, + observer: 'resize', + }, + lineHeight: { + type: null, + value: -1, + }, + active: { + type: null, + value: 0, + observer: function (name) { + if (name !== this.getCurrentName()) { + this.setCurrentIndexByName(name); + } + }, + }, + type: { + type: String, + value: 'line', + }, + ellipsis: { + type: Boolean, + value: true, + }, + duration: { + type: Number, + value: 0.3, + }, + zIndex: { + type: Number, + value: 1, + }, + swipeThreshold: { + type: Number, + value: 5, + observer: function (value) { + this.setData({ + scrollable: this.children.length > value || !this.data.ellipsis, + }); + }, + }, + offsetTop: { + type: Number, + value: 0, + }, + lazyRender: { + type: Boolean, + value: true, + }, + useBeforeChange: { + type: Boolean, + value: false, + }, + }, + data: { + tabs: [], + scrollLeft: 0, + scrollable: false, + currentIndex: 0, + container: null, + skipTransition: true, + scrollWithAnimation: false, + lineOffsetLeft: 0, + inited: false, + }, + mounted: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + _this.swiping = true; + _this.setData({ + container: function () { return _this.createSelectorQuery().select('.van-tabs'); }, + }); + _this.resize(); + _this.scrollIntoView(); + }); + }, + methods: { + updateTabs: function () { + var _a = this, _b = _a.children, children = _b === void 0 ? [] : _b, data = _a.data; + this.setData({ + tabs: children.map(function (child) { return child.data; }), + scrollable: this.children.length > data.swipeThreshold || !data.ellipsis, + }); + this.setCurrentIndexByName(data.active || this.getCurrentName()); + }, + trigger: function (eventName, child) { + var currentIndex = this.data.currentIndex; + var data = this.getChildData(currentIndex, child); + if (!(0, validator_1.isDef)(data)) { + return; + } + this.$emit(eventName, data); + }, + onTap: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var child = this.children[index]; + if (child.data.disabled) { + this.trigger('disabled', child); + return; + } + this.onBeforeChange(index).then(function () { + _this.setCurrentIndex(index); + (0, utils_1.nextTick)(function () { + _this.trigger('click'); + }); + }); + }, + // correct the index of active tab + setCurrentIndexByName: function (name) { + var _a = this.children, children = _a === void 0 ? [] : _a; + var matched = children.filter(function (child) { return child.getComputedName() === name; }); + if (matched.length) { + this.setCurrentIndex(matched[0].index); + } + }, + setCurrentIndex: function (currentIndex) { + var _this = this; + var _a = this, data = _a.data, _b = _a.children, children = _b === void 0 ? [] : _b; + if (!(0, validator_1.isDef)(currentIndex) || + currentIndex >= children.length || + currentIndex < 0) { + return; + } + (0, utils_1.groupSetData)(this, function () { + children.forEach(function (item, index) { + var active = index === currentIndex; + if (active !== item.data.active || !item.inited) { + item.updateRender(active, _this); + } + }); + }); + if (currentIndex === data.currentIndex) { + if (!data.inited) { + this.resize(); + } + return; + } + var shouldEmitChange = data.currentIndex !== null; + this.setData({ currentIndex: currentIndex }); + (0, utils_1.requestAnimationFrame)(function () { + _this.resize(); + _this.scrollIntoView(); + }); + (0, utils_1.nextTick)(function () { + _this.trigger('input'); + if (shouldEmitChange) { + _this.trigger('change'); + } + }); + }, + getCurrentName: function () { + var activeTab = this.children[this.data.currentIndex]; + if (activeTab) { + return activeTab.getComputedName(); + } + }, + resize: function () { + var _this = this; + if (this.data.type !== 'line') { + return; + } + var _a = this.data, currentIndex = _a.currentIndex, ellipsis = _a.ellipsis, skipTransition = _a.skipTransition; + Promise.all([ + (0, utils_1.getAllRect)(this, '.van-tab'), + (0, utils_1.getRect)(this, '.van-tabs__line'), + ]).then(function (_a) { + var _b = _a[0], rects = _b === void 0 ? [] : _b, lineRect = _a[1]; + var rect = rects[currentIndex]; + if (rect == null) { + return; + } + var lineOffsetLeft = rects + .slice(0, currentIndex) + .reduce(function (prev, curr) { return prev + curr.width; }, 0); + lineOffsetLeft += + (rect.width - lineRect.width) / 2 + (ellipsis ? 0 : 8); + _this.setData({ lineOffsetLeft: lineOffsetLeft, inited: true }); + _this.swiping = true; + if (skipTransition) { + // waiting transition end + setTimeout(function () { + _this.setData({ skipTransition: false }); + }, _this.data.duration); + } + }); + }, + // scroll active tab into view + scrollIntoView: function () { + var _this = this; + var _a = this.data, currentIndex = _a.currentIndex, scrollable = _a.scrollable, scrollWithAnimation = _a.scrollWithAnimation; + if (!scrollable) { + return; + } + Promise.all([ + (0, utils_1.getAllRect)(this, '.van-tab'), + (0, utils_1.getRect)(this, '.van-tabs__nav'), + ]).then(function (_a) { + var tabRects = _a[0], navRect = _a[1]; + var tabRect = tabRects[currentIndex]; + var offsetLeft = tabRects + .slice(0, currentIndex) + .reduce(function (prev, curr) { return prev + curr.width; }, 0); + _this.setData({ + scrollLeft: offsetLeft - (navRect.width - tabRect.width) / 2, + }); + if (!scrollWithAnimation) { + (0, utils_1.nextTick)(function () { + _this.setData({ scrollWithAnimation: true }); + }); + } + }); + }, + onTouchScroll: function (event) { + this.$emit('scroll', event.detail); + }, + onTouchStart: function (event) { + if (!this.data.swipeable) + return; + this.swiping = true; + this.touchStart(event); + }, + onTouchMove: function (event) { + if (!this.data.swipeable || !this.swiping) + return; + this.touchMove(event); + }, + // watch swipe touch end + onTouchEnd: function () { + var _this = this; + if (!this.data.swipeable || !this.swiping) + return; + var _a = this, direction = _a.direction, deltaX = _a.deltaX, offsetX = _a.offsetX; + var minSwipeDistance = 50; + if (direction === 'horizontal' && offsetX >= minSwipeDistance) { + var index_1 = this.getAvaiableTab(deltaX); + if (index_1 !== -1) { + this.onBeforeChange(index_1).then(function () { return _this.setCurrentIndex(index_1); }); + } + } + this.swiping = false; + }, + getAvaiableTab: function (direction) { + var _a = this.data, tabs = _a.tabs, currentIndex = _a.currentIndex; + var step = direction > 0 ? -1 : 1; + for (var i = step; currentIndex + i < tabs.length && currentIndex + i >= 0; i += step) { + var index = currentIndex + i; + if (index >= 0 && + index < tabs.length && + tabs[index] && + !tabs[index].disabled) { + return index; + } + } + return -1; + }, + onBeforeChange: function (index) { + var _this = this; + var useBeforeChange = this.data.useBeforeChange; + if (!useBeforeChange) { + return Promise.resolve(); + } + return new Promise(function (resolve, reject) { + _this.$emit('before-change', __assign(__assign({}, _this.getChildData(index)), { callback: function (status) { return (status ? resolve() : reject()); } })); + }); + }, + getChildData: function (index, child) { + var currentChild = child || this.children[index]; + if (!(0, validator_1.isDef)(currentChild)) { + return; + } + return { + index: currentChild.index, + name: currentChild.getComputedName(), + title: currentChild.data.title, + }; + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.json b/src/miniprogram_npm/@vant/weapp/tabs/index.json new file mode 100644 index 0000000..19c0bc3 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-info": "../info/index", + "van-sticky": "../sticky/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.wxml b/src/miniprogram_npm/@vant/weapp/tabs/index.wxml new file mode 100644 index 0000000..05bb1e1 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.wxml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + {{ item.title }} + + + + + + + + + + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.wxs b/src/miniprogram_npm/@vant/weapp/tabs/index.wxs new file mode 100644 index 0000000..4059c7f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.wxs @@ -0,0 +1,83 @@ +/* eslint-disable */ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function tabClass(active, ellipsis) { + var classes = ['tab-class']; + + if (active) { + classes.push('tab-active-class'); + } + + if (ellipsis) { + classes.push('van-ellipsis'); + } + + return classes.join(' '); +} + +function tabStyle(data) { + var titleColor = data.active + ? data.titleActiveColor + : data.titleInactiveColor; + + var ellipsis = data.scrollable && data.ellipsis; + + // card theme color + if (data.type === 'card') { + return style({ + 'border-color': data.color, + 'background-color': !data.disabled && data.active ? data.color : null, + color: titleColor || (!data.disabled && !data.active ? data.color : null), + 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null, + }); + } + + return style({ + color: titleColor, + 'flex-basis': ellipsis ? 88 / data.swipeThreshold + '%' : null, + }); +} + +function navStyle(color, type) { + return style({ + 'border-color': type === 'card' && color ? color : null, + }); +} + +function trackStyle(data) { + if (!data.animated) { + return ''; + } + + return style({ + left: -100 * data.currentIndex + '%', + 'transition-duration': data.duration + 's', + '-webkit-transition-duration': data.duration + 's', + }); +} + +function lineStyle(data) { + return style({ + width: utils.addUnit(data.lineWidth), + opacity: data.inited ? 1 : 0, + transform: 'translateX(' + data.lineOffsetLeft + 'px)', + '-webkit-transform': 'translateX(' + data.lineOffsetLeft + 'px)', + 'background-color': data.color, + height: data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null, + 'border-radius': + data.lineHeight !== -1 ? utils.addUnit(data.lineHeight) : null, + 'transition-duration': !data.skipTransition ? data.duration + 's' : null, + '-webkit-transition-duration': !data.skipTransition + ? data.duration + 's' + : null, + }); +} + +module.exports = { + tabClass: tabClass, + tabStyle: tabStyle, + trackStyle: trackStyle, + lineStyle: lineStyle, + navStyle: navStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/tabs/index.wxss b/src/miniprogram_npm/@vant/weapp/tabs/index.wxss new file mode 100644 index 0000000..09a93af --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tabs/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-tabs{-webkit-tap-highlight-color:transparent;position:relative}.van-tabs__wrap{display:flex;overflow:hidden}.van-tabs__wrap--scrollable .van-tab{flex:0 0 22%}.van-tabs__wrap--scrollable .van-tab--complete{flex:1 0 auto!important;padding:0 12px}.van-tabs__wrap--scrollable .van-tabs__nav--complete{padding-left:8px;padding-right:8px}.van-tabs__scroll{background-color:var(--tabs-nav-background-color,#fff);overflow:auto}.van-tabs__scroll--line{box-sizing:initial;height:calc(100% + 15px)}.van-tabs__scroll--card{border:1px solid var(--tabs-default-color,#ee0a24);border-radius:2px;box-sizing:border-box;margin:0 var(--padding-md,16px);width:calc(100% - var(--padding-md, 16px)*2)}.van-tabs__scroll::-webkit-scrollbar{display:none}.van-tabs__nav{display:flex;position:relative;-webkit-user-select:none;user-select:none}.van-tabs__nav--card{box-sizing:border-box;height:var(--tabs-card-height,30px)}.van-tabs__nav--card .van-tab{border-right:1px solid var(--tabs-default-color,#ee0a24);color:var(--tabs-default-color,#ee0a24);line-height:calc(var(--tabs-card-height, 30px) - 2px)}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{background-color:var(--tabs-default-color,#ee0a24);color:#fff}.van-tabs__nav--card .van-tab--disabled{color:var(--tab-disabled-text-color,#c8c9cc)}.van-tabs__line{background-color:var(--tabs-bottom-bar-color,#ee0a24);border-radius:var(--tabs-bottom-bar-height,3px);bottom:0;height:var(--tabs-bottom-bar-height,3px);left:0;opacity:0;position:absolute;z-index:1}.van-tabs__track{height:100%;position:relative;width:100%}.van-tabs__track--animated{display:flex;transition-property:left}.van-tabs__content{overflow:hidden}.van-tabs--line{height:var(--tabs-line-height,44px)}.van-tabs--card{height:var(--tabs-card-height,30px)}.van-tab{box-sizing:border-box;color:var(--tab-text-color,#646566);cursor:pointer;flex:1;font-size:var(--tab-font-size,14px);line-height:var(--tabs-line-height,44px);min-width:0;padding:0 5px;position:relative;text-align:center}.van-tab--active{color:var(--tab-active-text-color,#323233);font-weight:var(--font-weight-bold,500)}.van-tab--disabled{color:var(--tab-disabled-text-color,#c8c9cc)}.van-tab__title__info{position:relative!important;top:-1px!important;transform:translateX(0)!important} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.d.ts b/src/miniprogram_npm/@vant/weapp/tag/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.js b/src/miniprogram_npm/@vant/weapp/tag/index.js new file mode 100644 index 0000000..ec4069a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + size: String, + mark: Boolean, + color: String, + plain: Boolean, + round: Boolean, + textColor: String, + type: { + type: String, + value: 'default', + }, + closeable: Boolean, + }, + methods: { + onClose: function () { + this.$emit('close'); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.json b/src/miniprogram_npm/@vant/weapp/tag/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.wxml b/src/miniprogram_npm/@vant/weapp/tag/index.wxml new file mode 100644 index 0000000..59352dd --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.wxml @@ -0,0 +1,15 @@ + + + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.wxs b/src/miniprogram_npm/@vant/weapp/tag/index.wxs new file mode 100644 index 0000000..12d1668 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.wxs @@ -0,0 +1,13 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + return style({ + 'background-color': data.plain ? '' : data.color, + color: data.textColor || data.plain ? data.textColor || data.color : '', + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/tag/index.wxss b/src/miniprogram_npm/@vant/weapp/tag/index.wxss new file mode 100644 index 0000000..0f0cbae --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tag/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-tag{align-items:center;border-radius:var(--tag-border-radius,2px);color:var(--tag-text-color,#fff);display:inline-flex;font-size:var(--tag-font-size,12px);line-height:var(--tag-line-height,16px);padding:var(--tag-padding,0 4px);position:relative}.van-tag--default{background-color:var(--tag-default-color,#969799)}.van-tag--default.van-tag--plain{color:var(--tag-default-color,#969799)}.van-tag--danger{background-color:var(--tag-danger-color,#ee0a24)}.van-tag--danger.van-tag--plain{color:var(--tag-danger-color,#ee0a24)}.van-tag--primary{background-color:var(--tag-primary-color,#1989fa)}.van-tag--primary.van-tag--plain{color:var(--tag-primary-color,#1989fa)}.van-tag--success{background-color:var(--tag-success-color,#07c160)}.van-tag--success.van-tag--plain{color:var(--tag-success-color,#07c160)}.van-tag--warning{background-color:var(--tag-warning-color,#ff976a)}.van-tag--warning.van-tag--plain{color:var(--tag-warning-color,#ff976a)}.van-tag--plain{background-color:var(--tag-plain-background-color,#fff)}.van-tag--plain:before{border:1px solid;border-radius:inherit;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.van-tag--medium{padding:var(--tag-medium-padding,2px 6px)}.van-tag--large{border-radius:var(--tag-large-border-radius,4px);font-size:var(--tag-large-font-size,14px);padding:var(--tag-large-padding,4px 8px)}.van-tag--mark{border-radius:0 var(--tag-round-border-radius,var(--tag-round-border-radius,999px)) var(--tag-round-border-radius,var(--tag-round-border-radius,999px)) 0}.van-tag--mark:after{content:"";display:block;width:2px}.van-tag--round{border-radius:var(--tag-round-border-radius,999px)}.van-tag__close{margin-left:2px;min-width:1em} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/toast/index.d.ts b/src/miniprogram_npm/@vant/weapp/toast/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/toast/index.js b/src/miniprogram_npm/@vant/weapp/toast/index.js new file mode 100644 index 0000000..0c01366 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/index.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + show: Boolean, + mask: Boolean, + message: String, + forbidClick: Boolean, + zIndex: { + type: Number, + value: 1000, + }, + type: { + type: String, + value: 'text', + }, + loadingType: { + type: String, + value: 'circular', + }, + position: { + type: String, + value: 'middle', + }, + }, + methods: { + // for prevent touchmove + noop: function () { }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/toast/index.json b/src/miniprogram_npm/@vant/weapp/toast/index.json new file mode 100644 index 0000000..9b1b78c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index", + "van-overlay": "../overlay/index", + "van-transition": "../transition/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/toast/index.wxml b/src/miniprogram_npm/@vant/weapp/toast/index.wxml new file mode 100644 index 0000000..69f143e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/index.wxml @@ -0,0 +1,36 @@ + + + + + {{ message }} + + + + + + + + + {{ message }} + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/toast/index.wxss b/src/miniprogram_npm/@vant/weapp/toast/index.wxss new file mode 100644 index 0000000..3b7a34e --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-toast{word-wrap:break-word;align-items:center;background-color:var(--toast-background-color,rgba(0,0,0,.7));border-radius:var(--toast-border-radius,8px);box-sizing:initial;color:var(--toast-text-color,#fff);display:flex;flex-direction:column;font-size:var(--toast-font-size,14px);justify-content:center;line-height:var(--toast-line-height,20px);white-space:pre-wrap}.van-toast__container{left:50%;max-width:var(--toast-max-width,70%);position:fixed;top:50%;transform:translate(-50%,-50%);width:-webkit-fit-content;width:fit-content}.van-toast--text{min-width:var(--toast-text-min-width,96px);padding:var(--toast-text-padding,8px 12px)}.van-toast--icon{min-height:var(--toast-default-min-height,88px);padding:var(--toast-default-padding,16px);width:var(--toast-default-width,88px)}.van-toast--icon .van-toast__icon{font-size:var(--toast-icon-size,36px)}.van-toast--icon .van-toast__text{padding-top:8px}.van-toast__loading{margin:10px 0}.van-toast--top{transform:translateY(-30vh)}.van-toast--bottom{transform:translateY(30vh)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/toast/toast.d.ts b/src/miniprogram_npm/@vant/weapp/toast/toast.d.ts new file mode 100644 index 0000000..de2a4a2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/toast.d.ts @@ -0,0 +1,28 @@ +/// +/// +type ToastMessage = string | number; +type ToastContext = WechatMiniprogram.Component.TrivialInstance | WechatMiniprogram.Page.TrivialInstance; +interface ToastOptions { + show?: boolean; + type?: string; + mask?: boolean; + zIndex?: number; + context?: (() => ToastContext) | ToastContext; + position?: string; + duration?: number; + selector?: string; + forbidClick?: boolean; + loadingType?: string; + message?: ToastMessage; + onClose?: () => void; +} +declare function Toast(toastOptions: ToastOptions | ToastMessage): WechatMiniprogram.Component.TrivialInstance | undefined; +declare namespace Toast { + var loading: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined; + var success: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined; + var fail: (options: ToastMessage | ToastOptions) => WechatMiniprogram.Component.TrivialInstance | undefined; + var clear: () => void; + var setDefaultOptions: (options: ToastOptions) => void; + var resetDefaultOptions: () => void; +} +export default Toast; diff --git a/src/miniprogram_npm/@vant/weapp/toast/toast.js b/src/miniprogram_npm/@vant/weapp/toast/toast.js new file mode 100644 index 0000000..f51a89a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/toast/toast.js @@ -0,0 +1,83 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var validator_1 = require("../common/validator"); +var defaultOptions = { + type: 'text', + mask: false, + message: '', + show: true, + zIndex: 1000, + duration: 2000, + position: 'middle', + forbidClick: false, + loadingType: 'circular', + selector: '#van-toast', +}; +var queue = []; +var currentOptions = __assign({}, defaultOptions); +function parseOptions(message) { + return (0, validator_1.isObj)(message) ? message : { message: message }; +} +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +function Toast(toastOptions) { + var options = __assign(__assign({}, currentOptions), parseOptions(toastOptions)); + var context = (typeof options.context === 'function' + ? options.context() + : options.context) || getContext(); + var toast = context.selectComponent(options.selector); + if (!toast) { + console.warn('未找到 van-toast 节点,请确认 selector 及 context 是否正确'); + return; + } + delete options.context; + delete options.selector; + toast.clear = function () { + toast.setData({ show: false }); + if (options.onClose) { + options.onClose(); + } + }; + queue.push(toast); + toast.setData(options); + clearTimeout(toast.timer); + if (options.duration != null && options.duration > 0) { + toast.timer = setTimeout(function () { + toast.clear(); + queue = queue.filter(function (item) { return item !== toast; }); + }, options.duration); + } + return toast; +} +var createMethod = function (type) { return function (options) { + return Toast(__assign({ type: type }, parseOptions(options))); +}; }; +Toast.loading = createMethod('loading'); +Toast.success = createMethod('success'); +Toast.fail = createMethod('fail'); +Toast.clear = function () { + queue.forEach(function (toast) { + toast.clear(); + }); + queue = []; +}; +Toast.setDefaultOptions = function (options) { + Object.assign(currentOptions, options); +}; +Toast.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); +}; +exports.default = Toast; diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.d.ts b/src/miniprogram_npm/@vant/weapp/transition/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.js b/src/miniprogram_npm/@vant/weapp/transition/index.js new file mode 100644 index 0000000..55fc8b8 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var transition_1 = require("../mixins/transition"); +(0, component_1.VantComponent)({ + classes: [ + 'enter-class', + 'enter-active-class', + 'enter-to-class', + 'leave-class', + 'leave-active-class', + 'leave-to-class', + ], + mixins: [(0, transition_1.transition)(true)], +}); diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.json b/src/miniprogram_npm/@vant/weapp/transition/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.wxml b/src/miniprogram_npm/@vant/weapp/transition/index.wxml new file mode 100644 index 0000000..2743785 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.wxml @@ -0,0 +1,10 @@ + + + + + diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.wxs b/src/miniprogram_npm/@vant/weapp/transition/index.wxs new file mode 100644 index 0000000..e0babf6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + return style([ + { + '-webkit-transition-duration': data.currentDuration + 'ms', + 'transition-duration': data.currentDuration + 'ms', + }, + data.display ? null : 'display: none', + data.customStyle, + ]); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/transition/index.wxss b/src/miniprogram_npm/@vant/weapp/transition/index.wxss new file mode 100644 index 0000000..3a3d37f --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/transition/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-transition{transition-timing-function:ease}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-fade-down-enter-active,.van-fade-down-leave-active,.van-fade-left-enter-active,.van-fade-left-leave-active,.van-fade-right-enter-active,.van-fade-right-leave-active,.van-fade-up-enter-active,.van-fade-up-leave-active{transition-property:opacity,transform}.van-fade-up-enter,.van-fade-up-leave-to{opacity:0;transform:translate3d(0,100%,0)}.van-fade-down-enter,.van-fade-down-leave-to{opacity:0;transform:translate3d(0,-100%,0)}.van-fade-left-enter,.van-fade-left-leave-to{opacity:0;transform:translate3d(-100%,0,0)}.van-fade-right-enter,.van-fade-right-leave-to{opacity:0;transform:translate3d(100%,0,0)}.van-slide-down-enter-active,.van-slide-down-leave-active,.van-slide-left-enter-active,.van-slide-left-leave-active,.van-slide-right-enter-active,.van-slide-right-leave-active,.van-slide-up-enter-active,.van-slide-up-leave-active{transition-property:transform}.van-slide-up-enter,.van-slide-up-leave-to{transform:translate3d(0,100%,0)}.van-slide-down-enter,.van-slide-down-leave-to{transform:translate3d(0,-100%,0)}.van-slide-left-enter,.van-slide-left-leave-to{transform:translate3d(-100%,0,0)}.van-slide-right-enter,.van-slide-right-leave-to{transform:translate3d(100%,0,0)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.d.ts b/src/miniprogram_npm/@vant/weapp/tree-select/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.js b/src/miniprogram_npm/@vant/weapp/tree-select/index.js new file mode 100644 index 0000000..b6f69b2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'main-item-class', + 'content-item-class', + 'main-active-class', + 'content-active-class', + 'main-disabled-class', + 'content-disabled-class', + ], + props: { + items: { + type: Array, + observer: 'updateSubItems', + }, + activeId: null, + mainActiveIndex: { + type: Number, + value: 0, + observer: 'updateSubItems', + }, + height: { + type: null, + value: 300, + }, + max: { + type: Number, + value: Infinity, + }, + selectedIcon: { + type: String, + value: 'success', + }, + }, + data: { + subItems: [], + }, + methods: { + // 当一个子项被选择时 + onSelectItem: function (event) { + var item = event.currentTarget.dataset.item; + var isArray = Array.isArray(this.data.activeId); + // 判断有没有超出右侧选择的最大数 + var isOverMax = isArray && this.data.activeId.length >= this.data.max; + // 判断该项有没有被选中, 如果有被选中,则忽视是否超出的条件 + var isSelected = isArray + ? this.data.activeId.indexOf(item.id) > -1 + : this.data.activeId === item.id; + if (!item.disabled && (!isOverMax || isSelected)) { + this.$emit('click-item', item); + } + }, + // 当一个导航被点击时 + onClickNav: function (event) { + var index = event.detail; + var item = this.data.items[index]; + if (!item.disabled) { + this.$emit('click-nav', { index: index }); + } + }, + // 更新子项列表 + updateSubItems: function () { + var _a = this.data, items = _a.items, mainActiveIndex = _a.mainActiveIndex; + var _b = (items[mainActiveIndex] || {}).children, children = _b === void 0 ? [] : _b; + this.setData({ subItems: children }); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.json b/src/miniprogram_npm/@vant/weapp/tree-select/index.json new file mode 100644 index 0000000..42991a2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-sidebar": "../sidebar/index", + "van-sidebar-item": "../sidebar-item/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.wxml b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxml new file mode 100644 index 0000000..2663e52 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + {{ item.text }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.wxs b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxs new file mode 100644 index 0000000..b1cbb39 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxs @@ -0,0 +1,12 @@ +/* eslint-disable */ +var array = require('../wxs/array.wxs'); + +function isActive (activeList, itemId) { + if (array.isArray(activeList)) { + return activeList.indexOf(itemId) > -1; + } + + return activeList === itemId; +} + +module.exports.isActive = isActive; diff --git a/src/miniprogram_npm/@vant/weapp/tree-select/index.wxss b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxss new file mode 100644 index 0000000..5bef0ac --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/tree-select/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-tree-select{display:flex;font-size:var(--tree-select-font-size,14px);position:relative;-webkit-user-select:none;user-select:none}.van-tree-select__nav{--sidebar-padding:12px 8px 12px 12px;background-color:var(--tree-select-nav-background-color,#f7f8fa);flex:1}.van-tree-select__nav__inner{height:100%;width:100%!important}.van-tree-select__content{background-color:var(--tree-select-content-background-color,#fff);flex:2}.van-tree-select__item{font-weight:700;line-height:var(--tree-select-item-height,44px);padding:0 32px 0 var(--padding-md,16px);position:relative}.van-tree-select__item--active{color:var(--tree-select-item-active-color,#ee0a24)}.van-tree-select__item--disabled{color:var(--tree-select-item-disabled-color,#c8c9cc)}.van-tree-select__selected{position:absolute;right:var(--padding-md,16px);top:50%;transform:translateY(-50%)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.d.ts b/src/miniprogram_npm/@vant/weapp/uploader/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.js b/src/miniprogram_npm/@vant/weapp/uploader/index.js new file mode 100644 index 0000000..7842d9b --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.js @@ -0,0 +1,183 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var shared_1 = require("./shared"); +var utils_1 = require("./utils"); +(0, component_1.VantComponent)({ + props: __assign(__assign(__assign(__assign({ disabled: Boolean, multiple: Boolean, uploadText: String, useBeforeRead: Boolean, afterRead: null, beforeRead: null, previewSize: { + type: null, + value: 80, + }, name: { + type: null, + value: '', + }, accept: { + type: String, + value: 'image', + }, fileList: { + type: Array, + value: [], + observer: 'formatFileList', + }, maxSize: { + type: Number, + value: Number.MAX_VALUE, + }, maxCount: { + type: Number, + value: 100, + }, deletable: { + type: Boolean, + value: true, + }, showUpload: { + type: Boolean, + value: true, + }, previewImage: { + type: Boolean, + value: true, + }, previewFullImage: { + type: Boolean, + value: true, + }, videoFit: { + type: String, + value: 'contain', + }, imageFit: { + type: String, + value: 'scaleToFill', + }, uploadIcon: { + type: String, + value: 'photograph', + } }, shared_1.imageProps), shared_1.videoProps), shared_1.mediaProps), shared_1.messageFileProps), + data: { + lists: [], + isInCount: true, + }, + methods: { + formatFileList: function () { + var _a = this.data, _b = _a.fileList, fileList = _b === void 0 ? [] : _b, maxCount = _a.maxCount; + var lists = fileList.map(function (item) { return (__assign(__assign({}, item), { isImage: (0, utils_1.isImageFile)(item), isVideo: (0, utils_1.isVideoFile)(item), deletable: (0, validator_1.isBoolean)(item.deletable) ? item.deletable : true })); }); + this.setData({ lists: lists, isInCount: lists.length < maxCount }); + }, + getDetail: function (index) { + return { + name: this.data.name, + index: index == null ? this.data.fileList.length : index, + }; + }, + startUpload: function () { + var _this = this; + var _a = this.data, maxCount = _a.maxCount, multiple = _a.multiple, lists = _a.lists, disabled = _a.disabled; + if (disabled) + return; + (0, utils_1.chooseFile)(__assign(__assign({}, this.data), { maxCount: maxCount - lists.length })) + .then(function (res) { + _this.onBeforeRead(multiple ? res : res[0]); + }) + .catch(function (error) { + _this.$emit('error', error); + }); + }, + onBeforeRead: function (file) { + var _this = this; + var _a = this.data, beforeRead = _a.beforeRead, useBeforeRead = _a.useBeforeRead; + var res = true; + if (typeof beforeRead === 'function') { + res = beforeRead(file, this.getDetail()); + } + if (useBeforeRead) { + res = new Promise(function (resolve, reject) { + _this.$emit('before-read', __assign(__assign({ file: file }, _this.getDetail()), { callback: function (ok) { + ok ? resolve() : reject(); + } })); + }); + } + if (!res) { + return; + } + if ((0, validator_1.isPromise)(res)) { + res.then(function (data) { return _this.onAfterRead(data || file); }); + } + else { + this.onAfterRead(file); + } + }, + onAfterRead: function (file) { + var _a = this.data, maxSize = _a.maxSize, afterRead = _a.afterRead; + var oversize = Array.isArray(file) + ? file.some(function (item) { return item.size > maxSize; }) + : file.size > maxSize; + if (oversize) { + this.$emit('oversize', __assign({ file: file }, this.getDetail())); + return; + } + if (typeof afterRead === 'function') { + afterRead(file, this.getDetail()); + } + this.$emit('after-read', __assign({ file: file }, this.getDetail())); + }, + deleteItem: function (event) { + var index = event.currentTarget.dataset.index; + this.$emit('delete', __assign(__assign({}, this.getDetail(index)), { file: this.data.fileList[index] })); + }, + onPreviewImage: function (event) { + if (!this.data.previewFullImage) + return; + var index = event.currentTarget.dataset.index; + var _a = this.data, lists = _a.lists, showmenu = _a.showmenu; + var item = lists[index]; + wx.previewImage({ + urls: lists.filter(function (item) { return (0, utils_1.isImageFile)(item); }).map(function (item) { return item.url; }), + current: item.url, + showmenu: showmenu, + fail: function () { + wx.showToast({ title: '预览图片失败', icon: 'none' }); + }, + }); + }, + onPreviewVideo: function (event) { + if (!this.data.previewFullImage) + return; + var index = event.currentTarget.dataset.index; + var lists = this.data.lists; + var sources = []; + var current = lists.reduce(function (sum, cur, curIndex) { + if (!(0, utils_1.isVideoFile)(cur)) { + return sum; + } + sources.push(__assign(__assign({}, cur), { type: 'video' })); + if (curIndex < index) { + sum++; + } + return sum; + }, 0); + wx.previewMedia({ + sources: sources, + current: current, + fail: function () { + wx.showToast({ title: '预览视频失败', icon: 'none' }); + }, + }); + }, + onPreviewFile: function (event) { + var index = event.currentTarget.dataset.index; + wx.openDocument({ + filePath: this.data.lists[index].url, + showMenu: true, + }); + }, + onClickPreview: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.lists[index]; + this.$emit('click-preview', __assign(__assign({}, item), this.getDetail(index))); + }, + }, +}); diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.json b/src/miniprogram_npm/@vant/weapp/uploader/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.wxml b/src/miniprogram_npm/@vant/weapp/uploader/index.wxml new file mode 100644 index 0000000..2276fbf --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.wxml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + {{ item.name || item.url }} + + + + + {{ item.message }} + + + + + + + + + + + + + + + + {{ uploadText }} + + + + diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.wxs b/src/miniprogram_npm/@vant/weapp/uploader/index.wxs new file mode 100644 index 0000000..c567ec2 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function sizeStyle(data) { + return "Array" === data.previewSize.constructor ? style({ + width: addUnit(data.previewSize[0]), + height: addUnit(data.previewSize[1]), + }) : style({ + width: addUnit(data.previewSize), + height: addUnit(data.previewSize), + }); +} + +module.exports = { + sizeStyle: sizeStyle, +}; diff --git a/src/miniprogram_npm/@vant/weapp/uploader/index.wxss b/src/miniprogram_npm/@vant/weapp/uploader/index.wxss new file mode 100644 index 0000000..11f8696 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-uploader{display:inline-block;position:relative}.van-uploader__wrapper{display:flex;flex-wrap:wrap}.van-uploader__slot:empty{display:none}.van-uploader__slot:not(:empty)+.van-uploader__upload{display:none!important}.van-uploader__upload{align-items:center;background-color:var(--uploader-upload-background-color,#f7f8fa);box-sizing:border-box;display:flex;flex-direction:column;height:var(--uploader-size,80px);justify-content:center;margin:0 8px 8px 0;position:relative;width:var(--uploader-size,80px)}.van-uploader__upload:active{background-color:var(--uploader-upload-active-color,#f2f3f5)}.van-uploader__upload-icon{color:var(--uploader-icon-color,#dcdee0);font-size:var(--uploader-icon-size,24px)}.van-uploader__upload-text{color:var(--uploader-text-color,#969799);font-size:var(--uploader-text-font-size,12px);margin-top:var(--padding-xs,8px)}.van-uploader__upload--disabled{opacity:var(--uploader-disabled-opacity,.5)}.van-uploader__preview{cursor:pointer;margin:0 8px 8px 0;position:relative}.van-uploader__preview-image{display:block;height:var(--uploader-size,80px);overflow:hidden;width:var(--uploader-size,80px)}.van-uploader__preview-delete,.van-uploader__preview-delete:after{height:var(--uploader-delete-icon-size,14px);position:absolute;right:0;top:0;width:var(--uploader-delete-icon-size,14px)}.van-uploader__preview-delete:after{background-color:var(--uploader-delete-background-color,rgba(0,0,0,.7));border-radius:0 0 0 12px;content:""}.van-uploader__preview-delete-icon{color:var(--uploader-delete-color,#fff);font-size:var(--uploader-delete-icon-size,14px);position:absolute;right:0;top:0;transform:scale(.7) translate(10%,-10%);z-index:1}.van-uploader__file{align-items:center;background-color:var(--uploader-file-background-color,#f7f8fa);display:flex;flex-direction:column;height:var(--uploader-size,80px);justify-content:center;width:var(--uploader-size,80px)}.van-uploader__file-icon{color:var(--uploader-file-icon-color,#646566);font-size:var(--uploader-file-icon-size,20px)}.van-uploader__file-name{box-sizing:border-box;color:var(--uploader-file-name-text-color,#646566);font-size:var(--uploader-file-name-font-size,12px);margin-top:var(--uploader-file-name-margin-top,8px);padding:var(--uploader-file-name-padding,0 4px);text-align:center;width:100%}.van-uploader__mask{align-items:center;background-color:var(--uploader-mask-background-color,rgba(50,50,51,.88));bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0}.van-uploader__mask-icon{font-size:var(--uploader-mask-icon-size,22px)}.van-uploader__mask-message{font-size:var(--uploader-mask-message-font-size,12px);line-height:var(--uploader-mask-message-line-height,14px);margin-top:6px;padding:0 var(--padding-base,4px)}.van-uploader__loading{color:var(--uploader-loading-icon-color,#fff)!important;height:var(--uploader-loading-icon-size,22px);width:var(--uploader-loading-icon-size,22px)} \ No newline at end of file diff --git a/src/miniprogram_npm/@vant/weapp/uploader/shared.d.ts b/src/miniprogram_npm/@vant/weapp/uploader/shared.d.ts new file mode 100644 index 0000000..77b4541 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/shared.d.ts @@ -0,0 +1,57 @@ +export declare const imageProps: { + sizeType: { + type: ArrayConstructor; + value: string[]; + }; + capture: { + type: ArrayConstructor; + value: string[]; + }; + showmenu: { + type: BooleanConstructor; + value: boolean; + }; +}; +export declare const videoProps: { + capture: { + type: ArrayConstructor; + value: string[]; + }; + compressed: { + type: BooleanConstructor; + value: boolean; + }; + maxDuration: { + type: NumberConstructor; + value: number; + }; + camera: { + type: StringConstructor; + value: string; + }; + referrerPolicy: { + type: StringConstructor; + value: string; + }; +}; +export declare const mediaProps: { + capture: { + type: ArrayConstructor; + value: string[]; + }; + mediaType: { + type: ArrayConstructor; + value: string[]; + }; + maxDuration: { + type: NumberConstructor; + value: number; + }; + camera: { + type: StringConstructor; + value: string; + }; +}; +export declare const messageFileProps: { + extension: null; +}; diff --git a/src/miniprogram_npm/@vant/weapp/uploader/shared.js b/src/miniprogram_npm/@vant/weapp/uploader/shared.js new file mode 100644 index 0000000..67f3263 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/shared.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.messageFileProps = exports.mediaProps = exports.videoProps = exports.imageProps = void 0; +// props for image +exports.imageProps = { + sizeType: { + type: Array, + value: ['original', 'compressed'], + }, + capture: { + type: Array, + value: ['album', 'camera'], + }, + showmenu: { + type: Boolean, + value: true, + }, +}; +// props for video +exports.videoProps = { + capture: { + type: Array, + value: ['album', 'camera'], + }, + compressed: { + type: Boolean, + value: true, + }, + maxDuration: { + type: Number, + value: 60, + }, + camera: { + type: String, + value: 'back', + }, + referrerPolicy: { + type: String, + value: 'no-referrer', + }, +}; +// props for media +exports.mediaProps = { + capture: { + type: Array, + value: ['album', 'camera'], + }, + mediaType: { + type: Array, + value: ['image', 'video', 'mix'], + }, + maxDuration: { + type: Number, + value: 60, + }, + camera: { + type: String, + value: 'back', + }, +}; +// props for file +exports.messageFileProps = { + extension: null, +}; diff --git a/src/miniprogram_npm/@vant/weapp/uploader/utils.d.ts b/src/miniprogram_npm/@vant/weapp/uploader/utils.d.ts new file mode 100644 index 0000000..1e76ee6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/utils.d.ts @@ -0,0 +1,24 @@ +export interface File { + url: string; + size?: number; + name?: string; + type: string; + duration?: number; + time?: number; + isImage?: boolean; + isVideo?: boolean; +} +export declare function isImageFile(item: File): boolean; +export declare function isVideoFile(item: File): boolean; +export declare function chooseFile({ accept, multiple, capture, compressed, maxDuration, sizeType, camera, maxCount, mediaType, extension, }: { + accept: any; + multiple: any; + capture: any; + compressed: any; + maxDuration: any; + sizeType: any; + camera: any; + maxCount: any; + mediaType: any; + extension: any; +}): Promise; diff --git a/src/miniprogram_npm/@vant/weapp/uploader/utils.js b/src/miniprogram_npm/@vant/weapp/uploader/utils.js new file mode 100644 index 0000000..a5d49c6 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/uploader/utils.js @@ -0,0 +1,112 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.chooseFile = exports.isVideoFile = exports.isImageFile = void 0; +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +function isImageFile(item) { + if (item.isImage != null) { + return item.isImage; + } + if (item.type) { + return item.type === 'image'; + } + if (item.url) { + return (0, validator_1.isImageUrl)(item.url); + } + return false; +} +exports.isImageFile = isImageFile; +function isVideoFile(item) { + if (item.isVideo != null) { + return item.isVideo; + } + if (item.type) { + return item.type === 'video'; + } + if (item.url) { + return (0, validator_1.isVideoUrl)(item.url); + } + return false; +} +exports.isVideoFile = isVideoFile; +function formatImage(res) { + return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['path'])), { type: 'image', url: item.tempFilePath || item.path, thumb: item.tempFilePath || item.path })); }); +} +function formatVideo(res) { + return [ + __assign(__assign({}, (0, utils_1.pickExclude)(res, ['tempFilePath', 'thumbTempFilePath', 'errMsg'])), { type: 'video', url: res.tempFilePath, thumb: res.thumbTempFilePath }), + ]; +} +function formatMedia(res) { + return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['fileType', 'thumbTempFilePath', 'tempFilePath'])), { type: item.fileType, url: item.tempFilePath, thumb: item.fileType === 'video' ? item.thumbTempFilePath : item.tempFilePath })); }); +} +function formatFile(res) { + return res.tempFiles.map(function (item) { return (__assign(__assign({}, (0, utils_1.pickExclude)(item, ['path'])), { url: item.path })); }); +} +function chooseFile(_a) { + var accept = _a.accept, multiple = _a.multiple, capture = _a.capture, compressed = _a.compressed, maxDuration = _a.maxDuration, sizeType = _a.sizeType, camera = _a.camera, maxCount = _a.maxCount, mediaType = _a.mediaType, extension = _a.extension; + return new Promise(function (resolve, reject) { + switch (accept) { + case 'image': + if (utils_1.isPC || utils_1.isWxWork) { + wx.chooseImage({ + count: multiple ? Math.min(maxCount, 9) : 1, + sourceType: capture, + sizeType: sizeType, + success: function (res) { return resolve(formatImage(res)); }, + fail: reject, + }); + } + else { + wx.chooseMedia({ + count: multiple ? Math.min(maxCount, 9) : 1, + mediaType: ['image'], + sourceType: capture, + maxDuration: maxDuration, + sizeType: sizeType, + camera: camera, + success: function (res) { return resolve(formatImage(res)); }, + fail: reject, + }); + } + break; + case 'media': + wx.chooseMedia({ + count: multiple ? Math.min(maxCount, 9) : 1, + mediaType: mediaType, + sourceType: capture, + maxDuration: maxDuration, + sizeType: sizeType, + camera: camera, + success: function (res) { return resolve(formatMedia(res)); }, + fail: reject, + }); + break; + case 'video': + wx.chooseVideo({ + sourceType: capture, + compressed: compressed, + maxDuration: maxDuration, + camera: camera, + success: function (res) { return resolve(formatVideo(res)); }, + fail: reject, + }); + break; + default: + wx.chooseMessageFile(__assign(__assign({ count: multiple ? maxCount : 1, type: accept }, (extension ? { extension: extension } : {})), { success: function (res) { return resolve(formatFile(res)); }, fail: reject })); + break; + } + }); +} +exports.chooseFile = chooseFile; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs b/src/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs new file mode 100644 index 0000000..4f33462 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs @@ -0,0 +1,12 @@ +/* eslint-disable */ +var REGEXP = getRegExp('^-?\d+(\.\d+)?$'); + +function addUnit(value) { + if (value == null) { + return undefined; + } + + return REGEXP.test('' + value) ? value + 'px' : value; +} + +module.exports = addUnit; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/array.wxs b/src/miniprogram_npm/@vant/weapp/wxs/array.wxs new file mode 100644 index 0000000..610089c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/array.wxs @@ -0,0 +1,5 @@ +function isArray(array) { + return array && array.constructor === 'Array'; +} + +module.exports.isArray = isArray; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/bem.wxs b/src/miniprogram_npm/@vant/weapp/wxs/bem.wxs new file mode 100644 index 0000000..1efa129 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/bem.wxs @@ -0,0 +1,39 @@ +/* eslint-disable */ +var array = require('./array.wxs'); +var object = require('./object.wxs'); +var PREFIX = 'van-'; + +function join(name, mods) { + name = PREFIX + name; + mods = mods.map(function(mod) { + return name + '--' + mod; + }); + mods.unshift(name); + return mods.join(' '); +} + +function traversing(mods, conf) { + if (!conf) { + return; + } + + if (typeof conf === 'string' || typeof conf === 'number') { + mods.push(conf); + } else if (array.isArray(conf)) { + conf.forEach(function(item) { + traversing(mods, item); + }); + } else if (typeof conf === 'object') { + object.keys(conf).forEach(function(key) { + conf[key] && mods.push(key); + }); + } +} + +function bem(name, conf) { + var mods = []; + traversing(mods, conf); + return join(name, mods); +} + +module.exports = bem; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/memoize.wxs b/src/miniprogram_npm/@vant/weapp/wxs/memoize.wxs new file mode 100644 index 0000000..8f7f46d --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/memoize.wxs @@ -0,0 +1,55 @@ +/** + * Simple memoize + * wxs doesn't support fn.apply, so this memoize only support up to 2 args + */ +/* eslint-disable */ + +function isPrimitive(value) { + var type = typeof value; + return ( + type === 'boolean' || + type === 'number' || + type === 'string' || + type === 'undefined' || + value === null + ); +} + +// mock simple fn.call in wxs +function call(fn, args) { + if (args.length === 2) { + return fn(args[0], args[1]); + } + + if (args.length === 1) { + return fn(args[0]); + } + + return fn(); +} + +function serializer(args) { + if (args.length === 1 && isPrimitive(args[0])) { + return args[0]; + } + var obj = {}; + for (var i = 0; i < args.length; i++) { + obj['key' + i] = args[i]; + } + return JSON.stringify(obj); +} + +function memoize(fn) { + var cache = {}; + + return function() { + var key = serializer(arguments); + if (cache[key] === undefined) { + cache[key] = call(fn, arguments); + } + + return cache[key]; + }; +} + +module.exports = memoize; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/object.wxs b/src/miniprogram_npm/@vant/weapp/wxs/object.wxs new file mode 100644 index 0000000..e077107 --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/object.wxs @@ -0,0 +1,13 @@ +/* eslint-disable */ +var REGEXP = getRegExp('{|}|"', 'g'); + +function keys(obj) { + return JSON.stringify(obj) + .replace(REGEXP, '') + .split(',') + .map(function(item) { + return item.split(':')[0]; + }); +} + +module.exports.keys = keys; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/style.wxs b/src/miniprogram_npm/@vant/weapp/wxs/style.wxs new file mode 100644 index 0000000..d88ca7c --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/style.wxs @@ -0,0 +1,42 @@ +/* eslint-disable */ +var object = require('./object.wxs'); +var array = require('./array.wxs'); + +function kebabCase(word) { + var newWord = word + .replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }) + .toLowerCase() + + return newWord; +} + +function style(styles) { + if (array.isArray(styles)) { + return styles + .filter(function (item) { + return item != null && item !== ''; + }) + .map(function (item) { + return style(item); + }) + .join(';'); + } + + if ('Object' === styles.constructor) { + return object + .keys(styles) + .filter(function (key) { + return styles[key] != null && styles[key] !== ''; + }) + .map(function (key) { + return [kebabCase(key), [styles[key]]].join(':'); + }) + .join(';'); + } + + return styles; +} + +module.exports = style; diff --git a/src/miniprogram_npm/@vant/weapp/wxs/utils.wxs b/src/miniprogram_npm/@vant/weapp/wxs/utils.wxs new file mode 100644 index 0000000..f66d33a --- /dev/null +++ b/src/miniprogram_npm/@vant/weapp/wxs/utils.wxs @@ -0,0 +1,10 @@ +/* eslint-disable */ +var bem = require('./bem.wxs'); +var memoize = require('./memoize.wxs'); +var addUnit = require('./add-unit.wxs'); + +module.exports = { + bem: memoize(bem), + memoize: memoize, + addUnit: addUnit +}; diff --git a/src/miniprogram_npm/dayjs/index.js b/src/miniprogram_npm/dayjs/index.js new file mode 100644 index 0000000..18ba1e5 --- /dev/null +++ b/src/miniprogram_npm/dayjs/index.js @@ -0,0 +1,13 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1733364594195, function(require, module, exports) { +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 1 && arguments[1] !== undefined + ? arguments[1] + : {}; + defaults(options, defOpts); + this._fn = fn; + this._isRunning = false; + this._options = options; + }, + run: function() { + var _this = this; + if (this._isRunning) { + return this._pendingPromise; + } + this._reset(); + this._isRunning = true; + var options = this._options; + var pendingPromise = new Promise(function(resolve, reject) { + var runSample = function() { + var initCount = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : 1; + delay(function() { + _this + ._runSample(initCount) + .then(function(_ref) { + var period = _ref.period, + count = _ref.count; + var sample = _this._sample; + sample.push(period); + if ( + perfNow() - _this._timeStamp < + options.maxTime || + sample.length < options.minSamples + ) { + runSample(count); + } else { + resolve(_this._calcResult()); + } + }) + .catch(function(err) { + reject(err); + }); + }, options.delay); + }; + runSample(); + }); + function complete() { + this._isRunning = false; + delete this._pendingPromise; + } + pendingPromise.then(complete).catch(complete); + this._pendingPromise = pendingPromise; + return pendingPromise; + }, + _reset: function() { + this._timeStamp = perfNow(); + this._sample = []; + }, + _calcResult: function() { + var sample = this._sample; + var result = { + sample: sample, + toString: function() { + var hz = this.hz, + rme = this.rme, + name = this.name; + var size = this.sample.length; + return '' + .concat(name, ' x ') + .concat( + formatNumber(hz.toFixed(hz < 100 ? 2 : 0)), + ' ops/sec \xB1' + ) + .concat(rme.toFixed(2), '% (') + .concat(size, ' run') + .concat(size === 1 ? '' : 's', ' sampled)'); + } + }; + var size = sample.length; + result.name = this._options.name || this._fn.name || 'anonymous'; + result.mean = average.apply(null, sample); + function varOf(sum, x) { + return sum + Math.pow(x - result.mean, 2); + } + result.variance = reduce(sample, varOf, 0) / (size - 1) || 0; + result.deviation = Math.sqrt(result.variance); + result.sem = result.deviation / Math.sqrt(size); + var critical = tTable[Math.round(size - 1) || 1] || tTable.infinity; + result.moe = result.sem * critical; + result.rme = (result.moe / result.mean) * 100 || 0; + result.hz = 1000 / result.mean; + return result; + }, + _runSample: function(count) { + var _this2 = this; + var options = this._options; + var minTime = options.minTime; + return new Promise(function(resolve, reject) { + var runCycle = function(count) { + delay(function() { + var elapsed = 0; + try { + elapsed = _this2._runCycle(count); + } catch (e) { + return reject(e); + } + var period = elapsed / count; + if (elapsed < minTime) { + if (elapsed === 0) { + count *= 100; + } else { + count += Math.ceil( + (minTime - elapsed) / period + ); + } + runCycle(count); + } else { + resolve({ + count: count, + period: period + }); + } + }, options.delay); + }; + runCycle(count); + }); + }, + _runCycle: function(count) { + var fn = this._fn; + var now = perfNow(); + while (count--) { + fn(); + } + return perfNow() - now; + } + }, + { + all: function(benches, options) { + var promises = []; + each(benches, function(bench) { + if (!(bench instanceof exports)) { + bench = new exports(bench, options); + } + promises.push(bench.run()); + }); + return Promise.all(promises).then(function(results) { + results.toString = function() { + var data = map(results, function(_ref2, idx) { + var name = _ref2.name, + sample = _ref2.sample, + hz = _ref2.hz, + rme = _ref2.rme; + var columns = []; + var size = sample.length; + columns.push( + toStr(idx + 1), + name || 'anonymous', + formatNumber(hz.toFixed(hz < 100 ? 2 : 0)), + '\xB1'.concat(rme.toFixed(2), '%'), + '' + .concat(size, ' run') + .concat(size === 1 ? '' : 's') + ); + return columns; + }); + data.unshift([ + 'index', + 'name', + 'ops/sec', + 'rme', + 'sampled' + ]); + return table(data); + }; + return results; + }); + } + } +); +var defOpts = { + minTime: 50, + maxTime: 5000, + minSamples: 5, + delay: 5, + name: '' +}; +var tTable = { + '1': 12.706, + '2': 4.303, + '3': 3.182, + '4': 2.776, + '5': 2.571, + '6': 2.447, + '7': 2.365, + '8': 2.306, + '9': 2.262, + '10': 2.228, + '11': 2.201, + '12': 2.179, + '13': 2.16, + '14': 2.145, + '15': 2.131, + '16': 2.12, + '17': 2.11, + '18': 2.101, + '19': 2.093, + '20': 2.086, + '21': 2.08, + '22': 2.074, + '23': 2.069, + '24': 2.064, + '25': 2.06, + '26': 2.056, + '27': 2.052, + '28': 2.048, + '29': 2.045, + '30': 2.042, + infinity: 1.96 +}; +function formatNumber(number) { + number = String(number).split('.'); + return ( + number[0].replace(/(?=(?:\d{3})+$)(?!\b)/g, ',') + + (number[1] ? '.' + number[1] : '') + ); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/BloomFilter.js b/src/miniprogram_npm/miniprogram-licia/BloomFilter.js new file mode 100644 index 0000000..c65c8d6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/BloomFilter.js @@ -0,0 +1,46 @@ +var Class = require('./Class'); +var fill = require('./fill'); +var fnv1a = require('./fnv1a'); +var strHash = require('./strHash'); +var each = require('./each'); +var some = require('./some'); +exports = Class({ + initialize: function() { + var size = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : 1024; + var k = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : 3; + this._buckets = fill(new Array(size), 0); + this._k = k; + this._size = size; + }, + add: function(val) { + var _this = this; + each(this._locations(val), function(location) { + return (_this._buckets[location] = 1); + }); + }, + test: function(val) { + var _this2 = this; + return !some(this._locations(val), function(location) { + return _this2._buckets[location] === 0; + }); + }, + _locations: function(val) { + var ret = []; + var size = this._size; + var a = fnv1a(val); + var b = strHash(val); + + for (var i = 0; i < this._k; i++) { + ret[i] = (a + b * i) % size; + } + return ret; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Caseless.js b/src/miniprogram_npm/miniprogram-licia/Caseless.js new file mode 100644 index 0000000..d2ae6f8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Caseless.js @@ -0,0 +1,35 @@ +var Class = require('./Class'); +var lowerCase = require('./lowerCase'); +var keys = require('./keys'); +exports = Class({ + initialize: function(obj) { + this._target = obj; + }, + set: function(key, val) { + var name = this.getKey(key); + if (name) key = name; + this._target[key] = val; + }, + get: function(key) { + key = this.getKey(key); + if (key) { + return this._target[key]; + } + }, + getKey: function(key) { + var name = lowerCase(key); + var _keys = keys(this._target); + for (var i = 0, len = _keys.length; i < len; i++) { + var _key = _keys[i]; + if (lowerCase(_key) === name) return _key; + } + }, + remove: function(key) { + delete this._target[this.getKey(key)]; + }, + has: function(key) { + return !!this.getKey(key); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Channel.js b/src/miniprogram_npm/miniprogram-licia/Channel.js new file mode 100644 index 0000000..97de876 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Channel.js @@ -0,0 +1,48 @@ +var Emitter = require('./Emitter'); +var each = require('./each'); +var remove = require('./remove'); +var some = require('./some'); +exports = Emitter.extend({ + initialize: function Channel() { + this._connections = []; + this.callSuper(Emitter, 'initialize'); + }, + send: function(msg) { + var _this = this; + each(this._connections, function(connection) { + connection.emit('message', msg, _this); + }); + }, + connect: function(connection) { + if (this.isConnected(connection)) { + return; + } + this._connections.push(connection); + connection.connect(this); + }, + disconnect: function(connection) { + if (!this.isConnected(connection)) { + return; + } + remove(this._connections, function(item) { + return item === connection; + }); + connection.disconnect(this); + }, + isConnected: function(connection) { + if (connection === this) { + throw new Error('Channel cannot be connected to itself.'); + } + return some(this._connections, function(item) { + return item === connection; + }); + }, + destroy: function() { + var _this2 = this; + each(this._connections, function(connection) { + _this2.disconnect(connection); + }); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Class.js b/src/miniprogram_npm/miniprogram-licia/Class.js new file mode 100644 index 0000000..519ee3f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Class.js @@ -0,0 +1,64 @@ +var extend = require('./extend'); +var toArr = require('./toArr'); +var inherits = require('./inherits'); +var safeGet = require('./safeGet'); +var isMiniProgram = require('./isMiniProgram'); +exports = function(methods, statics) { + return Base.extend(methods, statics); +}; +function makeClass(parent, methods, statics) { + statics = statics || {}; + var className = + methods.className || safeGet(methods, 'initialize.name') || ''; + delete methods.className; + var ctor = function() { + var args = toArr(arguments); + return this.initialize + ? this.initialize.apply(this, args) || this + : this; + }; + if (!isMiniProgram) { + try { + ctor = new Function( + 'toArr', + 'return function ' + + className + + '()' + + '{' + + 'var args = toArr(arguments);' + + 'return this.initialize ? this.initialize.apply(this, args) || this : this;' + + '};' + )(toArr); + } catch (e) {} + } + inherits(ctor, parent); + ctor.prototype.constructor = ctor; + ctor.extend = function(methods, statics) { + return makeClass(ctor, methods, statics); + }; + ctor.inherits = function(Class) { + inherits(ctor, Class); + }; + ctor.methods = function(methods) { + extend(ctor.prototype, methods); + return ctor; + }; + ctor.statics = function(statics) { + extend(ctor, statics); + return ctor; + }; + ctor.methods(methods).statics(statics); + return ctor; +} +var Base = (exports.Base = makeClass(Object, { + className: 'Base', + callSuper: function(parent, name, args) { + var superMethod = parent.prototype[name]; + return superMethod.apply(this, args); + }, + toString: function() { + return this.constructor.name; + } +})); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Color.js b/src/miniprogram_npm/miniprogram-licia/Color.js new file mode 100644 index 0000000..acf0965 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Color.js @@ -0,0 +1,95 @@ +var Class = require('./Class'); +var isStr = require('./isStr'); +var clamp = require('./clamp'); +var rgbToHsl = require('./rgbToHsl'); +var hslToRgb = require('./hslToRgb'); +var hex = require('./hex'); +exports = Class( + { + initialize: function Color(color) { + if (isStr(color)) color = exports.parse(color); + this.model = color.model; + this.val = color.val; + }, + toRgb: function() { + var val = this.val; + if (this.model === 'hsl') val = hslToRgb(val); + var prefix = 'rgba'; + if (val[3] === 1) { + prefix = 'rgb'; + val = val.slice(0, 3); + } + return prefix + '(' + val.join(', ') + ')'; + }, + toHex: function() { + var val = this.val; + if (this.model === 'hsl') val = hslToRgb(val); + var ret = hex.encode(val.slice(0, 3)); + if (ret[0] === ret[1] && ret[2] === ret[3] && ret[4] === ret[5]) { + ret = ret[0] + ret[2] + ret[5]; + } + return '#' + ret; + }, + toHsl: function() { + var val = this.val; + if (this.model === 'rgb') val = rgbToHsl(val); + var prefix = 'hsla'; + if (val[3] === 1) { + prefix = 'hsl'; + val = val.slice(0, 3); + } + val[1] = val[1] + '%'; + val[2] = val[2] + '%'; + return prefix + '(' + val.join(', ') + ')'; + } + }, + { + parse: function(colorStr) { + var i, match; + var val = [0, 0, 0, 1], + model = 'rgb'; + + if ((match = colorStr.match(regHexAbbr))) { + match = match[1]; + for (i = 0; i < 3; i++) { + val[i] = parseInt(match[i] + match[i], 16); + } + } else if ((match = colorStr.match(regHex))) { + match = match[1]; + for (i = 0; i < 3; i++) { + var i2 = i * 2; + val[i] = parseInt(match.slice(i2, i2 + 2), 16); + } + } else if ((match = colorStr.match(regRgba))) { + for (i = 0; i < 3; i++) { + val[i] = parseInt(match[i + 1], 0); + } + if (match[4]) val[3] = parseFloat(match[4]); + } else if ((match = colorStr.match(regRgbaPer))) { + for (i = 0; i < 3; i++) { + val[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + if (match[4]) val[3] = parseFloat(match[4]); + } else if ((match = colorStr.match(regHsla))) { + model = 'hsl'; + val = [ + ((parseFloat(match[1]) % 360) + 360) % 360, + clamp(parseFloat(match[2]), 0, 100), + clamp(parseFloat(match[3]), 0, 100), + clamp(parseFloat(match[4]), 0, 1) + ]; + } + return { + val: val, + model: model + }; + } + } +); +var regHexAbbr = /^#([a-fA-F0-9]{3})$/; +var regHex = /^#([a-fA-F0-9]{6})$/; +var regRgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/; +var regRgbaPer = /^rgba?\(\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/; +var regHsla = /^hsla?\(\s*([+-]?\d*[.]?\d+)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Delegator.js b/src/miniprogram_npm/miniprogram-licia/Delegator.js new file mode 100644 index 0000000..c968eb8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Delegator.js @@ -0,0 +1,48 @@ +var Class = require('./Class'); +var safeGet = require('./safeGet'); +var defineProp = require('./defineProp'); +var isStr = require('./isStr'); +exports = Class({ + initialize: function Delegator(host, target) { + this._host = host; + if (isStr(target)) { + target = safeGet(host, target); + } + this._target = target; + }, + method: function(name, targetName) { + var target = this._target; + var fn = target[targetName || name]; + this._host[name] = function() { + return fn.apply(target, arguments); + }; + return this; + }, + getter: function(name, targetName) { + var target = this._target; + targetName = targetName || name; + defineProp(this._host, name, { + get: function() { + return target[targetName]; + }, + configurable: true + }); + return this; + }, + setter: function(name, targetName) { + var target = this._target; + targetName = targetName || name; + defineProp(this._host, name, { + set: function(val) { + return (target[targetName] = val); + }, + configurable: true + }); + return this; + }, + access: function(name, targetName) { + return this.getter(name, targetName).setter(name, targetName); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Dispatcher.js b/src/miniprogram_npm/miniprogram-licia/Dispatcher.js new file mode 100644 index 0000000..427ad82 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Dispatcher.js @@ -0,0 +1,55 @@ +var Class = require('./Class'); +var uniqId = require('./uniqId'); +exports = Class({ + initialize: function Dispatcher() { + this._callbacks = {}; + this._isDispatching = false; + this._isHandled = {}; + this._isPending = {}; + }, + dispatch: function(payload) { + this._startDispatching(payload); + for (var id in this._callbacks) { + if (this._isPending[id]) continue; + this._invokeCb(id); + } + this._stopDispatching(); + }, + register: function(cb) { + var id = uniqId('ID_'); + this._callbacks[id] = cb; + return id; + }, + waitFor: function(ids) { + for (var i = 0, len = ids.length; i < len; i++) { + var id = ids[i]; + if (this._isPending[id]) continue; + this._invokeCb(id); + } + }, + unregister: function(id) { + delete this._callbacks[id]; + }, + isDispatching: function() { + return this._isDispatching; + }, + _startDispatching: function(payload) { + for (var id in this._callbacks) { + this._isPending[id] = false; + this._isHandled[id] = false; + } + this._pendingPayload = payload; + this._isDispatching = true; + }, + _stopDispatching: function() { + delete this._pendingPayload; + this._isDispatching = false; + }, + _invokeCb: function(id) { + this._isPending[id] = true; + this._callbacks[id](this._pendingPayload); + this._isHandled[id] = true; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Emitter.js b/src/miniprogram_npm/miniprogram-licia/Emitter.js new file mode 100644 index 0000000..7412636 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Emitter.js @@ -0,0 +1,65 @@ +var Class = require('./Class'); +var has = require('./has'); +var each = require('./each'); +var slice = require('./slice'); +var once = require('./once'); +var clone = require('./clone'); +exports = Class( + { + initialize: function Emitter() { + this._events = this._events || {}; + }, + on: function(event, listener) { + this._events[event] = this._events[event] || []; + this._events[event].push(listener); + return this; + }, + off: function(event, listener) { + var events = this._events; + if (!has(events, event)) return; + var idx = events[event].indexOf(listener); + if (idx > -1) { + events[event].splice(idx, 1); + } + return this; + }, + once: function(event, listener) { + this.on(event, once(listener)); + return this; + }, + emit: function(event) { + var _this = this; + if (!has(this._events, event)) return; + var args = slice(arguments, 1); + var events = clone(this._events[event]); + each( + events, + function(val) { + return val.apply(_this, args); + }, + this + ); + return this; + }, + removeAllListeners: function(event) { + if (!event) { + this._events = {}; + } else { + delete this._events[event]; + } + return this; + } + }, + { + mixin: function(obj) { + each(['on', 'off', 'once', 'emit', 'removeAllListeners'], function( + val + ) { + obj[val] = exports.prototype[val]; + }); + obj._events = obj._events || {}; + } + } +); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Enum.js b/src/miniprogram_npm/miniprogram-licia/Enum.js new file mode 100644 index 0000000..7785e23 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Enum.js @@ -0,0 +1,31 @@ +var Class = require('./Class'); +var freeze = require('./freeze'); +var isArr = require('./isArr'); +var each = require('./each'); +var keys = require('./keys'); +exports = Class({ + initialize: function Enum(map) { + if (isArr(map)) { + this.size = map.length; + each( + map, + function(member, val) { + this[member] = val; + }, + this + ); + } else { + this.size = keys(map).length; + each( + map, + function(val, member) { + this[member] = val; + }, + this + ); + } + freeze(this); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/HashTable.js b/src/miniprogram_npm/miniprogram-licia/HashTable.js new file mode 100644 index 0000000..f5c61d4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/HashTable.js @@ -0,0 +1,61 @@ +var Class = require('./Class'); +var LinkedList = require('./LinkedList'); +var map = require('./map'); +var strHash = require('./strHash'); +var has = require('./has'); +exports = Class({ + initialize: function HashTable() { + var size = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : 32; + this._buckets = map(Array(size), function() { + return new LinkedList(); + }); + this._keys = {}; + }, + set: function(key, val) { + var keyHash = this._hash(key); + this._keys[key] = keyHash; + var linkedList = this._buckets[keyHash]; + var node = linkedList.find(function(val) { + return val.key === key; + }); + if (!node) { + linkedList.push({ + key: key, + value: val + }); + } else { + node.value.value = val; + } + }, + get: function(key) { + var linkedList = this._buckets[this._hash(key)]; + var node = linkedList.find(function(val) { + return val.key === key; + }); + if (node) { + return node.value.value; + } + }, + has: function(key) { + return has(this._keys, key); + }, + delete: function(key) { + var keyHash = this._hash(key); + delete this._keys[key]; + var linkedList = this._buckets[keyHash]; + var node = linkedList.find(function(val) { + return val.key === key; + }); + if (node) { + linkedList.rmNode(node); + } + }, + _hash: function(key) { + return strHash(key) % this._buckets.length; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Heap.js b/src/miniprogram_npm/miniprogram-licia/Heap.js new file mode 100644 index 0000000..a687143 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Heap.js @@ -0,0 +1,79 @@ +var Class = require('./Class'); +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = Class({ + initialize: function Heap() { + var cmp = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : isSorted.defComparator; + this._cmp = cmp; + this.clear(); + }, + clear: function() { + this._data = []; + this.size = 0; + }, + add: function(item) { + this._data.push(item); + this.size++; + this._heapifyUp(this.size - 1); + return this.size; + }, + poll: function() { + var data = this._data; + if (this.size > 0) { + var item = data[0]; + data[0] = data[this.size - 1]; + this.size--; + this._heapifyDown(0); + return item; + } + }, + peek: function() { + if (this.size > 0) { + return this._data[0]; + } + }, + _heapifyUp: function(idx) { + var data = this._data; + var parent = parentIdx(idx); + while (idx > 0 && this._cmp(data[parent], data[idx]) > 0) { + swap(data, parent, idx); + idx = parent; + parent = parentIdx(idx); + } + }, + _heapifyDown: function(idx) { + var size = this.size; + var cmp = this._cmp; + var data = this._data; + while (leftChildIdx(idx) < size) { + var smallerIdx = leftChildIdx(idx); + var rightChild = rightChildIdx(idx); + if ( + rightChild < size && + cmp(data[rightChildIdx], data[smallerIdx]) < 0 + ) { + smallerIdx = rightChild; + } + if (cmp(data[idx], data[smallerIdx]) < 0) { + break; + } else { + swap(data, idx, smallerIdx); + } + idx = smallerIdx; + } + } +}); +function parentIdx(idx) { + return Math.floor((idx - 1) / 2); +} +function leftChildIdx(idx) { + return 2 * idx + 1; +} +function rightChildIdx(idx) { + return 2 * idx + 2; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/HeapSnapshot.js b/src/miniprogram_npm/miniprogram-licia/HeapSnapshot.js new file mode 100644 index 0000000..d36a926 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/HeapSnapshot.js @@ -0,0 +1,111 @@ +var Class = require('./Class'); +var toBool = require('./toBool'); +var camelCase = require('./camelCase'); +var LinkedList = require('./LinkedList'); +var isStr = require('./isStr'); +var each = require('./each'); +var map = require('./map'); +exports = Class({ + initialize: function HeapSnapshot(profile) { + if (isStr(profile)) { + profile = JSON.parse(profile); + } + this.nodes = new LinkedList(); + this.edges = new LinkedList(); + var snapshot = profile.snapshot; + var meta = snapshot.meta; + this.nodeFields = map(meta.node_fields, camelCase); + this.nodeTypes = meta.node_types[this.nodeFields.indexOf('type')]; + this.edgeFields = map(meta.edge_fields, camelCase); + this.edgeTypes = meta.edge_types[this.edgeFields.indexOf('type')]; + this._init(profile); + }, + _init: function(profile) { + var _this = this; + var nodes = profile.nodes, + edges = profile.edges, + strings = profile.strings; + var nodeFields = this.nodeFields, + edgeFields = this.edgeFields; + var curEdgeIdx = 0; + var nodeFieldCount = nodeFields.length; + var edgeFieldCount = edgeFields.length; + var nodeMap = {}; + for (var i = 0, len = nodes.length; i < len; i += nodeFieldCount) { + var node = new Node(this); + node.init(nodes.slice(i, i + nodeFieldCount), strings); + this.nodes.push(node); + nodeMap[i] = node; + } + this.nodes.forEach(function(node) { + var edgeCount = node.edgeCount; + delete node.edgeCount; + var maxEdgeIdx = curEdgeIdx + edgeCount * edgeFieldCount; + for (var _i = curEdgeIdx; _i < maxEdgeIdx; _i += edgeFieldCount) { + var edge = new Edge(_this, node); + edge.init( + edges.slice(_i, _i + edgeFieldCount), + strings, + nodeMap + ); + _this.edges.push(edge); + } + curEdgeIdx = maxEdgeIdx; + }); + } +}); +var Node = Class({ + initialize: function Node(heapSnapshot) { + this._heapSnapshot = heapSnapshot; + }, + init: function(fields, strings) { + var _this2 = this; + var heapSnapshot = this._heapSnapshot; + var nodeFields = heapSnapshot.nodeFields, + nodeTypes = heapSnapshot.nodeTypes; + each(nodeFields, function(field, idx) { + var val = fields[idx]; + switch (field) { + case 'name': + val = strings[val]; + break; + case 'detachedness': + val = toBool(val); + break; + case 'type': + val = nodeTypes[val]; + break; + } + _this2[field] = val; + }); + } +}); +var Edge = Class({ + initialize: function Edge(heapSnapshot, fromNode) { + this._heapSnapshot = heapSnapshot; + this.fromNode = fromNode; + }, + init: function(fields, strings, nodeMap) { + var _this3 = this; + var heapSnapshot = this._heapSnapshot; + var edgeFields = heapSnapshot.edgeFields, + edgeTypes = heapSnapshot.edgeTypes; + each(edgeFields, function(field, idx) { + var val = fields[idx]; + switch (field) { + case 'nameOrIndex': + val = strings[val]; + break; + case 'type': + val = edgeTypes[val]; + break; + case 'toNode': + val = nodeMap[val]; + break; + } + _this3[field] = val; + }); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/I18n.js b/src/miniprogram_npm/miniprogram-licia/I18n.js new file mode 100644 index 0000000..75cdbc2 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/I18n.js @@ -0,0 +1,38 @@ +var Class = require('./Class'); +var safeGet = require('./safeGet'); +var extend = require('./extend'); +var strTpl = require('./strTpl'); +var isStr = require('./isStr'); +var isFn = require('./isFn'); +exports = Class({ + initialize: function I18n(locale, langs) { + this._locale = locale; + this._langs = langs; + }, + set: function(locale, lang) { + if (this._langs[locale]) { + extend(this._langs[locale], lang); + } else { + this._langs[locale] = lang; + } + }, + t: function(path, data) { + var val = ''; + var lang = this._langs[this._locale]; + if (!lang) return ''; + val = safeGet(lang, path); + if (data) { + if (isStr(val)) { + val = strTpl(val, data); + } else if (isFn(val)) { + val = val(data); + } + } + return val || ''; + }, + locale: function(locale) { + this._locale = locale; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/JsonTransformer.js b/src/miniprogram_npm/miniprogram-licia/JsonTransformer.js new file mode 100644 index 0000000..2bdf4fe --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/JsonTransformer.js @@ -0,0 +1,68 @@ +var Class = require('./Class'); +var safeSet = require('./safeSet'); +var safeGet = require('./safeGet'); +var map = require('./map'); +var filter = require('./filter'); +var isFn = require('./isFn'); +var safeDel = require('./safeDel'); +var toArr = require('./toArr'); +var each = require('./each'); +exports = Class({ + className: 'JsonTransformer', + initialize: function(data) { + this._data = data || {}; + }, + set: function(key, val) { + if (arguments.length === 1) { + this._data = key; + return this; + } + safeSet(this._data, key, val); + return this; + }, + get: function(key) { + if (key == null) return this._data; + return safeGet(this._data, key); + }, + map: function(from, to, fn) { + if (isFn(from)) return this.set(map(this._data, from, this)); + if (isFn(to)) { + fn = to; + to = from; + } + return this.set(to, map(this.get(from), fn, this)); + }, + filter: function(from, to, fn) { + if (isFn(from)) return this.set(filter(this._data, from, this)); + if (isFn(to)) { + fn = to; + to = from; + } + return this.set(to, filter(this.get(from), fn, this)); + }, + remove: function(keys) { + keys = toArr(keys); + var data = this._data; + each(keys, function(key) { + safeDel(data, key); + }); + return this; + }, + compute: function(from, to, fn) { + if (isFn(from)) return this.set(from.call(this, this._data)); + if (isFn(to)) return this.set(from, to.call(this, this.get(from))); + from = map( + toArr(from), + function(key) { + return safeGet(this._data, key); + }, + this + ); + return this.set(to, fn.apply(this, from)); + }, + toString: function() { + return JSON.stringify(this._data); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/LinkedList.js b/src/miniprogram_npm/miniprogram-licia/LinkedList.js new file mode 100644 index 0000000..393b1cd --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/LinkedList.js @@ -0,0 +1,112 @@ +var Class = require('./Class'); +exports = Class({ + initialize: function LinkedList() { + this.tail = null; + this.head = null; + this.size = 0; + }, + push: function(val) { + var node = new Node(val, this.tail, null, this); + this.tail = node; + this.head = this.head || node; + this.size++; + return this.size; + }, + pop: function() { + if (!this.tail) return; + var node = this.tail; + this.tail = node.prev; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } + this.size--; + return node.value; + }, + unshift: function(val) { + var node = new Node(val, null, this.head, this); + this.head = node; + this.tail = this.tail || node; + this.size++; + return this.size; + }, + shift: function() { + if (!this.head) return; + var node = this.head; + this.head = node.next; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } + this.size--; + return node.value; + }, + rmNode: function(node) { + if (node.list !== this) { + throw Error('Node does not belong to this list'); + } + var next = node.next, + prev = node.prev; + if (next) { + next.prev = prev; + } + if (prev) { + prev.next = next; + } + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } + node.list = null; + node.prev = null; + node.next = null; + this.size--; + }, + find: function(fn) { + for (var i = 0, current = this.head; current !== null; i++) { + if (fn(current.value)) { + return current; + } + current = current.next; + } + }, + forEach: function(iterator, ctx) { + ctx = arguments.length > 1 ? ctx : this; + for (var i = 0, current = this.head; current !== null; i++) { + iterator.call(ctx, current.value, i, this); + current = current.next; + } + }, + toArr: function() { + var arr = new Array(this.size); + for (var i = 0, current = this.head; current !== null; i++) { + arr[i] = current.value; + current = current.next; + } + return arr; + } +}); +var Node = (exports.Node = Class({ + initialize: function Node(val, prev, next, list) { + this.value = val; + this.list = list; + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } + } +})); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Logger.js b/src/miniprogram_npm/miniprogram-licia/Logger.js new file mode 100644 index 0000000..e7cf250 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Logger.js @@ -0,0 +1,69 @@ +var Emitter = require('./Emitter'); +var Enum = require('./Enum'); +var toArr = require('./toArr'); +var isUndef = require('./isUndef'); +var clone = require('./clone'); +var isStr = require('./isStr'); +var isNum = require('./isNum'); +exports = Emitter.extend( + { + initialize: function Logger(name, level) { + this.name = name; + this.setLevel(isUndef(level) ? exports.level.DEBUG : level); + this.callSuper(Emitter, 'initialize', arguments); + }, + setLevel: function(level) { + if (isStr(level)) { + level = exports.level[level.toUpperCase()]; + if (level) this._level = level; + return this; + } + if (isNum(level)) this._level = level; + return this; + }, + getLevel: function() { + return this._level; + }, + formatter: function(type, argList) { + return argList; + }, + trace: function() { + return this._log('trace', arguments); + }, + debug: function() { + return this._log('debug', arguments); + }, + info: function() { + return this._log('info', arguments); + }, + warn: function() { + return this._log('warn', arguments); + }, + error: function() { + return this._log('error', arguments); + }, + _log: function(type, argList) { + argList = toArr(argList); + if (argList.length === 0) return this; + this.emit('all', type, clone(argList)); + if (exports.level[type.toUpperCase()] < this._level) return this; + this.emit(type, clone(argList)); + + var consoleMethod = type === 'debug' ? console.log : console[type]; + consoleMethod.apply(console, this.formatter(type, argList)); + return this; + } + }, + { + level: new Enum({ + TRACE: 0, + DEBUG: 1, + INFO: 2, + WARN: 3, + ERROR: 4, + SILENT: 5 + }) + } +); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Lru.js b/src/miniprogram_npm/miniprogram-licia/Lru.js new file mode 100644 index 0000000..3624bd6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Lru.js @@ -0,0 +1,63 @@ +var LinkedList = require('./LinkedList'); +var PseudoMap = require('./PseudoMap'); +var Class = require('./Class'); +exports = Class({ + initialize: function Lru(max) { + this._max = max; + this._list = new LinkedList(); + this._map = new PseudoMap(); + }, + has: function(key) { + return this._map.has(key); + }, + remove: function(key) { + var map = this._map; + if (this.has(key)) { + var node = map.get(key); + this._list.rmNode(node); + map.delete(key); + } + }, + get: function(key) { + var list = this._list; + var map = this._map; + var ret; + if (this.has(key)) { + var node = map.get(key); + ret = node.value.val; + list.rmNode(node); + list.unshift(node.value); + map.set(key, list.head); + } + return ret; + }, + set: function(key, val) { + var list = this._list; + var map = this._map; + if (this.has(key)) { + var node = map.get(key); + list.rmNode(node); + list.unshift({ + key: key, + val: val + }); + map.set(key, list.head); + } else { + list.unshift({ + key: key, + val: val + }); + map.set(key, list.head); + if (list.size > this._max) { + var item = list.pop(); + map.delete(item.key); + } + } + }, + clear: function() { + this._map = new PseudoMap(); + this._list = new LinkedList(); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/PriorityQueue.js b/src/miniprogram_npm/miniprogram-licia/PriorityQueue.js new file mode 100644 index 0000000..d6e2afc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/PriorityQueue.js @@ -0,0 +1,39 @@ +var Class = require('./Class'); +var Heap = require('./Heap'); +var isSorted = require('./isSorted'); +var wrap = require('./wrap'); +exports = Class({ + initialize: function PriorityQueue() { + var cmp = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : isSorted.defComparator; + this._heap = new Heap( + wrap(cmp, function(fn, a, b) { + return fn(a, b) * -1; + }) + ); + this.size = 0; + }, + clear: function() { + this._heap.clear(); + this.size = 0; + }, + enqueue: function(item) { + this._heap.add(item); + this.size++; + return this.size; + }, + dequeue: function() { + var item = this._heap.poll(); + if (item) { + this.size--; + return item; + } + }, + peek: function() { + return this._heap.peek(); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Promise.js b/src/miniprogram_npm/miniprogram-licia/Promise.js new file mode 100644 index 0000000..0f03eef --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Promise.js @@ -0,0 +1,178 @@ +var Class = require('./Class'); +var isObj = require('./isObj'); +var isFn = require('./isFn'); +var State = require('./State'); +var bind = require('./bind'); +var nextTick = require('./nextTick'); +var noop = require('./noop'); +var toArr = require('./toArr'); +var Promise = (exports = Class( + { + initialize: function Promise(fn) { + if (!isObj(this)) + throw new TypeError('Promises must be constructed via new'); + if (!isFn(fn)) throw new TypeError(fn + ' is not a function'); + var self = this; + this._state = new State('pending', { + fulfill: { + from: 'pending', + to: 'fulfilled' + }, + reject: { + from: 'pending', + to: 'rejected' + }, + adopt: { + from: 'pending', + to: 'adopted' + } + }) + .on('fulfill', assignVal) + .on('reject', assignVal) + .on('adopt', assignVal); + function assignVal(val) { + self._value = val; + } + this._handled = false; + this._value = undefined; + this._deferreds = []; + doResolve(fn, this); + }, + catch: function(onRejected) { + return this.then(null, onRejected); + }, + then: function(onFulfilled, onRejected) { + var promise = new Promise(noop); + handle(this, new Handler(onFulfilled, onRejected, promise)); + return promise; + } + }, + { + all: function(arr) { + var args = toArr(arr); + return new Promise(function(resolve, reject) { + if (args.length === 0) return resolve([]); + var remaining = args.length; + function res(i, val) { + try { + if (val && (isObj(val) || isFn(val))) { + var then = val.then; + if (isFn(then)) { + then.call( + val, + function(val) { + res(i, val); + }, + reject + ); + return; + } + } + args[i] = val; + if (--remaining === 0) resolve(args); + } catch (e) { + reject(e); + } + } + for (var i = 0; i < args.length; i++) res(i, args[i]); + }); + }, + resolve: function(val) { + if (val && isObj(val) && val.constructor === Promise) return val; + return new Promise(function(resolve) { + resolve(val); + }); + }, + reject: function(val) { + return new Promise(function(resolve, reject) { + reject(val); + }); + }, + race: function(values) { + return new Promise(function(resolve, reject) { + for (var i = 0, len = values.length; i < len; i++) { + values[i].then(resolve, reject); + } + }); + } + } +)); +var Handler = Class({ + initialize: function Handler(onFulfilled, onRejected, promise) { + this.onFulfilled = isFn(onFulfilled) ? onFulfilled : null; + this.onRejected = isFn(onRejected) ? onRejected : null; + this.promise = promise; + } +}); +function reject(self, err) { + self._state.reject(err); + finale(self); +} +function resolve(self, val) { + try { + if (val === self) + throw new TypeError('A promise cannot be resolved with itself'); + if (val && (isObj(val) || isFn(val))) { + var then = val.then; + if (val instanceof Promise) { + self._state.adopt(val); + return finale(self); + } + if (isFn(then)) return doResolve(bind(then, val), self); + } + self._state.fulfill(val); + finale(self); + } catch (e) { + reject(self, e); + } +} +function finale(self) { + for (var i = 0, len = self._deferreds.length; i < len; i++) { + handle(self, self._deferreds[i]); + } + self._deferreds = null; +} +function handle(self, deferred) { + while (self._state.is('adopted')) self = self._value; + if (self._state.is('pending')) return self._deferreds.push(deferred); + self._handled = true; + nextTick(function() { + var isFulfilled = self._state.is('fulfilled'); + var cb = isFulfilled ? deferred.onFulfilled : deferred.onRejected; + if (cb === null) + return (isFulfilled ? resolve : reject)( + deferred.promise, + self._value + ); + var ret; + try { + ret = cb(self._value); + } catch (e) { + return reject(deferred.promise, e); + } + resolve(deferred.promise, ret); + }); +} +function doResolve(fn, self) { + var done = false; + try { + fn( + function(val) { + if (done) return; + done = true; + resolve(self, val); + }, + function(reason) { + if (done) return; + done = true; + reject(self, reason); + } + ); + } catch (e) { + if (done) return; + done = true; + reject(self, e); + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/PseudoMap.js b/src/miniprogram_npm/miniprogram-licia/PseudoMap.js new file mode 100644 index 0000000..1036911 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/PseudoMap.js @@ -0,0 +1,64 @@ +var Class = require('./Class'); +var root = require('./root'); +var defineProp = require('./defineProp'); +var keys = require('./keys'); +var each = require('./each'); +var isArr = require('./isArr'); +var isUndef = require('./isUndef'); +if (root.Map && !false) { + exports = root.Map; +} else { + exports = Class({ + initialize: function PseudoMap(data) { + this.clear(); + var self = this; + defineProp(this, 'size', { + get: function() { + return keys(self._data).length; + }, + set: function() {}, + enumerable: true, + configurable: true + }); + if (data instanceof exports) { + data.forEach(function(val, key) { + this.set(key, val); + }, this); + } else if (isArr(data)) { + each( + data, + function(val) { + this.set(val[0], val[1]); + }, + this + ); + } + }, + forEach: function(fn, ctx) { + each( + this._data, + function(val, key) { + fn.call(this, val, key); + }, + ctx + ); + }, + has: function(key) { + return !isUndef(this._data[key]); + }, + get: function(key) { + return this._data[key]; + }, + set: function(key, val) { + this._data[key] = val; + }, + delete: function(key) { + delete this._data[key]; + }, + clear: function() { + this._data = {}; + } + }); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Queue.js b/src/miniprogram_npm/miniprogram-licia/Queue.js new file mode 100644 index 0000000..ab3b5e9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Queue.js @@ -0,0 +1,35 @@ +var Class = require('./Class'); +exports = Class({ + initialize: function Queue() { + this.clear(); + }, + clear: function() { + this._items = []; + this.size = 0; + }, + enqueue: function(item) { + this._items.push(item); + return ++this.size; + }, + dequeue: function() { + if (!this.size) return; + this.size--; + return this._items.shift(); + }, + peek: function() { + if (!this.size) return; + return this._items[0]; + }, + forEach: function(iterator, ctx) { + ctx = arguments.length > 1 ? ctx : this; + var items = this._items; + for (var i = 0, size = this.size; i < size; i++) { + iterator.call(ctx, items[i], i, this); + } + }, + toArr: function() { + return this._items.slice(0); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/QuickLru.js b/src/miniprogram_npm/miniprogram-licia/QuickLru.js new file mode 100644 index 0000000..4c01e78 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/QuickLru.js @@ -0,0 +1,49 @@ +var isUndef = require('./isUndef'); +var Class = require('./Class'); +exports = Class({ + initialize: function QuickLru(max) { + this._max = max; + this._cache = {}; + this._oldCache = {}; + this._size = 0; + }, + has: function(key) { + return !isUndef(this._cache[key]) || !isUndef(this._oldCache[key]); + }, + remove: function(key) { + if (!isUndef(this._cache[key])) this._cache[key] = undefined; + if (!isUndef(this._oldCache[key])) this._oldCache[key] = undefined; + }, + get: function(key) { + if (!isUndef(this._cache[key])) { + return this._cache[key]; + } + var val = this._oldCache[key]; + if (!isUndef(val)) { + this._update(key, val); + return val; + } + }, + set: function(key, val) { + if (!isUndef(this._cache[key])) { + this._cache[key] = val; + } else { + this._update(key, val); + } + }, + clear: function() { + this._cache = {}; + this._oldCache = {}; + }, + _update: function(key, val) { + this._cache[key] = val; + this._size++; + if (this._size > this._max) { + this._size = 0; + this._oldCache = this._cache; + this._cache = {}; + } + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Readiness.js b/src/miniprogram_npm/miniprogram-licia/Readiness.js new file mode 100644 index 0000000..638974e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Readiness.js @@ -0,0 +1,59 @@ +var Class = require('./Class'); +var toArr = require('./toArr'); +var each = require('./each'); +var map = require('./map'); +var noop = require('./noop'); +var some = require('./some'); +exports = Class({ + initialize: function Readiness() { + this._promises = {}; + this._resolves = {}; + this._states = {}; + }, + signal: function(tasks) { + var states = this._states; + each(this._getPromises(toArr(tasks)), function(val) { + if (!val.state) { + states[val.task] = true; + val.resolve(); + } + }); + }, + isReady: function(tasks) { + return !some(this._getPromises(toArr(tasks)), function(val) { + return !val.state; + }); + }, + ready: function(tasks) { + var fn = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : noop; + return Promise.all( + map(this._getPromises(toArr(tasks)), function(val) { + return val.promise; + }) + ).then(fn); + }, + _getPromises: function(tasks) { + var promises = this._promises; + var resolves = this._resolves; + var states = this._states; + return map(tasks, function(task) { + if (!promises[task]) { + promises[task] = new Promise(function(resolve) { + resolves[task] = resolve; + states[task] = false; + }); + } + return { + task: task, + promise: promises[task], + resolve: resolves[task], + state: states[task] + }; + }); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ReduceStore.js b/src/miniprogram_npm/miniprogram-licia/ReduceStore.js new file mode 100644 index 0000000..543cb77 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ReduceStore.js @@ -0,0 +1,41 @@ +var Class = require('./Class'); +var clone = require('./clone'); +var remove = require('./remove'); +exports = Class({ + initialize: function ReduceStore(reducer, initialState) { + this._reducer = reducer; + this._state = initialState; + this._curListeners = []; + this._nextListeners = this._curListeners; + }, + subscribe: function(listener) { + var isSubscribed = true; + this._ensureCanMutateNextListeners(); + this._nextListeners.push(listener); + var self = this; + return function() { + if (!isSubscribed) return; + isSubscribed = false; + self._ensureCanMutateNextListeners(); + remove(self._nextListeners, function(val) { + return val === listener; + }); + }; + }, + dispatch: function(action) { + this._state = this._reducer(this._state, action); + var listeners = (this._curListeners = this._nextListeners); + for (var i = 0, len = listeners.length; i < len; i++) listeners[i](); + return action; + }, + getState: function() { + return this._state; + }, + _ensureCanMutateNextListeners: function() { + if (this._nextListeners === this._curListeners) { + this._nextListeners = clone(this._curListeners); + } + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Semaphore.js b/src/miniprogram_npm/miniprogram-licia/Semaphore.js new file mode 100644 index 0000000..3beb419 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Semaphore.js @@ -0,0 +1,28 @@ +var Class = require('./Class'); +var Queue = require('./Queue'); +exports = Class({ + initialize: function Semaphore() { + var counter = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : 1; + this._counter = counter; + this._tasks = new Queue(); + }, + wait: function(fn) { + if (this._counter > 0) { + this._counter--; + return fn(); + } + this._tasks.enqueue(fn); + }, + signal: function() { + var task = this._tasks.dequeue(); + if (task) { + return task(); + } + this._counter++; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/SingleEmitter.js b/src/miniprogram_npm/miniprogram-licia/SingleEmitter.js new file mode 100644 index 0000000..a76bda4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/SingleEmitter.js @@ -0,0 +1,48 @@ +var Class = require('./Class'); +var clone = require('./clone'); +var each = require('./each'); +var toArr = require('./toArr'); +exports = Class( + { + initialize: function SingleEmitter() { + this._listeners = []; + }, + addListener: function(listener) { + this._listeners.push(listener); + }, + rmListener: function(listener) { + var idx = this._listeners.indexOf(listener); + if (idx > -1) { + this._listeners.splice(idx, 1); + } + }, + rmAllListeners: function() { + this._listeners = []; + }, + emit: function() { + var _this = this; + var args = toArr(arguments); + var listeners = clone(this._listeners); + each( + listeners, + function(listener) { + return listener.apply(_this, args); + }, + this + ); + } + }, + { + mixin: function(obj) { + each( + ['addListener', 'rmListener', 'emit', 'rmAllListeners'], + function(val) { + obj[val] = exports.prototype[val]; + } + ); + obj._listeners = obj._listeners || []; + } + } +); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Stack.js b/src/miniprogram_npm/miniprogram-licia/Stack.js new file mode 100644 index 0000000..8341b4d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Stack.js @@ -0,0 +1,35 @@ +var Class = require('./Class'); +var reverse = require('./reverse'); +exports = Class({ + initialize: function Stack() { + this.clear(); + }, + clear: function() { + this._items = []; + this.size = 0; + }, + push: function(item) { + this._items.push(item); + return ++this.size; + }, + pop: function() { + if (!this.size) return; + this.size--; + return this._items.pop(); + }, + peek: function() { + return this._items[this.size - 1]; + }, + forEach: function(iterator, ctx) { + ctx = arguments.length > 1 ? ctx : this; + var items = this._items; + for (var i = this.size - 1, j = 0; i >= 0; i--, j++) { + iterator.call(ctx, items[i], j, this); + } + }, + toArr: function() { + return reverse(this._items); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/State.js b/src/miniprogram_npm/miniprogram-licia/State.js new file mode 100644 index 0000000..7bd98d6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/State.js @@ -0,0 +1,45 @@ +var Emitter = require('./Emitter'); +var each = require('./each'); +var some = require('./some'); +var toArr = require('./toArr'); +exports = Emitter.extend({ + className: 'State', + initialize: function(initial, events) { + this.callSuper(Emitter, 'initialize'); + this.current = initial; + var self = this; + each(events, function(event, key) { + self[key] = buildEvent(key, event); + }); + }, + is: function(state) { + return this.current === state; + } +}); +function buildEvent(name, event) { + var from = toArr(event.from); + var to = event.to; + return function() { + var args = toArr(arguments); + args.unshift(name); + var hasEvent = some( + from, + function(val) { + return this.current === val; + }, + this + ); + if (hasEvent) { + this.current = to; + this.emit.apply(this, args); + } else { + this.emit( + 'error', + new Error(this.current + ' => ' + to + ' error'), + name + ); + } + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Store.js b/src/miniprogram_npm/miniprogram-licia/Store.js new file mode 100644 index 0000000..f02a055 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Store.js @@ -0,0 +1,58 @@ +var Emitter = require('./Emitter'); +var isStr = require('./isStr'); +var isObj = require('./isObj'); +var each = require('./each'); +var toArr = require('./toArr'); +exports = Emitter.extend({ + initialize: function Store(data) { + this.callSuper(Emitter, 'initialize', arguments); + this._data = data || {}; + this.save(this._data); + }, + set: function(key, val) { + var data; + if (isStr(key)) { + data = {}; + data[key] = val; + } else if (isObj(key)) { + data = key; + } + var self = this; + each(data, function(val, key) { + var oldVal = self._data[key]; + self._data[key] = val; + self.emit('change', key, val, oldVal); + }); + this.save(this._data); + }, + get: function(key) { + var data = this._data; + if (isStr(key)) return data[key]; + var ret = {}; + each(key, function(val) { + ret[val] = data[val]; + }); + return ret; + }, + remove: function(key) { + key = toArr(key); + var data = this._data; + each(key, function(val) { + delete data[val]; + }); + this.save(data); + }, + clear: function() { + this._data = {}; + this.save(this._data); + }, + each: function(fn) { + each(this._data, fn); + }, + + save: function(data) { + this._data = data; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Trace.js b/src/miniprogram_npm/miniprogram-licia/Trace.js new file mode 100644 index 0000000..e980181 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Trace.js @@ -0,0 +1,157 @@ +var Class = require('./Class'); +var each = require('./each'); +var map = require('./map'); +exports = Class({ + initialize: function Trace() { + var _this = this; + var events = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : []; + this._processes = {}; + each(events, function(event) { + return _this.addEvent(event); + }); + }, + addEvent: function(event) { + var process = this.getProcess(event.pid); + process.addEvent(event); + }, + rmEvent: function(event) { + var process = this.getProcess(event.pid); + process.rmEvent(event); + }, + getProcess: function(id) { + var process = this._processes[id]; + if (!process) { + process = new Process(id); + this._processes[id] = process; + } + return process; + }, + rmProcess: function(id) { + delete this._processes[id]; + }, + processes: function() { + return map(this._processes); + }, + toJSON: function() { + var events = []; + each(this.processes(), function(process) { + events.push.apply(events, process.toJSON()); + }); + return events; + } +}); +var Process = Class({ + initialize: function Process(id) { + this._id = id; + this._name = ''; + this._threads = {}; + this._metadata = {}; + }, + id: function() { + return this._id; + }, + name: function() { + return this._name; + }, + addEvent: function(event) { + if (event.cat === '__metadata') { + if (event.name === 'process_name') { + this._name = event.args.name; + } + if (event.tid === 0) { + this._metadata[event.name] = event.args; + return; + } + } + var thread = this.getThread(event.tid); + thread.addEvent(event); + }, + rmEvent: function(event) { + var thread = this.getThread(event.tid); + thread.rmEvent(event); + }, + getThread: function(id) { + var thread = this._threads[id]; + if (!thread) { + thread = new Thread(id, this.id()); + this._threads[id] = thread; + } + return thread; + }, + rmThread: function(id) { + delete this._threads[id]; + }, + threads: function() { + return map(this._threads); + }, + toJSON: function() { + var _this2 = this; + var events = []; + each(this._metadata, function(args, name) { + events.push(createMetaEvent(_this2._id, 0, name, args)); + }); + each(this.threads(), function(thread) { + events.push.apply(events, thread.toJSON()); + }); + return events; + } +}); +var Thread = Class({ + initialize: function Thread(id, pid) { + this._id = id; + this._pid = pid; + this._name = ''; + this._events = []; + this._metadata = {}; + }, + id: function() { + return this._id; + }, + name: function() { + return this._name; + }, + addEvent: function(event) { + if (event.cat === '__metadata') { + if (event.name === 'thread_name') { + this._name = event.args.name; + } + this._metadata[event.name] = event.args; + return; + } + this._events.push(event); + }, + rmEvent: function(event) { + var events = this._events; + events.splice(events.indexOf(event), 1); + }, + events: function() { + return map(this._events); + }, + toJSON: function() { + var _this3 = this; + var events = []; + each(this._metadata, function(args, name) { + events.push(createMetaEvent(_this3._pid, _this3._id, name, args)); + }); + each(this.events(), function(event) { + events.push(event); + }); + return events; + } +}); +function createMetaEvent(pid, tid, name, args) { + return { + args: args, + cat: '__metadata', + name: name, + ph: 'M', + pid: pid, + tid: tid, + ts: 0 + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Tracing.js b/src/miniprogram_npm/miniprogram-licia/Tracing.js new file mode 100644 index 0000000..17ecfa6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Tracing.js @@ -0,0 +1,227 @@ +var Class = require('./Class'); +var Trace = require('./Trace'); +var perfNow = require('./perfNow'); +var extend = require('./extend'); +var isNode = require('./isNode'); +var Stack = require('./Stack'); +var map = require('./map'); +var trim = require('./trim'); +var isEmpty = require('./isEmpty'); +var intersect = require('./intersect'); +var convertBase = require('./convertBase'); +var defPid = 0; +var defTid = 0; +var id = 0; +if (isNode) { + defPid = process.pid; + try { + defTid = eval('require')('worker_threads').threadId; + } catch (e) {} +} +exports = Class({ + initialize: function Tracing() { + var _ref = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : {}, + _ref$pid = _ref.pid, + pid = _ref$pid === void 0 ? defPid : _ref$pid, + _ref$tid = _ref.tid, + tid = _ref$tid === void 0 ? defTid : _ref$tid, + _ref$processName = _ref.processName, + processName = + _ref$processName === void 0 ? 'Process' : _ref$processName, + _ref$threadName = _ref.threadName, + threadName = + _ref$threadName === void 0 ? 'Thread' : _ref$threadName; + this._pid = pid; + this._tid = tid; + this._processName = processName; + this._threadName = threadName; + }, + start: function() { + var cat = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : ''; + this._targetCat = processCat(cat); + if (!isEmpty(this._targetCat)) { + this._targetCat.push('__metadata'); + } + this._traceEventStack = new Stack(); + this._asyncEventMap = {}; + this._trace = new Trace(); + this.metadata( + 'process_name', + { + name: this._processName + }, + { + tid: 0, + ts: 0 + } + ); + this.metadata( + 'thread_name', + { + name: this._threadName + }, + { + ts: 0 + } + ); + }, + stop: function() { + var trace = this._trace; + if (!trace) { + throw Error('Need to call start first'); + } + delete this._targetCat; + delete this._traceEventStack; + delete this._asyncEventMap; + delete this._trace; + return trace.toJSON(); + }, + metadata: function(name, args, extra) { + this._addEvent('__metadata', name, Phase.Metadata, args, extra); + }, + begin: function(cat, name) { + var args = + arguments.length > 2 && arguments[2] !== undefined + ? arguments[2] + : {}; + if (!this._traceEventStack) { + return; + } + this._traceEventStack.push({ + cat: cat, + name: name, + args: args, + ts: this._getCurTs() + }); + }, + end: function(args) { + if (!this._traceEventStack) { + return; + } + var beginEvent = this._traceEventStack.pop(); + if (!beginEvent) { + throw Error('Need to call begin first'); + } + var cat = beginEvent.cat, + name = beginEvent.name, + ts = beginEvent.ts; + args = extend(beginEvent.args, args); + this._addEvent(cat, name, Phase.Complete, args, { + dur: this._getCurTs() - ts, + ts: ts + }); + }, + asyncBegin: function(cat, name) { + var id = + arguments.length > 2 && arguments[2] !== undefined + ? arguments[2] + : this.id(); + var args = + arguments.length > 3 && arguments[3] !== undefined + ? arguments[3] + : {}; + if (!this._asyncEventMap) { + return id; + } + this._asyncEventMap[id] = { + cat: cat, + name: name + }; + this._addEvent(cat, name, Phase.NestableAsyncBegin, args, { + id: id + }); + return id; + }, + asyncEnd: function(id) { + var args = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}; + if (!this._asyncEventMap) { + return; + } + var asyncBeginEvent = this._asyncEventMap[id]; + if (!asyncBeginEvent) { + throw Error('Need to call async begin first'); + } + var cat = asyncBeginEvent.cat, + name = asyncBeginEvent.name; + delete this._asyncEventMap[id]; + this._addEvent(cat, name, Phase.NestableAsyncEnd, args, { + id: id + }); + }, + instant: function(cat, name) { + var scope = + arguments.length > 2 && arguments[2] !== undefined + ? arguments[2] + : 't'; + var args = arguments.length > 3 ? arguments[3] : undefined; + this._addEvent(cat, name, Phase.Instant, args, { + s: scope + }); + }, + id: function() { + return '0x' + convertBase(id++, 10, 16); + }, + _addEvent: function(cat, name, ph) { + var args = + arguments.length > 3 && arguments[3] !== undefined + ? arguments[3] + : {}; + var extra = + arguments.length > 4 && arguments[4] !== undefined + ? arguments[4] + : {}; + if (!this._trace) { + return; + } + var targetCat = this._targetCat; + if (!isEmpty(targetCat)) { + var catArr = processCat(cat); + if (isEmpty(intersect(catArr, targetCat))) { + return; + } + } + var event = extend( + { + name: name, + cat: cat, + ph: ph, + ts: this._getCurTs(), + pid: this._pid, + tid: this._tid, + args: args + }, + extra + ); + this._trace.addEvent(event); + }, + _getCurTs: function() { + return Math.round(perfNow() * 1000); + } +}); +var Phase = { + Begin: 'B', + End: 'E', + Complete: 'X', + Instant: 'I', + NestableAsyncBegin: 'b', + NestableAsyncEnd: 'e', + Metadata: 'M' +}; +function processCat(cat) { + cat = trim(cat); + if (cat === '') { + return []; + } + return map(cat.split(','), trim); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Trie.js b/src/miniprogram_npm/miniprogram-licia/Trie.js new file mode 100644 index 0000000..2fd8191 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Trie.js @@ -0,0 +1,90 @@ +var Class = require('./Class'); +var each = require('./each'); + +exports = Class({ + initialize: function Trie() { + this.clear(); + }, + add: function(word) { + var edges = this._edges; + var node = this._root; + this._wordsInSubtree[node]++; + for (var i = 0, len = word.length; i < len; i++) { + var edge = word[i]; + var next = edges[node][edge]; + if (!next) { + if (this._freeNodes.length) { + next = this._freeNodes.pop(); + } else { + next = this._idx++; + this._isWord.push(false); + this._wordsInSubtree.push(0); + edges.push({}); + } + edges[node][edge] = next; + } + this._wordsInSubtree[next]++; + node = next; + } + this._isWord[node] = true; + }, + remove: function(word) { + if (!this.has(word)) { + return; + } + var node = this._root; + this._wordsInSubtree[node]--; + for (var i = 0, len = word.length; i < len; i++) { + var edge = word[i]; + var next = this._edges[node][edge]; + if (!--this._wordsInSubtree[next]) { + delete this._edges[node][edge]; + this._freeNodes.push(next); + } + node = next; + } + this._isWord[node] = false; + }, + has: function(word) { + var node = this._root; + for (var i = 0, len = word.length; i < len; i++) { + node = this._edges[node][word[i]]; + if (!node) { + return false; + } + } + return this._isWord[node]; + }, + words: function(prefix) { + var node = this._root; + for (var i = 0, len = prefix.length; i < len; i++) { + node = this._edges[node][prefix[i]]; + if (!node) { + return []; + } + } + var result = []; + this._dfs(node, prefix, result); + return result; + }, + clear: function() { + this._idx = 1; + this._root = 0; + this._edges = [{}]; + this._isWord = [false]; + this._wordsInSubtree = [0]; + this._freeNodes = []; + }, + _dfs: function(node, prefix, result) { + var _this = this; + if (this._isWord[node]) { + result.push(prefix); + } + var edges = this._edges[node]; + each(edges, function(node, edge) { + return _this._dfs(node, prefix + edge, result); + }); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Tween.js b/src/miniprogram_npm/miniprogram-licia/Tween.js new file mode 100644 index 0000000..8964fa5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Tween.js @@ -0,0 +1,98 @@ +var Emitter = require('./Emitter'); +var State = require('./State'); +var easing = require('./easing'); +var now = require('./now'); +var each = require('./each'); +var raf = require('./raf'); +var isFn = require('./isFn'); +exports = Emitter.extend({ + className: 'Tween', + initialize: function(target) { + this.callSuper(Emitter, 'initialize', arguments); + this._target = target; + this._dest = {}; + this._duration = 0; + this._progress = 0; + this._origin = {}; + this._diff = {}; + this._ease = easing['linear']; + this._state = new State('pause', { + play: { + from: 'pause', + to: 'play' + }, + pause: { + from: 'play', + to: 'pause' + } + }); + }, + to: function(props, duration, ease) { + var origin = {}; + var target = this._target; + var diff = {}; + ease = ease || this._ease; + this._dest = props; + this._duration = duration || this._duration; + this._ease = isFn(ease) ? ease : easing[ease]; + each(props, function(val, key) { + origin[key] = target[key]; + diff[key] = val - origin[key]; + }); + this._origin = origin; + this._diff = diff; + return this; + }, + progress: function(progress) { + var ease = this._ease; + var target = this._target; + var origin = this._origin; + var diff = this._diff; + var dest = this._dest; + var self = this; + if (progress != null) { + progress = progress < 1 ? progress : 1; + this._progress = progress; + each(dest, function(val, key) { + target[key] = origin[key] + diff[key] * ease(progress); + }); + self.emit('update', target); + return this; + } + return this._progress; + }, + play: function() { + var state = this._state; + if (state.is('play')) return; + state.play(); + var startTime = now(); + var progress = this._progress; + var duration = this._duration * (1 - progress); + var target = this._target; + var self = this; + function render() { + if (state.is('pause')) return; + var time = now(); + self.progress(progress + (time - startTime) / duration); + if (self._progress === 1) { + state.pause(); + self.emit('end', target); + return; + } + raf(render); + } + raf(render); + return this; + }, + pause: function() { + var state = this._state; + if (state.is('pause')) return; + state.pause(); + return this; + }, + paused: function() { + return this._state.is('pause'); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Url.js b/src/miniprogram_npm/miniprogram-licia/Url.js new file mode 100644 index 0000000..45a6d07 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Url.js @@ -0,0 +1,125 @@ +var Class = require('./Class'); +var extend = require('./extend'); +var trim = require('./trim'); +var query = require('./query'); +var isEmpty = require('./isEmpty'); +var each = require('./each'); +var isArr = require('./isArr'); +var toArr = require('./toArr'); +var isBrowser = require('./isBrowser'); +var isObj = require('./isObj'); +var toStr = require('./toStr'); +exports = Class( + { + className: 'Url', + initialize: function(url) { + if (!url && isBrowser) url = window.location.href; + extend(this, exports.parse(url || '')); + }, + setQuery: function(name, val) { + var query = this.query; + if (isObj(name)) { + each(name, function(val, key) { + query[key] = toStr(val); + }); + } else { + query[name] = toStr(val); + } + return this; + }, + rmQuery: function(name) { + var query = this.query; + if (!isArr(name)) name = toArr(name); + each(name, function(key) { + delete query[key]; + }); + return this; + }, + toString: function() { + return exports.stringify(this); + } + }, + { + parse: function(url) { + var ret = { + protocol: '', + auth: '', + hostname: '', + hash: '', + query: {}, + port: '', + pathname: '', + slashes: false + }; + var rest = trim(url); + var slashes = false; + var proto = rest.match(regProto); + if (proto) { + proto = proto[0]; + ret.protocol = proto.toLowerCase(); + rest = rest.substr(proto.length); + } + if (proto) { + slashes = rest.substr(0, 2) === '//'; + if (slashes) { + rest = rest.slice(2); + ret.slashes = true; + } + } + if (slashes) { + var host = rest; + var hostEnd = -1; + for (var i = 0, len = hostEndingChars.length; i < len; i++) { + var pos = rest.indexOf(hostEndingChars[i]); + if (pos !== -1 && (hostEnd === -1 || pos < hostEnd)) + hostEnd = pos; + } + if (hostEnd > -1) { + host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + } + var atSign = host.lastIndexOf('@'); + if (atSign !== -1) { + ret.auth = decodeURIComponent(host.slice(0, atSign)); + host = host.slice(atSign + 1); + } + ret.hostname = host; + var port = host.match(regPort); + if (port) { + port = port[0]; + if (port !== ':') ret.port = port.substr(1); + ret.hostname = host.substr(0, host.length - port.length); + } + } + var hash = rest.indexOf('#'); + if (hash !== -1) { + ret.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var queryMark = rest.indexOf('?'); + if (queryMark !== -1) { + ret.query = query.parse(rest.substr(queryMark + 1)); + rest = rest.slice(0, queryMark); + } + ret.pathname = rest || '/'; + return ret; + }, + stringify: function(obj) { + var ret = + obj.protocol + + (obj.slashes ? '//' : '') + + (obj.auth ? encodeURIComponent(obj.auth) + '@' : '') + + obj.hostname + + (obj.port ? ':' + obj.port : '') + + obj.pathname; + if (!isEmpty(obj.query)) ret += '?' + query.stringify(obj.query); + if (obj.hash) ret += obj.hash; + return ret; + } + } +); +var regProto = /^([a-z0-9.+-]+:)/i; +var regPort = /:[0-9]*$/; +var hostEndingChars = ['/', '?', '#']; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Validator.js b/src/miniprogram_npm/miniprogram-licia/Validator.js new file mode 100644 index 0000000..8db3038 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Validator.js @@ -0,0 +1,82 @@ +var Class = require('./Class'); +var keys = require('./keys'); +var safeGet = require('./safeGet'); +var isFn = require('./isFn'); +var isUndef = require('./isUndef'); +var isNum = require('./isNum'); +var isStr = require('./isStr'); +var isBool = require('./isBool'); +exports = Class( + { + className: 'Validator', + initialize: function(options) { + this._options = options; + this._optKeys = keys(options); + }, + validate: function(obj) { + obj = obj || {}; + var options = this._options; + var objKeys = this._optKeys; + for (var i = 0, len = objKeys.length; i < len; i++) { + var key = objKeys[i]; + var result = this._validateVal( + safeGet(obj, key), + options[key], + key + ); + if (result !== true) return result; + } + return true; + }, + _validateVal: function(val, rules, objKey) { + var plugins = exports.plugins; + if (isFn(rules)) return rules(val); + var ruleKeys = keys(rules); + for (var i = 0, len = ruleKeys.length; i < len; i++) { + var key = ruleKeys[i]; + var config = rules[key]; + var result = true; + if (isFn(config)) result = config(val, objKey); + var plugin = plugins[key]; + if (plugin) result = plugin(val, objKey, config); + if (result !== true) return result; + } + return true; + } + }, + { + plugins: { + required: function(val, key, config) { + if (config && isUndef(val)) return key + ' is required'; + return true; + }, + number: function(val, key, config) { + if (config && !isUndef(val) && !isNum(val)) + return key + ' should be a number'; + return true; + }, + boolean: function(val, key, config) { + if (config && !isUndef(val) && !isBool(val)) + return key + ' should be a boolean'; + return true; + }, + string: function(val, key, config) { + if (config && !isUndef(val) && !isStr(val)) + return key + ' should be a string'; + return true; + }, + regexp: function(val, key, config) { + if (isStr(val) && !config.test(val)) + return ( + key + ' should match given regexp ' + config.toString() + ); + return true; + } + }, + addPlugin: function(name, plugin) { + exports.plugins[name] = plugin; + } + } +); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/Wrr.js b/src/miniprogram_npm/miniprogram-licia/Wrr.js new file mode 100644 index 0000000..ae3eb57 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/Wrr.js @@ -0,0 +1,86 @@ +var Class = require('./Class'); +var max = require('./max'); +var map = require('./map'); +var reduce = require('./reduce'); +var gcd = require('./gcd'); +var filter = require('./filter'); +exports = Class({ + initialize: function Wrr() { + this._peers = []; + }, + set: function(val, weight) { + var peers = this._peers; + var size = this.size; + for (var i = 0; i < size; i++) { + var peer = peers[i]; + if (peer.val === val) { + peer.weight = weight; + this._reset(); + return; + } + } + peers.push({ + val: val, + weight: weight + }); + this._reset(); + }, + get: function(val) { + var peers = this._peers; + var size = this.size; + for (var i = 0; i < size; i++) { + var peer = peers[i]; + if (peer.val === val) { + return peer.weight; + } + } + }, + remove: function(val) { + this._peers = filter(this._peers, function(peer) { + return peer.val !== val; + }); + this._reset(); + }, + next: function() { + var peers = this._peers; + var size = this.size; + if (size === 0) return; + + while (true) { + this._i = (this._i + 1) % size; + if (this._i === 0) { + this._cw = this._cw - this._gcdS; + if (this._cw <= 0) { + this._cw = this._maxS; + } + } + if (this._cw === 0) return; + if (peers[this._i].weight >= this._cw) { + return peers[this._i].val; + } + } + }, + clear: function() { + this._peers = []; + this._reset(); + }, + _reset: function() { + var peers = this._peers; + this.size = peers.length; + var weights = map(peers, function(peer) { + return peer.weight; + }); + this._i = -1; + this._cw = 0; + this._maxS = max.apply(null, weights); + this._gcdS = reduce( + weights, + function(prev, weight) { + return gcd(prev, weight); + }, + 0 + ); + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/abbrev.js b/src/miniprogram_npm/miniprogram-licia/abbrev.js new file mode 100644 index 0000000..bd5735a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/abbrev.js @@ -0,0 +1,28 @@ +var restArgs = require('./restArgs'); +var isSorted = require('./isSorted'); +exports = restArgs(function(names) { + names = names.sort(isSorted.defComparator); + var ret = {}; + var idleMap = {}; + for (var i = 0, len = names.length; i < len; i++) { + var str = names[i]; + var nextStr = names[i + 1] || ''; + if (str === nextStr) continue; + var start = false; + var abbrev = ''; + for (var j = 0, strLen = str.length; j < strLen; j++) { + abbrev += str[j]; + if (!start && (str[j] !== nextStr[j] || j === strLen - 1)) { + start = true; + } + if (!start) { + idleMap[abbrev] = str; + } else if (!ret[abbrev] && !idleMap[abbrev]) { + ret[abbrev] = str; + } + } + } + return ret; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/after.js b/src/miniprogram_npm/miniprogram-licia/after.js new file mode 100644 index 0000000..6cb4ac3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/after.js @@ -0,0 +1,7 @@ +exports = function(n, fn) { + return function() { + if (--n < 1) return fn.apply(this, arguments); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/allKeys.js b/src/miniprogram_npm/miniprogram-licia/allKeys.js new file mode 100644 index 0000000..15ab6b3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/allKeys.js @@ -0,0 +1,42 @@ +var keys = require('./keys'); +var getProto = require('./getProto'); +var unique = require('./unique'); +var getOwnPropertyNames = Object.getOwnPropertyNames; +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +exports = function(obj) { + var _ref = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}, + _ref$prototype = _ref.prototype, + prototype = _ref$prototype === void 0 ? true : _ref$prototype, + _ref$unenumerable = _ref.unenumerable, + unenumerable = _ref$unenumerable === void 0 ? false : _ref$unenumerable, + _ref$symbol = _ref.symbol, + symbol = _ref$symbol === void 0 ? false : _ref$symbol; + var ret = []; + if ((unenumerable || symbol) && getOwnPropertyNames) { + var getKeys = keys; + if (unenumerable && getOwnPropertyNames) getKeys = getOwnPropertyNames; + do { + ret = ret.concat(getKeys(obj)); + if (symbol && getOwnPropertySymbols) { + ret = ret.concat(getOwnPropertySymbols(obj)); + } + } while ( + prototype && + (obj = getProto(obj)) && + obj !== Object.prototype + ); + ret = unique(ret); + } else { + if (prototype) { + for (var key in obj) ret.push(key); + } else { + ret = keys(obj); + } + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/arrToMap.js b/src/miniprogram_npm/miniprogram-licia/arrToMap.js new file mode 100644 index 0000000..f00945b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/arrToMap.js @@ -0,0 +1,14 @@ +var each = require('./each'); +var isUndef = require('./isUndef'); +var isFn = require('./isFn'); +exports = function(arr, val) { + if (isUndef(val)) val = true; + var _isFn = isFn(val); + var ret = {}; + each(arr, function(key) { + ret[key] = _isFn ? val(key) : val; + }); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/atob.js b/src/miniprogram_npm/miniprogram-licia/atob.js new file mode 100644 index 0000000..2ba684b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/atob.js @@ -0,0 +1,21 @@ +var root = require('./root'); +var isNode = require('./isNode'); +var base64 = require('./base64'); +var map = require('./map'); +if (isNode) { + exports = function(str) { + return new Buffer(str, 'base64').toString('binary'); + }; +} else { + if (root.atob && !false) { + exports = root.atob; + } else { + exports = function(str) { + return map(base64.decode(str), function(c) { + return String.fromCharCode(c); + }).join(''); + }; + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/average.js b/src/miniprogram_npm/miniprogram-licia/average.js new file mode 100644 index 0000000..b68943f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/average.js @@ -0,0 +1,9 @@ +exports = function() { + var arr = arguments; + var sum = 0; + var len = arr.length; + for (var i = 0; i < len; i++) sum += arr[i]; + return sum / len; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/base64.js b/src/miniprogram_npm/miniprogram-licia/base64.js new file mode 100644 index 0000000..e40fe7f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/base64.js @@ -0,0 +1,83 @@ +exports = { + encode: function(bytes) { + var ret = []; + var len = bytes.length; + var remain = len % 3; + len = len - remain; + for (var i = 0; i < len; i += 3) { + ret.push( + numToBase64( + (bytes[i] << 16) + (bytes[i + 1] << 8) + bytes[i + 2] + ) + ); + } + len = bytes.length; + var tmp; + if (remain === 1) { + tmp = bytes[len - 1]; + ret.push(code[tmp >> 2]); + ret.push(code[(tmp << 4) & 0x3f]); + ret.push('=='); + } else if (remain === 2) { + tmp = (bytes[len - 2] << 8) + bytes[len - 1]; + ret.push(code[tmp >> 10]); + ret.push(code[(tmp >> 4) & 0x3f]); + ret.push(code[(tmp << 2) & 0x3f]); + ret.push('='); + } + return ret.join(''); + }, + decode: function(str) { + var len = str.length, + remain = 0; + if (str[len - 2] === '=') remain = 2; + else if (str[len - 1] === '=') remain = 1; + var ret = new Array((len * 3) / 4 - remain); + len = remain > 0 ? len - 4 : len; + var i, j; + for (i = 0, j = 0; i < len; i += 4) { + var num = base64ToNum(str[i], str[i + 1], str[i + 2], str[i + 3]); + ret[j++] = (num >> 16) & 0xff; + ret[j++] = (num >> 8) & 0xff; + ret[j++] = num & 0xff; + } + var tmp; + if (remain === 2) { + tmp = + (codeMap[str.charCodeAt(i)] << 2) | + (codeMap[str.charCodeAt(i + 1)] >> 4); + ret[j++] = tmp & 0xff; + } else if (remain === 1) { + tmp = + (codeMap[str.charCodeAt(i)] << 10) | + (codeMap[str.charCodeAt(i + 1)] << 4) | + (codeMap[str.charCodeAt(i + 2)] >> 2); + ret[j++] = (tmp >> 8) & 0xff; + ret[j++] = tmp & 0xff; + } + return ret; + } +}; +var codeMap = []; +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +for (var i = 0, len = code.length; i < len; i++) { + codeMap[code.charCodeAt(i)] = i; +} +function numToBase64(num) { + return ( + code[(num >> 18) & 0x3f] + + code[(num >> 12) & 0x3f] + + code[(num >> 6) & 0x3f] + + code[num & 0x3f] + ); +} +function base64ToNum(str1, str2, str3, str4) { + return ( + (codeMap[str1.charCodeAt(0)] << 18) | + (codeMap[str2.charCodeAt(0)] << 12) | + (codeMap[str3.charCodeAt(0)] << 6) | + codeMap[str4.charCodeAt(0)] + ); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/before.js b/src/miniprogram_npm/miniprogram-licia/before.js new file mode 100644 index 0000000..5c25de3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/before.js @@ -0,0 +1,10 @@ +exports = function(n, fn) { + var memo; + return function() { + if (--n > 0) memo = fn.apply(this, arguments); + if (n <= 1) fn = null; + return memo; + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/binarySearch.js b/src/miniprogram_npm/miniprogram-licia/binarySearch.js new file mode 100644 index 0000000..895f2cb --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/binarySearch.js @@ -0,0 +1,24 @@ +var isSorted = require('./isSorted'); +exports = function(arr, val) { + var cmp = + arguments.length > 2 && arguments[2] !== undefined + ? arguments[2] + : isSorted.defComparator; + var startIdx = 0; + var endIdx = arr.length - 1; + while (startIdx <= endIdx) { + var middleIdx = startIdx + Math.floor((endIdx - startIdx) / 2); + var middleVal = arr[middleIdx]; + if (cmp(middleVal, val) === 0) { + return middleIdx; + } + if (cmp(middleVal, val) < 0) { + startIdx = middleIdx + 1; + } else { + endIdx = middleIdx - 1; + } + } + return -1; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/bind.js b/src/miniprogram_npm/miniprogram-licia/bind.js new file mode 100644 index 0000000..64a793e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/bind.js @@ -0,0 +1,8 @@ +var restArgs = require('./restArgs'); +exports = restArgs(function(fn, ctx, args) { + return restArgs(function(callArgs) { + return fn.apply(ctx, args.concat(callArgs)); + }); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/btoa.js b/src/miniprogram_npm/miniprogram-licia/btoa.js new file mode 100644 index 0000000..0a0470c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/btoa.js @@ -0,0 +1,23 @@ +var root = require('./root'); +var isNode = require('./isNode'); +var base64 = require('./base64'); +var map = require('./map'); +if (isNode) { + exports = function(str) { + return new Buffer(str, 'binary').toString('base64'); + }; +} else { + if (root.btoa && !false) { + exports = root.btoa; + } else { + exports = function(str) { + return base64.encode( + map(str, function(c) { + return c.charCodeAt(0); + }) + ); + }; + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/bubbleSort.js b/src/miniprogram_npm/miniprogram-licia/bubbleSort.js new file mode 100644 index 0000000..29fbab8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/bubbleSort.js @@ -0,0 +1,18 @@ +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + for (var i = 0, len = arr.length; i < len; i++) { + for (var j = i; j > 0; j--) { + if (cmp(arr[j], arr[j - 1]) < 0) { + swap(arr, j, j - 1); + } + } + } + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/bytesToStr.js b/src/miniprogram_npm/miniprogram-licia/bytesToStr.js new file mode 100644 index 0000000..820b611 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/bytesToStr.js @@ -0,0 +1,22 @@ +var utf8 = require('./utf8'); +var hex = require('./hex'); +var base64 = require('./base64'); +exports = function(bytes) { + var encoding = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : 'utf8'; + if (encoding === 'hex') return hex.encode(bytes); + if (encoding === 'base64') return base64.encode(bytes); + var str = []; + for (var i = 0, len = bytes.length; i < len; i++) { + str.push(String.fromCharCode(bytes[i])); + } + str = str.join(''); + if (encoding === 'utf8') { + str = utf8.decode(str); + } + return str; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/bytesToWords.js b/src/miniprogram_npm/miniprogram-licia/bytesToWords.js new file mode 100644 index 0000000..157ec11 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/bytesToWords.js @@ -0,0 +1,9 @@ +exports = function(bytes) { + var words = []; + for (var i = 0, len = bytes.length; i < len; i++) { + words[i >>> 2] |= bytes[i] << (24 - (i % 4) * 8); + } + return words; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/callbackify.js b/src/miniprogram_npm/miniprogram-licia/callbackify.js new file mode 100644 index 0000000..6124bc5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/callbackify.js @@ -0,0 +1,17 @@ +var restArgs = require('./restArgs'); +exports = function(fn) { + return restArgs(function(args) { + var cb = args.pop(); + fn.apply(this, args).then( + function(value) { + cb(null, value); + }, + function(err) { + if (err === null) err = new Error(); + cb(err); + } + ); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/camelCase.js b/src/miniprogram_npm/miniprogram-licia/camelCase.js new file mode 100644 index 0000000..2f35235 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/camelCase.js @@ -0,0 +1,16 @@ +var splitCase = require('./splitCase'); +exports = function(str) { + var arr = splitCase(str); + var ret = arr[0]; + arr.shift(); + arr.forEach(capitalize, arr); + ret += arr.join(''); + return ret; +}; +function capitalize(val, idx) { + this[idx] = val.replace(/\w/, function(match) { + return match.toUpperCase(); + }); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/capitalize.js b/src/miniprogram_npm/miniprogram-licia/capitalize.js new file mode 100644 index 0000000..9d73fba --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/capitalize.js @@ -0,0 +1,5 @@ +exports = function(str) { + return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase(); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/castPath.js b/src/miniprogram_npm/miniprogram-licia/castPath.js new file mode 100644 index 0000000..068affa --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/castPath.js @@ -0,0 +1,16 @@ +var has = require('./has'); +var isArr = require('./isArr'); +exports = function(str, obj) { + if (isArr(str)) return str; + if (obj && has(obj, str)) return [str]; + var ret = []; + str.replace(regPropName, function(match, number, quote, str) { + ret.push(quote ? str.replace(regEscapeChar, '$1') : number || match); + }); + return ret; +}; + +var regPropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; +var regEscapeChar = /\\(\\)?/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/centerAlign.js b/src/miniprogram_npm/miniprogram-licia/centerAlign.js new file mode 100644 index 0000000..0de3528 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/centerAlign.js @@ -0,0 +1,21 @@ +var longest = require('./longest'); +var isArr = require('./isArr'); +var isUndef = require('./isUndef'); +var map = require('./map'); +var lpad = require('./lpad'); +exports = function(str, width) { + var ret = str; + if (!isArr(ret)) { + ret = ret.split(regLineBreak); + } + if (isUndef(width)) width = longest(str); + ret = map(ret, function(str) { + var len = str.length; + return lpad(str, floor((width - len) / 2) + len); + }); + return ret.join('\n'); +}; +var regLineBreak = /\n/g; +var floor = Math.floor; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/char.js b/src/miniprogram_npm/miniprogram-licia/char.js new file mode 100644 index 0000000..4f84fcc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/char.js @@ -0,0 +1,5 @@ +exports = function(num) { + return String.fromCodePoint(num); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/chunk.js b/src/miniprogram_npm/miniprogram-licia/chunk.js new file mode 100644 index 0000000..5cedd72 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/chunk.js @@ -0,0 +1,12 @@ +exports = function(arr, size) { + var ret = []; + size = size || 1; + for (var i = 0, len = Math.ceil(arr.length / size); i < len; i++) { + var start = i * size; + var end = start + size; + ret.push(arr.slice(start, end)); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/clamp.js b/src/miniprogram_npm/miniprogram-licia/clamp.js new file mode 100644 index 0000000..56a4b10 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/clamp.js @@ -0,0 +1,12 @@ +var isUndef = require('./isUndef'); +exports = function(n, lower, upper) { + if (isUndef(upper)) { + upper = lower; + lower = undefined; + } + if (!isUndef(lower) && n < lower) return lower; + if (n > upper) return upper; + return n; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/className.js b/src/miniprogram_npm/miniprogram-licia/className.js new file mode 100644 index 0000000..3cfd3d5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/className.js @@ -0,0 +1,20 @@ +var each = require('./each'); +var isStr = require('./isStr'); +var isNum = require('./isNum'); +var isArr = require('./isArr'); +var isObj = require('./isObj'); +exports = function() { + var ret = []; + each(arguments, function(arg) { + if (!arg) return; + if (isStr(arg) || isNum(arg)) return ret.push(arg); + if (isArr(arg)) return ret.push(exports.apply(null, arg)); + if (!isObj(arg)) return; + each(arg, function(val, key) { + if (val) ret.push(key); + }); + }); + return ret.join(' '); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/clone.js b/src/miniprogram_npm/miniprogram-licia/clone.js new file mode 100644 index 0000000..3b73e6a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/clone.js @@ -0,0 +1,9 @@ +var isObj = require('./isObj'); +var isArr = require('./isArr'); +var extend = require('./extend'); +exports = function(obj) { + if (!isObj(obj)) return obj; + return isArr(obj) ? obj.slice() : extend({}, obj); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/cloneDeep.js b/src/miniprogram_npm/miniprogram-licia/cloneDeep.js new file mode 100644 index 0000000..5babdae --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/cloneDeep.js @@ -0,0 +1,19 @@ +var isObj = require('./isObj'); +var isFn = require('./isFn'); +var isArr = require('./isArr'); +var mapObj = require('./mapObj'); +exports = function(obj) { + if (isArr(obj)) { + return obj.map(function(val) { + return exports(val); + }); + } + if (isObj(obj) && !isFn(obj)) { + return mapObj(obj, function(val) { + return exports(val); + }); + } + return obj; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/cmpVersion.js b/src/miniprogram_npm/miniprogram-licia/cmpVersion.js new file mode 100644 index 0000000..755df90 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/cmpVersion.js @@ -0,0 +1,16 @@ +var toInt = require('./toInt'); +var max = require('./max'); +exports = function(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + var len = max(v1.length, v2.length); + for (var i = 0; i < len; i++) { + var num1 = toInt(v1[i]); + var num2 = toInt(v2[i]); + if (num1 > num2) return 1; + if (num1 < num2) return -1; + } + return 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/combine.js b/src/miniprogram_npm/miniprogram-licia/combine.js new file mode 100644 index 0000000..337493b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/combine.js @@ -0,0 +1,9 @@ +exports = function(keys, values) { + var ret = {}; + for (var i = 0, len = keys.length; i < len; i++) { + ret[keys[i]] = values[i]; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/compact.js b/src/miniprogram_npm/miniprogram-licia/compact.js new file mode 100644 index 0000000..5191a5f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/compact.js @@ -0,0 +1,8 @@ +var filter = require('./filter'); +exports = function(arr) { + return filter(arr, function(val) { + return !!val; + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/compose.js b/src/miniprogram_npm/miniprogram-licia/compose.js new file mode 100644 index 0000000..c3537b0 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/compose.js @@ -0,0 +1,11 @@ +var restArgs = require('./restArgs'); +exports = restArgs(function(fnList) { + return function() { + var i = fnList.length - 1; + var result = fnList[i].apply(this, arguments); + while (i--) result = fnList[i].call(this, result); + return result; + }; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/concat.js b/src/miniprogram_npm/miniprogram-licia/concat.js new file mode 100644 index 0000000..11281a5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/concat.js @@ -0,0 +1,11 @@ +var toArr = require('./toArr'); +exports = function() { + var args = toArr(arguments); + var ret = []; + for (var i = 0, len = args.length; i < len; i++) { + ret = ret.concat(toArr(args[i])); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/contain.js b/src/miniprogram_npm/miniprogram-licia/contain.js new file mode 100644 index 0000000..10ca0f7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/contain.js @@ -0,0 +1,11 @@ +var idxOf = require('./idxOf'); +var isStr = require('./isStr'); +var isArrLike = require('./isArrLike'); +var values = require('./values'); +exports = function(arr, val) { + if (isStr(arr)) return arr.indexOf(val) > -1; + if (!isArrLike(arr)) arr = values(arr); + return idxOf(arr, val) >= 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/convertBase.js b/src/miniprogram_npm/miniprogram-licia/convertBase.js new file mode 100644 index 0000000..65c0a3d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/convertBase.js @@ -0,0 +1,5 @@ +exports = function(num, from, to) { + return parseInt(num, from).toString(to); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/convertBin.js b/src/miniprogram_npm/miniprogram-licia/convertBin.js new file mode 100644 index 0000000..99d2734 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/convertBin.js @@ -0,0 +1,60 @@ +var isStr = require('./isStr'); +var base64 = require('./base64'); +var isArrBuffer = require('./isArrBuffer'); +var isArr = require('./isArr'); +var isBuffer = require('./isBuffer'); +var type = require('./type'); +var lowerCase = require('./lowerCase'); +exports = function(bin, t) { + var result; + t = lowerCase(t); + if (isStr(bin)) { + result = new Uint8Array(base64.decode(bin)); + } else if (isArrBuffer(bin)) { + bin = bin.slice(0); + result = new Uint8Array(bin); + } else if (isArr(bin)) { + result = new Uint8Array(bin); + } else if (type(bin) === 'uint8array') { + result = bin.slice(0); + } else if (isBuffer(bin)) { + result = new Uint8Array(bin.length); + for (var i = 0; i < bin.length; i++) { + result[i] = bin[i]; + } + } + if (result) { + switch (t) { + case 'base64': + result = base64.encode(result); + break; + case 'arraybuffer': + result = result.buffer; + break; + case 'array': + result = [].slice.call(result); + break; + case 'buffer': + result = Buffer.from(result); + break; + case 'blob': + result = new Blob([result.buffer]); + break; + } + } + return result; +}; +exports.blobToArrBuffer = function(blob) { + return new Promise(function(resolve, reject) { + var fileReader = new FileReader(); + fileReader.onload = function(e) { + resolve(e.target.result); + }; + fileReader.onerror = function(err) { + reject(err); + }; + fileReader.readAsArrayBuffer(blob); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/crc1.js b/src/miniprogram_npm/miniprogram-licia/crc1.js new file mode 100644 index 0000000..919a884 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/crc1.js @@ -0,0 +1,19 @@ +var isStr = require('./isStr'); +var strToBytes = require('./strToBytes'); + +exports = function(input, previous) { + return exports.signed(input, previous) >>> 0; +}; +exports.signed = function(input, previous) { + if (isStr(input)) input = strToBytes(input); + var crc = ~~previous; + var accum = 0; + for (var i = 0, len = input.length; i < len; i++) { + var byte = input[i]; + accum += byte; + } + crc += accum % 256; + return crc % 256; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/crc16.js b/src/miniprogram_npm/miniprogram-licia/crc16.js new file mode 100644 index 0000000..f6a33d1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/crc16.js @@ -0,0 +1,276 @@ +var isStr = require('./isStr'); +var strToBytes = require('./strToBytes'); + +var TABLE = [ + 0x0000, + 0xc0c1, + 0xc181, + 0x0140, + 0xc301, + 0x03c0, + 0x0280, + 0xc241, + 0xc601, + 0x06c0, + 0x0780, + 0xc741, + 0x0500, + 0xc5c1, + 0xc481, + 0x0440, + 0xcc01, + 0x0cc0, + 0x0d80, + 0xcd41, + 0x0f00, + 0xcfc1, + 0xce81, + 0x0e40, + 0x0a00, + 0xcac1, + 0xcb81, + 0x0b40, + 0xc901, + 0x09c0, + 0x0880, + 0xc841, + 0xd801, + 0x18c0, + 0x1980, + 0xd941, + 0x1b00, + 0xdbc1, + 0xda81, + 0x1a40, + 0x1e00, + 0xdec1, + 0xdf81, + 0x1f40, + 0xdd01, + 0x1dc0, + 0x1c80, + 0xdc41, + 0x1400, + 0xd4c1, + 0xd581, + 0x1540, + 0xd701, + 0x17c0, + 0x1680, + 0xd641, + 0xd201, + 0x12c0, + 0x1380, + 0xd341, + 0x1100, + 0xd1c1, + 0xd081, + 0x1040, + 0xf001, + 0x30c0, + 0x3180, + 0xf141, + 0x3300, + 0xf3c1, + 0xf281, + 0x3240, + 0x3600, + 0xf6c1, + 0xf781, + 0x3740, + 0xf501, + 0x35c0, + 0x3480, + 0xf441, + 0x3c00, + 0xfcc1, + 0xfd81, + 0x3d40, + 0xff01, + 0x3fc0, + 0x3e80, + 0xfe41, + 0xfa01, + 0x3ac0, + 0x3b80, + 0xfb41, + 0x3900, + 0xf9c1, + 0xf881, + 0x3840, + 0x2800, + 0xe8c1, + 0xe981, + 0x2940, + 0xeb01, + 0x2bc0, + 0x2a80, + 0xea41, + 0xee01, + 0x2ec0, + 0x2f80, + 0xef41, + 0x2d00, + 0xedc1, + 0xec81, + 0x2c40, + 0xe401, + 0x24c0, + 0x2580, + 0xe541, + 0x2700, + 0xe7c1, + 0xe681, + 0x2640, + 0x2200, + 0xe2c1, + 0xe381, + 0x2340, + 0xe101, + 0x21c0, + 0x2080, + 0xe041, + 0xa001, + 0x60c0, + 0x6180, + 0xa141, + 0x6300, + 0xa3c1, + 0xa281, + 0x6240, + 0x6600, + 0xa6c1, + 0xa781, + 0x6740, + 0xa501, + 0x65c0, + 0x6480, + 0xa441, + 0x6c00, + 0xacc1, + 0xad81, + 0x6d40, + 0xaf01, + 0x6fc0, + 0x6e80, + 0xae41, + 0xaa01, + 0x6ac0, + 0x6b80, + 0xab41, + 0x6900, + 0xa9c1, + 0xa881, + 0x6840, + 0x7800, + 0xb8c1, + 0xb981, + 0x7940, + 0xbb01, + 0x7bc0, + 0x7a80, + 0xba41, + 0xbe01, + 0x7ec0, + 0x7f80, + 0xbf41, + 0x7d00, + 0xbdc1, + 0xbc81, + 0x7c40, + 0xb401, + 0x74c0, + 0x7580, + 0xb541, + 0x7700, + 0xb7c1, + 0xb681, + 0x7640, + 0x7200, + 0xb2c1, + 0xb381, + 0x7340, + 0xb101, + 0x71c0, + 0x7080, + 0xb041, + 0x5000, + 0x90c1, + 0x9181, + 0x5140, + 0x9301, + 0x53c0, + 0x5280, + 0x9241, + 0x9601, + 0x56c0, + 0x5780, + 0x9741, + 0x5500, + 0x95c1, + 0x9481, + 0x5440, + 0x9c01, + 0x5cc0, + 0x5d80, + 0x9d41, + 0x5f00, + 0x9fc1, + 0x9e81, + 0x5e40, + 0x5a00, + 0x9ac1, + 0x9b81, + 0x5b40, + 0x9901, + 0x59c0, + 0x5880, + 0x9841, + 0x8801, + 0x48c0, + 0x4980, + 0x8941, + 0x4b00, + 0x8bc1, + 0x8a81, + 0x4a40, + 0x4e00, + 0x8ec1, + 0x8f81, + 0x4f40, + 0x8d01, + 0x4dc0, + 0x4c80, + 0x8c41, + 0x4400, + 0x84c1, + 0x8581, + 0x4540, + 0x8701, + 0x47c0, + 0x4680, + 0x8641, + 0x8201, + 0x42c0, + 0x4380, + 0x8341, + 0x4100, + 0x81c1, + 0x8081, + 0x4040 +]; +if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); +exports = function(input, previous) { + return exports.signed(input, previous) >>> 0; +}; +exports.signed = function(input, previous) { + if (isStr(input)) input = strToBytes(input); + var crc = ~~previous; + for (var i = 0, len = input.length; i < len; i++) { + var byte = input[i]; + crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff; + } + return crc; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/crc32.js b/src/miniprogram_npm/miniprogram-licia/crc32.js new file mode 100644 index 0000000..06f0d2a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/crc32.js @@ -0,0 +1,29 @@ +var isStr = require('./isStr'); +var strToBytes = require('./strToBytes'); +var TABLE = []; +for (var n = 0; n < 256; n++) { + var c = n; + for (var k = 0; k < 8; k++) { + if (c & 1) { + c = 0xedb88320 ^ (c >>> 1); + } else { + c = c >>> 1; + } + } + TABLE[n] = c >>> 0; +} +if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); +exports = function(input, previous) { + return exports.signed(input, previous) >>> 0; +}; +exports.signed = function(input, previous) { + if (isStr(input)) input = strToBytes(input); + var crc = previous === 0 ? 0 : ~~previous ^ -1; + for (var i = 0, len = input.length; i < len; i++) { + var byte = input[i]; + crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8); + } + return crc ^ -1; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/crc8.js b/src/miniprogram_npm/miniprogram-licia/crc8.js new file mode 100644 index 0000000..fbf930f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/crc8.js @@ -0,0 +1,276 @@ +var isStr = require('./isStr'); +var strToBytes = require('./strToBytes'); + +var TABLE = [ + 0x00, + 0x07, + 0x0e, + 0x09, + 0x1c, + 0x1b, + 0x12, + 0x15, + 0x38, + 0x3f, + 0x36, + 0x31, + 0x24, + 0x23, + 0x2a, + 0x2d, + 0x70, + 0x77, + 0x7e, + 0x79, + 0x6c, + 0x6b, + 0x62, + 0x65, + 0x48, + 0x4f, + 0x46, + 0x41, + 0x54, + 0x53, + 0x5a, + 0x5d, + 0xe0, + 0xe7, + 0xee, + 0xe9, + 0xfc, + 0xfb, + 0xf2, + 0xf5, + 0xd8, + 0xdf, + 0xd6, + 0xd1, + 0xc4, + 0xc3, + 0xca, + 0xcd, + 0x90, + 0x97, + 0x9e, + 0x99, + 0x8c, + 0x8b, + 0x82, + 0x85, + 0xa8, + 0xaf, + 0xa6, + 0xa1, + 0xb4, + 0xb3, + 0xba, + 0xbd, + 0xc7, + 0xc0, + 0xc9, + 0xce, + 0xdb, + 0xdc, + 0xd5, + 0xd2, + 0xff, + 0xf8, + 0xf1, + 0xf6, + 0xe3, + 0xe4, + 0xed, + 0xea, + 0xb7, + 0xb0, + 0xb9, + 0xbe, + 0xab, + 0xac, + 0xa5, + 0xa2, + 0x8f, + 0x88, + 0x81, + 0x86, + 0x93, + 0x94, + 0x9d, + 0x9a, + 0x27, + 0x20, + 0x29, + 0x2e, + 0x3b, + 0x3c, + 0x35, + 0x32, + 0x1f, + 0x18, + 0x11, + 0x16, + 0x03, + 0x04, + 0x0d, + 0x0a, + 0x57, + 0x50, + 0x59, + 0x5e, + 0x4b, + 0x4c, + 0x45, + 0x42, + 0x6f, + 0x68, + 0x61, + 0x66, + 0x73, + 0x74, + 0x7d, + 0x7a, + 0x89, + 0x8e, + 0x87, + 0x80, + 0x95, + 0x92, + 0x9b, + 0x9c, + 0xb1, + 0xb6, + 0xbf, + 0xb8, + 0xad, + 0xaa, + 0xa3, + 0xa4, + 0xf9, + 0xfe, + 0xf7, + 0xf0, + 0xe5, + 0xe2, + 0xeb, + 0xec, + 0xc1, + 0xc6, + 0xcf, + 0xc8, + 0xdd, + 0xda, + 0xd3, + 0xd4, + 0x69, + 0x6e, + 0x67, + 0x60, + 0x75, + 0x72, + 0x7b, + 0x7c, + 0x51, + 0x56, + 0x5f, + 0x58, + 0x4d, + 0x4a, + 0x43, + 0x44, + 0x19, + 0x1e, + 0x17, + 0x10, + 0x05, + 0x02, + 0x0b, + 0x0c, + 0x21, + 0x26, + 0x2f, + 0x28, + 0x3d, + 0x3a, + 0x33, + 0x34, + 0x4e, + 0x49, + 0x40, + 0x47, + 0x52, + 0x55, + 0x5c, + 0x5b, + 0x76, + 0x71, + 0x78, + 0x7f, + 0x6a, + 0x6d, + 0x64, + 0x63, + 0x3e, + 0x39, + 0x30, + 0x37, + 0x22, + 0x25, + 0x2c, + 0x2b, + 0x06, + 0x01, + 0x08, + 0x0f, + 0x1a, + 0x1d, + 0x14, + 0x13, + 0xae, + 0xa9, + 0xa0, + 0xa7, + 0xb2, + 0xb5, + 0xbc, + 0xbb, + 0x96, + 0x91, + 0x98, + 0x9f, + 0x8a, + 0x8d, + 0x84, + 0x83, + 0xde, + 0xd9, + 0xd0, + 0xd7, + 0xc2, + 0xc5, + 0xcc, + 0xcb, + 0xe6, + 0xe1, + 0xe8, + 0xef, + 0xfa, + 0xfd, + 0xf4, + 0xf3 +]; +if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); +exports = function(input, previous) { + return exports.signed(input, previous) >>> 0; +}; +exports.signed = function(input, previous) { + if (isStr(input)) input = strToBytes(input); + var crc = ~~previous; + for (var i = 0, len = input.length; i < len; i++) { + var byte = input[i]; + crc = TABLE[(crc ^ byte) & 0xff] & 0xff; + } + return crc; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/create.js b/src/miniprogram_npm/miniprogram-licia/create.js new file mode 100644 index 0000000..a5302e5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/create.js @@ -0,0 +1,11 @@ +var isObj = require('./isObj'); +exports = function(proto) { + if (!isObj(proto)) return {}; + if (objCreate && !false) return objCreate(proto); + function noop() {} + noop.prototype = proto; + return new noop(); +}; +var objCreate = Object.create; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/createAssigner.js b/src/miniprogram_npm/miniprogram-licia/createAssigner.js new file mode 100644 index 0000000..2ce8691 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/createAssigner.js @@ -0,0 +1,16 @@ +var isUndef = require('./isUndef'); +var each = require('./each'); +exports = function(keysFn, defaults) { + return function(obj) { + each(arguments, function(src, idx) { + if (idx === 0) return; + var keys = keysFn(src); + each(keys, function(key) { + if (!defaults || isUndef(obj[key])) obj[key] = src[key]; + }); + }); + return obj; + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/css.js b/src/miniprogram_npm/miniprogram-licia/css.js new file mode 100644 index 0000000..ac7ac3f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/css.js @@ -0,0 +1,329 @@ +var Class = require('./Class'); +var trim = require('./trim'); +var repeat = require('./repeat'); +var defaults = require('./defaults'); +var camelCase = require('./camelCase'); + +exports = { + parse: function(css) { + return new Parser(css).parse(); + }, + stringify: function(stylesheet, options) { + return new Compiler(stylesheet, options).compile(); + } +}; +var regComments = /(\/\*[\s\S]*?\*\/)/gi; +var regOpen = /^{\s*/; +var regClose = /^}/; +var regWhitespace = /^\s*/; +var regProperty = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/; +var regValue = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/; +var regSelector = /^([^{]+)/; +var regSemicolon = /^[;\s]*/; +var regColon = /^:\s*/; +var regMedia = /^@media *([^{]+)/; +var regKeyframes = /^@([-\w]+)?keyframes\s*/; +var regFontFace = /^@font-face\s*/; +var regSupports = /^@supports *([^{]+)/; +var regIdentifier = /^([-\w]+)\s*/; +var regKeyframeSelector = /^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/; +var regComma = /^,\s*/; +var Parser = Class({ + initialize: function Parser(css) { + this.input = stripCmt(css); + this.open = this._createMatcher(regOpen); + this.close = this._createMatcher(regClose); + this.whitespace = this._createMatcher(regWhitespace); + this.atImport = this._createAtRule('import'); + this.atCharset = this._createAtRule('charset'); + this.atNamespace = this._createAtRule('namespace'); + }, + parse: function() { + return this.stylesheet(); + }, + stylesheet: function() { + return { + type: 'stylesheet', + rules: this.rules() + }; + }, + rules: function() { + var rule; + var rules = []; + this.whitespace(); + while ( + this.input.length && + this.input[0] !== '}' && + (rule = this.atRule() || this.rule()) + ) { + rules.push(rule); + this.whitespace(); + } + return rules; + }, + atRule: function() { + if (this.input[0] !== '@') return; + return ( + this.atKeyframes() || + this.atMedia() || + this.atSupports() || + this.atImport() || + this.atCharset() || + this.atNamespace() || + this.atFontFace() + ); + }, + atKeyframes: function() { + var matched = this.match(regKeyframes); + if (!matched) return; + var vendor = matched[1] || ''; + matched = this.match(regIdentifier); + if (!matched) throw Error('@keyframes missing name'); + var name = matched[1]; + if (!this.open()) throw Error("@keyframes missing '{'"); + var keyframes = []; + var keyframe; + while ((keyframe = this.keyframe())) { + keyframes.push(keyframe); + } + if (!this.close()) throw Error("@keyframes missing '}'"); + return { + type: 'keyframes', + name: name, + vendor: vendor, + keyframes: keyframes + }; + }, + keyframe: function() { + var selector = []; + var matched; + while ((matched = this.match(regKeyframeSelector))) { + selector.push(matched[1]); + this.match(regComma); + } + if (!selector.length) return; + this.whitespace(); + return { + type: 'keyframe', + selector: selector.join(', '), + declarations: this.declarations() + }; + }, + atSupports: function() { + var matched = this.match(regSupports); + if (!matched) return; + var supports = trim(matched[1]); + if (!this.open()) throw Error("@supports missing '{'"); + var rules = this.rules(); + if (!this.close()) throw Error("@supports missing '}'"); + return { + type: 'supports', + supports: supports, + rules: rules + }; + }, + atFontFace: function() { + var matched = this.match(regFontFace); + if (!matched) return; + if (!this.open()) throw Error("@font-face missing '{'"); + var declaration; + var declarations = []; + while ((declaration = this.declaration())) { + declarations.push(declaration); + } + if (!this.close()) throw Error("@font-face missing '}'"); + return { + type: 'font-face', + declarations: declarations + }; + }, + atMedia: function() { + var matched = this.match(regMedia); + if (!matched) return; + var media = trim(matched[1]); + if (!this.open()) throw Error("@media missing '{'"); + this.whitespace(); + var rules = this.rules(); + if (!this.close()) throw Error("@media missing '}'"); + return { + type: 'media', + media: media, + rules: rules + }; + }, + rule: function() { + var selector = this.selector(); + if (!selector) throw Error('missing selector'); + return { + type: 'rule', + selector: selector, + declarations: this.declarations() + }; + }, + declarations: function() { + var declarations = []; + if (!this.open()) throw Error("missing '{'"); + this.whitespace(); + var declaration; + while ((declaration = this.declaration())) { + declarations.push(declaration); + } + if (!this.close()) throw Error("missing '}'"); + this.whitespace(); + return declarations; + }, + declaration: function() { + var property = this.match(regProperty); + if (!property) return; + property = trim(property[0]); + if (!this.match(regColon)) throw Error("property missing ':'"); + var value = this.match(regValue); + this.match(regSemicolon); + this.whitespace(); + return { + type: 'declaration', + property: property, + value: value ? trim(value[0]) : '' + }; + }, + selector: function() { + var matched = this.match(regSelector); + if (!matched) return; + return trim(matched[0]); + }, + match: function(reg) { + var matched = reg.exec(this.input); + if (!matched) return; + this.input = this.input.slice(matched[0].length); + return matched; + }, + _createMatcher: function(reg) { + var _this = this; + return function() { + return _this.match(reg); + }; + }, + _createAtRule: function(name) { + var reg = new RegExp('^@' + name + '\\s*([^;]+);'); + return function() { + var matched = this.match(reg); + if (!matched) return; + var ret = { + type: name + }; + ret[name] = trim(matched[1]); + return ret; + }; + } +}); +var Compiler = Class({ + initialize: function Compiler(input) { + var options = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}; + defaults(options, { + indent: ' ' + }); + this.input = input; + this.indentLevel = 0; + this.indentation = options.indent; + }, + compile: function() { + return this.stylesheet(this.input); + }, + stylesheet: function(node) { + return this.mapVisit(node.rules, '\n\n'); + }, + media: function(node) { + return ( + '@media ' + + node.media + + ' {\n' + + this.indent(1) + + this.mapVisit(node.rules, '\n\n') + + this.indent(-1) + + '\n}' + ); + }, + keyframes: function(node) { + return ( + '@'.concat(node.vendor, 'keyframes ') + + node.name + + ' {\n' + + this.indent(1) + + this.mapVisit(node.keyframes, '\n') + + this.indent(-1) + + '\n}' + ); + }, + supports: function(node) { + return ( + '@supports ' + + node.supports + + ' {\n' + + this.indent(1) + + this.mapVisit(node.rules, '\n\n') + + this.indent(-1) + + '\n}' + ); + }, + keyframe: function(node) { + return this.rule(node); + }, + mapVisit: function(nodes, delimiter) { + var str = ''; + for (var i = 0, len = nodes.length; i < len; i++) { + var node = nodes[i]; + str += this[camelCase(node.type)](node); + if (delimiter && i < len - 1) str += delimiter; + } + return str; + }, + fontFace: function(node) { + return ( + '@font-face {\n' + + this.indent(1) + + this.mapVisit(node.declarations, '\n') + + this.indent(-1) + + '\n}' + ); + }, + rule: function(node) { + return ( + this.indent() + + node.selector + + ' {\n' + + this.indent(1) + + this.mapVisit(node.declarations, '\n') + + this.indent(-1) + + '\n' + + this.indent() + + '}' + ); + }, + declaration: function(node) { + return this.indent() + node.property + ': ' + node.value + ';'; + }, + import: function(node) { + return '@import '.concat(node.import, ';'); + }, + charset: function(node) { + return '@charset '.concat(node.charset, ';'); + }, + namespace: function(node) { + return '@namespace '.concat(node.namespace, ';'); + }, + indent: function(level) { + if (level) { + this.indentLevel += level; + return ''; + } + return repeat(this.indentation, this.indentLevel); + } +}); +var stripCmt = function(str) { + return str.replace(regComments, ''); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/cssPriority.js b/src/miniprogram_npm/miniprogram-licia/cssPriority.js new file mode 100644 index 0000000..37f8f39 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/cssPriority.js @@ -0,0 +1,63 @@ +var selector = require('./selector'); +var each = require('./each'); +var startWith = require('./startWith'); +var contain = require('./contain'); +var cmpVersion = require('./cmpVersion'); + +exports = function(sel) { + var _ref = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}, + _ref$important = _ref.important, + important = _ref$important === void 0 ? false : _ref$important, + _ref$inlineStyle = _ref.inlineStyle, + inlineStyle = _ref$inlineStyle === void 0 ? false : _ref$inlineStyle, + _ref$position = _ref.position, + position = _ref$position === void 0 ? 0 : _ref$position; + var ret = [0, 0, 0, 0, 0, position]; + if (important) ret[0] = 1; + if (inlineStyle) ret[1] = 1; + var group = selector.parse(sel)[0]; + each(group, function(_ref2) { + var type = _ref2.type, + value = _ref2.value; + switch (type) { + case 'id': + ret[2]++; + break; + case 'class': + case 'attribute': + ret[3]++; + break; + case 'pseudo': + if (contain(PSEUDO_ELEMS, value.replace(/:/g, ''))) { + ret[4]++; + } else if (!startWith(value, '::')) { + ret[3]++; + } + break; + case 'tag': + if (value !== '*') { + ret[4]++; + } + break; + } + }); + return ret; +}; +var PSEUDO_ELEMS = [ + 'first-letter', + 'last-letter', + 'first-line', + 'last-line', + 'first-child', + 'last-child', + 'before', + 'after' +]; +exports.compare = function(p1, p2) { + return cmpVersion(p1.join('.'), p2.join('.')); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/curry.js b/src/miniprogram_npm/miniprogram-licia/curry.js new file mode 100644 index 0000000..9d4fd00 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/curry.js @@ -0,0 +1,15 @@ +var toArr = require('./toArr'); +exports = function(fn) { + var len = fn.length; + return function curriedFn() { + var args = toArr(arguments); + if (args.length < len) { + return function() { + return curriedFn.apply(null, args.concat(toArr(arguments))); + }; + } + return fn.apply(null, args); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/dataUrl.js b/src/miniprogram_npm/miniprogram-licia/dataUrl.js new file mode 100644 index 0000000..c93e71e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/dataUrl.js @@ -0,0 +1,68 @@ +var isDataUrl = require('./isDataUrl'); +var trim = require('./trim'); +var endWith = require('./endWith'); +var startWith = require('./startWith'); +var contain = require('./contain'); +var decodeUriComponent = require('./decodeUriComponent'); +var defaults = require('./defaults'); +var isStr = require('./isStr'); +var convertBin = require('./convertBin'); +exports = { + parse: function(dataUrl) { + if (!isDataUrl(dataUrl)) { + return null; + } + dataUrl = dataUrl.slice('data:'.length); + var commaIdx = dataUrl.indexOf(','); + var mime = trim(dataUrl.slice(0, commaIdx)); + var data = trim(dataUrl.slice(commaIdx + 1)); + var base64 = false; + if (endWith(mime, ';base64')) { + base64 = true; + mime = mime.slice(0, -';base64'.length); + } + var charset = ''; + if (contain(mime, 'charset=')) { + charset = mime.split('charset=')[1]; + mime = mime.split(';')[0]; + } + if (!mime) { + mime = 'text/plain'; + } + if (!base64 && startWith(mime, 'text/') && contain(data, '%')) { + data = decodeUriComponent(data); + } + return { + data: data, + mime: mime, + charset: charset, + base64: base64 + }; + }, + stringify: function(data, mime) { + var options = + arguments.length > 2 && arguments[2] !== undefined + ? arguments[2] + : {}; + defaults(options, { + base64: true, + charset: '' + }); + var result = 'data:' + mime; + if (options.charset && startWith(mime, 'text/')) { + result += ';charset=' + options.charset; + } + if (!isStr(data)) { + data = convertBin(data, 'base64'); + options.base64 = true; + } + if (options.base64) { + result += ';base64'; + } else if (startWith(mime, 'text/') || !mime) { + data = encodeURIComponent(data); + } + return result + ',' + data; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/dateFormat.js b/src/miniprogram_npm/miniprogram-licia/dateFormat.js new file mode 100644 index 0000000..a61ed69 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/dateFormat.js @@ -0,0 +1,142 @@ +var isStr = require('./isStr'); +var isDate = require('./isDate'); +var toStr = require('./toStr'); +var lpad = require('./lpad'); +exports = function(date, mask, utc, gmt) { + if (arguments.length === 1 && isStr(date) && !regNum.test(date)) { + mask = date; + date = undefined; + } + date = date || new Date(); + if (!isDate(date)) date = new Date(date); + mask = toStr(exports.masks[mask] || mask || exports.masks['default']); + var maskSlice = mask.slice(0, 4); + if (maskSlice === 'UTC:' || maskSlice === 'GMT:') { + mask = mask.slice(4); + utc = true; + if (maskSlice === 'GMT:') gmt = true; + } + var prefix = utc ? 'getUTC' : 'get'; + var d = date[prefix + 'Date'](); + var D = date[prefix + 'Day'](); + var m = date[prefix + 'Month'](); + var y = date[prefix + 'FullYear'](); + var H = date[prefix + 'Hours'](); + var M = date[prefix + 'Minutes'](); + var s = date[prefix + 'Seconds'](); + var L = date[prefix + 'Milliseconds'](); + var o = utc ? 0 : date.getTimezoneOffset(); + var flags = { + d: d, + dd: padZero(d), + ddd: exports.i18n.dayNames[D], + dddd: exports.i18n.dayNames[D + 7], + m: m + 1, + mm: padZero(m + 1), + mmm: exports.i18n.monthNames[m], + mmmm: exports.i18n.monthNames[m + 12], + yy: toStr(y).slice(2), + yyyy: y, + h: H % 12 || 12, + hh: padZero(H % 12 || 12), + H: H, + HH: padZero(H), + M: M, + MM: padZero(M), + s: s, + ss: padZero(s), + l: padZero(L, 3), + L: padZero(Math.round(L / 10)), + t: H < 12 ? 'a' : 'p', + tt: H < 12 ? 'am' : 'pm', + T: H < 12 ? 'A' : 'P', + TT: H < 12 ? 'AM' : 'PM', + Z: gmt + ? 'GMT' + : utc + ? 'UTC' + : (toStr(date).match(regTimezone) || ['']) + .pop() + .replace(regTimezoneClip, ''), + o: + (o > 0 ? '-' : '+') + + padZero(Math.floor(Math.abs(o) / 60) * 100 + (Math.abs(o) % 60), 4), + S: ['th', 'st', 'nd', 'rd'][ + d % 10 > 3 ? 0 : (((d % 100) - (d % 10) != 10) * d) % 10 + ] + }; + return mask.replace(regToken, function(match) { + if (match in flags) return flags[match]; + return match.slice(1, match.length - 1); + }); +}; +var padZero = function(str) { + var len = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; + return lpad(toStr(str), len, '0'); +}; +var regToken = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g; +var regTimezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g; +var regNum = /\d/; +var regTimezoneClip = /[^-+\dA-Z]/g; +exports.masks = { + default: 'ddd mmm dd yyyy HH:MM:ss', + shortDate: 'm/d/yy', + mediumDate: 'mmm d, yyyy', + longDate: 'mmmm d, yyyy', + fullDate: 'dddd, mmmm d, yyyy', + shortTime: 'h:MM TT', + mediumTime: 'h:MM:ss TT', + longTime: 'h:MM:ss TT Z', + isoDate: 'yyyy-mm-dd', + isoTime: 'HH:MM:ss', + isoDateTime: "yyyy-mm-dd'T'HH:MM:sso", + isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'", + expiresHeaderFormat: 'ddd, dd mmm yyyy HH:MM:ss Z' +}; +exports.i18n = { + dayNames: [ + 'Sun', + 'Mon', + 'Tue', + 'Wed', + 'Thu', + 'Fri', + 'Sat', + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday' + ], + monthNames: [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec', + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ] +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/debounce.js b/src/miniprogram_npm/miniprogram-licia/debounce.js new file mode 100644 index 0000000..6c2d322 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/debounce.js @@ -0,0 +1,15 @@ +exports = function(fn, wait, immediate) { + var timeout; + return function() { + var ctx = this; + var args = arguments; + var throttler = function() { + timeout = null; + fn.apply(ctx, args); + }; + if (!immediate) clearTimeout(timeout); + if (!immediate || !timeout) timeout = setTimeout(throttler, wait); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/deburr.js b/src/miniprogram_npm/miniprogram-licia/deburr.js new file mode 100644 index 0000000..b930e07 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/deburr.js @@ -0,0 +1,206 @@ +exports = function(str) { + return str + .replace(regLatin, function(key) { + return deburredLetters[key]; + }) + .replace(regComboMark, ''); +}; + +var regComboMark = /[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]/g; +var regLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + +var deburredLetters = { + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + Ç: 'C', + ç: 'c', + Ð: 'D', + ð: 'd', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + Ñ: 'N', + ñ: 'n', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + Ý: 'Y', + ý: 'y', + ÿ: 'y', + Æ: 'Ae', + æ: 'ae', + Þ: 'Th', + þ: 'th', + ß: 'ss', + + Ā: 'A', + Ă: 'A', + Ą: 'A', + ā: 'a', + ă: 'a', + ą: 'a', + Ć: 'C', + Ĉ: 'C', + Ċ: 'C', + Č: 'C', + ć: 'c', + ĉ: 'c', + ċ: 'c', + č: 'c', + Ď: 'D', + Đ: 'D', + ď: 'd', + đ: 'd', + Ē: 'E', + Ĕ: 'E', + Ė: 'E', + Ę: 'E', + Ě: 'E', + ē: 'e', + ĕ: 'e', + ė: 'e', + ę: 'e', + ě: 'e', + Ĝ: 'G', + Ğ: 'G', + Ġ: 'G', + Ģ: 'G', + ĝ: 'g', + ğ: 'g', + ġ: 'g', + ģ: 'g', + Ĥ: 'H', + Ħ: 'H', + ĥ: 'h', + ħ: 'h', + Ĩ: 'I', + Ī: 'I', + Ĭ: 'I', + Į: 'I', + İ: 'I', + ĩ: 'i', + ī: 'i', + ĭ: 'i', + į: 'i', + ı: 'i', + Ĵ: 'J', + ĵ: 'j', + Ķ: 'K', + ķ: 'k', + ĸ: 'k', + Ĺ: 'L', + Ļ: 'L', + Ľ: 'L', + Ŀ: 'L', + Ł: 'L', + ĺ: 'l', + ļ: 'l', + ľ: 'l', + ŀ: 'l', + ł: 'l', + Ń: 'N', + Ņ: 'N', + Ň: 'N', + Ŋ: 'N', + ń: 'n', + ņ: 'n', + ň: 'n', + ŋ: 'n', + Ō: 'O', + Ŏ: 'O', + Ő: 'O', + ō: 'o', + ŏ: 'o', + ő: 'o', + Ŕ: 'R', + Ŗ: 'R', + Ř: 'R', + ŕ: 'r', + ŗ: 'r', + ř: 'r', + Ś: 'S', + Ŝ: 'S', + Ş: 'S', + Š: 'S', + ś: 's', + ŝ: 's', + ş: 's', + š: 's', + Ţ: 'T', + Ť: 'T', + Ŧ: 'T', + ţ: 't', + ť: 't', + ŧ: 't', + Ũ: 'U', + Ū: 'U', + Ŭ: 'U', + Ů: 'U', + Ű: 'U', + Ų: 'U', + ũ: 'u', + ū: 'u', + ŭ: 'u', + ů: 'u', + ű: 'u', + ų: 'u', + Ŵ: 'W', + ŵ: 'w', + Ŷ: 'Y', + ŷ: 'y', + Ÿ: 'Y', + Ź: 'Z', + Ż: 'Z', + Ž: 'Z', + ź: 'z', + ż: 'z', + ž: 'z', + IJ: 'IJ', + ij: 'ij', + Œ: 'Oe', + œ: 'oe', + ʼn: "'n", + ſ: 's' +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/decodeUriComponent.js b/src/miniprogram_npm/miniprogram-licia/decodeUriComponent.js new file mode 100644 index 0000000..f363d60 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/decodeUriComponent.js @@ -0,0 +1,31 @@ +var each = require('./each'); +var ucs2 = require('./ucs2'); +var map = require('./map'); +var utf8 = require('./utf8'); +exports = function(str) { + try { + return decodeURIComponent(str); + } catch (e) { + var matches = str.match(regMatcher); + if (!matches) { + return str; + } + each(matches, function(match) { + str = str.replace(match, decode(match)); + }); + return str; + } +}; +function decode(str) { + str = str.split('%').slice(1); + var bytes = map(str, hexToInt); + str = ucs2.encode(bytes); + str = utf8.decode(str, true); + return str; +} +function hexToInt(numStr) { + return +('0x' + numStr); +} +var regMatcher = /(%[a-f0-9]{2})+/gi; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/defaults.js b/src/miniprogram_npm/miniprogram-licia/defaults.js new file mode 100644 index 0000000..942d2e8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/defaults.js @@ -0,0 +1,5 @@ +var createAssigner = require('./createAssigner'); +var allKeys = require('./allKeys'); +exports = createAssigner(allKeys, true); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/define.js b/src/miniprogram_npm/miniprogram-licia/define.js new file mode 100644 index 0000000..bea82fd --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/define.js @@ -0,0 +1,17 @@ +var toArr = require('./toArr'); +exports = function(name, requires, method) { + if (arguments.length === 2) { + method = requires; + requires = []; + } + define(name, requires, method); +}; +var modules = (exports._modules = {}); +function define(name, requires, method) { + modules[name] = { + requires: toArr(requires), + body: method + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/defineProp.js b/src/miniprogram_npm/miniprogram-licia/defineProp.js new file mode 100644 index 0000000..b331320 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/defineProp.js @@ -0,0 +1,26 @@ +var castPath = require('./castPath'); +var isStr = require('./isStr'); +var isObj = require('./isObj'); +var each = require('./each'); +exports = function(obj, prop, descriptor) { + if (isStr(prop)) { + defineProp(obj, prop, descriptor); + } else if (isObj(prop)) { + each(prop, function(descriptor, prop) { + defineProp(obj, prop, descriptor); + }); + } + return obj; +}; +function defineProp(obj, prop, descriptor) { + var path = castPath(prop, obj); + var lastProp = path.pop(); + + while ((prop = path.shift())) { + if (!obj[prop]) obj[prop] = {}; + obj = obj[prop]; + } + Object.defineProperty(obj, lastProp, descriptor); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/defined.js b/src/miniprogram_npm/miniprogram-licia/defined.js new file mode 100644 index 0000000..3ee1db6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/defined.js @@ -0,0 +1,8 @@ +var isUndef = require('./isUndef'); +exports = function() { + for (var i = 0, len = arguments.length; i < len; i++) { + if (!isUndef(arguments[i])) return arguments[i]; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/delay.js b/src/miniprogram_npm/miniprogram-licia/delay.js new file mode 100644 index 0000000..393fe77 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/delay.js @@ -0,0 +1,8 @@ +var restArgs = require('./restArgs'); +exports = restArgs(function(fn, wait, args) { + return setTimeout(function() { + return fn.apply(null, args); + }, wait); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/deprecate.js b/src/miniprogram_npm/miniprogram-licia/deprecate.js new file mode 100644 index 0000000..822a31a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/deprecate.js @@ -0,0 +1,36 @@ +var isNode = require('./isNode'); +var root = require('./root'); +var memStorage = require('./memStorage'); +if (isNode) { + exports = eval('require')('util').deprecate; +} else { + var localStorage = root.localStorage || memStorage; + exports = function(fn, msg) { + if (localStorage.getItem('noDeprecation')) { + return fn; + } + var warned = false; + function deprecated() { + if (!warned) { + warned = true; + + console.warn(msg); + } + for ( + var _len = arguments.length, args = new Array(_len), _key = 0; + _key < _len; + _key++ + ) { + args[_key] = arguments[_key]; + } + return fn.apply(this, args); + } + Object.setPrototypeOf(deprecated, fn); + if (fn.prototype) { + deprecated.prototype = fn.prototype; + } + return deprecated; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/detectBrowser.js b/src/miniprogram_npm/miniprogram-licia/detectBrowser.js new file mode 100644 index 0000000..66843ac --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/detectBrowser.js @@ -0,0 +1,51 @@ +var isBrowser = require('./isBrowser'); +var toInt = require('./toInt'); +var keys = require('./keys'); +exports = function(ua) { + ua = ua || (isBrowser ? navigator.userAgent : ''); + ua = ua.toLowerCase(); + var ieVer = getVer(ua, 'msie '); + if (ieVer) + return { + version: ieVer, + name: 'ie' + }; + if (regIe11.test(ua)) + return { + version: 11, + name: 'ie' + }; + for (var i = 0, len = browsers.length; i < len; i++) { + var name = browsers[i]; + var match = ua.match(regBrowsers[name]); + if (match == null) continue; + var version = toInt(match[1].split('.')[0]); + if (name === 'opera') version = getVer(ua, 'version/') || version; + return { + name: name, + version: version + }; + } + return { + name: 'unknown', + version: -1 + }; +}; +var regBrowsers = { + edge: /edge\/([0-9._]+)/, + firefox: /firefox\/([0-9.]+)(?:\s|$)/, + opera: /opera\/([0-9.]+)(?:\s|$)/, + android: /android\s([0-9.]+)/, + ios: /version\/([0-9._]+).*mobile.*safari.*/, + safari: /version\/([0-9._]+).*safari/, + chrome: /(?!chrom.*opr)chrom(?:e|ium)\/([0-9.]+)(:?\s|$)/ +}; +var regIe11 = /trident\/7\./; +var browsers = keys(regBrowsers); +function getVer(ua, mark) { + var idx = ua.indexOf(mark); + if (idx > -1) + return toInt(ua.substring(idx + mark.length, ua.indexOf('.', idx))); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/detectMocha.js b/src/miniprogram_npm/miniprogram-licia/detectMocha.js new file mode 100644 index 0000000..b0c51d3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/detectMocha.js @@ -0,0 +1,11 @@ +var root = require('./root'); +exports = function() { + for (var i = 0, len = methods.length; i < len; i++) { + var method = methods[i]; + if (typeof root[method] !== 'function') return false; + } + return true; +}; +var methods = ['afterEach', 'after', 'beforeEach', 'before', 'describe', 'it']; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/detectOs.js b/src/miniprogram_npm/miniprogram-licia/detectOs.js new file mode 100644 index 0000000..4edc766 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/detectOs.js @@ -0,0 +1,39 @@ +var isBrowser = require('./isBrowser'); +var isNode = require('./isNode'); +exports = function(ua) { + if (!ua && isBrowser) { + ua = navigator.userAgent; + } + function detect(keyword) { + return ua.indexOf(keyword) > -1; + } + if (ua) { + ua = ua.toLowerCase(); + if (detect('windows phone')) return 'windows phone'; + if (detect('win')) return 'windows'; + if (detect('android')) return 'android'; + if (detect('ipad') || detect('iphone') || detect('ipod')) return 'ios'; + if (detect('mac')) return 'os x'; + if (detect('linux')) return 'linux'; + } else if (isNode) { + var _process = process, + platform = _process.platform, + env = _process.env; + if ( + platform === 'win32' || + env.OSTYPE === 'cygwin' || + env.OSTYPE === 'msys' + ) { + return 'windows'; + } + if (platform === 'darwin') { + return 'os x'; + } + if (platform === 'linux') { + return 'linux'; + } + } + return 'unknown'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/difference.js b/src/miniprogram_npm/miniprogram-licia/difference.js new file mode 100644 index 0000000..8e5d16f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/difference.js @@ -0,0 +1,12 @@ +var restArgs = require('./restArgs'); +var flatten = require('./flatten'); +var filter = require('./filter'); +var contain = require('./contain'); +exports = restArgs(function(arr, args) { + args = flatten(args); + return filter(arr, function(val) { + return !contain(args, val); + }); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/dotCase.js b/src/miniprogram_npm/miniprogram-licia/dotCase.js new file mode 100644 index 0000000..a88fb5b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/dotCase.js @@ -0,0 +1,6 @@ +var splitCase = require('./splitCase'); +exports = function(str) { + return splitCase(str).join('.'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/durationFormat.js b/src/miniprogram_npm/miniprogram-licia/durationFormat.js new file mode 100644 index 0000000..7beda3e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/durationFormat.js @@ -0,0 +1,39 @@ +var toInt = require('./toInt'); +var lpad = require('./lpad'); +var toStr = require('./toStr'); +var floor = Math.floor; +exports = function(duration) { + var mask = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : 'hh:mm:ss'; + duration = toInt(duration); + var d = floor(duration / 86400000); + var h = floor(duration / 3600000) % 24; + var m = floor(duration / 60000) % 60; + var s = floor(duration / 1000) % 60; + var l = floor(duration) % 1000; + var flags = { + d: d, + h: h, + hh: padZero(h), + m: m, + mm: padZero(m), + s: s, + ss: padZero(s), + l: l, + ll: padZero(l, 3) + }; + return mask.replace(regToken, function(match) { + if (match in flags) return flags[match]; + return match.slice(1, match.length - 1); + }); +}; +var padZero = function(str) { + var len = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; + return lpad(toStr(str), len, '0'); +}; +var regToken = /d{1,2}|h{1,2}|m{1,2}|s{1,2}|l{1,2}|"[^"]*"|'[^']*'/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/each.js b/src/miniprogram_npm/miniprogram-licia/each.js new file mode 100644 index 0000000..0020098 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/each.js @@ -0,0 +1,18 @@ +var isArrLike = require('./isArrLike'); +var keys = require('./keys'); +var optimizeCb = require('./optimizeCb'); +exports = function(obj, iterator, ctx) { + iterator = optimizeCb(iterator, ctx); + var i, len; + if (isArrLike(obj)) { + for (i = 0, len = obj.length; i < len; i++) iterator(obj[i], i, obj); + } else { + var _keys = keys(obj); + for (i = 0, len = _keys.length; i < len; i++) { + iterator(obj[_keys[i]], _keys[i], obj); + } + } + return obj; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/easing.js b/src/miniprogram_npm/miniprogram-licia/easing.js new file mode 100644 index 0000000..a6a5b93 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/easing.js @@ -0,0 +1,63 @@ +var each = require('./each'); +var upperFirst = require('./upperFirst'); +exports.linear = function(t) { + return t; +}; +var pow = Math.pow; +var sqrt = Math.sqrt; +var sin = Math.sin; +var min = Math.min; +var asin = Math.asin; +var PI = Math.PI; +var fns = { + sine: function(t) { + return 1 + sin((PI / 2) * t - PI / 2); + }, + circ: function(t) { + return 1 - sqrt(1 - t * t); + }, + elastic: function(t, m) { + m = m || DEFAULT_ELASTICITY; + if (t === 0 || t === 1) return t; + var p = 1 - min(m, 998) / 1000; + var st = t / 1; + var st1 = st - 1; + var s = (p / (2 * PI)) * asin(1); + return -(pow(2, 10 * st1) * sin(((st1 - s) * (2 * PI)) / p)); + }, + back: function(t) { + return t * t * (3 * t - 2); + }, + bounce: function(t) { + var pow2, + bounce = 4; + + while (t < ((pow2 = pow(2, --bounce)) - 1) / 11) {} + return ( + 1 / pow(4, 3 - bounce) - 7.5625 * pow((pow2 * 3 - 2) / 22 - t, 2) + ); + } +}; +each(['quad', 'cubic', 'quart', 'quint', 'expo'], function(name, i) { + fns[name] = function(t) { + return pow(t, i + 2); + }; +}); +var DEFAULT_ELASTICITY = 400; +each(fns, function(fn, name) { + name = upperFirst(name); + exports['in' + name] = fn; + exports['out' + name] = function(t, m) { + return 1 - fn(1 - t, m); + }; + exports['inOut' + name] = function(t, m) { + return t < 0.5 ? fn(t * 2, m) / 2 : 1 - fn(t * -2 + 2, m) / 2; + }; + exports['outIn' + name] = function(t, m) { + return t < 0.5 + ? (1 - fn(1 - 2 * t, m)) / 2 + : (fn(t * 2 - 1, m) + 1) / 2; + }; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/endWith.js b/src/miniprogram_npm/miniprogram-licia/endWith.js new file mode 100644 index 0000000..76a8d3c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/endWith.js @@ -0,0 +1,6 @@ +exports = function(str, suffix) { + var idx = str.length - suffix.length; + return idx >= 0 && str.indexOf(suffix, idx) === idx; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/escape.js b/src/miniprogram_npm/miniprogram-licia/escape.js new file mode 100644 index 0000000..89174e8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/escape.js @@ -0,0 +1,20 @@ +var keys = require('./keys'); +exports = function(str) { + return regTest.test(str) ? str.replace(regReplace, replaceFn) : str; +}; +var map = (exports.map = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}); +var regSrc = '(?:' + keys(map).join('|') + ')'; +var regTest = new RegExp(regSrc); +var regReplace = new RegExp(regSrc, 'g'); +var replaceFn = function(match) { + return map[match]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/escapeJsStr.js b/src/miniprogram_npm/miniprogram-licia/escapeJsStr.js new file mode 100644 index 0000000..7be9750 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/escapeJsStr.js @@ -0,0 +1,24 @@ +var toStr = require('./toStr'); +exports = function(str) { + return toStr(str).replace(regEscapeChars, function(char) { + switch (char) { + case '"': + case "'": + case '\\': + return '\\' + char; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + // Line separator + case '\u2028': + return '\\u2028'; + // Paragraph separator + case '\u2029': + return '\\u2029'; + } + }); +}; +var regEscapeChars = /["'\\\n\r\u2028\u2029]/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/escapeRegExp.js b/src/miniprogram_npm/miniprogram-licia/escapeRegExp.js new file mode 100644 index 0000000..0c7d3b5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/escapeRegExp.js @@ -0,0 +1,5 @@ +exports = function(str) { + return str.replace(/\W/g, '\\$&'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/every.js b/src/miniprogram_npm/miniprogram-licia/every.js new file mode 100644 index 0000000..4fde31e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/every.js @@ -0,0 +1,15 @@ +var safeCb = require('./safeCb'); +var isArrLike = require('./isArrLike'); +var keys = require('./keys'); +exports = function(obj, predicate, ctx) { + predicate = safeCb(predicate, ctx); + var _keys = !isArrLike(obj) && keys(obj); + var len = (_keys || obj).length; + for (var i = 0; i < len; i++) { + var curKey = _keys ? _keys[i] : i; + if (!predicate(obj[curKey], curKey, obj)) return false; + } + return true; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/extend.js b/src/miniprogram_npm/miniprogram-licia/extend.js new file mode 100644 index 0000000..09aaeb4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/extend.js @@ -0,0 +1,5 @@ +var createAssigner = require('./createAssigner'); +var allKeys = require('./allKeys'); +exports = createAssigner(allKeys); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/extendDeep.js b/src/miniprogram_npm/miniprogram-licia/extendDeep.js new file mode 100644 index 0000000..38ede04 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/extendDeep.js @@ -0,0 +1,28 @@ +var isPlainObj = require('./isPlainObj'); +var each = require('./each'); +var cloneDeep = require('./cloneDeep'); +exports = function(obj) { + var i = 0; + var ret = obj; + var len = arguments.length; + while (++i < len) { + obj = arguments[i]; + if (isPlainObj(ret) && isPlainObj(obj)) { + each(obj, function(val, key) { + if ( + key === '__proto__' || + key === 'constructor' || + key === 'prototype' + ) { + return; + } + ret[key] = exports(ret[key], obj[key]); + }); + } else { + ret = cloneDeep(obj); + } + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/extendOwn.js b/src/miniprogram_npm/miniprogram-licia/extendOwn.js new file mode 100644 index 0000000..c093f30 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/extendOwn.js @@ -0,0 +1,5 @@ +var keys = require('./keys'); +var createAssigner = require('./createAssigner'); +exports = createAssigner(keys); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/extractBlockCmts.js b/src/miniprogram_npm/miniprogram-licia/extractBlockCmts.js new file mode 100644 index 0000000..08a08fc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/extractBlockCmts.js @@ -0,0 +1,17 @@ +var map = require('./map'); +var trim = require('./trim'); +var regBlockCmt = /(\/\*[\s\S]*?\*\/)/gm; +exports = function(str) { + var ret = str.match(regBlockCmt); + if (!ret) return []; + ret = map(ret, function(comment) { + return trim( + map(comment.split('\n'), function(line) { + return trim(line).replace(/^\/\*+|\*+\/$|^\*+/g, ''); + }).join('\n') + ); + }); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/extractUrls.js b/src/miniprogram_npm/miniprogram-licia/extractUrls.js new file mode 100644 index 0000000..6799c3a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/extractUrls.js @@ -0,0 +1,15 @@ +var unique = require('./unique'); +var trim = require('./trim'); +var map = require('./map'); +var toArr = require('./toArr'); +exports = function(str) { + var urlList = toArr(str.match(regUrl)); + return unique( + map(urlList, function(url) { + return trim(url); + }) + ); +}; +var regUrl = /((https?)|(ftp)):\/\/[\w.]+[^ \f\n\r\t\v"\\<>[\]\u2100-\uFFFF(),]*/gi; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fibonacci.js b/src/miniprogram_npm/miniprogram-licia/fibonacci.js new file mode 100644 index 0000000..a916028 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fibonacci.js @@ -0,0 +1,6 @@ +var memoize = require('./memoize'); +exports = memoize(function(n) { + return n < 2 ? n : exports(n - 1) + exports(n - 2); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fileSize.js b/src/miniprogram_npm/miniprogram-licia/fileSize.js new file mode 100644 index 0000000..80fb0ef --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fileSize.js @@ -0,0 +1,9 @@ +exports = function(bytes) { + if (bytes <= 0) return '0'; + var suffixIdx = Math.floor(Math.log(bytes) / Math.log(1024)); + var val = bytes / Math.pow(2, suffixIdx * 10); + return +val.toFixed(2) + suffixList[suffixIdx]; +}; +var suffixList = ['', 'K', 'M', 'G', 'T']; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fileType.js b/src/miniprogram_npm/miniprogram-licia/fileType.js new file mode 100644 index 0000000..453d844 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fileType.js @@ -0,0 +1,148 @@ +function _slicedToArray(r, e) { + return ( + _arrayWithHoles(r) || + _iterableToArrayLimit(r, e) || + _unsupportedIterableToArray(r, e) || + _nonIterableRest() + ); +} +function _nonIterableRest() { + throw new TypeError( + 'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.' + ); +} +function _unsupportedIterableToArray(r, a) { + if (r) { + if ('string' == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return ( + 'Object' === t && r.constructor && (t = r.constructor.name), + 'Map' === t || 'Set' === t + ? Array.from(r) + : 'Arguments' === t || + /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) + ? _arrayLikeToArray(r, a) + : void 0 + ); + } +} +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} +function _iterableToArrayLimit(r, l) { + var t = + null == r + ? null + : ('undefined' != typeof Symbol && r[Symbol.iterator]) || + r['@@iterator']; + if (null != t) { + var e, + n, + i, + u, + a = [], + f = !0, + o = !1; + try { + if (((i = (t = t.call(r)).next), 0 === l)) { + if (Object(t) !== t) return; + f = !1; + } else + for ( + ; + !(f = (e = i.call(t)).done) && + (a.push(e.value), a.length !== l); + f = !0 + ); + } catch (r) { + (o = !0), (n = r); + } finally { + try { + if ( + !f && + null != t.return && + ((u = t.return()), Object(u) !== u) + ) + return; + } finally { + if (o) throw n; + } + } + return a; + } +} +function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; +} + +var type = require('./type'); +var mime = require('./mime'); +var isFn = require('./isFn'); +exports = function(input) { + if (type(input) !== 'uint8array') { + input = new Uint8Array(input); + } + for (var i = 0, len = types.length; i < len; i++) { + var _type = types[i]; + var _type2 = _slicedToArray(_type, 3), + ext = _type2[0], + magic = _type2[1], + offset = _type2[2]; + if (isFn(magic)) { + if (magic(input)) { + return { + ext: ext, + mime: mime(ext) + }; + } + } else if (check(input, magic, offset)) { + return { + ext: ext, + mime: mime(ext) + }; + } + } +}; +var types = [ + ['jpg', [0xff, 0xd8, 0xff]], + ['png', [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]], + ['gif', [0x47, 0x49, 0x46]], + ['webp', [0x57, 0x45, 0x42, 0x50], 8], + ['bmp', [0x42, 0x4d]], + ['gz', [0x1f, 0x8b, 0x8]], + [ + 'zip', + function(input) { + return ( + check(input, [0x50, 0x4b]) && + (input[2] === 0x3 || input[2] === 0x5 || input[2] === 0x7) && + (input[3] === 0x4 || input[3] === 0x6 || input[3] === 0x8) + ); + } + ], + [ + 'rar', + function(input) { + return ( + check(input, [0x52, 0x61, 0x72, 0x21, 0x1a, 0x7]) && + (input[6] === 0x0 || input[6] === 0x1) + ); + } + ], + ['pdf', [0x25, 0x50, 0x44, 0x46]], + ['exe', [0x4d, 0x5a]] +]; +function check(input, magic) { + var offset = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + for (var i = 0, len = magic.length; i < len; i++) { + if (input[offset + i] !== magic[i]) { + return false; + } + } + return true; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fileUrl.js b/src/miniprogram_npm/miniprogram-licia/fileUrl.js new file mode 100644 index 0000000..2643a8b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fileUrl.js @@ -0,0 +1,13 @@ +var normalizePath = require('./normalizePath'); +exports = function(path) { + path = normalizePath(path); + if (path[0] !== '/') { + path = '/'.concat(path); + } + return encodeURI('file://'.concat(path)).replace( + /[?#]/g, + encodeURIComponent + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fill.js b/src/miniprogram_npm/miniprogram-licia/fill.js new file mode 100644 index 0000000..2c9d150 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fill.js @@ -0,0 +1,11 @@ +var isUndef = require('./isUndef'); +exports = function(arr, val, start, end) { + var len = arr.length; + if (!len) return []; + if (isUndef(end)) end = len; + if (isUndef(start)) start = 0; + while (start < end) arr[start++] = val; + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/filter.js b/src/miniprogram_npm/miniprogram-licia/filter.js new file mode 100644 index 0000000..941082d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/filter.js @@ -0,0 +1,12 @@ +var safeCb = require('./safeCb'); +var each = require('./each'); +exports = function(obj, predicate, ctx) { + var ret = []; + predicate = safeCb(predicate, ctx); + each(obj, function(val, idx, list) { + if (predicate(val, idx, list)) ret.push(val); + }); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/find.js b/src/miniprogram_npm/miniprogram-licia/find.js new file mode 100644 index 0000000..b5ff0de --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/find.js @@ -0,0 +1,11 @@ +var findKey = require('./findKey'); +var findIdx = require('./findIdx'); +var isArrLike = require('./isArrLike'); +var isUndef = require('./isUndef'); +exports = function(obj, predicate, ctx) { + var keyFinder = isArrLike(obj) ? findIdx : findKey; + var key = keyFinder(obj, predicate, ctx); + if (!isUndef(key) && key !== -1) return obj[key]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/findIdx.js b/src/miniprogram_npm/miniprogram-licia/findIdx.js new file mode 100644 index 0000000..023068c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/findIdx.js @@ -0,0 +1,14 @@ +var safeCb = require('./safeCb'); +exports = function(arr, predicate, ctx, dir) { + dir = dir || 1; + predicate = safeCb(predicate, ctx); + var len = arr.length; + var i = dir > 0 ? 0 : len - 1; + while (i >= 0 && i < len) { + if (predicate(arr[i], i, arr)) return i; + i += dir; + } + return -1; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/findKey.js b/src/miniprogram_npm/miniprogram-licia/findKey.js new file mode 100644 index 0000000..663c802 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/findKey.js @@ -0,0 +1,13 @@ +var safeCb = require('./safeCb'); +var keys = require('./keys'); +exports = function(obj, predicate, ctx) { + predicate = safeCb(predicate, ctx); + var _keys = keys(obj); + var key; + for (var i = 0, len = _keys.length; i < len; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/findLastIdx.js b/src/miniprogram_npm/miniprogram-licia/findLastIdx.js new file mode 100644 index 0000000..375bcf1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/findLastIdx.js @@ -0,0 +1,6 @@ +var findIdx = require('./findIdx'); +exports = function(arr, predicate, ctx) { + return findIdx(arr, predicate, ctx, -1); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/flatten.js b/src/miniprogram_npm/miniprogram-licia/flatten.js new file mode 100644 index 0000000..53290e9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/flatten.js @@ -0,0 +1,16 @@ +var isArr = require('./isArr'); +exports = function(arr) { + return flat(arr, []); +}; +function flat(arr, res) { + var len = arr.length, + i = -1, + cur; + while (len--) { + cur = arr[++i]; + isArr(cur) ? flat(cur, res) : res.push(cur); + } + return res; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fnArgs.js b/src/miniprogram_npm/miniprogram-licia/fnArgs.js new file mode 100644 index 0000000..697e1e0 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fnArgs.js @@ -0,0 +1,68 @@ +var startWith = require('./startWith'); +var last = require('./last'); +var lowerCase = require('./lowerCase'); +var isObj = require('./isObj'); +var type = require('./type'); +exports = function(types, args) { + var argsLen = args.length; + var typesLen = types.length; + var minLen = typesLen; + var maxLen = typesLen; + for (var i = 0; i < typesLen; i++) { + var _type = types[i].split('|'); + if (startWith(_type[0], '?')) { + _type[0] = _type[0].slice(1); + if (minLen === typesLen) { + minLen = i; + } + } + if (i === typesLen - 1 && startWith(_type[0], '...')) { + maxLen = Infinity; + _type[0] = _type[0].slice(3); + if (minLen === typesLen) { + minLen = i; + } + } + types[i] = _type; + } + if (argsLen < minLen) { + throw Error( + 'Expected at least ' + .concat(minLen, ' args but got ') + .concat(argsLen) + ); + } else if (argsLen > maxLen) { + throw Error( + 'Expected at most '.concat(maxLen, ' args but got ').concat(argsLen) + ); + } + for (var _i = 0; _i < argsLen; _i++) { + var arg = args[_i]; + if (_i >= typesLen) { + validateArg(arg, last(types), _i); + } else { + validateArg(arg, types[_i], _i); + } + } +}; +function validateArg(value, types, num) { + var isValid = false; + for (var i = 0, len = types.length; i < len; i++) { + var t = lowerCase(types[i]); + if ( + t === 'any' || + (t === 'object' && isObj(value)) || + type(value) === t + ) { + isValid = true; + break; + } + } + if (!isValid) { + throw TypeError( + 'Argument '.concat(num, ' should be type ').concat(types.join('|')) + ); + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fnParams.js b/src/miniprogram_npm/miniprogram-licia/fnParams.js new file mode 100644 index 0000000..65bcdd7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fnParams.js @@ -0,0 +1,26 @@ +var toSrc = require('./toSrc'); +var stripCmt = require('./stripCmt'); +var startWith = require('./startWith'); +var isStr = require('./isStr'); +exports = function(fn) { + var fnStr = stripCmt(isStr(fn) ? fn : toSrc(fn)); + var open; + var close; + if ( + !startWith(fnStr, 'async') && + !startWith(fnStr, 'function') && + !startWith(fnStr, '(') + ) { + open = 0; + close = fnStr.indexOf('=>'); + } else { + open = fnStr.indexOf('(') + 1; + close = fnStr.indexOf(')'); + } + var ret = fnStr.slice(open, close); + ret = ret.match(regArgNames); + return ret === null ? [] : ret; +}; +var regArgNames = /[^\s,]+/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fnv1a.js b/src/miniprogram_npm/miniprogram-licia/fnv1a.js new file mode 100644 index 0000000..bd5f22e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fnv1a.js @@ -0,0 +1,11 @@ +var BASE = 0x811c9dc5; +exports = function(str) { + var ret = BASE; + for (var i = 0, len = str.length; i < len; i++) { + ret ^= str.charCodeAt(i); + ret += (ret << 1) + (ret << 4) + (ret << 7) + (ret << 8) + (ret << 24); + } + return ret >>> 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/format.js b/src/miniprogram_npm/miniprogram-licia/format.js new file mode 100644 index 0000000..d407b12 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/format.js @@ -0,0 +1,45 @@ +var restArgs = require('./restArgs'); +var toInt = require('./toInt'); +var toNum = require('./toNum'); +var toStr = require('./toStr'); +exports = restArgs(function(str, values) { + var ret = ''; + for (var i = 0, len = str.length; i < len; i++) { + var c = str[i]; + if (c !== '%' || values.length === 0) { + ret += c; + continue; + } + i++; + var val = values.shift(); + switch (str[i]) { + case 'i': + case 'd': + ret += toInt(val); + break; + case 'f': + ret += toNum(val); + break; + case 's': + ret += toStr(val); + break; + case 'o': + ret += tryStringify(val); + break; + default: + i--; + values.unshift(val); + ret += c; + } + } + return ret; +}); +function tryStringify(obj) { + try { + return JSON.stringify(obj); + } catch (err) { + return '[Error Stringify]'; + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fraction.js b/src/miniprogram_npm/miniprogram-licia/fraction.js new file mode 100644 index 0000000..f8a6524 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fraction.js @@ -0,0 +1,17 @@ +var gcd = require('./gcd'); +var precision = require('./precision'); +exports = function(num) { + if (num === 0) return '0'; + var _precision = precision(num); + _precision = pow(10, _precision); + var numerator = num * _precision, + denominator = _precision; + var _gcd = abs(gcd(numerator, denominator)); + numerator /= _gcd; + denominator /= _gcd; + return numerator + '/' + denominator; +}; +var abs = Math.abs; +var pow = Math.pow; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/freeze.js b/src/miniprogram_npm/miniprogram-licia/freeze.js new file mode 100644 index 0000000..b13f344 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/freeze.js @@ -0,0 +1,14 @@ +var keys = require('./keys'); +exports = function(obj) { + if (Object.freeze) return Object.freeze(obj); + keys(obj).forEach(function(prop) { + if (!Object.getOwnPropertyDescriptor(obj, prop).configurable) return; + Object.defineProperty(obj, prop, { + writable: false, + configurable: false + }); + }); + return obj; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/freezeDeep.js b/src/miniprogram_npm/miniprogram-licia/freezeDeep.js new file mode 100644 index 0000000..a48306f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/freezeDeep.js @@ -0,0 +1,13 @@ +var freeze = require('./freeze'); +var keys = require('./keys'); +var isObj = require('./isObj'); +exports = function(obj) { + freeze(obj); + keys(obj).forEach(function(prop) { + var val = obj[prop]; + if (isObj(val) && !Object.isFrozen(val)) exports(val); + }); + return obj; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/fuzzySearch.js b/src/miniprogram_npm/miniprogram-licia/fuzzySearch.js new file mode 100644 index 0000000..ebe538f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/fuzzySearch.js @@ -0,0 +1,55 @@ +var filter = require('./filter'); +var map = require('./map'); +var isStr = require('./isStr'); +var safeGet = require('./safeGet'); +var levenshtein = require('./levenshtein'); +var pluck = require('./pluck'); +exports = function(needle, haystacks) { + var options = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + if (!options.caseSensitive) { + needle = needle.toLowerCase(); + } + haystacks = map(haystacks, function(haystack) { + var string = toStr(haystack, options); + if (!options.caseSensitive) { + string = string.toLowerCase(); + } + return { + value: haystack, + levenshtein: levenshtein(needle, string), + string: string + }; + }); + haystacks = filter(haystacks, function(haystack) { + return hasAllLetters(needle, haystack.string, options); + }); + haystacks.sort(function(a, b) { + return a.levenshtein - b.levenshtein; + }); + return pluck(haystacks, 'value'); +}; +function toStr(haystack, options) { + if (isStr(haystack)) return haystack; + return safeGet(haystack, options.key) || ''; +} +function hasAllLetters(needle, haystack) { + var hLen = haystack.length; + var nLen = needle.length; + if (nLen > hLen) return false; + if (nLen === hLen) return needle === haystack; + for (var i = 0, j = 0; i < nLen; i++) { + var c = needle.charCodeAt(i); + var has = false; + while (j < hLen) { + if (haystack.charCodeAt(j++) === c) { + has = true; + break; + } + } + if (!has) return false; + } + return true; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/gcd.js b/src/miniprogram_npm/miniprogram-licia/gcd.js new file mode 100644 index 0000000..117be5f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/gcd.js @@ -0,0 +1,6 @@ +exports = function(a, b) { + if (b === 0) return a; + return exports(b, a % b); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/getProto.js b/src/miniprogram_npm/miniprogram-licia/getProto.js new file mode 100644 index 0000000..1b3f2db --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/getProto.js @@ -0,0 +1,14 @@ +var isObj = require('./isObj'); +var isFn = require('./isFn'); +var getPrototypeOf = Object.getPrototypeOf; +var ObjectCtr = {}.constructor; +exports = function(obj) { + if (!isObj(obj)) return; + if (getPrototypeOf && !false) return getPrototypeOf(obj); + var proto = obj.__proto__; + if (proto || proto === null) return proto; + if (isFn(obj.constructor)) return obj.constructor.prototype; + if (obj instanceof ObjectCtr) return ObjectCtr.prototype; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/getUrlParam.js b/src/miniprogram_npm/miniprogram-licia/getUrlParam.js new file mode 100644 index 0000000..5260d82 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/getUrlParam.js @@ -0,0 +1,6 @@ +var Url = require('./Url'); +exports = function(name, url) { + return new Url(url).query[name]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/golangify.js b/src/miniprogram_npm/miniprogram-licia/golangify.js new file mode 100644 index 0000000..068093d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/golangify.js @@ -0,0 +1,26 @@ +var isFn = require('./isFn'); +var restArgs = require('./restArgs'); +exports = function(fn) { + if (isFn(fn)) { + return restArgs(function(args) { + return fn + .apply(this, args) + .then(function(v) { + return [v, null]; + }) + .catch(function(err) { + return [void 0, err]; + }); + }); + } else { + return fn + .then(function(v) { + return [v, null]; + }) + .catch(function(err) { + return [void 0, err]; + }); + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/has.js b/src/miniprogram_npm/miniprogram-licia/has.js new file mode 100644 index 0000000..5b407ec --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/has.js @@ -0,0 +1,6 @@ +var hasOwnProp = Object.prototype.hasOwnProperty; +exports = function(obj, key) { + return hasOwnProp.call(obj, key); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/heapSort.js b/src/miniprogram_npm/miniprogram-licia/heapSort.js new file mode 100644 index 0000000..f9a472c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/heapSort.js @@ -0,0 +1,19 @@ +var Heap = require('./Heap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + var heap = new Heap(cmp); + var len = arr.length; + for (var i = 0; i < len; i++) { + heap.add(arr[i]); + } + for (var _i = 0; _i < len; _i++) { + arr[_i] = heap.poll(); + } + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/hex.js b/src/miniprogram_npm/miniprogram-licia/hex.js new file mode 100644 index 0000000..86f2594 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/hex.js @@ -0,0 +1,23 @@ +var isOdd = require('./isOdd'); +exports = { + encode: function(bytes) { + var hex = []; + for (var i = 0, len = bytes.length; i < len; i++) { + var byte = bytes[i]; + hex.push((byte >>> 4).toString(16)); + hex.push((byte & 0xf).toString(16)); + } + return hex.join(''); + }, + decode: function(str) { + var bytes = []; + var len = str.length; + if (isOdd(len)) len--; + for (var i = 0; i < len; i += 2) { + bytes.push(parseInt(str.substr(i, 2), 16)); + } + return bytes; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/highlight.js b/src/miniprogram_npm/miniprogram-licia/highlight.js new file mode 100644 index 0000000..ac8676e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/highlight.js @@ -0,0 +1,135 @@ +var each = require('./each'); +var defaults = require('./defaults'); + +exports = function(str) { + var lang = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : 'js'; + var style = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + defaults(style, defStyle); + str = str.replace(//g, '>'); + lang = language[lang]; + var subLangSi = 0; + var subLangs = []; + each(lang, function(val) { + if (!val.language) return; + str = str.replace(val.re, function($1, $2) { + if (!$2) { + return $1; + } + subLangs[subLangSi++] = exports($2, val.language, style); + return $1.replace($2, '___subtmpl' + (subLangSi - 1) + '___'); + }); + }); + each(lang, function(val, key) { + if (language[val.language]) return; + str = str.replace(val.re, '___' + key + '___$1___end' + key + '___'); + }); + var levels = []; + str = str.replace(/___(?!subtmpl)\w+?___/g, function($0) { + var end = $0.substr(3, 3) === 'end', + tag = (!end ? $0.substr(3) : $0.substr(6)).replace(/_/g, ''), + lastTag = levels.length > 0 ? levels[levels.length - 1] : null; + if ( + !end && + (lastTag == null || + tag == lastTag || + (lastTag != null && + lang[lastTag] && + lang[lastTag].embed != undefined && + lang[lastTag].embed.indexOf(tag) > -1)) + ) { + levels.push(tag); + return $0; + } else if (end && tag == lastTag) { + levels.pop(); + return $0; + } + return ''; + }); + each(lang, function(val, key) { + var s = style[val.style] + ? ' style="'.concat(style[val.style], '"') + : ''; + str = str + .replace(new RegExp('___end' + key + '___', 'g'), '') + .replace( + new RegExp('___' + key + '___', 'g'), + '') + ); + }); + each(lang, function(val) { + if (!val.language) return; + str = str.replace(/___subtmpl\d+___/g, function($tmpl) { + var i = parseInt($tmpl.replace(/___subtmpl(\d+)___/, '$1'), 10); + return subLangs[i]; + }); + }); + return str; +}; +var defStyle = { + comment: 'color:#63a35c;', + string: 'color:#183691;', + number: 'color:#0086b3;', + keyword: 'color:#a71d5d;', + operator: 'color:#994500;' +}; +var language = {}; +language.js = { + comment: { + re: /(\/\/.*|\/\*([\s\S]*?)\*\/)/g, + style: 'comment' + }, + string: { + re: /(('.*?')|(".*?"))/g, + style: 'string' + }, + numbers: { + re: /(-?(\d+|\d+\.\d+|\.\d+))/g, + style: 'number' + }, + keywords: { + re: /(?:\b)(function|for|foreach|while|if|else|elseif|switch|break|as|return|this|class|self|default|var|const|let|false|true|null|undefined)(?:\b)/gi, + style: 'keyword' + }, + operator: { + re: /(\+|-|\/|\*|%|=|<|>|\||\?|\.)/g, + style: 'operator' + } +}; +language.html = { + comment: { + re: /(<!--([\s\S]*?)-->)/g, + style: 'comment' + }, + tag: { + re: /(<\/?\w(.|\n)*?\/?>)/g, + style: 'keyword', + embed: ['string'] + }, + string: language.js.string, + css: { + re: /(?:<style.*?>)([\s\S]*)?(?:<\/style>)/gi, + language: 'css' + }, + script: { + re: /(?:<script.*?>)([\s\S]*?)(?:<\/script>)/gi, + language: 'js' + } +}; +language.css = { + comment: language.js.comment, + string: language.js.string, + numbers: { + re: /((-?(\d+|\d+\.\d+|\.\d+)(%|px|em|pt|in)?)|#[0-9a-fA-F]{3}[0-9a-fA-F]{3})/g, + style: 'number' + }, + keywords: { + re: /(@\w+|:?:\w+|[a-z-]+:)/g, + style: 'keyword' + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/hookFn.js b/src/miniprogram_npm/miniprogram-licia/hookFn.js new file mode 100644 index 0000000..1610e52 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/hookFn.js @@ -0,0 +1,40 @@ +var noop = require('./noop'); +var defaults = require('./defaults'); +var toArr = require('./toArr'); +var isArr = require('./isArr'); +var isErr = require('./isErr'); +exports = function(fn, options) { + defaults(options, defOptions); + return function() { + var args = toArr(arguments); + var newArgs = options.before.apply(this, args); + if (isArr(newArgs)) { + args = newArgs; + } + try { + var result = fn.apply(this, args); + var newResult = options.after.call(this, result); + if (newResult) { + result = newResult; + } + return result; + } catch (e) { + var newErr = options.error(e); + if (newErr) { + if (isErr(newErr)) { + throw newErr; + } else { + return newErr; + } + } + throw e; + } + }; +}; +var defOptions = { + before: noop, + after: noop, + error: noop +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/hslToRgb.js b/src/miniprogram_npm/miniprogram-licia/hslToRgb.js new file mode 100644 index 0000000..52b448c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/hslToRgb.js @@ -0,0 +1,40 @@ +exports = function(hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var ret = []; + var t2; + var t3; + var val; + if (hsl[3]) ret[3] = hsl[3]; + if (s === 0) { + val = round(l * 255); + ret[0] = ret[1] = ret[2] = val; + return ret; + } + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + var t1 = 2 * l - t2; + for (var i = 0; i < 3; i++) { + t3 = h + (1 / 3) * -(i - 1); + if (t3 < 0) t3++; + if (t3 > 1) t3--; + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + ret[i] = round(val * 255); + } + return ret; +}; +var round = Math.round; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/html.js b/src/miniprogram_npm/miniprogram-licia/html.js new file mode 100644 index 0000000..95b334d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/html.js @@ -0,0 +1,84 @@ +var parseHtml = require('./parseHtml'); +var Stack = require('./Stack'); +var isArr = require('./isArr'); +var each = require('./each'); +var isStr = require('./isStr'); +var mapObj = require('./mapObj'); +function parse(html) { + var ret = []; + var stack = new Stack(); + parseHtml(html, { + start: function(tag, attrs) { + attrs = mapObj(attrs, function(val) { + return unescapeQuote(val); + }); + stack.push({ + tag: tag, + attrs: attrs + }); + }, + end: function() { + var node = stack.pop(); + if (!stack.size) { + ret.push(node); + return; + } + var lastNode = stack.peek(); + if (!isArr(lastNode.content)) { + lastNode.content = []; + } + lastNode.content.push(node); + }, + comment: function(text) { + var comment = ''); + var lastNode = stack.peek(); + if (!lastNode) { + ret.push(comment); + return; + } + if (!lastNode.content) lastNode.content = []; + lastNode.content.push(comment); + }, + text: function(text) { + var lastNode = stack.peek(); + if (!lastNode) { + ret.push(text); + return; + } + if (!lastNode.content) lastNode.content = []; + lastNode.content.push(text); + } + }); + return ret; +} +function stringify(tree) { + var ret = ''; + if (isArr(tree)) { + each(tree, function(node) { + return (ret += stringify(node)); + }); + } else if (isStr(tree)) { + ret = tree; + } else { + ret += '<'.concat(tree.tag); + each(tree.attrs, function(val, key) { + return (ret += ' '.concat(key, '="').concat(escapeQuote(val), '"')); + }); + ret += '>'; + if (tree.content) ret += stringify(tree.content); + ret += ''.concat(tree.tag, '>'); + } + return ret; +} +var unescapeQuote = function(str) { + return str.replace(/"/g, '"'); +}; +var escapeQuote = function(str) { + return str.replace(/"/g, '"'); +}; +exports = { + parse: parse, + stringify: stringify +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/identity.js b/src/miniprogram_npm/miniprogram-licia/identity.js new file mode 100644 index 0000000..2566c33 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/identity.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/idxOf.js b/src/miniprogram_npm/miniprogram-licia/idxOf.js new file mode 100644 index 0000000..00dd41b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/idxOf.js @@ -0,0 +1,5 @@ +exports = function(arr, val, fromIdx) { + return Array.prototype.indexOf.call(arr, val, fromIdx); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/indent.js b/src/miniprogram_npm/miniprogram-licia/indent.js new file mode 100644 index 0000000..12be4f2 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/indent.js @@ -0,0 +1,16 @@ +var isNum = require('./isNum'); +var isUndef = require('./isUndef'); +var repeat = require('./repeat'); +var regLineBegin = /^(?!\s*$)/gm; +exports = function(str, char, len) { + if (isNum(char)) { + len = char; + char = ' '; + } + if (isUndef(len)) len = 4; + if (isUndef(char)) char = ' '; + char = repeat(char, len); + return str.replace(regLineBegin, char); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/index.js b/src/miniprogram_npm/miniprogram-licia/index.js new file mode 100644 index 0000000..38a192e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/index.js @@ -0,0 +1,359 @@ +exports.Benchmark = require('./Benchmark'); +exports.BloomFilter = require('./BloomFilter'); +exports.Caseless = require('./Caseless'); +exports.Channel = require('./Channel'); +exports.Class = require('./Class'); +exports.Color = require('./Color'); +exports.Delegator = require('./Delegator'); +exports.Dispatcher = require('./Dispatcher'); +exports.Emitter = require('./Emitter'); +exports.Enum = require('./Enum'); +exports.HashTable = require('./HashTable'); +exports.Heap = require('./Heap'); +exports.HeapSnapshot = require('./HeapSnapshot'); +exports.I18n = require('./I18n'); +exports.JsonTransformer = require('./JsonTransformer'); +exports.LinkedList = require('./LinkedList'); +exports.Logger = require('./Logger'); +exports.Lru = require('./Lru'); +exports.PriorityQueue = require('./PriorityQueue'); +exports.Promise = require('./Promise'); +exports.PseudoMap = require('./PseudoMap'); +exports.Queue = require('./Queue'); +exports.QuickLru = require('./QuickLru'); +exports.Readiness = require('./Readiness'); +exports.ReduceStore = require('./ReduceStore'); +exports.Semaphore = require('./Semaphore'); +exports.SingleEmitter = require('./SingleEmitter'); +exports.Stack = require('./Stack'); +exports.State = require('./State'); +exports.Store = require('./Store'); +exports.Trace = require('./Trace'); +exports.Tracing = require('./Tracing'); +exports.Trie = require('./Trie'); +exports.Tween = require('./Tween'); +exports.Url = require('./Url'); +exports.Validator = require('./Validator'); +exports.Wrr = require('./Wrr'); +exports.abbrev = require('./abbrev'); +exports.after = require('./after'); +exports.allKeys = require('./allKeys'); +exports.arrToMap = require('./arrToMap'); +exports.atob = require('./atob'); +exports.average = require('./average'); +exports.base64 = require('./base64'); +exports.before = require('./before'); +exports.binarySearch = require('./binarySearch'); +exports.bind = require('./bind'); +exports.btoa = require('./btoa'); +exports.bubbleSort = require('./bubbleSort'); +exports.bytesToStr = require('./bytesToStr'); +exports.bytesToWords = require('./bytesToWords'); +exports.callbackify = require('./callbackify'); +exports.camelCase = require('./camelCase'); +exports.capitalize = require('./capitalize'); +exports.castPath = require('./castPath'); +exports.centerAlign = require('./centerAlign'); +exports.char = require('./char'); +exports.chunk = require('./chunk'); +exports.clamp = require('./clamp'); +exports.className = require('./className'); +exports.clone = require('./clone'); +exports.cloneDeep = require('./cloneDeep'); +exports.cmpVersion = require('./cmpVersion'); +exports.combine = require('./combine'); +exports.compact = require('./compact'); +exports.compose = require('./compose'); +exports.concat = require('./concat'); +exports.contain = require('./contain'); +exports.convertBase = require('./convertBase'); +exports.convertBin = require('./convertBin'); +exports.crc1 = require('./crc1'); +exports.crc16 = require('./crc16'); +exports.crc32 = require('./crc32'); +exports.crc8 = require('./crc8'); +exports.create = require('./create'); +exports.createAssigner = require('./createAssigner'); +exports.css = require('./css'); +exports.cssPriority = require('./cssPriority'); +exports.curry = require('./curry'); +exports.dataUrl = require('./dataUrl'); +exports.dateFormat = require('./dateFormat'); +exports.debounce = require('./debounce'); +exports.deburr = require('./deburr'); +exports.decodeUriComponent = require('./decodeUriComponent'); +exports.defaults = require('./defaults'); +exports.define = require('./define'); +exports.defineProp = require('./defineProp'); +exports.defined = require('./defined'); +exports.delay = require('./delay'); +exports.deprecate = require('./deprecate'); +exports.detectBrowser = require('./detectBrowser'); +exports.detectMocha = require('./detectMocha'); +exports.detectOs = require('./detectOs'); +exports.difference = require('./difference'); +exports.dotCase = require('./dotCase'); +exports.durationFormat = require('./durationFormat'); +exports.each = require('./each'); +exports.easing = require('./easing'); +exports.endWith = require('./endWith'); +exports.escape = require('./escape'); +exports.escapeJsStr = require('./escapeJsStr'); +exports.escapeRegExp = require('./escapeRegExp'); +exports.every = require('./every'); +exports.extend = require('./extend'); +exports.extendDeep = require('./extendDeep'); +exports.extendOwn = require('./extendOwn'); +exports.extractBlockCmts = require('./extractBlockCmts'); +exports.extractUrls = require('./extractUrls'); +exports.fibonacci = require('./fibonacci'); +exports.fileSize = require('./fileSize'); +exports.fileType = require('./fileType'); +exports.fileUrl = require('./fileUrl'); +exports.fill = require('./fill'); +exports.filter = require('./filter'); +exports.find = require('./find'); +exports.findIdx = require('./findIdx'); +exports.findKey = require('./findKey'); +exports.findLastIdx = require('./findLastIdx'); +exports.flatten = require('./flatten'); +exports.fnArgs = require('./fnArgs'); +exports.fnParams = require('./fnParams'); +exports.fnv1a = require('./fnv1a'); +exports.format = require('./format'); +exports.fraction = require('./fraction'); +exports.freeze = require('./freeze'); +exports.freezeDeep = require('./freezeDeep'); +exports.fuzzySearch = require('./fuzzySearch'); +exports.gcd = require('./gcd'); +exports.getProto = require('./getProto'); +exports.getUrlParam = require('./getUrlParam'); +exports.golangify = require('./golangify'); +exports.has = require('./has'); +exports.heapSort = require('./heapSort'); +exports.hex = require('./hex'); +exports.highlight = require('./highlight'); +exports.hookFn = require('./hookFn'); +exports.hslToRgb = require('./hslToRgb'); +exports.html = require('./html'); +exports.identity = require('./identity'); +exports.idxOf = require('./idxOf'); +exports.indent = require('./indent'); +exports.inherits = require('./inherits'); +exports.ini = require('./ini'); +exports.insertionSort = require('./insertionSort'); +exports.intersect = require('./intersect'); +exports.intersectRange = require('./intersectRange'); +exports.invariant = require('./invariant'); +exports.invert = require('./invert'); +exports.isAbsoluteUrl = require('./isAbsoluteUrl'); +exports.isArgs = require('./isArgs'); +exports.isArr = require('./isArr'); +exports.isArrBuffer = require('./isArrBuffer'); +exports.isArrLike = require('./isArrLike'); +exports.isAsyncFn = require('./isAsyncFn'); +exports.isBool = require('./isBool'); +exports.isBrowser = require('./isBrowser'); +exports.isBuffer = require('./isBuffer'); +exports.isClose = require('./isClose'); +exports.isCyclic = require('./isCyclic'); +exports.isDataUrl = require('./isDataUrl'); +exports.isDate = require('./isDate'); +exports.isEmail = require('./isEmail'); +exports.isEmpty = require('./isEmpty'); +exports.isEqual = require('./isEqual'); +exports.isErr = require('./isErr'); +exports.isEven = require('./isEven'); +exports.isFinite = require('./isFinite'); +exports.isFn = require('./isFn'); +exports.isFullWidth = require('./isFullWidth'); +exports.isGeneratorFn = require('./isGeneratorFn'); +exports.isInt = require('./isInt'); +exports.isIp = require('./isIp'); +exports.isJson = require('./isJson'); +exports.isLeapYear = require('./isLeapYear'); +exports.isMac = require('./isMac'); +exports.isMap = require('./isMap'); +exports.isMatch = require('./isMatch'); +exports.isMiniProgram = require('./isMiniProgram'); +exports.isMobile = require('./isMobile'); +exports.isNaN = require('./isNaN'); +exports.isNative = require('./isNative'); +exports.isNil = require('./isNil'); +exports.isNode = require('./isNode'); +exports.isNull = require('./isNull'); +exports.isNum = require('./isNum'); +exports.isNumeric = require('./isNumeric'); +exports.isObj = require('./isObj'); +exports.isOdd = require('./isOdd'); +exports.isPlainObj = require('./isPlainObj'); +exports.isPrime = require('./isPrime'); +exports.isPrimitive = require('./isPrimitive'); +exports.isPromise = require('./isPromise'); +exports.isRegExp = require('./isRegExp'); +exports.isRelative = require('./isRelative'); +exports.isSet = require('./isSet'); +exports.isSorted = require('./isSorted'); +exports.isStr = require('./isStr'); +exports.isStrBlank = require('./isStrBlank'); +exports.isSymbol = require('./isSymbol'); +exports.isTypedArr = require('./isTypedArr'); +exports.isUndef = require('./isUndef'); +exports.isUrl = require('./isUrl'); +exports.isWeakMap = require('./isWeakMap'); +exports.isWeakSet = require('./isWeakSet'); +exports.isWindows = require('./isWindows'); +exports.jsonClone = require('./jsonClone'); +exports.kebabCase = require('./kebabCase'); +exports.keyCode = require('./keyCode'); +exports.keys = require('./keys'); +exports.last = require('./last'); +exports.levenshtein = require('./levenshtein'); +exports.linkify = require('./linkify'); +exports.longest = require('./longest'); +exports.lowerCase = require('./lowerCase'); +exports.lpad = require('./lpad'); +exports.ltrim = require('./ltrim'); +exports.map = require('./map'); +exports.mapObj = require('./mapObj'); +exports.matcher = require('./matcher'); +exports.max = require('./max'); +exports.md5 = require('./md5'); +exports.memStorage = require('./memStorage'); +exports.memoize = require('./memoize'); +exports.mergeArr = require('./mergeArr'); +exports.mergeSort = require('./mergeSort'); +exports.methods = require('./methods'); +exports.mime = require('./mime'); +exports.min = require('./min'); +exports.moment = require('./moment'); +exports.morse = require('./morse'); +exports.ms = require('./ms'); +exports.naturalSort = require('./naturalSort'); +exports.negate = require('./negate'); +exports.nextTick = require('./nextTick'); +exports.noop = require('./noop'); +exports.normalizeHeader = require('./normalizeHeader'); +exports.normalizePath = require('./normalizePath'); +exports.normalizePhone = require('./normalizePhone'); +exports.now = require('./now'); +exports.objToStr = require('./objToStr'); +exports.omit = require('./omit'); +exports.once = require('./once'); +exports.optimizeCb = require('./optimizeCb'); +exports.ordinal = require('./ordinal'); +exports.pad = require('./pad'); +exports.pairs = require('./pairs'); +exports.parallel = require('./parallel'); +exports.parseArgs = require('./parseArgs'); +exports.parseHtml = require('./parseHtml'); +exports.partial = require('./partial'); +exports.pascalCase = require('./pascalCase'); +exports.perfNow = require('./perfNow'); +exports.pick = require('./pick'); +exports.pluck = require('./pluck'); +exports.precision = require('./precision'); +exports.promisify = require('./promisify'); +exports.property = require('./property'); +exports.query = require('./query'); +exports.quickSort = require('./quickSort'); +exports.raf = require('./raf'); +exports.random = require('./random'); +exports.randomBytes = require('./randomBytes'); +exports.randomColor = require('./randomColor'); +exports.randomId = require('./randomId'); +exports.randomItem = require('./randomItem'); +exports.range = require('./range'); +exports.rc4 = require('./rc4'); +exports.reduce = require('./reduce'); +exports.reduceRight = require('./reduceRight'); +exports.reject = require('./reject'); +exports.remove = require('./remove'); +exports.repeat = require('./repeat'); +exports.replaceAll = require('./replaceAll'); +exports.restArgs = require('./restArgs'); +exports.reverse = require('./reverse'); +exports.rgbToHsl = require('./rgbToHsl'); +exports.root = require('./root'); +exports.rpad = require('./rpad'); +exports.rtrim = require('./rtrim'); +exports.safeCb = require('./safeCb'); +exports.safeDel = require('./safeDel'); +exports.safeGet = require('./safeGet'); +exports.safeSet = require('./safeSet'); +exports.sameOrigin = require('./sameOrigin'); +exports.sample = require('./sample'); +exports.seedRandom = require('./seedRandom'); +exports.selectionSort = require('./selectionSort'); +exports.selector = require('./selector'); +exports.shebang = require('./shebang'); +exports.shellSort = require('./shellSort'); +exports.shuffle = require('./shuffle'); +exports.size = require('./size'); +exports.sizeof = require('./sizeof'); +exports.sleep = require('./sleep'); +exports.slice = require('./slice'); +exports.slugify = require('./slugify'); +exports.snakeCase = require('./snakeCase'); +exports.some = require('./some'); +exports.sortBy = require('./sortBy'); +exports.sortKeys = require('./sortKeys'); +exports.spaceCase = require('./spaceCase'); +exports.splitCase = require('./splitCase'); +exports.splitPath = require('./splitPath'); +exports.startWith = require('./startWith'); +exports.strHash = require('./strHash'); +exports.strToBytes = require('./strToBytes'); +exports.strTpl = require('./strTpl'); +exports.strWidth = require('./strWidth'); +exports.stringify = require('./stringify'); +exports.stringifyAll = require('./stringifyAll'); +exports.stripAnsi = require('./stripAnsi'); +exports.stripBom = require('./stripBom'); +exports.stripCmt = require('./stripCmt'); +exports.stripColor = require('./stripColor'); +exports.stripHtmlTag = require('./stripHtmlTag'); +exports.stripIndent = require('./stripIndent'); +exports.stripNum = require('./stripNum'); +exports.sum = require('./sum'); +exports.swap = require('./swap'); +exports.table = require('./table'); +exports.throttle = require('./throttle'); +exports.timeAgo = require('./timeAgo'); +exports.timeTaken = require('./timeTaken'); +exports.times = require('./times'); +exports.toArr = require('./toArr'); +exports.toAsync = require('./toAsync'); +exports.toBool = require('./toBool'); +exports.toDate = require('./toDate'); +exports.toInt = require('./toInt'); +exports.toNum = require('./toNum'); +exports.toSrc = require('./toSrc'); +exports.toStr = require('./toStr'); +exports.topoSort = require('./topoSort'); +exports.trim = require('./trim'); +exports.truncate = require('./truncate'); +exports.tryIt = require('./tryIt'); +exports.type = require('./type'); +exports.types = require('./types'); +exports.ucs2 = require('./ucs2'); +exports.unescape = require('./unescape'); +exports.union = require('./union'); +exports.uniqId = require('./uniqId'); +exports.unique = require('./unique'); +exports.universalify = require('./universalify'); +exports.unzip = require('./unzip'); +exports.upperCase = require('./upperCase'); +exports.upperFirst = require('./upperFirst'); +exports.use = require('./use'); +exports.utf8 = require('./utf8'); +exports.uuid = require('./uuid'); +exports.values = require('./values'); +exports.vlq = require('./vlq'); +exports.waitUntil = require('./waitUntil'); +exports.waterfall = require('./waterfall'); +exports.wordWrap = require('./wordWrap'); +exports.wordsToBytes = require('./wordsToBytes'); +exports.wrap = require('./wrap'); +exports.wx = require('./wx'); +exports.zip = require('./zip'); diff --git a/src/miniprogram_npm/miniprogram-licia/inherits.js b/src/miniprogram_npm/miniprogram-licia/inherits.js new file mode 100644 index 0000000..e1e7e22 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/inherits.js @@ -0,0 +1,6 @@ +var create = require('./create'); +exports = function(Class, SuperClass) { + Class.prototype = create(SuperClass.prototype); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ini.js b/src/miniprogram_npm/miniprogram-licia/ini.js new file mode 100644 index 0000000..13334b3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ini.js @@ -0,0 +1,90 @@ +var each = require('./each'); +var trim = require('./trim'); +var safeSet = require('./safeSet'); +var safeGet = require('./safeGet'); +var endWith = require('./endWith'); +var isArr = require('./isArr'); +var isObj = require('./isObj'); + +var regSection = /^\[([^\]]*)\]$/i; +var regKeyVal = /^([^=]+)(=(.*))?$/i; +var regComment = /^\s*[;#]/; +function parse(ini) { + var ret = {}; + var section = ret; + each(ini.split('\n'), function(line) { + line = trim(line); + if (!line || line.match(regComment)) return; + var match = line.match(regSection); + if (match && match[1]) { + var _key = match[1]; + section = safeGet(ret, _key) || {}; + return safeSet(ret, _key, section); + } + match = line.match(regKeyVal); + if (!match) return; + var key = trim(match[1]); + var val = match[2] ? trim(match[3]) : true; + if (val === 'true') val = true; + if (val === 'false') val = false; + if (val === 'null') val = null; + if (endWith(key, '[]')) { + key = key.substring(0, key.length - 2); + if (!section[key]) section[key] = []; + } + isArr(section[key]) ? section[key].push(val) : (section[key] = val); + }); + return ret; +} +function stringify(obj) { + var options = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var ret = ''; + var section = options.section; + var whitespace = options.whitespace; + var separator = whitespace ? ' = ' : '='; + var children = []; + each(obj, function(val, key) { + if (isArr(val)) { + each(val, function(item) { + ret += '' + .concat(key, '[]') + .concat(separator) + .concat(item, '\n'); + }); + } else if (isObj(val)) { + children.push({ + key: key, + val: val + }); + } else { + ret += '' + .concat(key) + .concat(separator) + .concat(val, '\n'); + } + }); + if (section && ret) { + ret = '['.concat(section, ']\n') + ret; + } + section = section ? section + '.' : ''; + each(children, function(child) { + child = stringify(child.val, { + section: section + child.key, + whitespace: options.whitespace + }); + if (child) { + if (ret) { + ret += '\n'; + } + ret += child; + } + }); + return ret; +} +exports = { + parse: parse, + stringify: stringify +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/insertionSort.js b/src/miniprogram_npm/miniprogram-licia/insertionSort.js new file mode 100644 index 0000000..c3ad7ab --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/insertionSort.js @@ -0,0 +1,20 @@ +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + for (var i = 1, len = arr.length; i < len; i++) { + for (var j = i; j > 0; j--) { + if (cmp(arr[j], arr[j - 1]) < 0) { + swap(arr, j, j - 1); + } else { + break; + } + } + } + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/intersect.js b/src/miniprogram_npm/miniprogram-licia/intersect.js new file mode 100644 index 0000000..d6d6ffc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/intersect.js @@ -0,0 +1,19 @@ +var contain = require('./contain'); +var toArr = require('./toArr'); +exports = function(arr) { + var ret = []; + var args = toArr(arguments); + var argsLen = args.length; + for (var i = 0, len = arr.length; i < len; i++) { + var item = arr[i]; + if (contain(ret, item)) continue; + var j = 1; + for (; j < argsLen; j++) { + if (!contain(args[j], item)) break; + } + if (j === argsLen) ret.push(item); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/intersectRange.js b/src/miniprogram_npm/miniprogram-licia/intersectRange.js new file mode 100644 index 0000000..7875991 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/intersectRange.js @@ -0,0 +1,11 @@ +exports = function(a, b) { + var min = a.start < b.start ? a : b; + var max = min === a ? b : a; + if (min.end < max.start) return; + return { + start: max.start, + end: min.end < max.end ? min.end : max.end + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/invariant.js b/src/miniprogram_npm/miniprogram-licia/invariant.js new file mode 100644 index 0000000..30c4c05 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/invariant.js @@ -0,0 +1,35 @@ +var root = require('./root'); +exports = function(condition, format, a, b, c, d, e, f) { + var process = root.process || { + env: { + NODE_ENV: 'development' + } + }; + if (process.env.NODE_ENV !== 'production') { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + if (!condition) { + var error; + if (format === undefined) { + error = new Error( + 'Minified exception occurred; use the non-minified dev environment ' + + 'for the full error message and additional helpful warnings.' + ); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error( + format.replace(/%s/g, function() { + return args[argIndex++]; + }) + ); + error.name = 'Invariant Violation'; + } + error.framesToPop = 1; + throw error; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/invert.js b/src/miniprogram_npm/miniprogram-licia/invert.js new file mode 100644 index 0000000..1ec52f1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/invert.js @@ -0,0 +1,10 @@ +var each = require('./each'); +exports = function(obj) { + var ret = {}; + each(obj, function(val, key) { + ret[val] = key; + }); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isAbsoluteUrl.js b/src/miniprogram_npm/miniprogram-licia/isAbsoluteUrl.js new file mode 100644 index 0000000..a465c78 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isAbsoluteUrl.js @@ -0,0 +1,6 @@ +exports = function(url) { + return regAbsolute.test(url); +}; +var regAbsolute = /^[a-z][a-z0-9+.-]*:/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isArgs.js b/src/miniprogram_npm/miniprogram-licia/isArgs.js new file mode 100644 index 0000000..36d8830 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isArgs.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object Arguments]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isArr.js b/src/miniprogram_npm/miniprogram-licia/isArr.js new file mode 100644 index 0000000..2c07ff3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isArr.js @@ -0,0 +1,10 @@ +var objToStr = require('./objToStr'); +if (Array.isArray && !false) { + exports = Array.isArray; +} else { + exports = function(val) { + return objToStr(val) === '[object Array]'; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isArrBuffer.js b/src/miniprogram_npm/miniprogram-licia/isArrBuffer.js new file mode 100644 index 0000000..20d8fcf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isArrBuffer.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object ArrayBuffer]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isArrLike.js b/src/miniprogram_npm/miniprogram-licia/isArrLike.js new file mode 100644 index 0000000..6394dca --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isArrLike.js @@ -0,0 +1,10 @@ +var isNum = require('./isNum'); +var isFn = require('./isFn'); +var MAX_ARR_IDX = Math.pow(2, 53) - 1; +exports = function(val) { + if (!val) return false; + var len = val.length; + return isNum(len) && len >= 0 && len <= MAX_ARR_IDX && !isFn(val); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isAsyncFn.js b/src/miniprogram_npm/miniprogram-licia/isAsyncFn.js new file mode 100644 index 0000000..115411a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isAsyncFn.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object AsyncFunction]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isBool.js b/src/miniprogram_npm/miniprogram-licia/isBool.js new file mode 100644 index 0000000..022b906 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isBool.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val === true || val === false; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isBrowser.js b/src/miniprogram_npm/miniprogram-licia/isBrowser.js new file mode 100644 index 0000000..5f7fa60 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isBrowser.js @@ -0,0 +1,6 @@ +exports = + typeof window === 'object' && + typeof document === 'object' && + document.nodeType === 9; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isBuffer.js b/src/miniprogram_npm/miniprogram-licia/isBuffer.js new file mode 100644 index 0000000..9c7d3c7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isBuffer.js @@ -0,0 +1,12 @@ +var isFn = require('./isFn'); +exports = function(val) { + if (val == null) return false; + if (val._isBuffer) return true; + return ( + val.constructor && + isFn(val.constructor.isBuffer) && + val.constructor.isBuffer(val) + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isClose.js b/src/miniprogram_npm/miniprogram-licia/isClose.js new file mode 100644 index 0000000..0ebabaa --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isClose.js @@ -0,0 +1,10 @@ +var isNum = require('./isNum'); +exports = function(a, b, relTol, absTol) { + if (!isNum(relTol)) relTol = 1e-9; + if (!isNum(absTol)) absTol = 0; + return abs(a - b) <= max(relTol * max(abs(a), abs(b)), absTol); +}; +var abs = Math.abs; +var max = Math.max; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isCyclic.js b/src/miniprogram_npm/miniprogram-licia/isCyclic.js new file mode 100644 index 0000000..7dc324d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isCyclic.js @@ -0,0 +1,38 @@ +var Class = require('./Class'); +var keys = require('./keys'); +var isObj = require('./isObj'); +exports = function(val, parents) { + if (!isObj(val)) { + return false; + } + if (parents && parents.contains(val)) { + return true; + } + parents = new Node(val, parents); + var _keys = keys(val); + for (var i = 0, len = _keys.length; i < len; i++) { + if (exports(val[_keys[i]], parents)) { + return true; + } + } + return false; +}; + +var Node = Class({ + initialize: function Node(val, next) { + this.val = val; + this.next = next; + }, + contains: function(val) { + var cursor = this; + while (cursor) { + if (cursor.val === val) { + return true; + } + cursor = cursor.next; + } + return false; + } +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isDataUrl.js b/src/miniprogram_npm/miniprogram-licia/isDataUrl.js new file mode 100644 index 0000000..6ceeacc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isDataUrl.js @@ -0,0 +1,8 @@ +var trim = require('./trim'); +exports = function(str) { + return regDataUrl.test(trim(str)); +}; + +var regDataUrl = /^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)$/i; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isDate.js b/src/miniprogram_npm/miniprogram-licia/isDate.js new file mode 100644 index 0000000..54dc0df --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isDate.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object Date]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isEmail.js b/src/miniprogram_npm/miniprogram-licia/isEmail.js new file mode 100644 index 0000000..34155c8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isEmail.js @@ -0,0 +1,6 @@ +exports = function(val) { + return regEmail.test(val); +}; +var regEmail = /.+@.+\..+/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isEmpty.js b/src/miniprogram_npm/miniprogram-licia/isEmpty.js new file mode 100644 index 0000000..f37c6a6 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isEmpty.js @@ -0,0 +1,14 @@ +var isArrLike = require('./isArrLike'); +var isArr = require('./isArr'); +var isStr = require('./isStr'); +var isArgs = require('./isArgs'); +var keys = require('./keys'); +exports = function(val) { + if (val == null) return true; + if (isArrLike(val) && (isArr(val) || isStr(val) || isArgs(val))) { + return val.length === 0; + } + return keys(val).length === 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isEqual.js b/src/miniprogram_npm/miniprogram-licia/isEqual.js new file mode 100644 index 0000000..fbb4bb8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isEqual.js @@ -0,0 +1,75 @@ +var isFn = require('./isFn'); +var has = require('./has'); +var keys = require('./keys'); +exports = function(a, b) { + return eq(a, b); +}; +function deepEq(a, b, aStack, bStack) { + var className = toString.call(a); + if (className !== toString.call(b)) return false; + switch (className) { + case '[object RegExp]': + case '[object String]': + return '' + a === '' + b; + case '[object Number]': + if (+a !== +a) return +b !== +b; + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + return +a === +b; + } + var areArrays = className === '[object Array]'; + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + var aCtor = a.constructor; + var bCtor = b.constructor; + if ( + aCtor !== bCtor && + !( + isFn(aCtor) && + aCtor instanceof aCtor && + isFn(bCtor) && + bCtor instanceof bCtor + ) && + 'constructor' in a && + 'constructor' in b + ) + return false; + } + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) if (aStack[length] === a) return bStack[length] === b; + aStack.push(a); + bStack.push(b); + if (areArrays) { + length = a.length; + if (length !== b.length) return false; + while (length--) + if (!eq(a[length], b[length], aStack, bStack)) return false; + } else { + var _keys = keys(a); + var key; + length = _keys.length; + if (keys(b).length !== length) return false; + while (length--) { + key = _keys[length]; + if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) + return false; + } + } + aStack.pop(); + bStack.pop(); + return true; +} +function eq(a, b, aStack, bStack) { + if (a === b) return a !== 0 || 1 / a === 1 / b; + if (a == null || b == null) return a === b; + if (a !== a) return b !== b; + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') + return false; + return deepEq(a, b, aStack, bStack); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isErr.js b/src/miniprogram_npm/miniprogram-licia/isErr.js new file mode 100644 index 0000000..ec27962 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isErr.js @@ -0,0 +1,12 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + switch (objToStr(val)) { + case '[object Error]': + case '[object DOMException]': + return true; + default: + return val instanceof Error; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isEven.js b/src/miniprogram_npm/miniprogram-licia/isEven.js new file mode 100644 index 0000000..daf74e4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isEven.js @@ -0,0 +1,7 @@ +var isInt = require('./isInt'); +exports = function(num) { + if (!isInt(num)) return false; + return num % 2 === 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isFinite.js b/src/miniprogram_npm/miniprogram-licia/isFinite.js new file mode 100644 index 0000000..f4577e3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isFinite.js @@ -0,0 +1,8 @@ +var root = require('./root'); +var nativeIsFinite = root.isFinite; +var nativeIsNaN = root.isNaN; +exports = function(val) { + return nativeIsFinite(val) && !nativeIsNaN(parseFloat(val)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isFn.js b/src/miniprogram_npm/miniprogram-licia/isFn.js new file mode 100644 index 0000000..e291951 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isFn.js @@ -0,0 +1,11 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + var objStr = objToStr(val); + return ( + objStr === '[object Function]' || + objStr === '[object GeneratorFunction]' || + objStr === '[object AsyncFunction]' + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isFullWidth.js b/src/miniprogram_npm/miniprogram-licia/isFullWidth.js new file mode 100644 index 0000000..b7bf290 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isFullWidth.js @@ -0,0 +1,29 @@ +var isInt = require('./isInt'); + +exports = function isFullWidth(c) { + if (!isInt(c)) { + return false; + } + + return ( + c >= 0x1100 && + (c <= 0x115f || + c === 0x2329 || + c === 0x232a || + (0x2e80 <= c && c <= 0x3247 && c !== 0x303f) || + (0x3250 <= c && c <= 0x4dbf) || + (0x4e00 <= c && c <= 0xa4c6) || + (0xa960 <= c && c <= 0xa97c) || + (0xac00 <= c && c <= 0xd7a3) || + (0xf900 <= c && c <= 0xfaff) || + (0xfe10 <= c && c <= 0xfe19) || + (0xfe30 <= c && c <= 0xfe6b) || + (0xff01 <= c && c <= 0xff60) || + (0xffe0 <= c && c <= 0xffe6) || + (0x1b000 <= c && c <= 0x1b001) || + (0x1f200 <= c && c <= 0x1f251) || + (0x20000 <= c && c <= 0x3fffd)) + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isGeneratorFn.js b/src/miniprogram_npm/miniprogram-licia/isGeneratorFn.js new file mode 100644 index 0000000..e4fddc5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isGeneratorFn.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object GeneratorFunction]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isInt.js b/src/miniprogram_npm/miniprogram-licia/isInt.js new file mode 100644 index 0000000..07d46b1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isInt.js @@ -0,0 +1,6 @@ +var isNum = require('./isNum'); +exports = function(val) { + return isNum(val) && val % 1 === 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isIp.js b/src/miniprogram_npm/miniprogram-licia/isIp.js new file mode 100644 index 0000000..050f132 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isIp.js @@ -0,0 +1,54 @@ +exports = function(str) { + return exports.v4(str) || exports.v6(str); +}; + +var v4 = + '(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}'; +var regV4 = new RegExp('^'.concat(v4, '$')); +var v6seg = '[a-fA-F\\d]{1,4}'; +var v6 = [ + '(', + '(?:'.concat(v6seg, ':){7}(?:').concat(v6seg, '|:)|'), + '(?:' + .concat(v6seg, ':){6}(?:') + .concat(v4, '|:') + .concat(v6seg, '|:)|'), + '(?:' + .concat(v6seg, ':){5}(?::') + .concat(v4, '|(:') + .concat(v6seg, '){1,2}|:)|'), + '(?:' + .concat(v6seg, ':){4}(?:(:') + .concat(v6seg, '){0,1}:') + .concat(v4, '|(:') + .concat(v6seg, '){1,3}|:)|'), + '(?:' + .concat(v6seg, ':){3}(?:(:') + .concat(v6seg, '){0,2}:') + .concat(v4, '|(:') + .concat(v6seg, '){1,4}|:)|'), + '(?:' + .concat(v6seg, ':){2}(?:(:') + .concat(v6seg, '){0,3}:') + .concat(v4, '|(:') + .concat(v6seg, '){1,5}|:)|'), + '(?:' + .concat(v6seg, ':){1}(?:(:') + .concat(v6seg, '){0,4}:') + .concat(v4, '|(:') + .concat(v6seg, '){1,6}|:)|'), + '(?::((?::' + .concat(v6seg, '){0,5}:') + .concat(v4, '|(?::') + .concat(v6seg, '){1,7}|:))'), + ')(%[0-9a-zA-Z]{1,})?' +].join(''); +var regV6 = new RegExp('^'.concat(v6, '$')); +exports.v4 = function(str) { + return regV4.test(str); +}; +exports.v6 = function(str) { + return regV6.test(str); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isJson.js b/src/miniprogram_npm/miniprogram-licia/isJson.js new file mode 100644 index 0000000..8245c82 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isJson.js @@ -0,0 +1,10 @@ +exports = function(val) { + try { + JSON.parse(val); + return true; + } catch (e) { + return false; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isLeapYear.js b/src/miniprogram_npm/miniprogram-licia/isLeapYear.js new file mode 100644 index 0000000..4c6b4cb --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isLeapYear.js @@ -0,0 +1,5 @@ +exports = function(year) { + return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isMac.js b/src/miniprogram_npm/miniprogram-licia/isMac.js new file mode 100644 index 0000000..72fbd9d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isMac.js @@ -0,0 +1,4 @@ +var detectOs = require('./detectOs'); +exports = detectOs() === 'os x'; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isMap.js b/src/miniprogram_npm/miniprogram-licia/isMap.js new file mode 100644 index 0000000..ffbbfa3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isMap.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object Map]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isMatch.js b/src/miniprogram_npm/miniprogram-licia/isMatch.js new file mode 100644 index 0000000..98fc236 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isMatch.js @@ -0,0 +1,14 @@ +var keys = require('./keys'); +exports = function(obj, src) { + var _keys = keys(src); + var len = _keys.length; + if (obj == null) return !len; + obj = Object(obj); + for (var i = 0; i < len; i++) { + var key = _keys[i]; + if (src[key] !== obj[key] || !(key in obj)) return false; + } + return true; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isMiniProgram.js b/src/miniprogram_npm/miniprogram-licia/isMiniProgram.js new file mode 100644 index 0000000..1589806 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isMiniProgram.js @@ -0,0 +1,5 @@ +var isFn = require('./isFn'); + +exports = typeof wx !== 'undefined' && isFn(wx.openLocation); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isMobile.js b/src/miniprogram_npm/miniprogram-licia/isMobile.js new file mode 100644 index 0000000..6c0a212 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isMobile.js @@ -0,0 +1,10 @@ +var isBrowser = require('./isBrowser'); +var memoize = require('./memoize'); +var regMobileAll = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i; +var regMobileFour = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i; +exports = memoize(function(ua) { + ua = ua || (isBrowser ? navigator.userAgent : ''); + return regMobileAll.test(ua) || regMobileFour.test(ua.substr(0, 4)); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNaN.js b/src/miniprogram_npm/miniprogram-licia/isNaN.js new file mode 100644 index 0000000..176d9a3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNaN.js @@ -0,0 +1,6 @@ +var isNum = require('./isNum'); +exports = function(val) { + return isNum(val) && val !== +val; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNative.js b/src/miniprogram_npm/miniprogram-licia/isNative.js new file mode 100644 index 0000000..9b02b85 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNative.js @@ -0,0 +1,23 @@ +var isObj = require('./isObj'); +var isFn = require('./isFn'); +var toSrc = require('./toSrc'); +exports = function(val) { + if (!isObj(val)) return false; + if (isFn(val)) return regIsNative.test(toSrc(val)); + + return regIsHostCtor.test(toSrc(val)); +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var regIsNative = new RegExp( + '^' + + toSrc(hasOwnProperty) + .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace( + /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, + '$1.*?' + ) + + '$' +); +var regIsHostCtor = /^\[object .+?Constructor\]$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNil.js b/src/miniprogram_npm/miniprogram-licia/isNil.js new file mode 100644 index 0000000..2a7de9a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNil.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val == null; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNode.js b/src/miniprogram_npm/miniprogram-licia/isNode.js new file mode 100644 index 0000000..559584e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNode.js @@ -0,0 +1,5 @@ +var objToStr = require('./objToStr'); +exports = + typeof process !== 'undefined' && objToStr(process) === '[object process]'; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNull.js b/src/miniprogram_npm/miniprogram-licia/isNull.js new file mode 100644 index 0000000..82b8b08 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNull.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val === null; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNum.js b/src/miniprogram_npm/miniprogram-licia/isNum.js new file mode 100644 index 0000000..43ef931 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNum.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object Number]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isNumeric.js b/src/miniprogram_npm/miniprogram-licia/isNumeric.js new file mode 100644 index 0000000..9743bc3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isNumeric.js @@ -0,0 +1,11 @@ +var isStr = require('./isStr'); +var isNaN = require('./isNaN'); +var isFinite = require('./isFinite'); +var isArr = require('./isArr'); +exports = function(val) { + if (isStr(val)) val = val.replace(regComma, ''); + return !isNaN(parseFloat(val)) && isFinite(val) && !isArr(val); +}; +var regComma = /,/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isObj.js b/src/miniprogram_npm/miniprogram-licia/isObj.js new file mode 100644 index 0000000..1a0fdd2 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isObj.js @@ -0,0 +1,6 @@ +exports = function(val) { + var type = typeof val; + return !!val && (type === 'function' || type === 'object'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isOdd.js b/src/miniprogram_npm/miniprogram-licia/isOdd.js new file mode 100644 index 0000000..7d65dcf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isOdd.js @@ -0,0 +1,7 @@ +var isInt = require('./isInt'); +exports = function(num) { + if (!isInt(num)) return false; + return num % 2 !== 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isPlainObj.js b/src/miniprogram_npm/miniprogram-licia/isPlainObj.js new file mode 100644 index 0000000..77dca83 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isPlainObj.js @@ -0,0 +1,13 @@ +var isObj = require('./isObj'); +var isArr = require('./isArr'); +var isFn = require('./isFn'); +var has = require('./has'); +exports = function(val) { + if (!isObj(val)) return false; + var ctor = val.constructor; + if (!isFn(ctor)) return false; + if (!has(ctor.prototype, 'isPrototypeOf')) return false; + return !isArr(val) && !isFn(val); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isPrime.js b/src/miniprogram_npm/miniprogram-licia/isPrime.js new file mode 100644 index 0000000..af6a498 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isPrime.js @@ -0,0 +1,11 @@ +exports = function(num) { + var boundary = Math.floor(Math.sqrt(num)); + for (var i = 2; i <= boundary; i++) { + if (num % i === 0) { + return false; + } + } + return num >= 2; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isPrimitive.js b/src/miniprogram_npm/miniprogram-licia/isPrimitive.js new file mode 100644 index 0000000..1533ba9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isPrimitive.js @@ -0,0 +1,6 @@ +exports = function(val) { + var type = typeof val; + return val == null || (type !== 'function' && type !== 'object'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isPromise.js b/src/miniprogram_npm/miniprogram-licia/isPromise.js new file mode 100644 index 0000000..c905b0b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isPromise.js @@ -0,0 +1,7 @@ +var isObj = require('./isObj'); +var isFn = require('./isFn'); +exports = function(val) { + return isObj(val) && isFn(val.then) && isFn(val.catch); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isRegExp.js b/src/miniprogram_npm/miniprogram-licia/isRegExp.js new file mode 100644 index 0000000..43708a2 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isRegExp.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object RegExp]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isRelative.js b/src/miniprogram_npm/miniprogram-licia/isRelative.js new file mode 100644 index 0000000..8dc14ef --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isRelative.js @@ -0,0 +1,6 @@ +exports = function(path) { + return !regAbsolute.test(path); +}; +var regAbsolute = /^([a-z]+:)?[\\/]/i; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isSet.js b/src/miniprogram_npm/miniprogram-licia/isSet.js new file mode 100644 index 0000000..95c5405 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isSet.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object Set]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isSorted.js b/src/miniprogram_npm/miniprogram-licia/isSorted.js new file mode 100644 index 0000000..9d76d42 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isSorted.js @@ -0,0 +1,17 @@ +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : exports.defComparator; + for (var i = 0, len = arr.length; i < len - 1; i++) { + if (cmp(arr[i], arr[i + 1]) > 0) return false; + } + return true; +}; +exports.defComparator = function(a, b) { + if (a < b) return -1; + if (a > b) return 1; + return 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isStr.js b/src/miniprogram_npm/miniprogram-licia/isStr.js new file mode 100644 index 0000000..496ae85 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isStr.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object String]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isStrBlank.js b/src/miniprogram_npm/miniprogram-licia/isStrBlank.js new file mode 100644 index 0000000..5b5f07c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isStrBlank.js @@ -0,0 +1,18 @@ +exports = function(str) { + for (var i = 0, len = str.length; i < len; i++) { + var c = str[i]; + if ( + c !== ' ' && + c !== '\n' && + c !== '\r' && + c !== '\t' && + c !== '\f' && + c !== '\v' + ) { + return false; + } + } + return true; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isSymbol.js b/src/miniprogram_npm/miniprogram-licia/isSymbol.js new file mode 100644 index 0000000..4237958 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isSymbol.js @@ -0,0 +1,5 @@ +exports = function(val) { + return typeof val === 'symbol'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isTypedArr.js b/src/miniprogram_npm/miniprogram-licia/isTypedArr.js new file mode 100644 index 0000000..426484d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isTypedArr.js @@ -0,0 +1,24 @@ +var objToStr = require('./objToStr'); +var each = require('./each'); +exports = function(val) { + return !!map[objToStr(val)]; +}; +var map = {}; +each( + [ + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Uint8Array', + 'Uint8ClampedArray', + 'Uint16Array', + 'Uint32Array', + 'Float32Array', + 'Float64Array' + ], + function(val) { + map['[object ' + val + ']'] = true; + } +); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isUndef.js b/src/miniprogram_npm/miniprogram-licia/isUndef.js new file mode 100644 index 0000000..a9ca7e9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isUndef.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val === void 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isUrl.js b/src/miniprogram_npm/miniprogram-licia/isUrl.js new file mode 100644 index 0000000..6ef8394 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isUrl.js @@ -0,0 +1,6 @@ +exports = function(val) { + return regUrl.test(val); +}; +var regUrl = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|localhost[:?\d]*)\S*$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isWeakMap.js b/src/miniprogram_npm/miniprogram-licia/isWeakMap.js new file mode 100644 index 0000000..18ec435 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isWeakMap.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object WeakMap]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isWeakSet.js b/src/miniprogram_npm/miniprogram-licia/isWeakSet.js new file mode 100644 index 0000000..40b03e3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isWeakSet.js @@ -0,0 +1,6 @@ +var objToStr = require('./objToStr'); +exports = function(val) { + return objToStr(val) === '[object WeakSet]'; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/isWindows.js b/src/miniprogram_npm/miniprogram-licia/isWindows.js new file mode 100644 index 0000000..7900475 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/isWindows.js @@ -0,0 +1,4 @@ +var detectOs = require('./detectOs'); +exports = detectOs() === 'windows'; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/jsonClone.js b/src/miniprogram_npm/miniprogram-licia/jsonClone.js new file mode 100644 index 0000000..0e45dc2 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/jsonClone.js @@ -0,0 +1,5 @@ +exports = function(val) { + return JSON.parse(JSON.stringify(val)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/kebabCase.js b/src/miniprogram_npm/miniprogram-licia/kebabCase.js new file mode 100644 index 0000000..9487732 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/kebabCase.js @@ -0,0 +1,6 @@ +var splitCase = require('./splitCase'); +exports = function(str) { + return splitCase(str).join('-'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/keyCode.js b/src/miniprogram_npm/miniprogram-licia/keyCode.js new file mode 100644 index 0000000..3d5f234 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/keyCode.js @@ -0,0 +1,61 @@ +var isStr = require('./isStr'); +var invert = require('./invert'); +exports = function(val) { + if (isStr(val)) return codeMap[val]; + return nameMap[val]; +}; +var codeMap = { + backspace: 8, + tab: 9, + enter: 13, + shift: 16, + ctrl: 17, + alt: 18, + 'pause/break': 19, + 'caps lock': 20, + esc: 27, + space: 32, + 'page up': 33, + 'page down': 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40, + insert: 45, + delete: 46, + windows: 91, + 'right windows': 92, + 'windows menu': 93, + 'numpad *': 106, + 'numpad +': 107, + 'numpad -': 109, + 'numpad .': 110, + 'numpad /': 111, + 'num lock': 144, + 'scroll lock': 145, + ';': 186, + '=': 187, + ',': 188, + '-': 189, + '.': 190, + '/': 191, + '`': 192, + '[': 219, + '\\': 220, + ']': 221, + "'": 222 +}; + +// Lower case chars +for (var i = 97; i < 123; i++) codeMap[String.fromCharCode(i)] = i - 32; +// Numbers +for (var _i = 48; _i < 58; _i++) codeMap[_i - 48] = _i; +// Function keys +for (var _i2 = 1; _i2 < 13; _i2++) codeMap['f' + _i2] = _i2 + 111; +// Numpad keys +for (var _i3 = 0; _i3 < 10; _i3++) codeMap['numpad ' + _i3] = _i3 + 96; +var nameMap = invert(codeMap); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/keys.js b/src/miniprogram_npm/miniprogram-licia/keys.js new file mode 100644 index 0000000..4f2e4d8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/keys.js @@ -0,0 +1,14 @@ +var has = require('./has'); +if (Object.keys && !false) { + exports = Object.keys; +} else { + exports = function(obj) { + var ret = []; + for (var key in obj) { + if (has(obj, key)) ret.push(key); + } + return ret; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/last.js b/src/miniprogram_npm/miniprogram-licia/last.js new file mode 100644 index 0000000..057b6c8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/last.js @@ -0,0 +1,6 @@ +exports = function(arr) { + var len = arr ? arr.length : 0; + if (len) return arr[len - 1]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/levenshtein.js b/src/miniprogram_npm/miniprogram-licia/levenshtein.js new file mode 100644 index 0000000..1232eb8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/levenshtein.js @@ -0,0 +1,59 @@ +var vector = []; +var bChars = []; + +exports = function(a, b) { + if (a === b) return 0; + + if (a.length > b.length) { + var tmp = a; + a = b; + b = tmp; + } + var aLen = a.length; + var bLen = b.length; + if (!aLen) return bLen; + if (!bLen) return aLen; + + while (aLen > 0 && a.charCodeAt(aLen - 1) === b.charCodeAt(bLen - 1)) { + aLen--; + bLen--; + } + if (!aLen) return bLen; + + var start = 0; + while (start < aLen && a.charCodeAt(start) === b.charCodeAt(start)) { + start++; + } + aLen -= start; + bLen -= start; + if (!aLen) return bLen; + var current = 0; + var left; + var above; + var charA; + var i = 0; + while (i < bLen) { + bChars[i] = b.charCodeAt(start + i); + vector[i] = ++i; + } + + for (var _i = 0; _i < aLen; _i++) { + left = _i; + current = _i + 1; + charA = a.charCodeAt(start + _i); + for (var j = 0; j < bLen; j++) { + above = current; + current = left; + left = vector[j]; + if (charA !== bChars[j]) { + if (left < current) current = left; + if (above < current) current = above; + current++; + } + vector[j] = current; + } + } + return current; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/linkify.js b/src/miniprogram_npm/miniprogram-licia/linkify.js new file mode 100644 index 0000000..d346af3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/linkify.js @@ -0,0 +1,16 @@ +var extractUrls = require('./extractUrls'); +var each = require('./each'); +var escapeRegExp = require('./escapeRegExp'); +exports = function(str, hyperlink) { + hyperlink = hyperlink || defHyperlink; + var urlList = extractUrls(str); + each(urlList, function(url) { + str = str.replace(new RegExp(escapeRegExp(url), 'g'), hyperlink); + }); + return str; +}; +function defHyperlink(url) { + return '' + url + ''; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/longest.js b/src/miniprogram_npm/miniprogram-licia/longest.js new file mode 100644 index 0000000..0e98841 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/longest.js @@ -0,0 +1,16 @@ +var size = require('./size'); +exports = function(arr) { + if (arr.length < 1) return; + var ret = arr[0], + retSize = size(arr[0]); + for (var i = 1, len = arr.length; i < len; i++) { + var elSize = size(arr[i]); + if (elSize > retSize) { + ret = arr[i]; + retSize = elSize; + } + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/lowerCase.js b/src/miniprogram_npm/miniprogram-licia/lowerCase.js new file mode 100644 index 0000000..8a34f99 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/lowerCase.js @@ -0,0 +1,6 @@ +var toStr = require('./toStr'); +exports = function(str) { + return toStr(str).toLocaleLowerCase(); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/lpad.js b/src/miniprogram_npm/miniprogram-licia/lpad.js new file mode 100644 index 0000000..0542e91 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/lpad.js @@ -0,0 +1,11 @@ +var repeat = require('./repeat'); +var toStr = require('./toStr'); +exports = function(str, len, chars) { + str = toStr(str); + var strLen = str.length; + chars = chars || ' '; + if (strLen < len) str = (repeat(chars, len - strLen) + str).slice(-len); + return str; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ltrim.js b/src/miniprogram_npm/miniprogram-licia/ltrim.js new file mode 100644 index 0000000..ba3c858 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ltrim.js @@ -0,0 +1,30 @@ +var regSpace = /^\s+/; +exports = function(str, chars) { + if (chars == null) { + if (str.trimLeft) { + return str.trimLeft(); + } + return str.replace(regSpace, ''); + } + var start = 0; + var len = str.length; + var charLen = chars.length; + var found = true; + var i; + var c; + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + return start >= len ? '' : str.substr(start, len); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/map.js b/src/miniprogram_npm/miniprogram-licia/map.js new file mode 100644 index 0000000..c4d863f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/map.js @@ -0,0 +1,16 @@ +var safeCb = require('./safeCb'); +var keys = require('./keys'); +var isArrLike = require('./isArrLike'); +exports = function(obj, iterator, ctx) { + iterator = safeCb(iterator, ctx); + var _keys = !isArrLike(obj) && keys(obj); + var len = (_keys || obj).length; + var results = Array(len); + for (var i = 0; i < len; i++) { + var curKey = _keys ? _keys[i] : i; + results[i] = iterator(obj[curKey], curKey, obj); + } + return results; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/mapObj.js b/src/miniprogram_npm/miniprogram-licia/mapObj.js new file mode 100644 index 0000000..fa21dc0 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/mapObj.js @@ -0,0 +1,15 @@ +var safeCb = require('./safeCb'); +var keys = require('./keys'); +exports = function(obj, iterator, ctx) { + iterator = safeCb(iterator, ctx); + var _keys = keys(obj); + var len = _keys.length; + var ret = {}; + for (var i = 0; i < len; i++) { + var curKey = _keys[i]; + ret[curKey] = iterator(obj[curKey], curKey, obj); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/matcher.js b/src/miniprogram_npm/miniprogram-licia/matcher.js new file mode 100644 index 0000000..ed05712 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/matcher.js @@ -0,0 +1,10 @@ +var extendOwn = require('./extendOwn'); +var isMatch = require('./isMatch'); +exports = function(attrs) { + attrs = extendOwn({}, attrs); + return function(obj) { + return isMatch(obj, attrs); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/max.js b/src/miniprogram_npm/miniprogram-licia/max.js new file mode 100644 index 0000000..bde51f1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/max.js @@ -0,0 +1,10 @@ +exports = function() { + var arr = arguments; + var ret = arr[0]; + for (var i = 1, len = arr.length; i < len; i++) { + if (arr[i] > ret) ret = arr[i]; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/md5.js b/src/miniprogram_npm/miniprogram-licia/md5.js new file mode 100644 index 0000000..fbc45f9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/md5.js @@ -0,0 +1,140 @@ +var isStr = require('./isStr'); +var strToBytes = require('./strToBytes'); +var hex = require('./hex'); +var bytesToWords = require('./bytesToWords'); +var wordsToBytes = require('./wordsToBytes'); +var isNode = require('./isNode'); +var isArr = require('./isArr'); + +exports = function(msg) { + if (isStr(msg)) msg = strToBytes(msg); + var m = bytesToWords(msg); + var l = msg.length * 8; + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for (var i = 0; i < m.length; i++) { + m[i] = + (((m[i] << 8) | (m[i] >>> 24)) & 0x00ff00ff) | + (((m[i] << 24) | (m[i] >>> 8)) & 0xff00ff00); + } + + m[l >>> 5] |= 0x80 << l % 32; + m[(((l + 64) >>> 9) << 4) + 14] = l; + for (var _i = 0; _i < m.length; _i += 16) { + var aa = a; + var bb = b; + var cc = c; + var dd = d; + a = FF(a, b, c, d, m[_i + 0], 7, -680876936); + d = FF(d, a, b, c, m[_i + 1], 12, -389564586); + c = FF(c, d, a, b, m[_i + 2], 17, 606105819); + b = FF(b, c, d, a, m[_i + 3], 22, -1044525330); + a = FF(a, b, c, d, m[_i + 4], 7, -176418897); + d = FF(d, a, b, c, m[_i + 5], 12, 1200080426); + c = FF(c, d, a, b, m[_i + 6], 17, -1473231341); + b = FF(b, c, d, a, m[_i + 7], 22, -45705983); + a = FF(a, b, c, d, m[_i + 8], 7, 1770035416); + d = FF(d, a, b, c, m[_i + 9], 12, -1958414417); + c = FF(c, d, a, b, m[_i + 10], 17, -42063); + b = FF(b, c, d, a, m[_i + 11], 22, -1990404162); + a = FF(a, b, c, d, m[_i + 12], 7, 1804603682); + d = FF(d, a, b, c, m[_i + 13], 12, -40341101); + c = FF(c, d, a, b, m[_i + 14], 17, -1502002290); + b = FF(b, c, d, a, m[_i + 15], 22, 1236535329); + a = GG(a, b, c, d, m[_i + 1], 5, -165796510); + d = GG(d, a, b, c, m[_i + 6], 9, -1069501632); + c = GG(c, d, a, b, m[_i + 11], 14, 643717713); + b = GG(b, c, d, a, m[_i + 0], 20, -373897302); + a = GG(a, b, c, d, m[_i + 5], 5, -701558691); + d = GG(d, a, b, c, m[_i + 10], 9, 38016083); + c = GG(c, d, a, b, m[_i + 15], 14, -660478335); + b = GG(b, c, d, a, m[_i + 4], 20, -405537848); + a = GG(a, b, c, d, m[_i + 9], 5, 568446438); + d = GG(d, a, b, c, m[_i + 14], 9, -1019803690); + c = GG(c, d, a, b, m[_i + 3], 14, -187363961); + b = GG(b, c, d, a, m[_i + 8], 20, 1163531501); + a = GG(a, b, c, d, m[_i + 13], 5, -1444681467); + d = GG(d, a, b, c, m[_i + 2], 9, -51403784); + c = GG(c, d, a, b, m[_i + 7], 14, 1735328473); + b = GG(b, c, d, a, m[_i + 12], 20, -1926607734); + a = HH(a, b, c, d, m[_i + 5], 4, -378558); + d = HH(d, a, b, c, m[_i + 8], 11, -2022574463); + c = HH(c, d, a, b, m[_i + 11], 16, 1839030562); + b = HH(b, c, d, a, m[_i + 14], 23, -35309556); + a = HH(a, b, c, d, m[_i + 1], 4, -1530992060); + d = HH(d, a, b, c, m[_i + 4], 11, 1272893353); + c = HH(c, d, a, b, m[_i + 7], 16, -155497632); + b = HH(b, c, d, a, m[_i + 10], 23, -1094730640); + a = HH(a, b, c, d, m[_i + 13], 4, 681279174); + d = HH(d, a, b, c, m[_i + 0], 11, -358537222); + c = HH(c, d, a, b, m[_i + 3], 16, -722521979); + b = HH(b, c, d, a, m[_i + 6], 23, 76029189); + a = HH(a, b, c, d, m[_i + 9], 4, -640364487); + d = HH(d, a, b, c, m[_i + 12], 11, -421815835); + c = HH(c, d, a, b, m[_i + 15], 16, 530742520); + b = HH(b, c, d, a, m[_i + 2], 23, -995338651); + a = II(a, b, c, d, m[_i + 0], 6, -198630844); + d = II(d, a, b, c, m[_i + 7], 10, 1126891415); + c = II(c, d, a, b, m[_i + 14], 15, -1416354905); + b = II(b, c, d, a, m[_i + 5], 21, -57434055); + a = II(a, b, c, d, m[_i + 12], 6, 1700485571); + d = II(d, a, b, c, m[_i + 3], 10, -1894986606); + c = II(c, d, a, b, m[_i + 10], 15, -1051523); + b = II(b, c, d, a, m[_i + 1], 21, -2054922799); + a = II(a, b, c, d, m[_i + 8], 6, 1873313359); + d = II(d, a, b, c, m[_i + 15], 10, -30611744); + c = II(c, d, a, b, m[_i + 6], 15, -1560198380); + b = II(b, c, d, a, m[_i + 13], 21, 1309151649); + a = II(a, b, c, d, m[_i + 4], 6, -145523070); + d = II(d, a, b, c, m[_i + 11], 10, -1120210379); + c = II(c, d, a, b, m[_i + 2], 15, 718787259); + b = II(b, c, d, a, m[_i + 9], 21, -343485551); + a = (a + aa) >>> 0; + b = (b + bb) >>> 0; + c = (c + cc) >>> 0; + d = (d + dd) >>> 0; + } + return hex.encode(wordsToBytes(endian([a, b, c, d]))); +}; +function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; +} +function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; +} +function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; +} +function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; + return ((n << s) | (n >>> (32 - s))) + b; +} +function endian(n) { + if (n.constructor == Number) { + return (rotl(n, 8) & 0x00ff00ff) | (rotl(n, 24) & 0xff00ff00); + } + for (var i = 0; i < n.length; i++) n[i] = endian(n[i]); + return n; +} +function rotl(n, b) { + return (n << b) | (n >>> (32 - b)); +} +if (isNode) { + var crypto = eval('require')('crypto'); + exports = function(msg) { + if (isArr(msg)) { + msg = Buffer.from(msg); + } + var hash = crypto.createHash('md5'); + hash.update(msg); + return hash.digest('hex'); + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/memStorage.js b/src/miniprogram_npm/miniprogram-licia/memStorage.js new file mode 100644 index 0000000..e53d1e1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/memStorage.js @@ -0,0 +1,53 @@ +var keys = require('./keys'); +exports = { + getItem: function(key) { + return (API_KEYS[key] ? cloak[key] : this[key]) || null; + }, + setItem: function(key, val) { + API_KEYS[key] ? (cloak[key] = val) : (this[key] = val); + }, + removeItem: function(key) { + API_KEYS[key] ? delete cloak[key] : delete this[key]; + }, + key: function(i) { + var keys = enumerableKeys(); + return i >= 0 && i < keys.length ? keys[i] : null; + }, + clear: function() { + var keys = uncloakedKeys(); + + for (var i = 0, key; (key = keys[i]); i++) delete this[key]; + keys = cloakedKeys(); + + for (var _i = 0, _key; (_key = keys[_i]); _i++) delete cloak[_key]; + } +}; +Object.defineProperty(exports, 'length', { + enumerable: false, + configurable: true, + get: function() { + return enumerableKeys().length; + } +}); +var cloak = {}; +var API_KEYS = { + getItem: 1, + setItem: 1, + removeItem: 1, + key: 1, + clear: 1, + length: 1 +}; +function enumerableKeys() { + return uncloakedKeys().concat(cloakedKeys()); +} +function uncloakedKeys() { + return keys(exports).filter(function(key) { + return !API_KEYS[key]; + }); +} +function cloakedKeys() { + return keys(cloak); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/memoize.js b/src/miniprogram_npm/miniprogram-licia/memoize.js new file mode 100644 index 0000000..89c2646 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/memoize.js @@ -0,0 +1,13 @@ +var has = require('./has'); +exports = function(fn, hashFn) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hashFn ? hashFn.apply(this, arguments) : key); + if (!has(cache, address)) cache[address] = fn.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/mergeArr.js b/src/miniprogram_npm/miniprogram-licia/mergeArr.js new file mode 100644 index 0000000..7c896f1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/mergeArr.js @@ -0,0 +1,14 @@ +var restArgs = require('./restArgs'); +exports = restArgs(function(first, arrays) { + var end = first.length; + for (var i = 0, len = arrays.length; i < len; i++) { + var arr = arrays[i]; + for (var j = 0, _len = arr.length; j < _len; j++) { + first[end++] = arr[j]; + } + } + first.length = end; + return first; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/mergeSort.js b/src/miniprogram_npm/miniprogram-licia/mergeSort.js new file mode 100644 index 0000000..3a915e7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/mergeSort.js @@ -0,0 +1,26 @@ +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + if (arr.length <= 1) return arr; + var middle = floor(arr.length / 2); + var left = arr.slice(0, middle); + var right = arr.slice(middle); + return merge(exports(left, cmp), exports(right, cmp), cmp); +}; +function merge(left, right, cmp) { + var ret = []; + var i = 0; + var j = 0; + while (i < left.length && j < right.length) { + cmp(left[i], right[j]) < 0 ? ret.push(left[i++]) : ret.push(right[j++]); + } + while (i < left.length) ret.push(left[i++]); + while (j < right.length) ret.push(right[j++]); + return ret; +} +var floor = Math.floor; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/methods.js b/src/miniprogram_npm/miniprogram-licia/methods.js new file mode 100644 index 0000000..bc70249 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/methods.js @@ -0,0 +1,10 @@ +var isFn = require('./isFn'); +exports = function(obj) { + var ret = []; + for (var key in obj) { + if (isFn(obj[key])) ret.push(key); + } + return ret.sort(); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/mime.js b/src/miniprogram_npm/miniprogram-licia/mime.js new file mode 100644 index 0000000..d857362 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/mime.js @@ -0,0 +1,83 @@ +var each = require('./each'); +var exts = { + 'image/jpeg': ['jpeg', 'jpg'], + 'image/png': ['png'], + 'image/gif': ['gif'], + 'image/webp': ['webp'], + 'image/tiff': ['tif', 'tiff'], + 'image/bmp': ['bmp'], + 'image/vnd.adobe.photoshop': ['psd'], + 'image/svg+xml': ['svg'], + + 'audio/mp4': ['m4a', 'mp4a'], + 'audio/midi': ['midi'], + 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'], + 'audio/ogg': ['ogg'], + 'audio/wav': ['wav'], + + 'video/mp4': ['mp4', 'mp4v', 'mpg4'], + 'video/x-matroska': ['mkv'], + 'video/webm': ['webm'], + 'video/x-msvideo': ['avi'], + 'video/quicktime': ['qt', 'mov'], + 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'], + 'video/3gpp': ['3gp', '3gpp'], + + 'text/css': ['css'], + 'text/html': ['html', 'htm', 'shtml'], + 'text/yaml': ['yaml', 'yml'], + 'text/csv': ['csv'], + 'text/markdown': ['markdown', 'md'], + 'text/plain': ['txt', 'text', 'conf', 'log', 'ini'], + + 'font/ttf': ['ttf'], + 'font/woff': ['woff'], + 'font/woff2': ['woff2'], + + 'application/zip': ['zip'], + 'application/x-tar': ['tar'], + 'application/x-rar-compressed': ['rar'], + 'application/gzip': ['gz'], + 'application/x-7z-compressed': ['7z'], + 'application/octet-stream': [ + 'bin', + 'so', + 'exe', + 'dll', + 'dmg', + 'iso', + 'msi' + ], + 'application/epub+zip': ['epub'], + 'application/javascript': ['js'], + 'application/json': ['json'], + 'application/msword': ['doc', 'docx', 'dot', 'dotx'], + 'application/vnd.ms-excel': ['xls', 'xlsx', 'xla', 'xlt'], + 'application/vnd.ms-powerpoint': ['ppt', 'pptx', 'pps', 'pot'], + 'application/pdf': ['pdf'], + 'application/wasm': ['wasm'], + 'application/xml': ['xml'], + 'application/xml-dtd': ['dtd'] +}; +var mimeTypes = {}; +each(exts, function(ext, mimeType) { + each(ext, function(e) { + mimeTypes[e] = mimeType; + }); +}); +exports = function(name) { + return (isMimeType(name) ? getExt(name) : getType(name)) || undefined; +}; +function getType(name) { + return mimeTypes[name]; +} +function getExt(name) { + if (exts[name]) { + return exts[name][0]; + } +} +function isMimeType(name) { + return name.indexOf('/') > -1; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/min.js b/src/miniprogram_npm/miniprogram-licia/min.js new file mode 100644 index 0000000..9c8f551 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/min.js @@ -0,0 +1,10 @@ +exports = function() { + var arr = arguments; + var ret = arr[0]; + for (var i = 1, len = arr.length; i < len; i++) { + if (arr[i] < ret) ret = arr[i]; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/moment.js b/src/miniprogram_npm/miniprogram-licia/moment.js new file mode 100644 index 0000000..5b2b11a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/moment.js @@ -0,0 +1,256 @@ +var Class = require('./Class'); +var toDate = require('./toDate'); +var dateFormat = require('./dateFormat'); +var isLeapYear = require('./isLeapYear'); +var extend = require('./extend'); +var toStr = require('./toStr'); +var isNil = require('./isNil'); +var ms = require('./ms'); +exports = function(val) { + return new Moment(val); +}; +var Moment = Class({ + initialize: function Moment(val) { + this._d = toDate(val); + this._init(); + }, + _init: function() { + var d = this._d; + extend(this, { + _year: d.getFullYear(), + _month: d.getMonth(), + _date: d.getDate(), + _hour: d.getHours(), + _minute: d.getMinutes(), + _second: d.getSeconds(), + _millisecond: d.getMilliseconds() + }); + return this; + }, + format: function(mask) { + return dateFormat(this._d, mask); + }, + isValid: function() { + return !(this._d.toString() === 'Invalid Date'); + }, + isLeapYear: function() { + return isLeapYear(this._year); + }, + isSame: function(that) { + return this.valueOf() === that.valueOf(); + }, + valueOf: function() { + return this._d.getTime(); + }, + isBefore: function(that) { + return this.valueOf() < that.valueOf(); + }, + isAfter: function(that) { + return this.valueOf() > that.valueOf(); + }, + year: makeGetSet('year'), + month: makeGetSet('month'), + date: makeGetSet('date'), + hour: makeGetSet('hour'), + minute: makeGetSet('minute'), + second: makeGetSet('second'), + millisecond: makeGetSet('millisecond'), + unix: function() { + return floor(this.valueOf() / 1000); + }, + clone: function() { + return new Moment(this); + }, + toDate: function() { + return new Date(this._d); + }, + toArray: function() { + return [ + this._year, + this._month, + this._date, + this._hour, + this._minute, + this._second, + this._millisecond + ]; + }, + toJSON: function() { + return this.toISOString(); + }, + toISOString: function() { + return this.toDate().toISOString(); + }, + toObject: function() { + return { + years: this._year, + months: this._month, + date: this._date, + hours: this._hour, + minutes: this._minute, + seconds: this._second, + milliseconds: this._millisecond + }; + }, + toString: function() { + return this._d.toUTCString(); + }, + set: function(unit, num) { + var d = this._d; + unit = normalizeUnit(unit); + switch (unit) { + case 'year': + d.setFullYear(num); + break; + case 'month': + d.setMonth(num); + break; + case 'date': + d.setDate(num); + break; + case 'hour': + d.setHours(num); + break; + case 'minute': + d.setMinutes(num); + break; + case 'second': + d.setSeconds(num); + break; + case 'millisecond': + d.setMilliseconds(num); + break; + } + return this._init(); + }, + startOf: function(unit) { + unit = normalizeUnit(unit); + + /* eslint-disable no-fallthrough */ + switch (unit) { + case 'year': + this.month(0); + case 'month': + this.date(1); + case 'day': + case 'date': + this.hour(0); + case 'hour': + this.minute(0); + case 'minute': + this.second(0); + case 'second': + this.millisecond(0); + } + return this; + }, + endOf: function(unit) { + return this.startOf(unit) + .add(1, unit) + .subtract(1, 'ms'); + }, + daysInMonth: function() { + return this.clone() + .endOf('month') + .date(); + }, + add: createAdder(1), + subtract: createAdder(-1), + diff: function(input, unit, asFloat) { + var that = input instanceof Moment ? input : new Moment(input); + var ret; + unit = normalizeUnit(unit); + var diff = this - that; + switch (unit) { + case 'year': + ret = monthDiff(this, that) / 12; + break; + case 'month': + ret = monthDiff(this, that); + break; + case 'second': + ret = diff / 1e3; + break; + // 1000 + case 'minute': + ret = diff / 6e4; + break; + + case 'hour': + ret = diff / 36e5; + break; + // 1000 * 60 * 60 + case 'day': + ret = diff / 864e5; + break; + + default: + ret = diff; + } + return asFloat ? ret : absFloor(ret); + } +}); +var floor = Math.floor; +var ceil = Math.ceil; +function absFloor(num) { + return num < 0 ? ceil(num) || 0 : floor(num); +} +var unitShorthandMap = { + y: 'year', + M: 'month', + D: 'date', + d: 'day', + h: 'hour', + m: 'minute', + s: 'second', + ms: 'millisecond' +}; +var regEndS = /s$/; + +function normalizeUnit(unit) { + unit = toStr(unit); + if (unitShorthandMap[unit]) return unitShorthandMap[unit]; + return unit.toLowerCase().replace(regEndS, ''); +} +function makeGetSet(unit) { + return function(num) { + return isNil(num) ? this['_' + unit] : this.set(unit, num); + }; +} +function createAdder(dir) { + return function(num, unit) { + unit = normalizeUnit(unit); + if (unit === 'month') return this.month(this._month + dir * num); + if (unit === 'year') return this.year(this._year + dir * num); + var duration = createDuration(num, unit); + this._d = new Date(this.valueOf() + dir * duration); + return this._init(); + }; +} +var msMap = { + day: 'd', + hour: 'h', + minute: 'm', + second: 's', + millisecond: '' +}; +function createDuration(num, unit) { + return ms(num + msMap[unit]); +} + +function monthDiff(a, b) { + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()); + var anchor = a.clone().add(wholeMonthDiff, 'months'); + var anchor2; + var adjust; + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + adjust = (b - anchor) / (anchor2 - anchor); + } + return -(wholeMonthDiff + adjust) || 0; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/morse.js b/src/miniprogram_npm/miniprogram-licia/morse.js new file mode 100644 index 0000000..b3de20f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/morse.js @@ -0,0 +1,80 @@ +var upperCase = require('./upperCase'); +var invert = require('./invert'); +exports = { + encode: function(txt) { + var len = txt.length; + var ret = Array(len); + for (var i = 0; i < len; i++) { + var c = upperCase(txt[i]); + ret[i] = map[c] || '?'; + } + return ret.join(' '); + }, + decode: function(morse) { + var ret = morse.split(' '); + for (var i = 0, len = ret.length; i < len; i++) { + ret[i] = decodeMap[ret[i]] || ' '; + } + return ret.join(''); + } +}; + +var map = { + A: '.-', + B: '-...', + C: '-.-.', + D: '-..', + E: '.', + F: '..-.', + G: '--.', + H: '....', + I: '..', + J: '.---', + K: '-.-', + L: '.-..', + M: '--', + N: '-.', + O: '---', + P: '.--.', + Q: '--.-', + R: '.-.', + S: '...', + T: '-', + U: '..-', + V: '...-', + W: '.--', + X: '-..-', + Y: '-.--', + Z: '--..', + Á: '.--.-', + Ä: '.-.-', + É: '..-..', + Ñ: '--.--', + Ö: '---.', + Ü: '..--', + '1': '.----', + '2': '..---', + '3': '...--', + '4': '....-', + '5': '.....', + '6': '-....', + '7': '--...', + '8': '---..', + '9': '----.', + '0': '-----', + ',': '--..--', + '.': '.-.-.-', + '?': '..--..', + ';': '-.-.-', + ':': '---...', + '/': '-..-.', + '-': '-....-', + "'": '.----.', + '()': '-.--.-', + _: '..--.-', + '@': '.--.-.', + ' ': '.......' +}; +var decodeMap = invert(map); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ms.js b/src/miniprogram_npm/miniprogram-licia/ms.js new file mode 100644 index 0000000..48adcd3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ms.js @@ -0,0 +1,31 @@ +var toNum = require('./toNum'); +var isStr = require('./isStr'); +exports = function(str) { + if (isStr(str)) { + var match = str.match(regStrTime); + if (!match) return 0; + return toNum(match[1]) * factor[match[2] || 'ms']; + } else { + var num = str; + var suffix = 'ms'; + for (var i = 0, len = suffixList.length; i < len; i++) { + if (num >= factor[suffixList[i]]) { + suffix = suffixList[i]; + break; + } + } + return +(num / factor[suffix]).toFixed(2) + suffix; + } +}; +var factor = { + ms: 1, + s: 1000 +}; +factor.m = factor.s * 60; +factor.h = factor.m * 60; +factor.d = factor.h * 24; +factor.y = factor.d * 365.25; +var suffixList = ['y', 'd', 'h', 'm', 's']; +var regStrTime = /^((?:\d+)?\.?\d+) *(s|m|h|d|y)?$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/naturalSort.js b/src/miniprogram_npm/miniprogram-licia/naturalSort.js new file mode 100644 index 0000000..0ac670b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/naturalSort.js @@ -0,0 +1,60 @@ +var startWith = require('./startWith'); +var root = require('./root'); +var toStr = require('./toStr'); +exports = function(arr) { + return arr.sort(naturalOrderComparator); +}; + +function naturalOrderComparator(a, b) { + a = toStr(a); + b = toStr(b); + if (startWith(a, '_') && !startWith(b, '_')) { + return 1; + } + if (startWith(b, '_') && !startWith(a, '_')) { + return -1; + } + var chunk = /^\d+|^\D+/; + var chunka, chunkb, anum, bnum; + + while (true) { + if (a) { + if (!b) { + return 1; + } + } else { + if (b) { + return -1; + } + return 0; + } + chunka = a.match(chunk)[0]; + chunkb = b.match(chunk)[0]; + anum = !root.isNaN(chunka); + bnum = !root.isNaN(chunkb); + if (anum && !bnum) { + return -1; + } + if (bnum && !anum) { + return 1; + } + if (anum && bnum) { + var diff = chunka - chunkb; + if (diff) { + return diff; + } + if (chunka.length !== chunkb.length) { + if (!+chunka && !+chunkb) { + return chunka.length - chunkb.length; + } + return chunkb.length - chunka.length; + } + } else if (chunka !== chunkb) { + return chunka < chunkb ? -1 : 1; + } + a = a.substring(chunka.length); + b = b.substring(chunkb.length); + } +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/negate.js b/src/miniprogram_npm/miniprogram-licia/negate.js new file mode 100644 index 0000000..356ed4e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/negate.js @@ -0,0 +1,7 @@ +exports = function(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/nextTick.js b/src/miniprogram_npm/miniprogram-licia/nextTick.js new file mode 100644 index 0000000..e24b6dc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/nextTick.js @@ -0,0 +1,18 @@ +if (typeof process === 'object' && process.nextTick && !false) { + exports = process.nextTick; +} else if (typeof setImmediate === 'function') { + exports = function(cb) { + setImmediate(ensureCallable(cb)); + }; +} else { + exports = function(cb) { + setTimeout(ensureCallable(cb), 0); + }; +} +function ensureCallable(fn) { + if (typeof fn !== 'function') + throw new TypeError(fn + ' is not a function'); + return fn; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/noop.js b/src/miniprogram_npm/miniprogram-licia/noop.js new file mode 100644 index 0000000..8d69526 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/noop.js @@ -0,0 +1,3 @@ +exports = function() {}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/normalizeHeader.js b/src/miniprogram_npm/miniprogram-licia/normalizeHeader.js new file mode 100644 index 0000000..c25e63b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/normalizeHeader.js @@ -0,0 +1,21 @@ +var map = require('./map'); +var capitalize = require('./capitalize'); +exports = function(header) { + var ret = specialHeaders[header.toLowerCase()]; + if (!ret) { + ret = map(header.split('-'), capitalize).join('-'); + } + return ret; +}; +var specialHeaders = { + 'content-md5': 'Content-MD5', + dnt: 'DNT', + etag: 'ETag', + 'last-event-id': 'Last-Event-ID', + tcn: 'TCN', + te: 'TE', + 'www-authenticate': 'WWW-Authenticate', + 'x-dnsprefetch-control': 'X-DNSPrefetch-Control' +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/normalizePath.js b/src/miniprogram_npm/miniprogram-licia/normalizePath.js new file mode 100644 index 0000000..89ed263 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/normalizePath.js @@ -0,0 +1,6 @@ +exports = function(path) { + return path.replace(regSlashes, '/'); +}; +var regSlashes = /[\\/]+/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/normalizePhone.js b/src/miniprogram_npm/miniprogram-licia/normalizePhone.js new file mode 100644 index 0000000..09827dc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/normalizePhone.js @@ -0,0 +1,22 @@ +var trim = require('./trim'); +exports = function(phone, options) { + phone = trim(phone); + var countryCode = options.countryCode, + _options$trunkPrefix = options.trunkPrefix, + trunkPrefix = + _options$trunkPrefix === void 0 ? false : _options$trunkPrefix; + var plusSign = regPlusSign.test(phone); + phone = phone.replace(regNotDigit, ''); + if (plusSign) { + phone = phone.replace(new RegExp('^'.concat(countryCode)), ''); + } + if (trunkPrefix) { + phone = phone.replace(regTrunkPrefix, ''); + } + return '+'.concat(countryCode + phone); +}; +var regPlusSign = /^\+/; +var regNotDigit = /\D/g; +var regTrunkPrefix = /^\d/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/now.js b/src/miniprogram_npm/miniprogram-licia/now.js new file mode 100644 index 0000000..7363bde --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/now.js @@ -0,0 +1,9 @@ +if (Date.now && !false) { + exports = Date.now; +} else { + exports = function() { + return new Date().getTime(); + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/objToStr.js b/src/miniprogram_npm/miniprogram-licia/objToStr.js new file mode 100644 index 0000000..b276029 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/objToStr.js @@ -0,0 +1,6 @@ +var ObjToStr = Object.prototype.toString; +exports = function(val) { + return ObjToStr.call(val); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/omit.js b/src/miniprogram_npm/miniprogram-licia/omit.js new file mode 100644 index 0000000..e572852 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/omit.js @@ -0,0 +1,6 @@ +var pick = require('./pick'); +exports = function(obj, filter) { + return pick(obj, filter, true); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/once.js b/src/miniprogram_npm/miniprogram-licia/once.js new file mode 100644 index 0000000..73bed34 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/once.js @@ -0,0 +1,5 @@ +var partial = require('./partial'); +var before = require('./before'); +exports = partial(before, 2); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/optimizeCb.js b/src/miniprogram_npm/miniprogram-licia/optimizeCb.js new file mode 100644 index 0000000..eed3595 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/optimizeCb.js @@ -0,0 +1,23 @@ +var isUndef = require('./isUndef'); +exports = function(fn, ctx, argCount) { + if (isUndef(ctx)) return fn; + switch (argCount == null ? 3 : argCount) { + case 1: + return function(val) { + return fn.call(ctx, val); + }; + case 3: + return function(val, idx, collection) { + return fn.call(ctx, val, idx, collection); + }; + case 4: + return function(accumulator, val, idx, collection) { + return fn.call(ctx, accumulator, val, idx, collection); + }; + } + return function() { + return fn.apply(ctx, arguments); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ordinal.js b/src/miniprogram_npm/miniprogram-licia/ordinal.js new file mode 100644 index 0000000..7d1a778 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ordinal.js @@ -0,0 +1,17 @@ +exports = function(num) { + var j = num % 10; + var k = num % 100; + var indicator = 'th'; + if (j == 1 && k != 11) { + indicator = 'st'; + } + if (j == 2 && k != 12) { + indicator = 'nd'; + } + if (j == 3 && k != 13) { + indicator = 'rd'; + } + return num + indicator; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/pad.js b/src/miniprogram_npm/miniprogram-licia/pad.js new file mode 100644 index 0000000..af76f5d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/pad.js @@ -0,0 +1,15 @@ +var repeat = require('./repeat'); +var toStr = require('./toStr'); +exports = function(str, len, chars) { + str = toStr(str); + var strLen = str.length; + chars = chars || ' '; + if (strLen < len) { + var padStr = repeat(chars, Math.ceil((len - strLen) / 2)); + str = padStr + str + padStr; + str = str.substr(Math.ceil((str.length - len) / 2), len); + } + return str; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/pairs.js b/src/miniprogram_npm/miniprogram-licia/pairs.js new file mode 100644 index 0000000..c7da88a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/pairs.js @@ -0,0 +1,12 @@ +var keys = require('./keys'); +exports = function(obj) { + var _keys = keys(obj); + var len = _keys.length; + var ret = Array(len); + for (var i = 0; i < len; i++) { + ret[i] = [_keys[i], obj[_keys[i]]]; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/parallel.js b/src/miniprogram_npm/miniprogram-licia/parallel.js new file mode 100644 index 0000000..f71a428 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/parallel.js @@ -0,0 +1,26 @@ +var noop = require('./noop'); +var each = require('./each'); +var nextTick = require('./nextTick'); +exports = function(tasks, cb) { + cb = cb || noop; + var results = []; + var pending = tasks.length; + if (!pending) return done(null); + each(tasks, function(task, i) { + task(function(err, result) { + taskCb(i, err, result); + }); + }); + function taskCb(i, err, result) { + results[i] = result; + if (--pending === 0 || err) done(err); + } + function done(err) { + nextTick(function() { + cb(err, results); + cb = noop; + }); + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/parseArgs.js b/src/miniprogram_npm/miniprogram-licia/parseArgs.js new file mode 100644 index 0000000..37ec8d1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/parseArgs.js @@ -0,0 +1,72 @@ +var defaults = require('./defaults'); +var toNum = require('./toNum'); +var invert = require('./invert'); +var toBool = require('./toBool'); +exports = function(args, opts) { + opts = opts || {}; + defaults(opts, defOpts); + var names = opts.names; + var shorthands = invert(opts.shorthands); + var remain = []; + var ret = { + remain: remain + }; + var name; + var type; + for (var i = 0, len = args.length; i < len; i++) { + var arg = args[i]; + var nextArg = args[i + 1]; + var match = arg.match(regDoubleDash); + if (match) { + name = match[1]; + type = names[name]; + if (!type) { + remain.push(arg); + } else if (nextArg && !regDashStart.test(nextArg)) { + setArg(name, nextArg); + i++; + } else if (type === 'boolean') { + setArg(name, true); + i++; + } + continue; + } + match = arg.match(regSingleDash); + if (match) { + var letters = match[1]; + for (var j = 0; j < letters.length; j++) { + var letter = letters[j]; + name = shorthands[letter]; + if (!name) continue; + type = names[name]; + if (type === 'boolean') setArg(shorthands[letter], true); + } + continue; + } + remain.push(arg); + } + function setArg(name, val) { + var type = names[name]; + switch (type) { + case 'number': + val = toNum(val); + break; + case 'boolean': + val = toBool(val); + break; + default: + break; + } + ret[name] = val; + } + return ret; +}; +var defOpts = { + names: {}, + shorthands: {} +}; +var regDoubleDash = /^--(.+)/; +var regSingleDash = /^-([^-]+)/; +var regDashStart = /^-/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/parseHtml.js b/src/miniprogram_npm/miniprogram-licia/parseHtml.js new file mode 100644 index 0000000..98840b1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/parseHtml.js @@ -0,0 +1,105 @@ +var last = require('./last'); +var arrToMap = require('./arrToMap'); +var startWith = require('./startWith'); +var lowerCase = require('./lowerCase'); + +exports = function(html, handler) { + var stack = []; + var text; + var lastHtml = html; + while (html) { + text = true; + if (!last(stack) || !SPECIAL[last(stack)]) { + if (startWith(html, ''); + if (endIdx >= 0) { + if (handler.comment) { + handler.comment(html.substring(4, endIdx)); + } + html = html.substring(endIdx + 3); + text = false; + } + } else if (startWith(html, ']*>')).exec( + html + ); + if (execRes) { + var _text2 = html.substring(0, execRes.index); + html = html.substring(execRes.index + execRes[0].length); + if (_text2 && handler.text) handler.text(_text2); + } + parseEndTag('', last(stack)); + } + if (lastHtml === html) { + throw Error('Parse Error: ' + html); + } + lastHtml = html; + } + parseEndTag(); + function parseStartTag(tag, tagName, rest, unary) { + tagName = lowerCase(tagName); + unary = !!unary; + if (!unary) stack.push(tagName); + if (handler.start) { + var attrs = {}; + rest.replace(regAttr, function(all, $1, $2, $3, $4) { + attrs[$1] = $2 || $3 || $4 || ''; + }); + handler.start(tagName, attrs, unary); + } + } + function parseEndTag(tag, tagName) { + tagName = lowerCase(tagName); + var pos; + if (!tagName) { + pos = 0; + } else { + for (pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos] === tagName) break; + } + } + if (pos >= 0) { + for (var i = stack.length - 1; i >= pos; i--) { + if (handler.end) handler.end(stack[i]); + } + stack.length = pos; + } + } +}; +var regDoctype = /^\s]+))?)*)\s*(\/?)>/i; +var regEndTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/; +var regStartTag = /^<([-A-Za-z0-9_]+)((?:\s+[-A-Za-z0-9_:@.]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/i; +var regAttr = /([-A-Za-z0-9_:@.]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; + +var SPECIAL = arrToMap('script,style'.split(',')); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/partial.js b/src/miniprogram_npm/miniprogram-licia/partial.js new file mode 100644 index 0000000..637ca0e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/partial.js @@ -0,0 +1,12 @@ +var restArgs = require('./restArgs'); +var toArr = require('./toArr'); +exports = restArgs(function(fn, partials) { + return function() { + var args = []; + args = args.concat(partials); + args = args.concat(toArr(arguments)); + return fn.apply(this, args); + }; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/pascalCase.js b/src/miniprogram_npm/miniprogram-licia/pascalCase.js new file mode 100644 index 0000000..3d7bbf8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/pascalCase.js @@ -0,0 +1,7 @@ +var camelCase = require('./camelCase'); +var upperFirst = require('./upperFirst'); +exports = function(str) { + return upperFirst(camelCase(str)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/perfNow.js b/src/miniprogram_npm/miniprogram-licia/perfNow.js new file mode 100644 index 0000000..f7a55bf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/perfNow.js @@ -0,0 +1,26 @@ +var now = require('./now'); +var root = require('./root'); +var performance = root.performance; +var process = root.process; +var loadTime; +if (performance && performance.now) { + exports = function() { + return performance.now(); + }; +} else if (process && process.hrtime) { + var getNanoSeconds = function() { + var hr = process.hrtime(); + return hr[0] * 1e9 + hr[1]; + }; + loadTime = getNanoSeconds() - process.uptime() * 1e9; + exports = function() { + return (getNanoSeconds() - loadTime) / 1e6; + }; +} else { + loadTime = now(); + exports = function() { + return now() - loadTime; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/pick.js b/src/miniprogram_npm/miniprogram-licia/pick.js new file mode 100644 index 0000000..1c0451b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/pick.js @@ -0,0 +1,26 @@ +var isStr = require('./isStr'); +var isArr = require('./isArr'); +var contain = require('./contain'); +var each = require('./each'); +exports = function(obj, filter, omit) { + if (isStr(filter)) filter = [filter]; + if (isArr(filter)) { + var keys = filter; + filter = function(val, key) { + return contain(keys, key); + }; + } + var ret = {}; + var iteratee = function(val, key) { + if (filter(val, key)) ret[key] = val; + }; + if (omit) { + iteratee = function(val, key) { + if (!filter(val, key)) ret[key] = val; + }; + } + each(obj, iteratee); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/pluck.js b/src/miniprogram_npm/miniprogram-licia/pluck.js new file mode 100644 index 0000000..6f3458b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/pluck.js @@ -0,0 +1,7 @@ +var map = require('./map'); +var property = require('./property'); +exports = function(obj, key) { + return map(obj, property(key)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/precision.js b/src/miniprogram_npm/miniprogram-licia/precision.js new file mode 100644 index 0000000..27ac751 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/precision.js @@ -0,0 +1,11 @@ +exports = function(num) { + num = num.toExponential().match(regExponential); + var coefficient = num[1]; + var exponent = parseInt(num[2], 10); + var places = (coefficient.split('.')[1] || '').length; + var ret = places - exponent; + return ret < 0 ? 0 : ret; +}; +var regExponential = /^(-?\d?\.?\d+)e([+-]\d)+/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/promisify.js b/src/miniprogram_npm/miniprogram-licia/promisify.js new file mode 100644 index 0000000..e94d946 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/promisify.js @@ -0,0 +1,18 @@ +var restArgs = require('./restArgs'); +var root = require('./root'); +exports = function(fn, multiArgs) { + return restArgs(function(args) { + return new root.Promise(function(resolve, reject) { + args.push( + restArgs(function callback(err, values) { + if (err) return reject(err); + if (!multiArgs) return resolve(values[0]); + resolve(values); + }) + ); + fn.apply(this, args); + }); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/property.js b/src/miniprogram_npm/miniprogram-licia/property.js new file mode 100644 index 0000000..f38d7dc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/property.js @@ -0,0 +1,15 @@ +var isArr = require('./isArr'); +var safeGet = require('./safeGet'); +exports = function(path) { + if (!isArr(path)) return shallowProperty(path); + return function(obj) { + return safeGet(obj, path); + }; +}; +function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/query.js b/src/miniprogram_npm/miniprogram-licia/query.js new file mode 100644 index 0000000..eb56e0f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/query.js @@ -0,0 +1,50 @@ +var trim = require('./trim'); +var each = require('./each'); +var isUndef = require('./isUndef'); +var isArr = require('./isArr'); +var map = require('./map'); +var isEmpty = require('./isEmpty'); +var filter = require('./filter'); +var isObj = require('./isObj'); +exports = { + parse: function(str) { + var ret = {}; + str = trim(str).replace(regIllegalChars, ''); + each(str.split('&'), function(param) { + var parts = param.split('='); + var key = parts.shift(), + val = parts.length > 0 ? parts.join('=') : null; + key = decodeURIComponent(key); + val = decodeURIComponent(val); + if (isUndef(ret[key])) { + ret[key] = val; + } else if (isArr(ret[key])) { + ret[key].push(val); + } else { + ret[key] = [ret[key], val]; + } + }); + return ret; + }, + stringify: function(obj, arrKey) { + return filter( + map(obj, function(val, key) { + if (isObj(val) && isEmpty(val)) return ''; + if (isArr(val)) return exports.stringify(val, key); + return ( + (arrKey + ? encodeURIComponent(arrKey) + : encodeURIComponent(key)) + + '=' + + encodeURIComponent(val) + ); + }), + function(str) { + return str.length > 0; + } + ).join('&'); + } +}; +var regIllegalChars = /^(\?|#|&)/g; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/quickSort.js b/src/miniprogram_npm/miniprogram-licia/quickSort.js new file mode 100644 index 0000000..c26d469 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/quickSort.js @@ -0,0 +1,32 @@ +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + return quickSort(arr, 0, arr.length - 1, cmp); +}; +function quickSort(arr, left, right, cmp) { + if (arr.length <= 1) return arr; + var idx = partition(arr, left, right, cmp); + if (left < idx - 1) quickSort(arr, left, idx - 1, cmp); + if (idx < right) quickSort(arr, idx, right, cmp); + return arr; +} +function partition(arr, left, right, cmp) { + var pivot = arr[floor((right + left) / 2)]; + while (left <= right) { + while (cmp(arr[left], pivot) < 0) left++; + while (cmp(arr[right], pivot) > 0) right--; + if (left <= right) { + swap(arr, left, right); + left++; + right--; + } + } + return left; +} +var floor = Math.floor; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/raf.js b/src/miniprogram_npm/miniprogram-licia/raf.js new file mode 100644 index 0000000..68e1fee --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/raf.js @@ -0,0 +1,39 @@ +var now = require('./now'); +var isBrowser = require('./isBrowser'); +var raf, cancel; +var lastTime = 0; +if (isBrowser) { + raf = window.requestAnimationFrame; + cancel = window.cancelAnimationFrame; + var vendors = ['ms', 'moz', 'webkit', 'o']; + for (var i = 0, len = vendors.length; i < len && !raf; i++) { + raf = window[vendors[i] + 'RequestAnimationFrame']; + cancel = + window[vendors[i] + 'CancelAnimationFrame'] || + window[vendors[i] + 'CancelRequestAnimationFrame']; + } + if (raf) { + raf = raf.bind(window); + cancel = cancel.bind(window); + } +} +raf = + raf || + function(cb) { + var curTime = now(); + var timeToCall = Math.max(0, 16 - (curTime - lastTime)); + var id = setTimeout(function() { + cb(curTime + timeToCall); + }, timeToCall); + lastTime = curTime + timeToCall; + return id; + }; +cancel = + cancel || + function(id) { + clearTimeout(id); + }; +raf.cancel = cancel; +exports = raf; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/random.js b/src/miniprogram_npm/miniprogram-licia/random.js new file mode 100644 index 0000000..a3b2913 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/random.js @@ -0,0 +1,18 @@ +exports = function(min, max, floating) { + if (max == null) { + max = min; + min = 0; + } + var rand = Math.random(); + if (floating || min % 1 || max % 1) { + return Math.min( + min + + rand * + (max - min + parseFloat('1e-' + ((rand + '').length - 1))), + max + ); + } + return min + Math.floor(rand * (max - min + 1)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/randomBytes.js b/src/miniprogram_npm/miniprogram-licia/randomBytes.js new file mode 100644 index 0000000..7675fef --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/randomBytes.js @@ -0,0 +1,26 @@ +var random = require('./random'); +var isBrowser = require('./isBrowser'); +var isNode = require('./isNode'); +exports = function(size) { + var ret = new Uint8Array(size); + for (var i = 0; i < size; i++) ret[i] = random(0, 255); + return ret; +}; +var crypto; +if (isBrowser) { + crypto = window.crypto || window.msCrypto; + if (crypto) { + exports = function(size) { + var ret = new Uint8Array(size); + crypto.getRandomValues(ret); + return ret; + }; + } +} else if (isNode) { + crypto = eval('require')('crypto'); + exports = function(size) { + return crypto.randomBytes(size); + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/randomColor.js b/src/miniprogram_npm/miniprogram-licia/randomColor.js new file mode 100644 index 0000000..18cb7a0 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/randomColor.js @@ -0,0 +1,60 @@ +var defaults = require('./defaults'); +var random = require('./random'); +var Color = require('./Color'); +var seedRandom = require('./seedRandom'); +var isFn = require('./isFn'); +exports = function() { + var options = + arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + defaults(options, defOpts); + var count = options.count; + var randomH = options.randomH, + randomL = options.randomL, + randomS = options.randomS; + if (!isFn(randomH)) { + var seed = options.seed || random(0, 100000); + randomH = seedRandom(seed, 0, 360, false); + randomL = seedRandom(seed + 1, 0, 1); + randomS = seedRandom(seed + 2, 0, 1); + } + if (count > 1) { + var colors = []; + for (var i = 0; i < count; i++) { + colors.push( + exports( + defaults( + { + count: 1, + randomH: randomH, + randomL: randomL, + randomS: randomS + }, + options + ) + ) + ); + } + return colors; + } + var hue = options.hue || randomH(); + var lightness = options.lightness || randomL().toFixed(2); + var saturation = options.saturation || randomS().toFixed(2); + var color = new Color({ + val: [hue, Math.round(saturation * 100), Math.round(lightness * 100)], + model: 'hsl' + }); + switch (options.format) { + case 'hsl': + return color.toHsl(); + case 'rgb': + return color.toRgb(); + default: + return color.toHex(); + } +}; +var defOpts = { + count: 1, + format: 'hex' +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/randomId.js b/src/miniprogram_npm/miniprogram-licia/randomId.js new file mode 100644 index 0000000..1661bce --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/randomId.js @@ -0,0 +1,20 @@ +var randomBytes = require('./randomBytes'); +var defSymbols = + 'ModuleSymbhasOwnPr-0123456789ABCDEFGHIJKLNQRTUVWXYZ_cfgijkpqtvxz'; +exports = function() { + var size = + arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21; + var symbols = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : defSymbols; + var id = ''; + var len = symbols.length; + var bytes = randomBytes(size); + while (0 < size--) { + id += symbols[bytes[size] % len]; + } + return id; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/randomItem.js b/src/miniprogram_npm/miniprogram-licia/randomItem.js new file mode 100644 index 0000000..26886b7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/randomItem.js @@ -0,0 +1,6 @@ +var random = require('./random'); +exports = function(arr) { + return arr[random(0, arr.length - 1)]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/range.js b/src/miniprogram_npm/miniprogram-licia/range.js new file mode 100644 index 0000000..548f6f8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/range.js @@ -0,0 +1,13 @@ +exports = function(start, end, step) { + if (end == null) { + end = start || 0; + start = 0; + } + if (!step) step = end < start ? -1 : 1; + var len = Math.max(Math.ceil((end - start) / step), 0); + var ret = Array(len); + for (var i = 0; i < len; i++, start += step) ret[i] = start; + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/rc4.js b/src/miniprogram_npm/miniprogram-licia/rc4.js new file mode 100644 index 0000000..538ab1e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/rc4.js @@ -0,0 +1,46 @@ +var base64 = require('./base64'); +var bytesToStr = require('./bytesToStr'); +var strToBytes = require('./strToBytes'); +exports = { + encrypt: function(key, str) { + return rc4(key, str, false); + }, + decrypt: function(key, str) { + return rc4(key, str, true); + } +}; +function rc4(key, str, decrypt) { + key = strToBytes(key); + if (!decrypt) { + str = strToBytes(str); + } else { + str = base64.decode(str); + } + var result = []; + var s = []; + var j = 0; + var i = 0; + var x; + for (i = 0; i < 256; i++) { + s[i] = i; + } + for (i = 0; i < 256; i++) { + j = (j + s[i] + key[i % key.length]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + i = 0; + j = 0; + for (var y = 0, len = str.length; y < len; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + result.push(str[y] ^ s[(s[i] + s[j]) % 256]); + } + return !decrypt ? base64.encode(result) : bytesToStr(result); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/reduce.js b/src/miniprogram_npm/miniprogram-licia/reduce.js new file mode 100644 index 0000000..3c0b99f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/reduce.js @@ -0,0 +1,38 @@ +var optimizeCb = require('./optimizeCb'); +var isArrLike = require('./isArrLike'); +var isUndef = require('./isUndef'); +var keys = require('./keys'); +exports = createReduce(1); +exports.create = createReduce; +function createReduce(dir) { + return function(obj, iterator, initial, ctx) { + iterator = optimizeCb(iterator, ctx); + var i, len, key; + if (isArrLike(obj)) { + len = obj.length; + i = dir > 0 ? 0 : len - 1; + if (isUndef(initial)) { + initial = obj[i]; + i += dir; + } + for (; i < len && i >= 0; i += dir) { + initial = iterator(initial, obj[i], i, obj); + } + } else { + var _keys = keys(obj); + len = _keys.length; + i = dir > 0 ? 0 : len - 1; + if (isUndef(initial)) { + initial = obj[_keys[i]]; + i += dir; + } + for (; i < len && i >= 0; i += dir) { + key = _keys[i]; + initial = iterator(initial, obj[key], key, obj); + } + } + return initial; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/reduceRight.js b/src/miniprogram_npm/miniprogram-licia/reduceRight.js new file mode 100644 index 0000000..d602f3a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/reduceRight.js @@ -0,0 +1,4 @@ +var reduce = require('./reduce'); +exports = reduce.create(-1); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/reject.js b/src/miniprogram_npm/miniprogram-licia/reject.js new file mode 100644 index 0000000..8ba4b5e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/reject.js @@ -0,0 +1,9 @@ +var safeCb = require('./safeCb'); +var negate = require('./negate'); +var filter = require('./filter'); +exports = function(obj, predicate, ctx) { + predicate = safeCb(negate(predicate), ctx); + return filter(obj, predicate); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/remove.js b/src/miniprogram_npm/miniprogram-licia/remove.js new file mode 100644 index 0000000..eba3465 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/remove.js @@ -0,0 +1,18 @@ +var safeCb = require('./safeCb'); +exports = function(arr, iterator, ctx) { + var ret = []; + iterator = safeCb(iterator, ctx); + var i = -1; + var len = arr.length; + while (++i < len) { + var realIdx = i - ret.length; + var val = arr[realIdx]; + if (iterator(val, i, arr)) { + ret.push(val); + arr.splice(realIdx, 1); + } + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/repeat.js b/src/miniprogram_npm/miniprogram-licia/repeat.js new file mode 100644 index 0000000..8fa0132 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/repeat.js @@ -0,0 +1,12 @@ +exports = function(str, n) { + var ret = ''; + if (n < 1) return ''; + while (n > 0) { + if (n & 1) ret += str; + n >>= 1; + str += str; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/replaceAll.js b/src/miniprogram_npm/miniprogram-licia/replaceAll.js new file mode 100644 index 0000000..119885d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/replaceAll.js @@ -0,0 +1,6 @@ +var escapeRegExp = require('./escapeRegExp'); +exports = function(str, substr, newSubstr) { + return str.replace(new RegExp(escapeRegExp(substr), 'g'), newSubstr); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/restArgs.js b/src/miniprogram_npm/miniprogram-licia/restArgs.js new file mode 100644 index 0000000..5d85ea1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/restArgs.js @@ -0,0 +1,24 @@ +exports = function(fn, startIdx) { + startIdx = startIdx == null ? fn.length - 1 : +startIdx; + return function() { + var len = Math.max(arguments.length - startIdx, 0); + var rest = new Array(len); + var i; + for (i = 0; i < len; i++) rest[i] = arguments[i + startIdx]; + + switch (startIdx) { + case 0: + return fn.call(this, rest); + case 1: + return fn.call(this, arguments[0], rest); + case 2: + return fn.call(this, arguments[0], arguments[1], rest); + } + var args = new Array(startIdx + 1); + for (i = 0; i < startIdx; i++) args[i] = arguments[i]; + args[startIdx] = rest; + return fn.apply(this, args); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/reverse.js b/src/miniprogram_npm/miniprogram-licia/reverse.js new file mode 100644 index 0000000..a7f29cf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/reverse.js @@ -0,0 +1,11 @@ +exports = function(arr) { + var len = arr.length; + var ret = Array(len); + len--; + for (var i = 0; i <= len; i++) { + ret[len - i] = arr[i]; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/rgbToHsl.js b/src/miniprogram_npm/miniprogram-licia/rgbToHsl.js new file mode 100644 index 0000000..159016c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/rgbToHsl.js @@ -0,0 +1,37 @@ +exports = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = mMin(r, g, b); + var max = mMax(r, g, b); + var delta = max - min; + var h; + var s; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else { + h = 4 + (r - g) / delta; + } + h = mMin(h * 60, 360); + if (h < 0) h += 360; + var l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + var ret = [round(h), round(s * 100), round(l * 100)]; + if (rgb[3]) ret[3] = rgb[3]; + return ret; +}; +var mMin = Math.min; +var mMax = Math.max; +var round = Math.round; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/root.js b/src/miniprogram_npm/miniprogram-licia/root.js new file mode 100644 index 0000000..6e9d8a4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/root.js @@ -0,0 +1,4 @@ +var isBrowser = require('./isBrowser'); +exports = isBrowser ? window : global; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/rpad.js b/src/miniprogram_npm/miniprogram-licia/rpad.js new file mode 100644 index 0000000..270cb2a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/rpad.js @@ -0,0 +1,11 @@ +var repeat = require('./repeat'); +var toStr = require('./toStr'); +exports = function(str, len, chars) { + str = toStr(str); + var strLen = str.length; + chars = chars || ' '; + if (strLen < len) str = (str + repeat(chars, len - strLen)).slice(0, len); + return str; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/rtrim.js b/src/miniprogram_npm/miniprogram-licia/rtrim.js new file mode 100644 index 0000000..13409ae --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/rtrim.js @@ -0,0 +1,28 @@ +exports = function(str, chars) { + if (chars == null) { + if (str.trimRight) { + return str.trimRight(); + } + chars = ' \r\n\t\f\v'; + } + var end = str.length - 1; + var charLen = chars.length; + var found = true; + var i; + var c; + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + return end >= 0 ? str.substring(0, end + 1) : ''; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/safeCb.js b/src/miniprogram_npm/miniprogram-licia/safeCb.js new file mode 100644 index 0000000..5d42cca --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/safeCb.js @@ -0,0 +1,15 @@ +var isFn = require('./isFn'); +var isObj = require('./isObj'); +var isArr = require('./isArr'); +var optimizeCb = require('./optimizeCb'); +var matcher = require('./matcher'); +var identity = require('./identity'); +var property = require('./property'); +exports = function(val, ctx, argCount) { + if (val == null) return identity; + if (isFn(val)) return optimizeCb(val, ctx, argCount); + if (isObj(val) && !isArr(val)) return matcher(val); + return property(val); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/safeDel.js b/src/miniprogram_npm/miniprogram-licia/safeDel.js new file mode 100644 index 0000000..fd61980 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/safeDel.js @@ -0,0 +1,16 @@ +var isUndef = require('./isUndef'); +var castPath = require('./castPath'); +exports = function(obj, path) { + path = castPath(path, obj); + var prop, ret; + + while ((prop = path.shift())) { + ret = obj[prop]; + if (path.length === 0) delete obj[prop]; + obj = ret; + if (isUndef(obj)) return; + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/safeGet.js b/src/miniprogram_npm/miniprogram-licia/safeGet.js new file mode 100644 index 0000000..0b882b4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/safeGet.js @@ -0,0 +1,15 @@ +var isUndef = require('./isUndef'); +var castPath = require('./castPath'); +exports = function(obj, path) { + path = castPath(path, obj); + var prop; + prop = path.shift(); + while (!isUndef(prop)) { + obj = obj[prop]; + if (obj == null) return; + prop = path.shift(); + } + return obj; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/safeSet.js b/src/miniprogram_npm/miniprogram-licia/safeSet.js new file mode 100644 index 0000000..4a94b1c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/safeSet.js @@ -0,0 +1,29 @@ +var castPath = require('./castPath'); +var isUndef = require('./isUndef'); +var toStr = require('./toStr'); +var isSymbol = require('./isSymbol'); +var isStr = require('./isStr'); +exports = function(obj, path, val) { + path = castPath(path, obj); + var lastProp = path.pop(); + var prop; + prop = path.shift(); + while (!isUndef(prop)) { + if (!isStr(prop) && !isSymbol(prop)) { + prop = toStr(prop); + } + if ( + prop === '__proto__' || + prop === 'constructor' || + prop === 'prototype' + ) { + return; + } + if (!obj[prop]) obj[prop] = {}; + obj = obj[prop]; + prop = path.shift(); + } + obj[lastProp] = val; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sameOrigin.js b/src/miniprogram_npm/miniprogram-licia/sameOrigin.js new file mode 100644 index 0000000..4e432e8 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sameOrigin.js @@ -0,0 +1,14 @@ +var Url = require('./Url'); +exports = function(url1, url2) { + url1 = new Url(url1); + url2 = new Url(url2); + url1.port = url1.port | 0 || (url1.protocol === 'https' ? 443 : 80); + url2.port = url2.port | 0 || (url2.protocol === 'https' ? 443 : 80); + return ( + url1.protocol === url2.protocol && + url1.hostname === url2.hostname && + url1.port === url2.port + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sample.js b/src/miniprogram_npm/miniprogram-licia/sample.js new file mode 100644 index 0000000..1120330 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sample.js @@ -0,0 +1,18 @@ +var isArrLike = require('./isArrLike'); +var clone = require('./clone'); +var values = require('./values'); +var random = require('./random'); +var swap = require('./swap'); +exports = function(obj, n) { + var sample = isArrLike(obj) ? clone(obj) : values(obj); + var len = sample.length; + n = Math.max(Math.min(n, len), 0); + var last = len - 1; + for (var i = 0; i < n; i++) { + var rand = random(i, last); + swap(sample, i, rand); + } + return sample.slice(0, n); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/seedRandom.js b/src/miniprogram_npm/miniprogram-licia/seedRandom.js new file mode 100644 index 0000000..fe66fa3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/seedRandom.js @@ -0,0 +1,18 @@ +exports = function(seed) { + var min = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var max = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + var floating = + arguments.length > 3 && arguments[3] !== undefined + ? arguments[3] + : true; + return function() { + seed = (seed * 9301 + 49297) % 233280; + var rnd = seed / 233280.0; + rnd = min + rnd * (max - min); + return floating ? rnd : Math.floor(rnd); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/selectionSort.js b/src/miniprogram_npm/miniprogram-licia/selectionSort.js new file mode 100644 index 0000000..3631337 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/selectionSort.js @@ -0,0 +1,23 @@ +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + var min; + for (var i = 0, len = arr.length; i < len; i++) { + min = i; + for (var j = i + 1; j < len; j++) { + if (cmp(arr[j], arr[min]) < 0) { + min = j; + } + } + if (i != min) { + swap(arr, i, min); + } + } + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/selector.js b/src/miniprogram_npm/miniprogram-licia/selector.js new file mode 100644 index 0000000..fdb237a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/selector.js @@ -0,0 +1,137 @@ +var trim = require('./trim'); +var each = require('./each'); +var identity = require('./identity'); +var map = require('./map'); + +var whitespace = '[\\x20\\t\\r\\n\\f]'; +var identifier = '(?:\\\\[\\da-fA-F]{1,6}'.concat( + whitespace, + '?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+' +); +var attributes = '\\[' + .concat(whitespace, '*(') + .concat(identifier, ')(?:') + .concat(whitespace, '*([*^$|!~]?=)') + .concat( + whitespace, + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + ) + .concat(identifier, '))|)') + .concat(whitespace, '*\\]'); +var pseudos = '::?(' + .concat( + identifier, + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + ) + .concat(attributes, ')*)|.*)\\)|)'); +var regComma = new RegExp('^'.concat(whitespace, '*,').concat(whitespace, '*')); +var regCombinators = new RegExp( + '^' + .concat(whitespace, '*([>+~]|') + .concat(whitespace, ')') + .concat(whitespace, '*') +); +var matchExpr = { + id: { + reg: new RegExp('^#('.concat(identifier, ')')), + value: function(raw) { + return raw.slice(1); + }, + toStr: function(value) { + return '#'.concat(value); + } + }, + class: { + reg: new RegExp('^\\.('.concat(identifier, ')')), + value: function(raw) { + return raw.slice(1); + }, + toStr: function(value) { + return '.'.concat(value); + } + }, + tag: { + reg: new RegExp('^('.concat(identifier, '|[*])')), + value: identity + }, + attribute: { + reg: new RegExp('^'.concat(attributes)), + value: function(raw) { + return raw.slice(1, raw.length - 1); + }, + toStr: function(value) { + return '['.concat(value, ']'); + } + }, + pseudo: { + reg: new RegExp('^'.concat(pseudos)), + value: identity + } +}; +each(matchExpr, function(item) { + if (!item.value) item.value = identity; + if (!item.toStr) item.toStr = identity; +}); +function parse(selector) { + selector = trim(selector); + var groups = []; + var tokens; + var match; + var matched; + while (selector) { + if (!matched || (match = regComma.exec(selector))) { + if (match) { + selector = selector.slice(match[0].length); + } + tokens = []; + groups.push(tokens); + } + matched = false; + if ((match = regCombinators.exec(selector))) { + matched = match.shift(); + selector = selector.slice(matched.length); + matched = trim(matched); + if (!matched) matched = ' '; + tokens.push({ + value: matched, + type: 'combinator' + }); + } + each(matchExpr, function(_ref, type) { + var reg = _ref.reg, + value = _ref.value; + if ((match = reg.exec(selector))) { + matched = match.shift(); + selector = selector.slice(matched.length); + matched = trim(matched); + tokens.push({ + value: value(matched), + type: type + }); + } + }); + if (!matched) { + break; + } + } + return groups; +} +function stringify(groups) { + return map(groups, function(group) { + group = map(group, function(_ref2) { + var type = _ref2.type, + value = _ref2.value; + if (type === 'combinator') { + return value === ' ' ? value : ' '.concat(value, ' '); + } + return matchExpr[type].toStr(value); + }); + return group.join(''); + }).join(', '); +} +exports = { + parse: parse, + stringify: stringify +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/shebang.js b/src/miniprogram_npm/miniprogram-licia/shebang.js new file mode 100644 index 0000000..181ff80 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/shebang.js @@ -0,0 +1,9 @@ +var trim = require('./trim'); +var regShebang = /^#!(.*)/; +exports = function(str) { + var match = str.match(regShebang); + if (!match) return; + return trim(match[1]); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/shellSort.js b/src/miniprogram_npm/miniprogram-licia/shellSort.js new file mode 100644 index 0000000..b05e1ec --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/shellSort.js @@ -0,0 +1,25 @@ +var swap = require('./swap'); +var isSorted = require('./isSorted'); +exports = function(arr) { + var cmp = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : isSorted.defComparator; + var len = arr.length; + var gap = Math.floor(len / 2); + while (gap > 0) { + for (var i = gap; i <= len - gap; i++) { + for (var j = i; j > 0; j -= gap) { + if (cmp(arr[j], arr[j - gap]) < 0) { + swap(arr, j, j - gap); + } else { + break; + } + } + } + gap = Math.floor(gap / 2); + } + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/shuffle.js b/src/miniprogram_npm/miniprogram-licia/shuffle.js new file mode 100644 index 0000000..672f7b4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/shuffle.js @@ -0,0 +1,6 @@ +var sample = require('./sample'); +exports = function(obj) { + return sample(obj, Infinity); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/size.js b/src/miniprogram_npm/miniprogram-licia/size.js new file mode 100644 index 0000000..fb94ebf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/size.js @@ -0,0 +1,7 @@ +var isArrLike = require('./isArrLike'); +var keys = require('./keys'); +exports = function(obj) { + return isArrLike(obj) ? obj.length : keys(obj).length; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sizeof.js b/src/miniprogram_npm/miniprogram-licia/sizeof.js new file mode 100644 index 0000000..81d544b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sizeof.js @@ -0,0 +1,47 @@ +var isArr = require('./isArr'); +var keys = require('./keys'); +var isBuffer = require('./isBuffer'); +var isNull = require('./isNull'); + +var strSize = 2; +var boolSize = 4; +var numSize = 8; +exports = function(obj) { + return sizeof(obj, { + values: [] + }); +}; +function sizeof(obj, _ref) { + var values = _ref.values; + var t = typeof obj; + if (t === 'string') return obj.length * strSize; + if (t === 'number') return numSize; + if (t === 'boolean') return boolSize; + var size = 0; + if (t === 'object' && !isNull(obj)) { + if (values.indexOf(obj) > -1) { + return 0; + } + values.push(obj); + if (isArr(obj)) { + for (var i = 0, len = obj.length; i < len; i++) { + size += sizeof(obj[i], { + values: values + }); + } + } else { + var _keys = keys(obj); + for (var _i = 0, _len = _keys.length; _i < _len; _i++) { + var key = _keys[_i]; + size += key.length * strSize; + size += sizeof(obj[key], { + values: values + }); + } + } + } + if (isBuffer(obj)) return obj.length; + return size; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sleep.js b/src/miniprogram_npm/miniprogram-licia/sleep.js new file mode 100644 index 0000000..0196daf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sleep.js @@ -0,0 +1,7 @@ +exports = function(timeout) { + return new Promise(function(resolve) { + return setTimeout(resolve, timeout); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/slice.js b/src/miniprogram_npm/miniprogram-licia/slice.js new file mode 100644 index 0000000..73f979a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/slice.js @@ -0,0 +1,22 @@ +exports = function(arr, start, end) { + var len = arr.length; + if (start == null) { + start = 0; + } else if (start < 0) { + start = Math.max(len + start, 0); + } else { + start = Math.min(start, len); + } + if (end == null) { + end = len; + } else if (end < 0) { + end = Math.max(len + end, 0); + } else { + end = Math.min(end, len); + } + var ret = []; + while (start < end) ret.push(arr[start++]); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/slugify.js b/src/miniprogram_npm/miniprogram-licia/slugify.js new file mode 100644 index 0000000..ed6ebd5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/slugify.js @@ -0,0 +1,27 @@ +var defaults = require('./defaults'); +var each = require('./each'); +var reduce = require('./reduce'); +exports = function(str) { + var replacement = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + defaults(replacement, defReplacement); + return reduce( + str, + function(result, char) { + return result + (replacement[char] || char); + }, + '' + ).replace(regForbidden, ''); +}; +var regForbidden = /[^\w\s$*_+~.()'"!\-:@]/g; + +var REPLACEMENT = + '$ dollar,% percent,& and,< less,> greater,| or,¢ cent,£ pound,¤ currency,¥ yen,© (c),ª a,® (r),º o,À A,Á A, A,à A,Ä A,Å A,Æ AE,Ç C,È E,É E,Ê E,Ë E,Ì I,Í I,Î I,Ï I,Ð D,Ñ N,Ò O,Ó O,Ô O,Õ O,Ö O,Ø O,Ù U,Ú U,Û U,Ü U,Ý Y,Þ TH,ß ss,à a,á a,â a,ã a,ä a,å a,æ ae,ç c,è e,é e,ê e,ë e,ì i,í i,î i,ï i,ð d,ñ n,ò o,ó o,ô o,õ o,ö o,ø o,ù u,ú u,û u,ü u,ý y,þ th,ÿ y,Ā A,ā a,Ă A,ă a,Ą A,ą a,Ć C,ć c,Č C,č c,Ď D,ď d,Đ DJ,đ dj,Ē E,ē e,Ė E,ė e,Ę e,ę e,Ě E,ě e,Ğ G,ğ g,Ģ G,ģ g,Ĩ I,ĩ i,Ī i,ī i,Į I,į i,İ I,ı i,Ķ k,ķ k,Ļ L,ļ l,Ľ L,ľ l,Ł L,ł l,Ń N,ń n,Ņ N,ņ n,Ň N,ň n,Ő O,ő o,Œ OE,œ oe,Ŕ R,ŕ r,Ř R,ř r,Ś S,ś s,Ş S,ş s,Š S,š s,Ţ T,ţ t,Ť T,ť t,Ũ U,ũ u,Ū u,ū u,Ů U,ů u,Ű U,ű u,Ų U,ų u,Ź Z,ź z,Ż Z,ż z,Ž Z,ž z,ƒ f,Ơ O,ơ o,Ư U,ư u,Lj LJ,lj lj,Nj NJ,nj nj,Ș S,ș s,Ț T,ț t,˚ o,Ά A,Έ E,Ή H,Ί I,Ό O,Ύ Y,Ώ W,ΐ i,Α A,Β B,Γ G,Δ D,Ε E,Ζ Z,Η H,Θ 8,Ι I,Κ K,Λ L,Μ M,Ν N,Ξ 3,Ο O,Π P,Ρ R,Σ S,Τ T,Υ Y,Φ F,Χ X,Ψ PS,Ω W,Ϊ I,Ϋ Y,ά a,έ e,ή h,ί i,ΰ y,α a,β b,γ g,δ d,ε e,ζ z,η h,θ 8,ι i,κ k,λ l,μ m,ν n,ξ 3,ο o,π p,ρ r,ς s,σ s,τ t,υ y,φ f,χ x,ψ ps,ω w,ϊ i,ϋ y,ό o,ύ y,ώ w,Ё Yo,Ђ DJ,Є Ye,І I,Ї Yi,Ј J,Љ LJ,Њ NJ,Ћ C,Џ DZ,А A,Б B,В V,Г G,Д D,Е E,Ж Zh,З Z,И I,Й J,К K,Л L,М M,Н N,О O,П P,Р R,С S,Т T,У U,Ф F,Х H,Ц C,Ч Ch,Ш Sh,Щ Sh,Ъ U,Ы Y,Ь ,Э E,Ю Yu,Я Ya,а a,б b,в v,г g,д d,е e,ж zh,з z,и i,й j,к k,л l,м m,н n,о o,п p,р r,с s,т t,у u,ф f,х h,ц c,ч ch,ш sh,щ sh,ъ u,ы y,ь ,э e,ю yu,я ya,ё yo,ђ dj,є ye,і i,ї yi,ј j,љ lj,њ nj,ћ c,џ dz,Ґ G,ґ g,฿ baht,ა a,ბ b,გ g,დ d,ე e,ვ v,ზ z,თ t,ი i,კ k,ლ l,მ m,ნ n,ო o,პ p,ჟ zh,რ r,ს s,ტ t,უ u,ფ f,ქ k,ღ gh,ყ q,შ sh,ჩ ch,ც ts,ძ dz,წ ts,ჭ ch,ხ kh,ჯ j,ჰ h,ẞ SS,Ạ A,ạ a,Ả A,ả a,Ấ A,ấ a,Ầ A,ầ a,Ẩ A,ẩ a,Ẫ A,ẫ a,Ậ A,ậ a,Ắ A,ắ a,Ằ A,ằ a,Ẳ A,ẳ a,Ẵ A,ẵ a,Ặ A,ặ a,Ẹ E,ẹ e,Ẻ E,ẻ e,Ẽ E,ẽ e,Ế E,ế e,Ề E,ề e,Ể E,ể e,Ễ E,ễ e,Ệ E,ệ e,Ỉ I,ỉ i,Ị I,ị i,Ọ O,ọ o,Ỏ O,ỏ o,Ố O,ố o,Ồ O,ồ o,Ổ O,ổ o,Ỗ O,ỗ o,Ộ O,ộ o,Ớ O,ớ o,Ờ O,ờ o,Ở O,ở o,Ỡ O,ỡ o,Ợ O,ợ o,Ụ U,ụ u,Ủ U,ủ u,Ứ U,ứ u,Ừ U,ừ u,Ử U,ử u,Ữ U,ữ u,Ự U,ự u,Ỳ Y,ỳ y,Ỵ Y,ỵ y,Ỷ Y,ỷ y,Ỹ Y,ỹ y,‘ \',’ \',“ ",” ",† +,• *,… ...,₠ ecu,₢ cruzeiro,₣ french franc,₤ lira,₥ mill,₦ naira,₧ peseta,₨ rupee,₩ won,₪ new shequel,₫ dong,€ euro,₭ kip,₮ tugrik,₯ drachma,₰ penny,₱ peso,₲ guarani,₳ austral,₴ hryvnia,₵ cedi,₹ indian rupee,₽ russian ruble,₿ bitcoin,℠ sm,™ tm,∂ d,∆ delta,∑ sum,∞ infinity,♥ love,元 yuan,円 yen,﷼ rial'; +var defReplacement = {}; +each(REPLACEMENT.split(','), function(item) { + item = item.split(' '); + defReplacement[item[0]] = item[1]; +}); +defReplacement[' '] = '-'; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/snakeCase.js b/src/miniprogram_npm/miniprogram-licia/snakeCase.js new file mode 100644 index 0000000..49f106e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/snakeCase.js @@ -0,0 +1,6 @@ +var splitCase = require('./splitCase'); +exports = function(str) { + return splitCase(str).join('_'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/some.js b/src/miniprogram_npm/miniprogram-licia/some.js new file mode 100644 index 0000000..8868c75 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/some.js @@ -0,0 +1,15 @@ +var safeCb = require('./safeCb'); +var isArrLike = require('./isArrLike'); +var keys = require('./keys'); +exports = function(obj, predicate, ctx) { + predicate = safeCb(predicate, ctx); + var _keys = !isArrLike(obj) && keys(obj); + var len = (_keys || obj).length; + for (var i = 0; i < len; i++) { + var key = _keys ? _keys[i] : i; + if (predicate(obj[key], key, obj)) return true; + } + return false; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sortBy.js b/src/miniprogram_npm/miniprogram-licia/sortBy.js new file mode 100644 index 0000000..6169e17 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sortBy.js @@ -0,0 +1,28 @@ +var safeCb = require('./safeCb'); +var pluck = require('./pluck'); +var map = require('./map'); +var isUndef = require('./isUndef'); +exports = function(obj, iteratee, ctx) { + iteratee = safeCb(iteratee, ctx); + var idx = 0; + return pluck( + map(obj, function(val, key) { + return { + val: val, + idx: idx++, + criteria: iteratee(val, key, obj) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || isUndef(a)) return 1; + if (a < b || isUndef(b)) return -1; + } + return left.idx - right.idx; + }), + 'val' + ); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sortKeys.js b/src/miniprogram_npm/miniprogram-licia/sortKeys.js new file mode 100644 index 0000000..2fe3d51 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sortKeys.js @@ -0,0 +1,56 @@ +var isSorted = require('./isSorted'); +var defaults = require('./defaults'); +var keys = require('./keys'); +var isArr = require('./isArr'); +var isObj = require('./isObj'); +exports = function(obj) { + var options = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + defaults(options, defOpts); + var deep = options.deep, + comparator = options.comparator; + var visited = []; + var visitedResult = []; + function sort(obj) { + var idx = visited.indexOf(obj); + if (idx > -1) { + return visitedResult[idx]; + } + var result; + if (isArr(obj)) { + result = []; + visited.push(obj); + visitedResult.push(result); + for (var i = 0, len = obj.length; i < len; i++) { + var value = obj[i]; + if (deep && isObj(value)) { + result[i] = sort(value); + } else { + result[i] = value; + } + } + } else { + result = {}; + visited.push(obj); + visitedResult.push(result); + var _keys = keys(obj).sort(comparator); + for (var _i = 0, _len = _keys.length; _i < _len; _i++) { + var key = _keys[_i]; + var _value = obj[key]; + if (deep && isObj(_value)) { + result[key] = sort(_value); + } else { + result[key] = _value; + } + } + } + return result; + } + return sort(obj); +}; +var defOpts = { + deep: false, + comparator: isSorted.defComparator +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/spaceCase.js b/src/miniprogram_npm/miniprogram-licia/spaceCase.js new file mode 100644 index 0000000..31704ce --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/spaceCase.js @@ -0,0 +1,6 @@ +var splitCase = require('./splitCase'); +exports = function(str) { + return splitCase(str).join(' '); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/splitCase.js b/src/miniprogram_npm/miniprogram-licia/splitCase.js new file mode 100644 index 0000000..e97d17f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/splitCase.js @@ -0,0 +1,13 @@ +var regUpperCase = /([A-Z])/g; +var regSeparator = /[_.\- ]+/g; +var regTrim = /(^-)|(-$)/g; +exports = function(str) { + str = str + .replace(regUpperCase, '-$1') + .toLowerCase() + .replace(regSeparator, '-') + .replace(regTrim, ''); + return str.split('-'); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/splitPath.js b/src/miniprogram_npm/miniprogram-licia/splitPath.js new file mode 100644 index 0000000..8306d2b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/splitPath.js @@ -0,0 +1,11 @@ +exports = function(path) { + var match = path.match(regSplit); + return { + dir: match[1], + name: match[2], + ext: match[3] + }; +}; +var regSplit = /^([\s\S]*?)((?:\.{1,2}|[^\\/]+?|)(\.[^./\\]*|))(?:[\\/]*)$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/startWith.js b/src/miniprogram_npm/miniprogram-licia/startWith.js new file mode 100644 index 0000000..8501088 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/startWith.js @@ -0,0 +1,5 @@ +exports = function(str, prefix) { + return str.indexOf(prefix) === 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/strHash.js b/src/miniprogram_npm/miniprogram-licia/strHash.js new file mode 100644 index 0000000..4c7f580 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/strHash.js @@ -0,0 +1,10 @@ +exports = function(str) { + var hash = 5381; + var i = str.length; + while (i) { + hash = (hash << 5) + hash + str.charCodeAt(--i); + } + return hash >>> 0; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/strToBytes.js b/src/miniprogram_npm/miniprogram-licia/strToBytes.js new file mode 100644 index 0000000..734bdbf --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/strToBytes.js @@ -0,0 +1,21 @@ +var utf8 = require('./utf8'); +var hex = require('./hex'); +var base64 = require('./base64'); +exports = function(str) { + var encoding = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : 'utf8'; + if (encoding === 'hex') return hex.decode(str); + if (encoding === 'base64') return base64.decode(str); + var bytes = []; + if (encoding === 'utf8') { + str = utf8.encode(str); + } + for (var i = 0, len = str.length; i < len; i++) { + bytes.push(str.charCodeAt(i) & 0xff); + } + return bytes; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/strTpl.js b/src/miniprogram_npm/miniprogram-licia/strTpl.js new file mode 100644 index 0000000..a5ab0d7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/strTpl.js @@ -0,0 +1,10 @@ +var safeGet = require('./safeGet'); +var toStr = require('./toStr'); +var regSep = /{{(.*?)}}/g; +exports = function(str, data) { + return str.replace(regSep, function(match, key) { + return toStr(safeGet(data, key)); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/strWidth.js b/src/miniprogram_npm/miniprogram-licia/strWidth.js new file mode 100644 index 0000000..5ef921e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/strWidth.js @@ -0,0 +1,17 @@ +var stripAnsi = require('./stripAnsi'); +var isFullWidth = require('./isFullWidth'); +exports = function(str) { + str = stripAnsi(str); + var width = 0; + for (var i = 0, len = str.length; i < len; i++) { + var c = str.codePointAt(i); + + if (c <= 31 || c === 127) { + continue; + } + width += isFullWidth(c) ? 2 : 1; + } + return width; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stringify.js b/src/miniprogram_npm/miniprogram-licia/stringify.js new file mode 100644 index 0000000..6ed3083 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stringify.js @@ -0,0 +1,44 @@ +var type = require('./type'); +var upperFirst = require('./upperFirst'); +var toStr = require('./toStr'); +var isUndef = require('./isUndef'); +var isFn = require('./isFn'); +var isRegExp = require('./isRegExp'); +exports = function(obj, spaces) { + return JSON.stringify(obj, serializer(), spaces); +}; +function serializer() { + var stack = []; + var keys = []; + return function(key, val) { + if (stack.length > 0) { + var pos = stack.indexOf(this); + if (pos > -1) { + stack.splice(pos + 1); + keys.splice(pos, Infinity, key); + } else { + stack.push(this); + keys.push(key); + } + var valPos = stack.indexOf(val); + if (valPos > -1) { + if (stack[0] === val) { + val = '[Circular ~]'; + } else { + val = + '[Circular ~.' + keys.slice(0, valPos).join('.') + ']'; + } + } + } else { + stack.push(val); + } + if (isRegExp(val) || isFn(val)) { + val = '[' + upperFirst(type(val)) + ' ' + toStr(val) + ']'; + } else if (isUndef(val)) { + val = null; + } + return val; + }; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stringifyAll.js b/src/miniprogram_npm/miniprogram-licia/stringifyAll.js new file mode 100644 index 0000000..b27af01 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stringifyAll.js @@ -0,0 +1,403 @@ +var escapeJsStr = require('./escapeJsStr'); +var type = require('./type'); +var toStr = require('./toStr'); +var endWith = require('./endWith'); +var toSrc = require('./toSrc'); +var keys = require('./keys'); +var each = require('./each'); +var Class = require('./Class'); +var getProto = require('./getProto'); +var difference = require('./difference'); +var extend = require('./extend'); +var isPromise = require('./isPromise'); +var filter = require('./filter'); +var now = require('./now'); +var allKeys = require('./allKeys'); +var contain = require('./contain'); +var isObj = require('./isObj'); +var isMiniProgram = require('./isMiniProgram'); +var create = require('./create'); +var startWith = require('./startWith'); +var safeSet = require('./safeSet'); +var defineProp = require('./defineProp'); +var pick = require('./pick'); +var isArrLike = require('./isArrLike'); +exports = function(obj) { + var _ref = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}, + self = _ref.self, + _ref$startTime = _ref.startTime, + startTime = _ref$startTime === void 0 ? now() : _ref$startTime, + _ref$timeout = _ref.timeout, + timeout = _ref$timeout === void 0 ? 0 : _ref$timeout, + _ref$depth = _ref.depth, + depth = _ref$depth === void 0 ? 0 : _ref$depth, + _ref$curDepth = _ref.curDepth, + curDepth = _ref$curDepth === void 0 ? 1 : _ref$curDepth, + _ref$visitor = _ref.visitor, + visitor = _ref$visitor === void 0 ? new Visitor() : _ref$visitor, + _ref$unenumerable = _ref.unenumerable, + unenumerable = _ref$unenumerable === void 0 ? false : _ref$unenumerable, + _ref$symbol = _ref.symbol, + symbol = _ref$symbol === void 0 ? false : _ref$symbol, + _ref$accessGetter = _ref.accessGetter, + accessGetter = _ref$accessGetter === void 0 ? false : _ref$accessGetter, + _ref$ignore = _ref.ignore, + ignore = _ref$ignore === void 0 ? [] : _ref$ignore; + var json = ''; + var options = { + visitor: visitor, + unenumerable: unenumerable, + symbol: symbol, + accessGetter: accessGetter, + depth: depth, + curDepth: curDepth + 1, + timeout: timeout, + startTime: startTime, + ignore: ignore + }; + var t = type(obj, false); + if (t === 'String') { + json = wrapStr(obj); + } else if (t === 'Number') { + json = toStr(obj); + if (endWith(json, 'Infinity')) { + json = '{"value":"'.concat(json, '","type":"Number"}'); + } + } else if (t === 'NaN') { + json = '{"value":"NaN","type":"Number"}'; + } else if (t === 'Boolean') { + json = obj ? 'true' : 'false'; + } else if (t === 'Null') { + json = 'null'; + } else if (t === 'Undefined') { + json = '{"type":"Undefined"}'; + } else if (t === 'Symbol') { + var val = 'Symbol'; + try { + val = toStr(obj); + } catch (e) {} + json = '{"value":'.concat(wrapStr(val), ',"type":"Symbol"}'); + } else { + if (timeout && now() - startTime > timeout) { + return wrapStr('Timeout'); + } + if (depth && curDepth > depth) { + return wrapStr('{...}'); + } + json = '{'; + var parts = []; + var visitedObj = visitor.get(obj); + var id; + if (visitedObj) { + id = visitedObj.id; + parts.push('"reference":'.concat(id)); + } else { + id = visitor.set(obj); + parts.push('"id":'.concat(id)); + } + parts.push('"type":"'.concat(t, '"')); + if (endWith(t, 'Function')) { + parts.push('"value":'.concat(wrapStr(toSrc(obj)))); + } else if (t === 'RegExp') { + parts.push('"value":'.concat(wrapStr(obj))); + } + if (!visitedObj) { + var enumerableKeys = keys(obj); + if (enumerableKeys.length) { + parts.push( + iterateObj( + 'enumerable', + enumerableKeys, + self || obj, + options + ) + ); + } + if (unenumerable) { + var unenumerableKeys = difference( + allKeys(obj, { + prototype: false, + unenumerable: true + }), + enumerableKeys + ); + if (unenumerableKeys.length) { + parts.push( + iterateObj( + 'unenumerable', + unenumerableKeys, + self || obj, + options + ) + ); + } + } + if (symbol) { + var symbolKeys = filter( + allKeys(obj, { + prototype: false, + symbol: true + }), + function(key) { + return typeof key === 'symbol'; + } + ); + if (symbolKeys.length) { + parts.push( + iterateObj('symbol', symbolKeys, self || obj, options) + ); + } + } + var prototype = getProto(obj); + if (prototype && !contain(ignore, prototype)) { + var proto = '"proto":'.concat( + exports( + prototype, + extend(options, { + self: self || obj + }) + ) + ); + parts.push(proto); + } + } + json += parts.join(',') + '}'; + } + return json; +}; +function iterateObj(name, keys, obj, options) { + var parts = []; + each(keys, function(key) { + var val; + var descriptor = Object.getOwnPropertyDescriptor(obj, key); + var hasGetter = descriptor && descriptor.get; + var hasSetter = descriptor && descriptor.set; + if (!options.accessGetter && hasGetter) { + val = '(...)'; + } else { + try { + val = obj[key]; + if (contain(options.ignore, val)) { + return; + } + if (isPromise(val)) { + val.catch(function() {}); + } + } catch (e) { + val = e.message; + } + } + parts.push(''.concat(wrapKey(key), ':').concat(exports(val, options))); + if (hasGetter) { + parts.push( + '' + .concat(wrapKey('get ' + toStr(key)), ':') + .concat(exports(descriptor.get, options)) + ); + } + if (hasSetter) { + parts.push( + '' + .concat(wrapKey('set ' + toStr(key)), ':') + .concat(exports(descriptor.set, options)) + ); + } + }); + return '"'.concat(name, '":{') + parts.join(',') + '}'; +} +function wrapKey(key) { + return '"'.concat(escapeJsonStr(key), '"'); +} +function wrapStr(str) { + return '"'.concat(escapeJsonStr(toStr(str)), '"'); +} +function escapeJsonStr(str) { + return escapeJsStr(str) + .replace(/\\'/g, "'") + .replace(/\t/g, '\\t'); +} +var Visitor = Class({ + initialize: function() { + this.id = 1; + this.visited = []; + }, + set: function(val) { + var visited = this.visited, + id = this.id; + var obj = { + id: id, + val: val + }; + visited.push(obj); + this.id++; + return id; + }, + get: function(val) { + var visited = this.visited; + for (var i = 0, len = visited.length; i < len; i++) { + var obj = visited[i]; + if (val === obj.val) return obj; + } + return false; + } +}); +exports.parse = function(str) { + var map = {}; + var obj = parse(JSON.parse(str), { + map: map + }); + correctReference(map); + return obj; +}; +function correctReference(map) { + each(map, function(obj) { + var enumerableKeys = keys(obj); + for (var i = 0, len = enumerableKeys.length; i < len; i++) { + var key = enumerableKeys[i]; + if (isObj(obj[key])) { + var reference = obj[key].reference; + if (reference && map[reference]) { + obj[key] = map[reference]; + } + } + } + var proto = getProto(obj); + if (proto && proto.reference) { + if (map[proto.reference]) { + Object.setPrototypeOf(obj, map[proto.reference]); + } + } + }); +} +function parse(obj, options) { + var map = options.map; + if (!isObj(obj)) { + return obj; + } + var id = obj.id, + type = obj.type, + value = obj.value, + proto = obj.proto, + reference = obj.reference; + var enumerable = obj.enumerable, + unenumerable = obj.unenumerable; + if (reference) { + return obj; + } + if (type === 'Number') { + if (value === 'Infinity') { + return Number.POSITIVE_INFINITY; + } else if (value === '-Infinity') { + return Number.NEGATIVE_INFINITY; + } + return NaN; + } else if (type === 'Undefined') { + return undefined; + } + var newObj; + if (type === 'Function') { + newObj = function() {}; + newObj.toString = function() { + return value; + }; + if (proto) { + Object.setPrototypeOf(newObj, parse(proto, options)); + } + } else if (type === 'RegExp') { + newObj = strToRegExp(value); + } else { + if (type !== 'Object') { + var Fn; + if (!isMiniProgram) { + Fn = new Function(type, ''); + } else { + Fn = function() {}; + } + if (proto) { + Fn.prototype = parse(proto, options); + } + newObj = new Fn(); + } else { + if (proto) { + newObj = create(parse(proto, options)); + } else { + newObj = create(null); + } + } + } + var defineProps = {}; + if (enumerable) { + var len; + if (isArrLike(enumerable)) { + len = enumerable.length; + delete enumerable.length; + } + enumerable = pick(enumerable, function(value, key) { + return !handleGetterSetter(enumerable, value, key); + }); + each(enumerable, function(value, key) { + var defineProp = defineProps[key] || {}; + if (!defineProp.get) { + newObj[key] = parse(value, options); + } + }); + if (len) { + newObj.length = len; + } + } + if (unenumerable) { + unenumerable = pick(unenumerable, function(value, key) { + return !handleGetterSetter(unenumerable, value, key); + }); + each(unenumerable, function(value, key) { + var defineProp = defineProps[key] || {}; + if (!defineProp.get) { + value = parse(value, options); + if (isObj(value) && value.reference) { + var _reference = value.reference; + value = function() { + return map[_reference]; + }; + defineProp.get = value; + } else { + defineProp.value = value; + } + } + defineProp.enumerable = false; + defineProps[key] = defineProp; + }); + } + defineProp(newObj, defineProps); + function handleGetterSetter(obj, val, key) { + key = toStr(key); + var isGetterAndSetter = false; + each(['get', 'set'], function(type) { + if (startWith(key, type + ' ')) { + var realKey = key.replace(type + ' ', ''); + if (obj[realKey]) { + val = parse(val, options); + if (val === 'Timeout') { + val = retTimeout; + } + safeSet(defineProps, [realKey, type], val); + isGetterAndSetter = true; + } + } + }); + return isGetterAndSetter; + } + map[id] = newObj; + return newObj; +} +function retTimeout() { + return 'Timeout'; +} +function strToRegExp(str) { + var lastSlash = str.lastIndexOf('/'); + return new RegExp(str.slice(1, lastSlash), str.slice(lastSlash + 1)); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripAnsi.js b/src/miniprogram_npm/miniprogram-licia/stripAnsi.js new file mode 100644 index 0000000..644e2af --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripAnsi.js @@ -0,0 +1,6 @@ +var regAnsi = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; +exports = function(str) { + return str.replace(regAnsi, ''); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripBom.js b/src/miniprogram_npm/miniprogram-licia/stripBom.js new file mode 100644 index 0000000..cc9d1db --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripBom.js @@ -0,0 +1,8 @@ +exports = function(str) { + if (str.charCodeAt(0) === 0xfeff) { + return str.slice(1); + } + return str; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripCmt.js b/src/miniprogram_npm/miniprogram-licia/stripCmt.js new file mode 100644 index 0000000..dfca727 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripCmt.js @@ -0,0 +1,56 @@ +exports = function(str) { + str = ('__' + str + '__').split(''); + var mode = { + singleQuote: false, + doubleQuote: false, + regex: false, + blockComment: false, + lineComment: false, + condComp: false + }; + for (var i = 0, l = str.length; i < l; i++) { + if (mode.regex) { + if (str[i] === '/' && str[i - 1] !== '\\') mode.regex = false; + continue; + } + if (mode.singleQuote) { + if (str[i] === "'" && str[i - 1] !== '\\') mode.singleQuote = false; + continue; + } + if (mode.doubleQuote) { + if (str[i] === '"' && str[i - 1] !== '\\') mode.doubleQuote = false; + continue; + } + if (mode.blockComment) { + if (str[i] === '*' && str[i + 1] === '/') { + str[i + 1] = ''; + mode.blockComment = false; + } + str[i] = ''; + continue; + } + if (mode.lineComment) { + if (str[i + 1] === '\n') mode.lineComment = false; + str[i] = ''; + continue; + } + mode.doubleQuote = str[i] === '"'; + mode.singleQuote = str[i] === "'"; + if (str[i] === '/') { + if (str[i + 1] === '*') { + str[i] = ''; + mode.blockComment = true; + continue; + } + if (str[i + 1] === '/') { + str[i] = ''; + mode.lineComment = true; + continue; + } + mode.regex = true; + } + } + return str.join('').slice(2, -2); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripColor.js b/src/miniprogram_npm/miniprogram-licia/stripColor.js new file mode 100644 index 0000000..5a4bad3 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripColor.js @@ -0,0 +1,6 @@ +var regColor = /\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/g; +exports = function(str) { + return str.replace(regColor, ''); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripHtmlTag.js b/src/miniprogram_npm/miniprogram-licia/stripHtmlTag.js new file mode 100644 index 0000000..1ad3095 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripHtmlTag.js @@ -0,0 +1,6 @@ +var regHtmlTag = /<[^>]*>/g; +exports = function(str) { + return str.replace(regHtmlTag, ''); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripIndent.js b/src/miniprogram_npm/miniprogram-licia/stripIndent.js new file mode 100644 index 0000000..0eeeac5 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripIndent.js @@ -0,0 +1,40 @@ +var isStr = require('./isStr'); +var toArr = require('./toArr'); +var min = require('./min'); +var map = require('./map'); +var trim = require('./trim'); +exports = function(literals) { + if (isStr(literals)) literals = toArr(literals); + var str = ''; + for ( + var _len = arguments.length, + placeholders = new Array(_len > 1 ? _len - 1 : 0), + _key = 1; + _key < _len; + _key++ + ) { + placeholders[_key - 1] = arguments[_key]; + } + for (var i = 0, len = literals.length; i < len; i++) { + str += literals[i]; + if (placeholders[i]) str += placeholders[i]; + } + var lines = str.split('\n'); + var indentLens = []; + for (var _i = 0, _len2 = lines.length; _i < _len2; _i++) { + var line = lines[_i]; + var _indent = line.match(regStartSpaces); + if (_indent) { + indentLens.push(_indent[1].length); + } + } + var indent = indentLens.length > 0 ? min.apply(null, indentLens) : 0; + return trim( + map(lines, function(line) { + return line[0] === ' ' ? line.slice(indent) : line; + }).join('\n') + ); +}; +var regStartSpaces = /^(\s+)\S+/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/stripNum.js b/src/miniprogram_npm/miniprogram-licia/stripNum.js new file mode 100644 index 0000000..99da492 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/stripNum.js @@ -0,0 +1,7 @@ +exports = function(num) { + var precision = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12; + return parseFloat(num.toPrecision(precision)); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/sum.js b/src/miniprogram_npm/miniprogram-licia/sum.js new file mode 100644 index 0000000..1f29302 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/sum.js @@ -0,0 +1,8 @@ +exports = function() { + var arr = arguments; + var ret = 0; + for (var i = 0, len = arr.length; i < len; i++) ret += arr[i]; + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/swap.js b/src/miniprogram_npm/miniprogram-licia/swap.js new file mode 100644 index 0000000..d0aec07 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/swap.js @@ -0,0 +1,8 @@ +exports = function(arr, a, b) { + var tmp = arr[a]; + arr[a] = arr[b]; + arr[b] = tmp; + return arr; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/table.js b/src/miniprogram_npm/miniprogram-licia/table.js new file mode 100644 index 0000000..8cf3bbe --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/table.js @@ -0,0 +1,118 @@ +var each = require('./each'); +var strWidth = require('./strWidth'); +var map = require('./map'); +var repeat = require('./repeat'); +var cloneDeep = require('./cloneDeep'); +exports = function(rows) { + rows = cloneDeep(rows); + var options = { + border: defBorder + }; + options.columns = getColumns(rows); + padData(rows, options); + return render(rows, options); +}; +function padData(rows, options) { + var columnCount = options.columns.length; + for (var i = 0, len = rows.length; i < len; i++) { + while (rows[i].length < columnCount) { + rows[i].push(''); + } + } + return loopData(rows, function(data, row, column) { + var _options$columns$colu = options.columns[column], + paddingLeft = _options$columns$colu.paddingLeft, + width = _options$columns$colu.width, + paddingRight = _options$columns$colu.paddingRight; + return ( + repeat(' ', paddingLeft) + + data + + repeat(' ', width - strWidth(data) - paddingRight) + ); + }); +} +function loopData(rows, handler) { + for (var i = 0, len = rows.length; i < len; i++) { + var row = rows[i]; + for (var j = 0, _len = row.length; j < _len; j++) { + var data = handler(row[j], i, j); + if (data) { + row[j] = data; + } + } + } +} +function getColumns(rows) { + var columns = []; + var paddingLeft = 1; + var paddingRight = 1; + loopData(rows, function(data, row, column) { + columns[column] = columns[column] || { + width: paddingLeft + paddingRight, + paddingLeft: paddingLeft, + paddingRight: paddingRight + }; + var width = strWidth(data) + paddingLeft + paddingRight; + if (width > columns[column].width) { + columns[column].width = width; + } + }); + return columns; +} +function render(rows, options) { + var ret = ''; + ret += renderBorder('top', options); + each(rows, function(row, idx) { + ret += renderRow(row, options); + if (idx === rows.length - 1) { + ret += renderBorder('bottom', options); + } else { + ret += renderBorder('join', options); + } + }); + return ret; +} +function renderRow(columns, options) { + var border = options.border; + return ( + border.bodyLeft + + columns.join(border.bodyJoin) + + border.bodyRight + + '\n' + ); +} +function renderBorder(type, options) { + var border = options.border, + columns = options.columns; + var left = border[type + 'Left']; + var right = border[type + 'Right']; + var body = border[type + 'Body']; + var join = border[type + 'Join']; + var ret = map(columns, function(column) { + return repeat(body, column.width); + }).join(join); + ret = left + ret + right; + if (type !== 'bottom') { + ret += '\n'; + } + return ret; +} +var defBorder = { + topBody: '─', + topJoin: '┬', + topLeft: '┌', + topRight: '┐', + bottomBody: '─', + bottomJoin: '┴', + bottomLeft: '└', + bottomRight: '┘', + bodyLeft: '│', + bodyRight: '│', + bodyJoin: '│', + joinBody: '─', + joinLeft: '├', + joinRight: '┤', + joinJoin: '┼' +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/throttle.js b/src/miniprogram_npm/miniprogram-licia/throttle.js new file mode 100644 index 0000000..c677095 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/throttle.js @@ -0,0 +1,6 @@ +var debounce = require('./debounce'); +exports = function(fn, wait) { + return debounce(fn, wait, true); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/timeAgo.js b/src/miniprogram_npm/miniprogram-licia/timeAgo.js new file mode 100644 index 0000000..c816c17 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/timeAgo.js @@ -0,0 +1,42 @@ +var isDate = require('./isDate'); +var toInt = require('./toInt'); +exports = function(date, now) { + if (!isDate(date)) date = new Date(date); + now = now || new Date(); + if (!isDate(now)) now = new Date(now); + var diff = (now - date) / 1000; + var i = 0; + var ago = diff > 0; + diff = Math.abs(diff); + while (diff >= secArr[i] && i < secArrLen) { + diff /= secArr[i]; + i++; + } + diff = toInt(diff); + i *= 2; + if (diff > (i === 0 ? 9 : 1)) i += 1; + return format(diff, i, ago); +}; +var secArr = [60, 60, 24, 7, 365 / 7 / 12, 12]; +var secArrLen = secArr.length; +function format(diff, i, ago) { + return exports.i18n[i][ago ? 0 : 1].replace('%s', diff); +} +exports.i18n = [ + ['just now', 'right now'], + ['%s seconds ago', 'in %s seconds'], + ['1 minute ago', 'in 1 minute'], + ['%s minutes ago', 'in %s minutes'], + ['1 hour ago', 'in 1 hour'], + ['%s hours ago', 'in %s hours'], + ['1 day ago', 'in 1 day'], + ['%s days ago', 'in %s days'], + ['1 week ago', 'in 1 week'], + ['%s weeks ago', 'in %s weeks'], + ['1 month ago', 'in 1 month'], + ['%s months ago', 'in %s months'], + ['1 year ago', 'in 1 year'], + ['%s years ago', 'in %s years'] +]; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/timeTaken.js b/src/miniprogram_npm/miniprogram-licia/timeTaken.js new file mode 100644 index 0000000..1e72933 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/timeTaken.js @@ -0,0 +1,8 @@ +var perfNow = require('./perfNow'); +exports = function(fn) { + var start = perfNow(); + fn(); + return perfNow() - start; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/times.js b/src/miniprogram_npm/miniprogram-licia/times.js new file mode 100644 index 0000000..8ca5132 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/times.js @@ -0,0 +1,11 @@ +var optimizeCb = require('./optimizeCb'); +exports = function(n, fn, ctx) { + var ret = Array(Math.max(0, n)); + fn = optimizeCb(fn, ctx, 1); + for (var i = 0; i < n; i++) { + ret[i] = fn(i); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toArr.js b/src/miniprogram_npm/miniprogram-licia/toArr.js new file mode 100644 index 0000000..d115380 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toArr.js @@ -0,0 +1,12 @@ +var isArrLike = require('./isArrLike'); +var map = require('./map'); +var isArr = require('./isArr'); +var isStr = require('./isStr'); +exports = function(val) { + if (!val) return []; + if (isArr(val)) return val; + if (isArrLike(val) && !isStr(val)) return map(val); + return [val]; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toAsync.js b/src/miniprogram_npm/miniprogram-licia/toAsync.js new file mode 100644 index 0000000..d54fd85 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toAsync.js @@ -0,0 +1,52 @@ +var toArr = require('./toArr'); +var isGeneratorFn = require('./isGeneratorFn'); +var isPromise = require('./isPromise'); +var toStr = require('./toStr'); + +exports = function(fn) { + if (!isGeneratorFn(fn)) { + throw new TypeError('Expected a generator function'); + } + return function() { + var _this = this; + var args = toArr(arguments); + return new Promise(function(resolve, reject) { + var generator = fn.apply(_this, args); + function onFulfilled(res) { + var ret; + try { + ret = generator.next(res); + } catch (e) { + return reject(e); + } + next(ret); + } + function onRejected(err) { + var ret; + try { + ret = generator.throw(err); + } catch (e) { + return reject(e); + } + next(ret); + } + function next(ret) { + if (ret.done) return resolve(ret.value); + if (isPromise(ret.value)) { + return ret.value.then(onFulfilled, onRejected); + } + return onRejected( + new TypeError( + 'You may only yield a promise, '.concat( + toStr(ret.value), + ' is passed' + ) + ) + ); + } + onFulfilled(); + }); + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toBool.js b/src/miniprogram_npm/miniprogram-licia/toBool.js new file mode 100644 index 0000000..c92a8d4 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toBool.js @@ -0,0 +1,10 @@ +var isStr = require('./isStr'); +exports = function(val) { + if (isStr(val)) { + val = val.toLowerCase(); + return val !== '0' && val !== '' && val !== 'false'; + } + return !!val; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toDate.js b/src/miniprogram_npm/miniprogram-licia/toDate.js new file mode 100644 index 0000000..d599d75 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toDate.js @@ -0,0 +1,14 @@ +var isDate = require('./isDate'); +var isStr = require('./isStr'); +exports = function(val) { + if (!val) return new Date(); + if (isDate(val)) return val; + if (isStr(val)) { + var match = val.match(regDate); + if (match) return new Date(match[1], match[2] - 1, match[3]); + } + return new Date(val); +}; +var regDate = /^(\d{4})-?(\d{2})-?(\d{1,2})$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toInt.js b/src/miniprogram_npm/miniprogram-licia/toInt.js new file mode 100644 index 0000000..6e6d49c --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toInt.js @@ -0,0 +1,8 @@ +var toNum = require('./toNum'); +exports = function(val) { + if (!val) return val === 0 ? val : 0; + val = toNum(val); + return val - (val % 1); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toNum.js b/src/miniprogram_npm/miniprogram-licia/toNum.js new file mode 100644 index 0000000..62bf36a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toNum.js @@ -0,0 +1,15 @@ +var isNum = require('./isNum'); +var isObj = require('./isObj'); +var isFn = require('./isFn'); +var isStr = require('./isStr'); +exports = function(val) { + if (isNum(val)) return val; + if (isObj(val)) { + var temp = isFn(val.valueOf) ? val.valueOf() : val; + val = isObj(temp) ? temp + '' : temp; + } + if (!isStr(val)) return val === 0 ? val : +val; + return +val; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toSrc.js b/src/miniprogram_npm/miniprogram-licia/toSrc.js new file mode 100644 index 0000000..89589e9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toSrc.js @@ -0,0 +1,14 @@ +var isNil = require('./isNil'); +exports = function(fn) { + if (isNil(fn)) return ''; + try { + return fnToStr.call(fn); + } catch (e) {} + try { + return fn + ''; + } catch (e) {} + return ''; +}; +var fnToStr = Function.prototype.toString; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/toStr.js b/src/miniprogram_npm/miniprogram-licia/toStr.js new file mode 100644 index 0000000..2c7e0c1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/toStr.js @@ -0,0 +1,5 @@ +exports = function(val) { + return val == null ? '' : val.toString(); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/topoSort.js b/src/miniprogram_npm/miniprogram-licia/topoSort.js new file mode 100644 index 0000000..8e53c8f --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/topoSort.js @@ -0,0 +1,43 @@ +exports = function(edges) { + return sort(uniqueNodes(edges), edges); +}; +function uniqueNodes(arr) { + var ret = []; + for (var i = 0, len = arr.length; i < len; i++) { + var edge = arr[i]; + if (ret.indexOf(edge[0]) < 0) ret.push(edge[0]); + if (ret.indexOf(edge[1]) < 0) ret.push(edge[1]); + } + return ret; +} +function sort(nodes, edges) { + var cursor = nodes.length; + var sorted = new Array(cursor); + var visited = {}; + var i = cursor; + while (i--) { + if (!visited[i]) visit(nodes[i], i, []); + } + function visit(node, i, predecessors) { + if (predecessors.indexOf(node) >= 0) { + throw new Error('Cyclic dependency: ' + JSON.stringify(node)); + } + if (visited[i]) return; + visited[i] = true; + var outgoing = edges.filter(function(edge) { + return edge[0] === node; + }); + + if ((i = outgoing.length)) { + var preds = predecessors.concat(node); + do { + var child = outgoing[--i][1]; + visit(child, nodes.indexOf(child), preds); + } while (i); + } + sorted[--cursor] = node; + } + return sorted; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/trim.js b/src/miniprogram_npm/miniprogram-licia/trim.js new file mode 100644 index 0000000..44eaa22 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/trim.js @@ -0,0 +1,10 @@ +var ltrim = require('./ltrim'); +var rtrim = require('./rtrim'); +exports = function(str, chars) { + if (chars == null && str.trim) { + return str.trim(); + } + return ltrim(rtrim(str, chars), chars); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/truncate.js b/src/miniprogram_npm/miniprogram-licia/truncate.js new file mode 100644 index 0000000..56bb3c7 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/truncate.js @@ -0,0 +1,27 @@ +var defaults = require('./defaults'); +var isUndef = require('./isUndef'); +exports = function(txt, width) { + var options = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + defaults(options, defOptions); + var ellipsis = options.ellipsis, + separator = options.separator; + var len = txt.length; + if (width > len) return txt; + var end = width - ellipsis.length; + if (end < 1) return ellipsis; + var ret = txt.slice(0, end); + if (isUndef(separator)) return ret + ellipsis; + if (txt.indexOf(separator, end) !== end) { + var idx = ret.lastIndexOf(separator); + if (idx > -1) { + ret = ret.slice(0, idx); + } + } + return ret + ellipsis; +}; +var defOptions = { + ellipsis: '...' +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/tryIt.js b/src/miniprogram_npm/miniprogram-licia/tryIt.js new file mode 100644 index 0000000..d079d01 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/tryIt.js @@ -0,0 +1,12 @@ +var noop = require('./noop'); +exports = function(fn, cb) { + cb = cb || noop; + try { + cb(null, fn()); + } catch (e) { + cb(e); + return; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/type.js b/src/miniprogram_npm/miniprogram-licia/type.js new file mode 100644 index 0000000..733f2cc --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/type.js @@ -0,0 +1,24 @@ +var objToStr = require('./objToStr'); +var isNaN = require('./isNaN'); +var lowerCase = require('./lowerCase'); +var isBuffer = require('./isBuffer'); +exports = function(val) { + var lower = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : true; + var ret; + if (val === null) ret = 'Null'; + if (val === undefined) ret = 'Undefined'; + if (isNaN(val)) ret = 'NaN'; + if (isBuffer(val)) ret = 'Buffer'; + if (!ret) { + ret = objToStr(val).match(regObj); + if (ret) ret = ret[1]; + } + if (!ret) return ''; + return lower ? lowerCase(ret) : ret; +}; +var regObj = /^\[object\s+(.*?)]$/; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/types.js b/src/miniprogram_npm/miniprogram-licia/types.js new file mode 100644 index 0000000..de9c910 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/types.js @@ -0,0 +1,3 @@ +exports = {}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/ucs2.js b/src/miniprogram_npm/miniprogram-licia/ucs2.js new file mode 100644 index 0000000..e4da234 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/ucs2.js @@ -0,0 +1,37 @@ +var chunk = require('./chunk'); +var map = require('./map'); + +exports = { + encode: function(arr) { + if (arr.length < 32768) { + return String.fromCodePoint.apply(String, arr); + } + return map(chunk(arr, 32767), function(nums) { + return String.fromCodePoint.apply(String, nums); + }).join(''); + }, + decode: function(str) { + var ret = []; + var i = 0; + var len = str.length; + while (i < len) { + var c = str.charCodeAt(i++); + + if (c >= 0xd800 && c <= 0xdbff && i < len) { + var tail = str.charCodeAt(i++); + + if ((tail & 0xfc00) === 0xdc00) { + ret.push(((c & 0x3ff) << 10) + (tail & 0x3ff) + 0x10000); + } else { + ret.push(c); + i--; + } + } else { + ret.push(c); + } + } + return ret; + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/unescape.js b/src/miniprogram_npm/miniprogram-licia/unescape.js new file mode 100644 index 0000000..84abd2d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/unescape.js @@ -0,0 +1,15 @@ +var escape = require('./escape'); +var keys = require('./keys'); +var invert = require('./invert'); +exports = function(str) { + return regTest.test(str) ? str.replace(regReplace, replaceFn) : str; +}; +var map = invert(escape.map); +var regSrc = '(?:' + keys(map).join('|') + ')'; +var regTest = new RegExp(regSrc); +var regReplace = new RegExp(regSrc, 'g'); +function replaceFn(match) { + return map[match]; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/union.js b/src/miniprogram_npm/miniprogram-licia/union.js new file mode 100644 index 0000000..9b01f17 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/union.js @@ -0,0 +1,8 @@ +var restArgs = require('./restArgs'); +var unique = require('./unique'); +var flatten = require('./flatten'); +exports = restArgs(function(arrays) { + return unique(flatten(arrays)); +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/uniqId.js b/src/miniprogram_npm/miniprogram-licia/uniqId.js new file mode 100644 index 0000000..804bb48 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/uniqId.js @@ -0,0 +1,7 @@ +var idCounter = 0; +exports = function(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/unique.js b/src/miniprogram_npm/miniprogram-licia/unique.js new file mode 100644 index 0000000..8aa676e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/unique.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +exports = function(arr, cmp) { + cmp = cmp || isEqual; + return filter(arr, function(item, idx, arr) { + var len = arr.length; + while (++idx < len) { + if (cmp(item, arr[idx])) return false; + } + return true; + }); +}; +function isEqual(a, b) { + return a === b; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/universalify.js b/src/miniprogram_npm/miniprogram-licia/universalify.js new file mode 100644 index 0000000..c35b214 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/universalify.js @@ -0,0 +1,31 @@ +var promisify = require('./promisify'); +var callbackify = require('./callbackify'); +var last = require('./last'); +var isFn = require('./isFn'); +exports = function(fn, type) { + var callbackFn; + var promiseFn; + if (type === 'callback') { + callbackFn = fn; + promiseFn = promisify(fn); + } else { + promiseFn = fn; + callbackFn = callbackify(fn); + } + return function() { + for ( + var _len = arguments.length, args = new Array(_len), _key = 0; + _key < _len; + _key++ + ) { + args[_key] = arguments[_key]; + } + if (isFn(last(args))) { + callbackFn.apply(this, args); + } else { + return promiseFn.apply(this, args); + } + }; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/unzip.js b/src/miniprogram_npm/miniprogram-licia/unzip.js new file mode 100644 index 0000000..c12c83a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/unzip.js @@ -0,0 +1,18 @@ +var map = require('./map'); +var pluck = require('./pluck'); +var max = require('./max'); +exports = function(arr) { + var len = max.apply( + null, + map(arr, function(arr) { + return arr.length; + }) + ); + var ret = Array(len); + for (var i = 0; i < len; i++) { + ret[i] = pluck(arr, i); + } + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/upperCase.js b/src/miniprogram_npm/miniprogram-licia/upperCase.js new file mode 100644 index 0000000..cf2c9c9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/upperCase.js @@ -0,0 +1,6 @@ +var toStr = require('./toStr'); +exports = function(str) { + return toStr(str).toLocaleUpperCase(); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/upperFirst.js b/src/miniprogram_npm/miniprogram-licia/upperFirst.js new file mode 100644 index 0000000..c4a3d54 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/upperFirst.js @@ -0,0 +1,6 @@ +exports = function(str) { + if (str.length < 1) return str; + return str[0].toUpperCase() + str.slice(1); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/use.js b/src/miniprogram_npm/miniprogram-licia/use.js new file mode 100644 index 0000000..55cdd31 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/use.js @@ -0,0 +1,29 @@ +var map = require('./map'); +var define = require('./define'); +var has = require('./has'); +var toArr = require('./toArr'); +exports = function(requires, method) { + if (method == null) { + method = requires; + requires = []; + } + requires = map(toArr(requires), function(val) { + return req(val); + }); + method.apply(null, requires); +}; +var modules = define._modules; +var requireMarks = {}; +function req(name) { + if (has(requireMarks, name)) return modules[name]; + var requires = modules[name].requires; + var body = modules[name].body; + var len = requires.length; + for (var i = 0; i < len; i++) requires[i] = req(requires[i]); + var exports = body.apply(null, requires); + if (exports) modules[name] = exports; + requireMarks[name] = true; + return modules[name]; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/utf8.js b/src/miniprogram_npm/miniprogram-licia/utf8.js new file mode 100644 index 0000000..9c88c8b --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/utf8.js @@ -0,0 +1,127 @@ +var ucs2 = require('./ucs2'); + +exports = { + encode: function(str) { + var codePoints = ucs2.decode(str); + var byteArr = ''; + for (var i = 0, len = codePoints.length; i < len; i++) { + byteArr += encodeCodePoint(codePoints[i]); + } + return byteArr; + }, + decode: function(str, safe) { + byteArr = ucs2.decode(str); + byteIdx = 0; + byteCount = byteArr.length; + codePoint = 0; + bytesSeen = 0; + bytesNeeded = 0; + lowerBoundary = 0x80; + upperBoundary = 0xbf; + var codePoints = []; + var tmp; + while ((tmp = decodeCodePoint(safe)) !== false) { + codePoints.push(tmp); + } + return ucs2.encode(codePoints); + } +}; +var fromCharCode = String.fromCharCode; +function encodeCodePoint(codePoint) { + if ((codePoint & 0xffffff80) === 0) { + return fromCharCode(codePoint); + } + var ret = '', + count, + offset; + + if ((codePoint & 0xfffff800) === 0) { + count = 1; + offset = 0xc0; + } else if ((codePoint & 0xffff0000) === 0) { + count = 2; + offset = 0xe0; + } else if ((codePoint & 0xffe00000) == 0) { + count = 3; + offset = 0xf0; + } + ret += fromCharCode((codePoint >> (6 * count)) + offset); + while (count > 0) { + var tmp = codePoint >> (6 * (count - 1)); + ret += fromCharCode(0x80 | (tmp & 0x3f)); + count--; + } + return ret; +} +var byteArr, + byteIdx, + byteCount, + codePoint, + bytesSeen, + bytesNeeded, + lowerBoundary, + upperBoundary; +function decodeCodePoint(safe) { + while (true) { + if (byteIdx >= byteCount && bytesNeeded) { + if (safe) return goBack(); + throw new Error('Invalid byte index'); + } + if (byteIdx === byteCount) return false; + var byte = byteArr[byteIdx]; + byteIdx++; + if (!bytesNeeded) { + if ((byte & 0x80) === 0) { + return byte; + } + + if ((byte & 0xe0) === 0xc0) { + bytesNeeded = 1; + codePoint = byte & 0x1f; + } else if ((byte & 0xf0) === 0xe0) { + if (byte === 0xe0) lowerBoundary = 0xa0; + if (byte === 0xed) upperBoundary = 0x9f; + bytesNeeded = 2; + codePoint = byte & 0xf; + } else if ((byte & 0xf8) === 0xf0) { + if (byte === 0xf0) lowerBoundary = 0x90; + if (byte === 0xf4) upperBoundary = 0x8f; + bytesNeeded = 3; + codePoint = byte & 0x7; + } else { + if (safe) return goBack(); + throw new Error('Invalid UTF-8 detected'); + } + continue; + } + if (byte < lowerBoundary || byte > upperBoundary) { + if (safe) { + byteIdx--; + return goBack(); + } + throw new Error('Invalid continuation byte'); + } + lowerBoundary = 0x80; + upperBoundary = 0xbf; + codePoint = (codePoint << 6) | (byte & 0x3f); + bytesSeen++; + if (bytesSeen !== bytesNeeded) continue; + var tmp = codePoint; + codePoint = 0; + bytesNeeded = 0; + bytesSeen = 0; + return tmp; + } +} +function goBack() { + var start = byteIdx - bytesSeen - 1; + byteIdx = start + 1; + codePoint = 0; + bytesNeeded = 0; + bytesSeen = 0; + lowerBoundary = 0x80; + upperBoundary = 0xbf; + return byteArr[start]; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/uuid.js b/src/miniprogram_npm/miniprogram-licia/uuid.js new file mode 100644 index 0000000..446951d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/uuid.js @@ -0,0 +1,34 @@ +var randomBytes = require('./randomBytes'); +exports = function() { + var b = randomBytes(16); + b[6] = (b[6] & 0x0f) | 0x40; + b[8] = (b[8] & 0x3f) | 0x80; + return ( + hexBytes[b[0]] + + hexBytes[b[1]] + + hexBytes[b[2]] + + hexBytes[b[3]] + + '-' + + hexBytes[b[4]] + + hexBytes[b[5]] + + '-' + + hexBytes[b[6]] + + hexBytes[b[7]] + + '-' + + hexBytes[b[8]] + + hexBytes[b[9]] + + '-' + + hexBytes[b[10]] + + hexBytes[b[11]] + + hexBytes[b[12]] + + hexBytes[b[13]] + + hexBytes[b[14]] + + hexBytes[b[15]] + ); +}; +var hexBytes = []; +for (var i = 0; i < 256; i++) { + hexBytes[i] = (i + 0x100).toString(16).substr(1); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/values.js b/src/miniprogram_npm/miniprogram-licia/values.js new file mode 100644 index 0000000..985989e --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/values.js @@ -0,0 +1,10 @@ +var each = require('./each'); +exports = function(obj) { + var ret = []; + each(obj, function(val) { + ret.push(val); + }); + return ret; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/vlq.js b/src/miniprogram_npm/miniprogram-licia/vlq.js new file mode 100644 index 0000000..71e5c5d --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/vlq.js @@ -0,0 +1,69 @@ +var toArr = require('./toArr'); + +exports = { + encode: function(arr) { + arr = toArr(arr); + var ret = ''; + for (var i = 0, len = arr.length; i < len; i++) { + ret += encode(arr[i]); + } + return ret; + }, + decode: function(str) { + var ret = []; + var i = 0; + var len = str.length; + while (i < len) { + var value = 0; + var continuation = false; + var shift = 0; + do { + var digit = charToInt[str[i++]]; + continuation = (digit & VLQ_CONTINUATION_BIT) !== 0; + digit &= VLQ_BASE_MASK; + value = value + (digit << shift); + shift = shift + VLQ_BASE_SHIFT; + } while (continuation); + ret.push(fromVLQSigned(value)); + } + return ret; + } +}; +var charToInt = {}; +var intToChar = {}; +var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; +for (var i = 0, len = chars.length; i < len; i++) { + charToInt[chars[i]] = i; + intToChar[i] = chars[i]; +} +var VLQ_BASE_SHIFT = 5; +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; +var VLQ_BASE_MASK = VLQ_BASE - 1; +var VLQ_CONTINUATION_BIT = VLQ_BASE; +function encode(value) { + var ret = ''; + value = toVLQSigned(value); + do { + var digit = value & VLQ_BASE_MASK; + value >>>= VLQ_BASE_SHIFT; + if (value > 0) { + digit |= VLQ_CONTINUATION_BIT; + } + ret += intToChar[digit]; + } while (value > 0); + return ret; +} +function toVLQSigned(value) { + if (value < 0) { + return (-value << 1) + 1; + } else { + return (value << 1) + 0; + } +} +function fromVLQSigned(value) { + var negate = (value & 1) === 1; + value = value >> 1; + return negate ? -value : value; +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/waitUntil.js b/src/miniprogram_npm/miniprogram-licia/waitUntil.js new file mode 100644 index 0000000..5e724e9 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/waitUntil.js @@ -0,0 +1,36 @@ +var now = require('./now'); +exports = function(condition) { + var timeout = + arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var interval = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 250; + function evalCondition() { + return new Promise(function(resolve, reject) { + try { + resolve(condition()); + } catch (e) { + reject(e); + } + }); + } + return new Promise(function(resolve, reject) { + var startTime = now(); + var pollCondition = function() { + evalCondition().then(function(val) { + var elapsed = now() - startTime; + if (val) { + resolve(val); + } else if (timeout && elapsed >= timeout) { + reject( + Error('Wait timed out after '.concat(timeout, ' ms')) + ); + } else { + setTimeout(pollCondition, interval); + } + }, reject); + }; + pollCondition(); + }); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/waterfall.js b/src/miniprogram_npm/miniprogram-licia/waterfall.js new file mode 100644 index 0000000..8f11c48 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/waterfall.js @@ -0,0 +1,27 @@ +var noop = require('./noop'); +var nextTick = require('./nextTick'); +var restArgs = require('./restArgs'); +exports = function(tasks, cb) { + cb = cb || noop; + var current = 0; + var taskCb = restArgs(function(err, args) { + if (++current >= tasks.length || err) { + args.unshift(err); + nextTick(function() { + cb.apply(null, args); + }); + } else { + args.push(taskCb); + tasks[current].apply(null, args); + } + }); + if (tasks.length) { + tasks[0](taskCb); + } else { + nextTick(function() { + cb(); + }); + } +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/wordWrap.js b/src/miniprogram_npm/miniprogram-licia/wordWrap.js new file mode 100644 index 0000000..04713ed --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/wordWrap.js @@ -0,0 +1,49 @@ +var map = require('./map'); +var reduce = require('./reduce'); +var concat = require('./concat'); +var last = require('./last'); +var trim = require('./trim'); +exports = function(txt, width) { + var lines = txt.split('\n'); + return map(lines, function(line) { + return wrap(line, width); + }).join('\n'); +}; +var regWordBoundary = /(\S+\s+)/; +function wrap(txt, width) { + var chunks = reduce( + txt.split(regWordBoundary), + function(chunks, word) { + if (trim(word) === '') return chunks; + if (word.length > width) { + chunks = concat( + chunks, + word.match(new RegExp('.{1,'.concat(width, '}'), 'g')) + ); + } else { + chunks.push(word); + } + return chunks; + }, + [] + ); + var lines = reduce( + chunks, + function(lines, chunk) { + var lastLine = last(lines); + if (lastLine.length + chunk.length > width) { + if (trim(lastLine) === '') { + lines.pop(); + } + lines.push(chunk); + } else { + lines[lines.length - 1] = lastLine + chunk; + } + return lines; + }, + [chunks.shift()] + ); + return lines.join('\n'); +} + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/wordsToBytes.js b/src/miniprogram_npm/miniprogram-licia/wordsToBytes.js new file mode 100644 index 0000000..c3b9e22 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/wordsToBytes.js @@ -0,0 +1,9 @@ +exports = function(words) { + var bytes = []; + for (var b = 0, len = words.length * 32; b < len; b += 8) { + bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff); + } + return bytes; +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/wrap.js b/src/miniprogram_npm/miniprogram-licia/wrap.js new file mode 100644 index 0000000..e6ad71a --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/wrap.js @@ -0,0 +1,6 @@ +var partial = require('./partial'); +exports = function(fn, wrapper) { + return partial(wrapper, fn); +}; + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/wx.js b/src/miniprogram_npm/miniprogram-licia/wx.js new file mode 100644 index 0000000..d6d50d1 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/wx.js @@ -0,0 +1,69 @@ +var each = require('./each'); +var arrToMap = require('./arrToMap'); +var startWith = require('./startWith'); +var endWith = require('./endWith'); +var extend = require('./extend'); + +var noPromiseMethods = arrToMap([ + 'stopRecord', + 'getRecorderManager', + 'pauseVoice', + 'stopVoice', + 'pauseBackgroundAudio', + 'stopBackgroundAudio', + 'getBackgroundAudioManager', + 'createAudioContext', + 'createInnerAudioContext', + 'createVideoContext', + 'createCameraContext', + 'createMapContext', + 'canIUse', + 'startAccelerometer', + 'stopAccelerometer', + 'startCompass', + 'stopCompass', + 'onBLECharacteristicValueChange', + 'onBLEConnectionStateChange', + 'hideToast', + 'hideLoading', + 'showNavigationBarLoading', + 'hideNavigationBarLoading', + 'navigateBack', + 'createAnimation', + 'pageScrollTo', + 'createSelectorQuery', + 'createCanvasContext', + 'createContext', + 'drawCanvas', + 'hideKeyboard', + 'stopPullDownRefresh', + 'arrayBufferToBase64', + 'base64ToArrayBuffer' +]); +function needToPromisify(name) { + return ( + !noPromiseMethods[name] && + !startWith(name, 'on') && + !endWith(name, 'Sync') + ); +} +each(wx, function(fn, name) { + if (!needToPromisify(name)) return; + exports[name] = function(obj) { + return new Promise(function(resolve, reject) { + fn.call( + wx, + extend(obj, { + success: function(res) { + resolve(res); + }, + fail: function(res) { + reject(res); + } + }) + ); + }); + }; +}); + +module.exports = exports; diff --git a/src/miniprogram_npm/miniprogram-licia/zip.js b/src/miniprogram_npm/miniprogram-licia/zip.js new file mode 100644 index 0000000..1f96866 --- /dev/null +++ b/src/miniprogram_npm/miniprogram-licia/zip.js @@ -0,0 +1,5 @@ +var restArgs = require('./restArgs'); +var unzip = require('./unzip'); +exports = restArgs(unzip); + +module.exports = exports; diff --git a/src/miniprogram_npm/mp-html/index.js b/src/miniprogram_npm/mp-html/index.js new file mode 100644 index 0000000..3196d80 --- /dev/null +++ b/src/miniprogram_npm/mp-html/index.js @@ -0,0 +1,8 @@ +"use strict";function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}/*! + * mp-html v2.5.0 + * https://github.com/jin-yufeng/mp-html + * + * Released under the MIT license + * Author: Jin Yufeng + */ +var t=require("./parser"),n=[];Component({data:{nodes:[]},properties:{containerStyle:String,content:{type:String,value:"",observer:function(e){this.setContent(e)}},copyLink:{type:Boolean,value:!0},domain:String,errorImg:String,lazyLoad:Boolean,loadingImg:String,pauseVideo:{type:Boolean,value:!0},previewImg:{type:null,value:!0},scrollTable:Boolean,selectable:null,setTitle:{type:Boolean,value:!0},showImgMenu:{type:Boolean,value:!0},tagStyle:Object,useAnchor:null},created:function(){this.plugins=[];for(var e=n.length;e--;)this.plugins.push(new n[e](this))},detached:function(){this._hook("onDetached")},methods:{in:function(e,t,n){e&&t&&n&&(this._in={page:e,selector:t,scrollTop:n})},navigateTo:function(t,n){var i=this;return new Promise(function(o,r){if(!i.data.useAnchor)return void r(Error("Anchor is disabled"));var a=wx.createSelectorQuery().in(i._in?i._in.page:i).select((i._in?i._in.selector:"._root")+(t?"".concat(">>>","#").concat(t):"")).boundingClientRect();i._in?a.select(i._in.selector).scrollOffset().select(i._in.selector).boundingClientRect():a.selectViewport().scrollOffset(),a.exec(function(t){if(!t[0])return void r(Error("Label not found"));var a=t[1].scrollTop+t[0].top-(t[2]?t[2].top:0)+(n||parseInt(i.data.useAnchor)||0);i._in?i._in.page.setData(e({},i._in.scrollTop,a)):wx.pageScrollTo({scrollTop:a,duration:300}),o()})})},getText:function(e){var t="";return function e(n){for(var i=0;i"0"&&o.name[1]<"7";r&&t&&"\n"!==t[t.length-1]&&(t+="\n"),o.children&&e(o.children),r&&"\n"!==t[t.length-1]?t+="\n":"td"!==o.name&&"th"!==o.name||(t+="\t")}}}(e||this.data.nodes),t},getRect:function(){var e=this;return new Promise(function(t,n){wx.createSelectorQuery().in(e).select("._root").boundingClientRect().exec(function(e){return e[0]?t(e[0]):n(Error("Root label not found"))})})},pauseMedia:function(){for(var e=(this._videos||[]).length;e--;)this._videos[e].pause()},setPlaybackRate:function(e){this.playbackRate=e;for(var t=(this._videos||[]).length;t--;)this._videos[t].playbackRate(e)},setContent:function(e,n){var i=this;this.imgList&&n||(this.imgList=[]),this._videos=[];var o={},r=new t(this).parse(e);if(n)for(var a=this.data.nodes.length,s=r.length;s--;)o["nodes[".concat(a+s,"]")]=r[s];else o.nodes=r;if(this.setData(o,function(){i._hook("onLoad"),i.triggerEvent("load")}),this.data.lazyLoad||this.imgList._unloadimgs \ No newline at end of file diff --git a/src/miniprogram_npm/mp-html/index.wxss b/src/miniprogram_npm/mp-html/index.wxss new file mode 100644 index 0000000..5f74d06 --- /dev/null +++ b/src/miniprogram_npm/mp-html/index.wxss @@ -0,0 +1 @@ +._root{padding:1px 0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}._select{-webkit-user-select:text;user-select:text} \ No newline at end of file diff --git a/src/miniprogram_npm/mp-html/node/node.js b/src/miniprogram_npm/mp-html/node/node.js new file mode 100644 index 0000000..8fc562a --- /dev/null +++ b/src/miniprogram_npm/mp-html/node/node.js @@ -0,0 +1 @@ +"use strict";function t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,i)}return r}function e(e){for(var i=1;ii.src.length&&(o=0),ovar e={abbr:!0,b:!0,big:!0,code:!0,del:!0,em:!0,i:!0,ins:!0,label:!0,q:!0,small:!0,span:!0,strong:!0,sub:!0,sup:!0};module.exports=function(n,i){return e[n]||-1!==(i||"").indexOf("inline")};{{n.text}}\n \ No newline at end of file diff --git a/src/miniprogram_npm/mp-html/node/node.wxss b/src/miniprogram_npm/mp-html/node/node.wxss new file mode 100644 index 0000000..43a2fab --- /dev/null +++ b/src/miniprogram_npm/mp-html/node/node.wxss @@ -0,0 +1 @@ +._a{padding:1.5px 0 1.5px 0;color:#366092;word-break:break-all}._hover{text-decoration:underline;opacity:.7}._img{max-width:100%;-webkit-touch-callout:none}._b,._strong{font-weight:700}._code{font-family:monospace}._del{text-decoration:line-through}._em,._i{font-style:italic}._h1{font-size:2em}._h2{font-size:1.5em}._h3{font-size:1.17em}._h5{font-size:.83em}._h6{font-size:.67em}._h1,._h2,._h3,._h4,._h5,._h6{display:block;font-weight:700}._ins{text-decoration:underline}._li{display:list-item}._ol{list-style-type:decimal}._ol,._ul{display:block;padding-left:40px;margin:1em 0}._q::before{content:'"'}._q::after{content:'"'}._sub{font-size:smaller;vertical-align:sub}._sup{font-size:smaller;vertical-align:super}._tbody,._tfoot,._thead{display:table-row-group}._tr{display:table-row}._td,._th{display:table-cell;vertical-align:middle}._th{font-weight:700;text-align:center}._ul{list-style-type:disc}._ul ._ul{margin:0;list-style-type:circle}._ul ._ul ._ul{list-style-type:square}._abbr,._b,._code,._del,._em,._i,._ins,._label,._q,._span,._strong,._sub,._sup{display:inline}._blockquote,._div,._p{display:block} \ No newline at end of file diff --git a/src/miniprogram_npm/mp-html/parser.js b/src/miniprogram_npm/mp-html/parser.js new file mode 100644 index 0000000..20b87f6 --- /dev/null +++ b/src/miniprogram_npm/mp-html/parser.js @@ -0,0 +1 @@ +"use strict";function t(t,e){var s;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(s=i(t))||e&&t&&"number"==typeof t.length){s&&(t=s);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,l=!1;return{s:function(){s=t[Symbol.iterator]()},n:function(){var t=s.next();return o=t.done,t},e:function(t){l=!0,r=t},f:function(){try{o||null==s.return||s.return()}finally{if(l)throw r}}}}function i(t,i){if(t){if("string"==typeof t)return e(t,i);var s=Object.prototype.toString.call(t).slice(8,-1);return"Object"===s&&t.constructor&&(s=t.constructor.name),"Map"===s||"Set"===s?Array.from(t):"Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?e(t,i):void 0}}function e(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,s=new Array(i);e=-1;e--)(-1===e||t[e].c||!t[e].name||"div"!==t[e].name&&"p"!==t[e].name&&"h"!==t[e].name[0]||(t[e].attrs.style||"").includes("inline"))&&(i-e>=5&&t.splice(e+1,i-e,{name:"div",attrs:{},children:t.slice(e+1,i+1)}),i=e-1)}function r(t){this.options=t.data||{},this.tagStyle=Object.assign({},l.tagStyle,this.options.tagStyle),this.imgList=t.imgList||[],this.imgList._unloadimgs=0,this.plugins=t.plugins||[],this.attrs=Object.create(null),this.stack=[],this.nodes=[],this.pre=(this.options.containerStyle||"").includes("white-space")&&this.options.containerStyle.includes("pre")?2:0}function o(t){this.handler=t}var l={trustTags:s("a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video"),blockTags:s("address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section"),ignoreTags:s("area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr"),voidTags:s("area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr"),entities:{lt:"<",gt:">",quot:'"',apos:"'",ensp:" ",emsp:" ",nbsp:" ",semi:";",ndash:"–",mdash:"—",middot:"·",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",bull:"•",hellip:"…",larr:"←",uarr:"↑",rarr:"→",darr:"↓"},tagStyle:{address:"font-style:italic",big:"display:inline;font-size:1.2em",caption:"display:table-caption;text-align:center",center:"text-align:center",cite:"font-style:italic",dd:"margin-left:40px",mark:"background-color:yellow",pre:"font-family:monospace;white-space:pre",s:"text-decoration:line-through",small:"display:inline;font-size:0.8em",strike:"text-decoration:line-through",u:"text-decoration:underline"},svgDict:{animatetransform:"animateTransform",lineargradient:"linearGradient",viewbox:"viewBox",attributename:"attributeName",repeatcount:"repeatCount",repeatdur:"repeatDur",foreignobject:"foreignObject"}},h={},c=wx.getSystemInfoSync(),d=c.windowWidth,p=c.system,u=s(" ,\r,\n,\t,\f"),f=0;r.prototype.parse=function(t){for(var i=this.plugins.length;i--;)this.plugins[i].onUpdate&&(t=this.plugins[i].onUpdate(t,l)||t);for(new o(this).parse(t);this.stack.length;)this.popNode();return this.nodes.length>50&&a(this.nodes),this.nodes},r.prototype.expose=function(){for(var t=this.stack.length;t--;){var i=this.stack[t];if(i.c||"a"===i.name||"video"===i.name||"audio"===i.name)return;i.c=1}},r.prototype.hook=function(t){for(var i=this.plugins.length;i--;)if(this.plugins[i].onParse&&!1===this.plugins[i].onParse(t,this))return!1;return!0},r.prototype.getUrl=function(t){var i=this.options.domain;return"/"===t[0]?"/"===t[1]?t=(i?i.split("://")[0]:"http")+":"+t:i&&(t=i+t):!i||t.includes("data:")||t.includes("://")||(t=i+"/"+t),t},r.prototype.parseStyle=function(t){var i=t.attrs,e=(this.tagStyle[t.name]||"").split(";").concat((i.style||"").split(";")),s={},n="";i.id&&!this.xml&&(this.options.useAnchor?this.expose():"img"!==t.name&&"a"!==t.name&&"video"!==t.name&&"audio"!==t.name&&(i.id=void 0)),i.width&&(s.width=parseFloat(i.width)+(i.width.includes("%")?"%":"px"),i.width=void 0),i.height&&(s.height=parseFloat(i.height)+(i.height.includes("%")?"%":"px"),i.height=void 0);for(var a=0,r=e.length;a0||h.includes("safe"))n+=";".concat(l,":").concat(h);else if(!s[l]||h.includes("import")||!s[l].includes("import")){if(h.includes("url")){var c=h.indexOf("(")+1;if(c){for(;'"'===h[c]||"'"===h[c]||u[h[c]];)c++;h=h.substr(0,c)+this.getUrl(h.substr(c))}}else h.includes("rpx")&&(h=h.replace(/[0-9.]+\s*rpx/g,function(t){return parseFloat(t)*d/750+"px"}));s[l]=h}}}return t.attrs.style=n,s},r.prototype.onTagName=function(t){this.tagName=this.xml?t:t.toLowerCase(),"svg"===this.tagName&&(this.xml=(this.xml||0)+1,l.ignoreTags.style=void 0)},r.prototype.onAttrName=function(t){t=this.xml?t:t.toLowerCase(),"data-"===t.substr(0,5)?"data-src"!==t||this.attrs.src?"img"===this.tagName||"a"===this.tagName?this.attrName=t:this.attrName=void 0:this.attrName="src":(this.attrName=t,this.attrs[t]="T")},r.prototype.onAttrVal=function(t){var i=this.attrName||"";"style"===i||"href"===i?this.attrs[i]=n(t,!0):i.includes("src")?this.attrs[i]=this.getUrl(n(t,!0)):i&&(this.attrs[i]=t)},r.prototype.onOpenTag=function(t){var i=Object.create(null);i.name=this.tagName,i.attrs=this.attrs,this.attrs=Object.create(null);var e=i.attrs,s=this.stack[this.stack.length-1],n=s?s.children:this.nodes,a=this.xml?t:l.voidTags[i.name];if(h[i.name]&&(e.class=h[i.name]+(e.class?" "+e.class:"")),"embed"===i.name){var r=e.src||"";r.includes(".mp4")||r.includes(".3gp")||r.includes(".m3u8")||(e.type||"").includes("video")?i.name="video":(r.includes(".mp3")||r.includes(".wav")||r.includes(".aac")||r.includes(".m4a")||(e.type||"").includes("audio"))&&(i.name="audio"),e.autostart&&(e.autoplay="T"),e.controls="T"}if("video"!==i.name&&"audio"!==i.name||("video"!==i.name||e.id||(e.id="v"+f++),e.controls||e.autoplay||(e.controls="T"),i.src=[],e.src&&(i.src.push(e.src),e.src=void 0),this.expose()),a){if(!this.hook(i)||l.ignoreTags[i.name])return void("base"!==i.name||this.options.domain?"source"===i.name&&s&&("video"===s.name||"audio"===s.name)&&e.src&&s.src.push(e.src):this.options.domain=e.href);var o=this.parseStyle(i);if("img"===i.name){if(e.src&&(e.src.includes("webp")&&(i.webp="T"),e.src.includes("data:")&&"all"!==this.options.previewImg&&!e["original-src"]&&(e.ignore="T"),!e.ignore||i.webp||e.src.includes("cloud://"))){for(var c=this.stack.length;c--;){var p=this.stack[c];"table"!==p.name||i.webp||e.src.includes("cloud://")||(!o.display||o.display.includes("inline")?i.t="inline-block":i.t=o.display,o.display=void 0);var u=p.attrs.style||"";if(!u.includes("flex:")||u.includes("flex:0")||u.includes("flex: 0")||o.width&&!(parseInt(o.width)>100))if(u.includes("flex")&&"100%"===o.width)for(var g=c+1;g.5?y[b].toUpperCase():y[b];x+=y.substr(b),y=x}}this.imgList.push(y),i.t||(this.imgList._unloadimgs+=1)}"inline"===o.display&&(o.display=""),e.ignore&&(o["max-width"]=o["max-width"]||"100%",e.style+=";-webkit-touch-callout:none"),parseInt(o.width)>d&&(o.height=void 0),isNaN(parseInt(o.width))||(i.w="T"),!isNaN(parseInt(o.height))&&(!o.height.includes("%")||s&&(s.attrs.style||"").includes("height"))&&(i.h="T"),i.w&&i.h&&o["object-fit"]&&("contain"===o["object-fit"]?i.m="aspectFit":"cover"===o["object-fit"]&&(i.m="aspectFill"))}else if("svg"===i.name)return n.push(i),this.stack.push(i),void this.popNode();for(var w in o)o[w]&&(e.style+=";".concat(w,":").concat(o[w].replace(" !important","")));e.style=e.style.substr(1)||void 0}else("pre"===i.name||(e.style||"").includes("white-space")&&e.style.includes("pre"))&&2!==this.pre&&(this.pre=i.pre=1),i.children=[],this.stack.push(i);n.push(i)},r.prototype.onCloseTag=function(t){t=this.xml?t:t.toLowerCase();var i;for(i=this.stack.length;i--&&this.stack[i].name!==t;);if(-1!==i)for(;this.stack.length>i;)this.popNode();else if("p"===t||"br"===t){var e=this.stack.length?this.stack[this.stack.length-1].children:this.nodes;e.push({name:t,attrs:{class:h[t],style:this.tagStyle[t]}})}},r.prototype.popNode=function(){var i=this.stack.pop(),e=i.attrs,s=i.children,n=this.stack[this.stack.length-1],r=n?n.children:this.nodes;if(!this.hook(i)||l.ignoreTags[i.name])return"title"===i.name&&s.length&&"text"===s[0].type&&this.options.setTitle&&wx.setNavigationBarTitle({title:s[0].text}),void r.pop();if(i.pre&&2!==this.pre){this.pre=i.pre=void 0;for(var o=this.stack.length;o--;)this.stack[o].pre&&(this.pre=1)}if("svg"===i.name){if(this.xml>1)return void this.xml--;var h="",c=e.style;return e.style="",e.xmlns="http://www.w3.org/2000/svg",function i(e){if("text"===e.type)return void(h+=e.text);var s=l.svgDict[e.name]||e.name;if("foreignObject"===s){var n,a=t(e.children||[]);try{for(a.s();!(n=a.n()).done;){var r=n.value;if(r.attrs&&!r.attrs.xmlns){r.attrs.xmlns="http://www.w3.org/1999/xhtml";break}}}catch(t){a.e(t)}finally{a.f()}}h+="<"+s;for(var o in e.attrs){var c=e.attrs[o];c&&(h+=" ".concat(l.svgDict[o]||o,'="').concat(c.replace(/"/g,""),'"'))}if(e.children){h+=">";for(var d=0;d"}else h+="/>"}(i),i.name="img",i.attrs={src:"data:image/svg+xml;utf8,"+h.replace(/#/g,"%23"),style:c,ignore:"T"},i.children=void 0,this.xml=!1,void(l.ignoreTags.style=!0)}var p={};if(e.align&&("table"===i.name?"center"===e.align?p["margin-inline-start"]=p["margin-inline-end"]="auto":p.float=e.align:p["text-align"]=e.align,e.align=void 0),e.dir&&(p.direction=e.dir,e.dir=void 0),"font"===i.name&&(e.color&&(p.color=e.color,e.color=void 0),e.face&&(p["font-family"]=e.face,e.face=void 0),e.size)){var u=parseInt(e.size);isNaN(u)||(u<1?u=1:u>7&&(u=7),p["font-size"]=["x-small","small","medium","large","x-large","xx-large","xxx-large"][u-1]),e.size=void 0}if((e.class||"").includes("align-center")&&(p["text-align"]="center"),Object.assign(p,this.parseStyle(i)),"table"!==i.name&&parseInt(p.width)>d&&(p["max-width"]="100%",p["box-sizing"]="border-box"),l.blockTags[i.name])i.name="div";else if(l.trustTags[i.name]||this.xml)if("a"===i.name||"ad"===i.name)this.expose();else if("video"===i.name||"audio"===i.name)(p.height||"").includes("auto")&&(p.height=void 0),i.children=void 0;else if("ul"!==i.name&&"ol"!==i.name||!i.c)if("table"===i.name){var f=parseFloat(e.cellpadding),g=parseFloat(e.cellspacing),m=parseFloat(e.border),v=p["border-color"],y=p["border-style"];if(i.c&&(isNaN(f)&&(f=2),isNaN(g)&&(g=2)),m&&(e.style+=";border:".concat(m,"px ").concat(y||"solid"," ").concat(v||"gray")),i.flag&&i.c){i.flag=void 0,p.display="grid","collapse"===p["border-collapse"]&&(p["border-collapse"]=void 0,g=0),g?(p["grid-gap"]=g+"px",p.padding=g+"px"):m&&(e.style+=";border-left:0;border-top:0");var b=[],x=[],w=[],k={};!function i(e){for(var s=0;s=50&&i.c&&!(p.display||"").includes("flex")&&a(s);for(var G in p)if(p[G]){var W=";".concat(G,":").concat(p[G].replace(" !important",""));E&&(G.includes("flex")&&"flex-direction"!==G||"align-self"===G||G.includes("grid")||"-"===p[G][0]||G.includes("width")&&W.includes("%"))?(i.f+=W,"width"===G&&(e.style+=";width:100%")):e.style+=W}e.style=e.style.substr(1)||void 0},r.prototype.onText=function(t){if(!this.pre){for(var i,e="",s=0,a=t.length;s"===this.content[this.i]||i&&">"===this.content[this.i+1])&&(t&&this.handler[t](this.content.substring(this.start,this.i)),this.i+=i?2:1,this.start=this.i,this.handler.onOpenTag(i),"script"===this.handler.tagName?(this.i=this.content.indexOf("",this.i),-1!==this.i&&(this.i+=2,this.start=this.i),this.state=this.endTag):this.state=this.text,!0)},o.prototype.text=function(){if(this.i=this.content.indexOf("<",this.i),-1===this.i)return void(this.start="a"&&t<="z"||t>="A"&&t<="Z")this.start!==this.i&&this.handler.onText(this.content.substring(this.start,this.i)),this.start=++this.i,this.state=this.tagName;else if("/"===t||"!"===t||"?"===t){this.start!==this.i&&this.handler.onText(this.content.substring(this.start,this.i));var i=this.content[this.i+2];if("/"===t&&(i>="a"&&i<="z"||i>="A"&&i<="Z"))return this.i+=2,this.start=this.i,void(this.state=this.endTag);var e="--\x3e";"!"===t&&"-"===this.content[this.i+2]&&"-"===this.content[this.i+3]||(e=">"),this.i=this.content.indexOf(e,this.i),-1!==this.i&&(this.i+=e.length,this.start=this.i)}else this.i++},o.prototype.tagName=function(){if(u[this.content[this.i]]){for(this.handler.onTagName(this.content.substring(this.start,this.i));u[this.content[++this.i]];);this.i"===t||"/"===t){if(this.handler.onCloseTag(this.content.substring(this.start,this.i)),">"!==t&&(this.i=this.content.indexOf(">",this.i),-1===this.i))return;this.start=++this.i,this.state=this.text}else this.i++},module.exports=r; \ No newline at end of file diff --git a/src/pages/classify/index.json b/src/pages/classify/index.json index 41ae150..e312441 100644 --- a/src/pages/classify/index.json +++ b/src/pages/classify/index.json @@ -3,6 +3,6 @@ "navigationBarTitleText": "分类", "usingComponents": { "van-icon": "@vant/weapp/icon/index", - "pagination":"/components/pagination/index" + "van-divider": "@vant/weapp/divider/index" } } diff --git a/src/pages/classify/index.scss b/src/pages/classify/index.scss index 67c5421..735cd96 100644 --- a/src/pages/classify/index.scss +++ b/src/pages/classify/index.scss @@ -115,4 +115,9 @@ page { } } } + .none { + display: block; + margin: 30rpx auto; + width: 80%; + } } diff --git a/src/pages/classify/index.ts b/src/pages/classify/index.ts index 523c307..5aae30b 100644 --- a/src/pages/classify/index.ts +++ b/src/pages/classify/index.ts @@ -14,7 +14,7 @@ Page({ recommendPagination: { page: 1, pages: 1, - count: 1, + count: 0, }, cateList: [] as any, @@ -22,7 +22,10 @@ Page({ CateSecondId: '', cateSecondList: [] as any, }, - onLoad() { + onLoad(options) { + this.setData({ + CateId: options.id, + }); app.waitLogin().then(() => { this.getCateList(); this.cateCallback(this.data.CateId, this.data.CateSecondId); @@ -37,6 +40,11 @@ Page({ this.setData({ cateList: res, }); + if (this.data.CateId) { + this.setData({ + cateSecondList: res.find((item: any) => item.Id === this.data.CateId)?.Children || [], + }); + } }); }, handleCate(e) { @@ -75,7 +83,7 @@ Page({ recommendPagination: { page: 1, pages: 1, - count: 1, + count: this.data.CateSecondId ? 1 : 0, }, }); this.getList(1, CateId, CateSecondId); diff --git a/src/pages/classify/index.wxml b/src/pages/classify/index.wxml index ac29712..3dd0126 100644 --- a/src/pages/classify/index.wxml +++ b/src/pages/classify/index.wxml @@ -1,25 +1,13 @@ 全部 - + {{item.CateName}} 全部 - + {{item.CateName}} @@ -33,13 +21,7 @@ {{item.BrowseNum}} - + 已收藏 @@ -50,8 +32,7 @@ - - + @@ -62,13 +43,7 @@ {{item.BrowseNum}} - + 已收藏 @@ -79,6 +54,13 @@ - + + + + + 加载中... + + 没有更多了 +