@dcloudio/vue-cli-plugin-uni 2.0.2-4080720251210002 → 2.0.2-5000420260318002
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/chain-webpack.js +1 -3
- package/lib/env.js +14 -3
- package/lib/mp/index.js +13 -1
- package/lib/mp/utils.js +55 -0
- package/package.json +3 -3
- package/packages/app-vue-style-loader/lib/addStylesClient.js +8 -1
- package/packages/h5-vue-style-loader/lib/addStylesClient.js +11 -1
- package/packages/mp-vue/dist/mp.runtime.esm.js +220 -5
- package/packages/uni-cloud/dist/index.js +2 -2
package/lib/chain-webpack.js
CHANGED
|
@@ -149,9 +149,7 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) {
|
|
|
149
149
|
|
|
150
150
|
platformOptions.chainWebpack(webpackConfig, vueOptions, api)
|
|
151
151
|
// define
|
|
152
|
-
const deferredCreated = process.env.UNI_PLATFORM === 'mp-toutiao' ||
|
|
153
|
-
process.env.UNI_PLATFORM === 'quickapp-webview' ||
|
|
154
|
-
process.env.UNI_PLATFORM === 'mp-harmony'
|
|
152
|
+
const deferredCreated = process.env.UNI_PLATFORM === 'mp-toutiao' || process.env.UNI_PLATFORM === 'quickapp-webview'
|
|
155
153
|
const defines = {
|
|
156
154
|
// UNI_ENV好像没用
|
|
157
155
|
__UNI_FEATURE_PROMISE__: JSON.stringify(false),
|
package/lib/env.js
CHANGED
|
@@ -141,12 +141,20 @@ if (!process.env.UNI_CLOUD_PROVIDER && process.env.UNI_CLOUD_SPACES) {
|
|
|
141
141
|
}
|
|
142
142
|
switch (space.provider) {
|
|
143
143
|
case 'aliyun':
|
|
144
|
-
case 'dcloud':
|
|
145
144
|
return {
|
|
146
145
|
provider: space.provider || 'aliyun',
|
|
147
146
|
spaceName: space.name,
|
|
148
147
|
spaceId: space.id,
|
|
149
148
|
clientSecret: space.clientSecret,
|
|
149
|
+
endpoint: space.apiEndpoint,
|
|
150
|
+
failoverEndpoint: space.failoverEndpoint
|
|
151
|
+
}
|
|
152
|
+
case 'dcloud':
|
|
153
|
+
return {
|
|
154
|
+
provider: space.provider || 'dcloud',
|
|
155
|
+
spaceName: space.name,
|
|
156
|
+
spaceId: space.id,
|
|
157
|
+
clientSecret: space.clientSecret,
|
|
150
158
|
endpoint: space.apiEndpoint
|
|
151
159
|
}
|
|
152
160
|
case 'alipay': {
|
|
@@ -156,7 +164,9 @@ if (!process.env.UNI_CLOUD_PROVIDER && process.env.UNI_CLOUD_SPACES) {
|
|
|
156
164
|
spaceId: space.id,
|
|
157
165
|
spaceAppId: space.spaceAppId,
|
|
158
166
|
accessKey: space.accessKey,
|
|
159
|
-
secretKey: space.secretKey
|
|
167
|
+
secretKey: space.secretKey,
|
|
168
|
+
endpoint: space.apiEndpoint,
|
|
169
|
+
failoverEndpoint: space.failoverEndpoint
|
|
160
170
|
}
|
|
161
171
|
}
|
|
162
172
|
case 'tencent':
|
|
@@ -164,7 +174,8 @@ if (!process.env.UNI_CLOUD_PROVIDER && process.env.UNI_CLOUD_SPACES) {
|
|
|
164
174
|
return {
|
|
165
175
|
provider: space.provider,
|
|
166
176
|
spaceName: space.name,
|
|
167
|
-
spaceId: space.id
|
|
177
|
+
spaceId: space.id,
|
|
178
|
+
failoverEndpoint: space.failoverEndpoint
|
|
168
179
|
}
|
|
169
180
|
}
|
|
170
181
|
}
|
package/lib/mp/index.js
CHANGED
|
@@ -12,7 +12,8 @@ const {
|
|
|
12
12
|
getPlatformUniCloud,
|
|
13
13
|
createSource,
|
|
14
14
|
deleteAsset,
|
|
15
|
-
getDevUniConsoleCode
|
|
15
|
+
getDevUniConsoleCode,
|
|
16
|
+
runByHBuilderX
|
|
16
17
|
} = require('@dcloudio/uni-cli-shared')
|
|
17
18
|
|
|
18
19
|
const WebpackUniAppPlugin = require('../../packages/webpack-uni-app-loader/plugin/index')
|
|
@@ -22,6 +23,7 @@ const modifyVueLoader = require('../vue-loader')
|
|
|
22
23
|
const {
|
|
23
24
|
createTemplateCacheLoader
|
|
24
25
|
} = require('../cache-loader')
|
|
26
|
+
const { getFilterPaths } = require('./utils')
|
|
25
27
|
|
|
26
28
|
function createUniMPPlugin () {
|
|
27
29
|
const WebpackUniMPPlugin = require('@dcloudio/webpack-uni-mp-loader/lib/plugin/index-new')
|
|
@@ -196,6 +198,16 @@ module.exports = {
|
|
|
196
198
|
...createWxMpIndependentPlugins()
|
|
197
199
|
]
|
|
198
200
|
|
|
201
|
+
try {
|
|
202
|
+
if (runByHBuilderX) {
|
|
203
|
+
require(path.resolve(process.env.UNI_HBUILDERX_PLUGINS, 'uni_helpers/lib/bytenode'))
|
|
204
|
+
const {
|
|
205
|
+
UUWP
|
|
206
|
+
} = require(path.resolve(process.env.UNI_HBUILDERX_PLUGINS, 'uni_helpers'))
|
|
207
|
+
plugins.push(new UUWP(getFilterPaths))
|
|
208
|
+
}
|
|
209
|
+
} catch (e) {}
|
|
210
|
+
|
|
199
211
|
if ((process.env.UNI_SUBPACKGE || process.env.UNI_MP_PLUGIN) && process.env.UNI_SUBPACKGE !== 'main') {
|
|
200
212
|
plugins.push(new PreprocessAssetsPlugin())
|
|
201
213
|
}
|
package/lib/mp/utils.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const path = require('path')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const { parseJson } = require('@dcloudio/uni-cli-shared/lib/json')
|
|
4
|
+
const { normalizePath } = require('@dcloudio/uni-cli-shared/lib/util')
|
|
5
|
+
|
|
6
|
+
function getFilterPaths () {
|
|
7
|
+
const inputDir = normalizePath(process.env.UNI_INPUT_DIR)
|
|
8
|
+
const pagesJsonPath = path.join(inputDir, 'pages.json')
|
|
9
|
+
const pagesJson = parseJson(
|
|
10
|
+
fs.readFileSync(pagesJsonPath, 'utf-8'),
|
|
11
|
+
true
|
|
12
|
+
)
|
|
13
|
+
const allPagesJson = parseJson(
|
|
14
|
+
fs.readFileSync(pagesJsonPath, 'utf-8'),
|
|
15
|
+
false
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
const pages = pagesJson.pages.map(page =>
|
|
19
|
+
normalizePath(path.join(inputDir, page.path))
|
|
20
|
+
)
|
|
21
|
+
const allPages = allPagesJson.pages.map(page =>
|
|
22
|
+
normalizePath(path.join(inputDir, page.path))
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
const subPackages = (pagesJson.subPackages || pagesJson.subpackages || [])
|
|
26
|
+
.map(subPackage =>
|
|
27
|
+
subPackage.pages.map(page =>
|
|
28
|
+
normalizePath(path.join(inputDir, subPackage.root, page.path))
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
.flat()
|
|
32
|
+
const allSubPackages = (
|
|
33
|
+
allPagesJson.subPackages ||
|
|
34
|
+
allPagesJson.subpackages ||
|
|
35
|
+
[]
|
|
36
|
+
)
|
|
37
|
+
.map(subPackage =>
|
|
38
|
+
subPackage.pages.map(page =>
|
|
39
|
+
normalizePath(path.join(inputDir, subPackage.root, page.path))
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
.flat()
|
|
43
|
+
const EXTNAME_VUE = ['.vue', '.nvue']
|
|
44
|
+
const filterFiles = [
|
|
45
|
+
...allPages.filter(page => !pages.includes(page)),
|
|
46
|
+
...allSubPackages.filter(page => !subPackages.includes(page))
|
|
47
|
+
]
|
|
48
|
+
.map(file => EXTNAME_VUE.map(ext => file + ext))
|
|
49
|
+
.flat()
|
|
50
|
+
return filterFiles
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
module.exports = {
|
|
54
|
+
getFilterPaths
|
|
55
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcloudio/vue-cli-plugin-uni",
|
|
3
|
-
"version": "2.0.2-
|
|
3
|
+
"version": "2.0.2-5000420260318002",
|
|
4
4
|
"description": "uni-app plugin for vue-cli 3",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"author": "fxy060608",
|
|
18
18
|
"license": "Apache-2.0",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@dcloudio/uni-stat": "^2.0.2-
|
|
20
|
+
"@dcloudio/uni-stat": "^2.0.2-5000420260318002",
|
|
21
21
|
"buffer-json": "^2.0.0",
|
|
22
22
|
"clone-deep": "^4.0.1",
|
|
23
23
|
"cross-env": "^5.2.0",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"copy-webpack-plugin": ">=5",
|
|
42
42
|
"postcss": ">=7"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "5ee212292b880f06dde5d198e5ceb09f9d3769e1"
|
|
45
45
|
}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Author Tobias Koppers @sokra
|
|
4
4
|
Modified by Evan You @yyx990803
|
|
5
5
|
*/
|
|
6
|
+
const {
|
|
7
|
+
createRpx2Unit,
|
|
8
|
+
getRpx2Unit
|
|
9
|
+
} = require('@dcloudio/uni-cli-shared/lib/style')
|
|
6
10
|
|
|
7
11
|
import listToStyles from './listToStyles'
|
|
8
12
|
|
|
@@ -230,6 +234,8 @@ var VAR_WINDOW_LEFT = /var\(--window-left\)/gi
|
|
|
230
234
|
var VAR_WINDOW_RIGHT = /var\(--window-right\)/gi
|
|
231
235
|
|
|
232
236
|
var statusBarHeight = false
|
|
237
|
+
var rpx2unit = createRpx2Unit(getRpx2Unit().unit, getRpx2Unit().unitRatio, getRpx2Unit().unitPrecision)
|
|
238
|
+
|
|
233
239
|
function processCss(css) {
|
|
234
240
|
if (!uni.canIUse('css.var')) { //不支持 css 变量
|
|
235
241
|
if (statusBarHeight === false) {
|
|
@@ -246,9 +252,10 @@ function processCss(css) {
|
|
|
246
252
|
.replace(VAR_WINDOW_LEFT, '0px')
|
|
247
253
|
.replace(VAR_WINDOW_RIGHT, '0px')
|
|
248
254
|
}
|
|
255
|
+
const dynamicRpx = (__uniConfig.globalStyle || __uniConfig.window || {}).dynamicRpx === true
|
|
249
256
|
return css.replace(/\{[\s\S]+?\}|@media.+?\{/g, function (css) {
|
|
250
257
|
return css.replace(UPX_RE, function (a, b) {
|
|
251
|
-
return uni.upx2px(b) + 'px'
|
|
258
|
+
return dynamicRpx ? rpx2unit(b) : uni.upx2px(b) + 'px'
|
|
252
259
|
})
|
|
253
260
|
})
|
|
254
261
|
}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Author Tobias Koppers @sokra
|
|
4
4
|
Modified by Evan You @yyx990803
|
|
5
5
|
*/
|
|
6
|
+
const {
|
|
7
|
+
createRpx2Unit,
|
|
8
|
+
getRpx2Unit
|
|
9
|
+
} = require('@dcloudio/uni-cli-shared/lib/style')
|
|
6
10
|
|
|
7
11
|
import listToStyles from './listToStyles'
|
|
8
12
|
|
|
@@ -239,6 +243,9 @@ var VAR_WINDOW_BOTTOM = /var\(--window-bottom\)/gi
|
|
|
239
243
|
var VAR_WINDOW_LEFT = /var\(--window-left\)/gi
|
|
240
244
|
var VAR_WINDOW_RIGHT = /var\(--window-right\)/gi
|
|
241
245
|
|
|
246
|
+
var rpx2unit = createRpx2Unit(getRpx2Unit().unit, getRpx2Unit().unitRatio, getRpx2Unit().unitPrecision)
|
|
247
|
+
var dynamicRpx = null
|
|
248
|
+
|
|
242
249
|
function processCss(css) {
|
|
243
250
|
var page = getPage()
|
|
244
251
|
if (typeof uni !== 'undefined' && !uni.canIUse('css.var')) { //不支持 css 变量
|
|
@@ -258,7 +265,10 @@ function processCss(css) {
|
|
|
258
265
|
return css
|
|
259
266
|
}
|
|
260
267
|
return css.replace(UPX_RE, function (a, b) {
|
|
261
|
-
|
|
268
|
+
if (dynamicRpx === null) {
|
|
269
|
+
dynamicRpx = __uniConfig && (__uniConfig.globalStyle || __uniConfig.window || {}).dynamicRpx === true
|
|
270
|
+
}
|
|
271
|
+
return dynamicRpx ? rpx2unit(b) : uni.upx2px(b) + 'px'
|
|
262
272
|
})
|
|
263
273
|
})
|
|
264
274
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Vue.js v2.6.11
|
|
3
|
-
* (c) 2014-
|
|
3
|
+
* (c) 2014-2025 Evan You
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
/* */
|
|
@@ -513,7 +513,7 @@ var hasProto = '__proto__' in {};
|
|
|
513
513
|
var inBrowser = typeof window !== 'undefined';
|
|
514
514
|
var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
|
|
515
515
|
var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
|
|
516
|
-
var UA = inBrowser && window.navigator && window.navigator.userAgent.toLowerCase();
|
|
516
|
+
var UA = inBrowser && window.navigator && window.navigator.userAgent && window.navigator.userAgent.toLowerCase();
|
|
517
517
|
var isIE = UA && /msie|trident/.test(UA);
|
|
518
518
|
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
|
|
519
519
|
var isEdge = UA && UA.indexOf('edge/') > 0;
|
|
@@ -2677,7 +2677,8 @@ function renderSlot (
|
|
|
2677
2677
|
name,
|
|
2678
2678
|
fallback,
|
|
2679
2679
|
props,
|
|
2680
|
-
bindObject
|
|
2680
|
+
bindObject,
|
|
2681
|
+
slotVm
|
|
2681
2682
|
) {
|
|
2682
2683
|
var scopedSlotFn = this.$scopedSlots[name];
|
|
2683
2684
|
var nodes;
|
|
@@ -2693,7 +2694,7 @@ function renderSlot (
|
|
|
2693
2694
|
props = extend(extend({}, bindObject), props);
|
|
2694
2695
|
}
|
|
2695
2696
|
// fixed by xxxxxx app-plus scopedSlot
|
|
2696
|
-
nodes = scopedSlotFn(props, this, props._i) || fallback;
|
|
2697
|
+
nodes = scopedSlotFn(props, slotVm || this, props._i) || fallback;
|
|
2697
2698
|
} else {
|
|
2698
2699
|
nodes = this.$slots[name] || fallback;
|
|
2699
2700
|
}
|
|
@@ -5535,6 +5536,218 @@ function type(obj) {
|
|
|
5535
5536
|
return Object.prototype.toString.call(obj)
|
|
5536
5537
|
}
|
|
5537
5538
|
|
|
5539
|
+
/**
|
|
5540
|
+
* rfdc v1.4.1
|
|
5541
|
+
* David Mark Clements <david.clements@nearform.com>
|
|
5542
|
+
* Really Fast Deep Clone
|
|
5543
|
+
* [npm](https://www.npmjs.com/package/rfdc) [homePage](https://github.com/davidmarkclements/rfdc.git)
|
|
5544
|
+
*/
|
|
5545
|
+
|
|
5546
|
+
/**
|
|
5547
|
+
* @typedef {{proto?: boolean; circles?: boolean; reviver: (key: string, value: any) => any; constructorHandlers?: any[];}} Options
|
|
5548
|
+
*/
|
|
5549
|
+
|
|
5550
|
+
function copyBuffer(cur) {
|
|
5551
|
+
if (cur instanceof Buffer) {
|
|
5552
|
+
return Buffer.from(cur)
|
|
5553
|
+
}
|
|
5554
|
+
|
|
5555
|
+
return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)
|
|
5556
|
+
}
|
|
5557
|
+
|
|
5558
|
+
/**
|
|
5559
|
+
*
|
|
5560
|
+
* @param {Options} opts
|
|
5561
|
+
* @returns {(o: any) => any}
|
|
5562
|
+
*/
|
|
5563
|
+
function rfdc(opts) {
|
|
5564
|
+
opts = opts || {};
|
|
5565
|
+
if (opts.circles) { return rfdcCircles(opts) }
|
|
5566
|
+
|
|
5567
|
+
var constructorHandlers = new Map();
|
|
5568
|
+
constructorHandlers.set(Date, function (o) { return new Date(o); });
|
|
5569
|
+
constructorHandlers.set(Map, function (o, fn) { return new Map(cloneArray(Array.from(o), fn)); });
|
|
5570
|
+
constructorHandlers.set(Set, function (o, fn) { return new Set(cloneArray(Array.from(o), fn)); });
|
|
5571
|
+
if (opts.constructorHandlers) {
|
|
5572
|
+
opts.constructorHandlers.forEach(function (handler) {
|
|
5573
|
+
constructorHandlers.set(handler[0], handler[1]);
|
|
5574
|
+
});
|
|
5575
|
+
}
|
|
5576
|
+
|
|
5577
|
+
var handler = null;
|
|
5578
|
+
|
|
5579
|
+
return opts.proto ? cloneProto : clone
|
|
5580
|
+
|
|
5581
|
+
function cloneArray(a, fn) {
|
|
5582
|
+
var keys = Object.keys(a);
|
|
5583
|
+
var a2 = new Array(keys.length);
|
|
5584
|
+
for (var i = 0; i < keys.length; i++) {
|
|
5585
|
+
var k = keys[i];
|
|
5586
|
+
var cur = a[k];
|
|
5587
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5588
|
+
a2[k] = cur;
|
|
5589
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5590
|
+
a2[k] = handler(cur, fn);
|
|
5591
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5592
|
+
a2[k] = copyBuffer(cur);
|
|
5593
|
+
} else {
|
|
5594
|
+
a2[k] = fn(cur);
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
return a2
|
|
5598
|
+
}
|
|
5599
|
+
|
|
5600
|
+
function clone(o) {
|
|
5601
|
+
if (typeof o !== 'object' || o === null) { return o }
|
|
5602
|
+
if (Array.isArray(o)) { return cloneArray(o, clone) }
|
|
5603
|
+
if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
|
|
5604
|
+
return handler(o, clone)
|
|
5605
|
+
}
|
|
5606
|
+
var o2 = {};
|
|
5607
|
+
for (var k in o) {
|
|
5608
|
+
if (Object.hasOwnProperty.call(o, k) === false) { continue }
|
|
5609
|
+
var cur = o[k];
|
|
5610
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5611
|
+
o2[k] = cur;
|
|
5612
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5613
|
+
o2[k] = handler(cur, clone);
|
|
5614
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5615
|
+
o2[k] = copyBuffer(cur);
|
|
5616
|
+
} else {
|
|
5617
|
+
o2[k] = clone(opts.reviver ? opts.reviver(k, cur) : cur);
|
|
5618
|
+
}
|
|
5619
|
+
}
|
|
5620
|
+
return o2
|
|
5621
|
+
}
|
|
5622
|
+
|
|
5623
|
+
function cloneProto(o) {
|
|
5624
|
+
if (typeof o !== 'object' || o === null) { return o }
|
|
5625
|
+
if (Array.isArray(o)) { return cloneArray(o, cloneProto) }
|
|
5626
|
+
if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
|
|
5627
|
+
return handler(o, cloneProto)
|
|
5628
|
+
}
|
|
5629
|
+
var o2 = {};
|
|
5630
|
+
for (var k in o) {
|
|
5631
|
+
var cur = o[k];
|
|
5632
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5633
|
+
o2[k] = cur;
|
|
5634
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5635
|
+
o2[k] = handler(cur, cloneProto);
|
|
5636
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5637
|
+
o2[k] = copyBuffer(cur);
|
|
5638
|
+
} else {
|
|
5639
|
+
o2[k] = cloneProto(opts.reviver ? opts.reviver(k, cur) : cur);
|
|
5640
|
+
}
|
|
5641
|
+
}
|
|
5642
|
+
return o2
|
|
5643
|
+
}
|
|
5644
|
+
}
|
|
5645
|
+
|
|
5646
|
+
function rfdcCircles(opts) {
|
|
5647
|
+
var refs = [];
|
|
5648
|
+
var refsNew = [];
|
|
5649
|
+
|
|
5650
|
+
var constructorHandlers = new Map();
|
|
5651
|
+
constructorHandlers.set(Date, function (o) { return new Date(o); });
|
|
5652
|
+
constructorHandlers.set(Map, function (o, fn) { return new Map(cloneArray(Array.from(o), fn)); });
|
|
5653
|
+
constructorHandlers.set(Set, function (o, fn) { return new Set(cloneArray(Array.from(o), fn)); });
|
|
5654
|
+
if (opts.constructorHandlers) {
|
|
5655
|
+
opts.constructorHandlers.forEach(function (handler) {
|
|
5656
|
+
constructorHandlers.set(handler[0], handler[1]);
|
|
5657
|
+
});
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5660
|
+
var handler = null;
|
|
5661
|
+
return opts.proto ? cloneProto : clone
|
|
5662
|
+
|
|
5663
|
+
function cloneArray(a, fn) {
|
|
5664
|
+
var keys = Object.keys(a);
|
|
5665
|
+
var a2 = new Array(keys.length);
|
|
5666
|
+
for (var i = 0; i < keys.length; i++) {
|
|
5667
|
+
var k = keys[i];
|
|
5668
|
+
var cur = a[k];
|
|
5669
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5670
|
+
a2[k] = cur;
|
|
5671
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5672
|
+
a2[k] = handler(cur, fn);
|
|
5673
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5674
|
+
a2[k] = copyBuffer(cur);
|
|
5675
|
+
} else {
|
|
5676
|
+
var index = refs.indexOf(cur);
|
|
5677
|
+
if (index !== -1) {
|
|
5678
|
+
a2[k] = refsNew[index];
|
|
5679
|
+
} else {
|
|
5680
|
+
a2[k] = fn(cur);
|
|
5681
|
+
}
|
|
5682
|
+
}
|
|
5683
|
+
}
|
|
5684
|
+
return a2
|
|
5685
|
+
}
|
|
5686
|
+
|
|
5687
|
+
function clone(o) {
|
|
5688
|
+
if (typeof o !== 'object' || o === null) { return o }
|
|
5689
|
+
if (Array.isArray(o)) { return cloneArray(o, clone) }
|
|
5690
|
+
if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
|
|
5691
|
+
return handler(o, clone)
|
|
5692
|
+
}
|
|
5693
|
+
var o2 = {};
|
|
5694
|
+
refs.push(o);
|
|
5695
|
+
refsNew.push(o2);
|
|
5696
|
+
for (var k in o) {
|
|
5697
|
+
if (Object.hasOwnProperty.call(o, k) === false) { continue }
|
|
5698
|
+
var cur = o[k];
|
|
5699
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5700
|
+
o2[k] = cur;
|
|
5701
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5702
|
+
o2[k] = handler(cur, clone);
|
|
5703
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5704
|
+
o2[k] = copyBuffer(cur);
|
|
5705
|
+
} else {
|
|
5706
|
+
var i = refs.indexOf(cur);
|
|
5707
|
+
if (i !== -1) {
|
|
5708
|
+
o2[k] = refsNew[i];
|
|
5709
|
+
} else {
|
|
5710
|
+
o2[k] = clone(opts.reviver ? opts.reviver(k, cur) : cur);
|
|
5711
|
+
}
|
|
5712
|
+
}
|
|
5713
|
+
}
|
|
5714
|
+
refs.pop();
|
|
5715
|
+
refsNew.pop();
|
|
5716
|
+
return o2
|
|
5717
|
+
}
|
|
5718
|
+
|
|
5719
|
+
function cloneProto(o) {
|
|
5720
|
+
if (typeof o !== 'object' || o === null) { return o }
|
|
5721
|
+
if (Array.isArray(o)) { return cloneArray(o, cloneProto) }
|
|
5722
|
+
if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
|
|
5723
|
+
return handler(o, cloneProto)
|
|
5724
|
+
}
|
|
5725
|
+
var o2 = {};
|
|
5726
|
+
refs.push(o);
|
|
5727
|
+
refsNew.push(o2);
|
|
5728
|
+
for (var k in o) {
|
|
5729
|
+
var cur = o[k];
|
|
5730
|
+
if (typeof cur !== 'object' || cur === null) {
|
|
5731
|
+
o2[k] = cur;
|
|
5732
|
+
} else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
|
|
5733
|
+
o2[k] = handler(cur, cloneProto);
|
|
5734
|
+
} else if (ArrayBuffer.isView(cur)) {
|
|
5735
|
+
o2[k] = copyBuffer(cur);
|
|
5736
|
+
} else {
|
|
5737
|
+
var i = refs.indexOf(cur);
|
|
5738
|
+
if (i !== -1) {
|
|
5739
|
+
o2[k] = refsNew[i];
|
|
5740
|
+
} else {
|
|
5741
|
+
o2[k] = cloneProto(opts.reviver ? opts.reviver(k, cur) : cur);
|
|
5742
|
+
}
|
|
5743
|
+
}
|
|
5744
|
+
}
|
|
5745
|
+
refs.pop();
|
|
5746
|
+
refsNew.pop();
|
|
5747
|
+
return o2
|
|
5748
|
+
}
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5538
5751
|
/* */
|
|
5539
5752
|
|
|
5540
5753
|
function flushCallbacks$1(vm) {
|
|
@@ -5608,6 +5821,8 @@ function clearInstance(key, value) {
|
|
|
5608
5821
|
return value
|
|
5609
5822
|
}
|
|
5610
5823
|
|
|
5824
|
+
var cloneDeepCircles = rfdc({ circles: true, reviver: clearInstance });
|
|
5825
|
+
|
|
5611
5826
|
function cloneWithData(vm) {
|
|
5612
5827
|
// 确保当前 vm 所有数据被同步
|
|
5613
5828
|
var ret = Object.create(null);
|
|
@@ -5639,7 +5854,7 @@ function cloneWithData(vm) {
|
|
|
5639
5854
|
ret['value'] = vm.value;
|
|
5640
5855
|
}
|
|
5641
5856
|
|
|
5642
|
-
return
|
|
5857
|
+
return cloneDeepCircles(ret)
|
|
5643
5858
|
}
|
|
5644
5859
|
|
|
5645
5860
|
var patch = function(oldVnode, vnode) {
|