ecinc-cloud-wappaio 9.6.518 → 9.6.519
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/ecwappaio.common.js +93 -1
- package/lib/ecwappaio.umd.js +93 -1
- package/lib/ecwappaio.umd.min.js +1 -1
- package/package.json +1 -1
package/lib/ecwappaio.common.js
CHANGED
|
@@ -145492,7 +145492,7 @@ service.interceptors.request.use(function (config) {
|
|
|
145492
145492
|
} else if (window.productCode && location.href.indexOf('productCode') === -1) {
|
|
145493
145493
|
config.headers['productCode'] = window.productCode;
|
|
145494
145494
|
}
|
|
145495
|
-
config.headers['ecweb-csrf-token'] = decodeURIComponent(sessionStorage.getItem('ecweb-csrf-token')
|
|
145495
|
+
config.headers['ecweb-csrf-token'] = decodeURIComponent(sessionStorage.getItem('ecweb-csrf-token') || '');
|
|
145496
145496
|
var language = (0,lang/* getLanguage */.Z0)();
|
|
145497
145497
|
if (language === 'en') {
|
|
145498
145498
|
language = 'en-US';
|
|
@@ -185416,6 +185416,97 @@ external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('wfidea-lbl', {
|
|
|
185416
185416
|
wfIdeaLblI18nFunc(el, binding, vnode);
|
|
185417
185417
|
}
|
|
185418
185418
|
});
|
|
185419
|
+
;// CONCATENATED MODULE: ./packages/common/directive/escaped-html/index.js
|
|
185420
|
+
|
|
185421
|
+
function escapedHtml(htmlStr) {
|
|
185422
|
+
if (typeof htmlStr !== 'string') {
|
|
185423
|
+
return '';
|
|
185424
|
+
}
|
|
185425
|
+
|
|
185426
|
+
// 1. 基本转义
|
|
185427
|
+
var basic = htmlStr.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/').replace(/`/g, '`');
|
|
185428
|
+
|
|
185429
|
+
// 2. 特殊危险模式处理
|
|
185430
|
+
var patterns = [
|
|
185431
|
+
// 事件处理器
|
|
185432
|
+
{
|
|
185433
|
+
regex: /\bon\w+\s*=\s*["'][^"']*["']/gi,
|
|
185434
|
+
replace: ': '
|
|
185435
|
+
}, {
|
|
185436
|
+
regex: /\bon\w+\s*=\s*[^\s>]+/gi,
|
|
185437
|
+
replace: '='
|
|
185438
|
+
},
|
|
185439
|
+
// JavaScript 协议
|
|
185440
|
+
{
|
|
185441
|
+
regex: /javascript:/gi,
|
|
185442
|
+
escape: ':'
|
|
185443
|
+
}, {
|
|
185444
|
+
regex: /data:/gi,
|
|
185445
|
+
escape: ':'
|
|
185446
|
+
}, {
|
|
185447
|
+
regex: /vbscript:/gi,
|
|
185448
|
+
escape: ':'
|
|
185449
|
+
},
|
|
185450
|
+
// 十六进制/八进制编码
|
|
185451
|
+
{
|
|
185452
|
+
regex: /&#x?[0-9a-f]+;/gi,
|
|
185453
|
+
decode: true
|
|
185454
|
+
},
|
|
185455
|
+
// CSS 危险表达式
|
|
185456
|
+
{
|
|
185457
|
+
regex: /expression\s*\(/gi,
|
|
185458
|
+
escape: '('
|
|
185459
|
+
}, {
|
|
185460
|
+
regex: /url\s*\(\s*["']?javascript:/gi,
|
|
185461
|
+
escape: ':'
|
|
185462
|
+
},
|
|
185463
|
+
// HTML5 新事件
|
|
185464
|
+
{
|
|
185465
|
+
regex: /onpointer\w+/gi,
|
|
185466
|
+
replace: 'on'
|
|
185467
|
+
}, {
|
|
185468
|
+
regex: /ontouch\w+/gi,
|
|
185469
|
+
replace: 'on'
|
|
185470
|
+
},
|
|
185471
|
+
// 内联样式中的 JavaScript
|
|
185472
|
+
{
|
|
185473
|
+
regex: /style\s*=\s*["'][^"']*javascript:[^"']*["']/gi,
|
|
185474
|
+
escape: ':'
|
|
185475
|
+
}];
|
|
185476
|
+
var result = basic;
|
|
185477
|
+
patterns.forEach(function (_ref) {
|
|
185478
|
+
var regex = _ref.regex,
|
|
185479
|
+
replace = _ref.replace,
|
|
185480
|
+
escape = _ref.escape,
|
|
185481
|
+
decode = _ref.decode;
|
|
185482
|
+
result = result.replace(regex, function (match) {
|
|
185483
|
+
if (decode) {
|
|
185484
|
+
// 处理 HTML 实体编码
|
|
185485
|
+
var temp = document.createElement('div');
|
|
185486
|
+
temp.innerHTML = match;
|
|
185487
|
+
return temp.textContent;
|
|
185488
|
+
} else if (replace) {
|
|
185489
|
+
// 替换特定部分
|
|
185490
|
+
return match.replace(new RegExp(replace, 'g'), replace === ':' ? ':' : replace === '=' ? '=' : replace === '(' ? '(' : replace === 'on' ? 'on' : replace);
|
|
185491
|
+
} else if (escape) {
|
|
185492
|
+
// 转义特定字符
|
|
185493
|
+
return match.replace(new RegExp(escape, 'g'), escape === ':' ? ':' : escape === '(' ? '(' : '');
|
|
185494
|
+
}
|
|
185495
|
+
return match;
|
|
185496
|
+
});
|
|
185497
|
+
});
|
|
185498
|
+
return result;
|
|
185499
|
+
}
|
|
185500
|
+
external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('escaped-html', {
|
|
185501
|
+
inserted: function inserted(el, binding, vnode) {
|
|
185502
|
+
el.innerHTML = escapedHtml(binding.value);
|
|
185503
|
+
},
|
|
185504
|
+
componentUpdated: function componentUpdated(el, binding, vnode) {
|
|
185505
|
+
if (binding.value !== binding.oldValue) {
|
|
185506
|
+
el.innerHTML = escapedHtml(binding.value);
|
|
185507
|
+
}
|
|
185508
|
+
}
|
|
185509
|
+
});
|
|
185419
185510
|
;// CONCATENATED MODULE: ./packages/common/directive/index.js
|
|
185420
185511
|
|
|
185421
185512
|
|
|
@@ -185426,6 +185517,7 @@ external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('wfidea-lbl', {
|
|
|
185426
185517
|
|
|
185427
185518
|
|
|
185428
185519
|
|
|
185520
|
+
|
|
185429
185521
|
;// CONCATENATED MODULE: ./packages/ecwapp/Directive/select-dialog/index.js
|
|
185430
185522
|
|
|
185431
185523
|
|
package/lib/ecwappaio.umd.js
CHANGED
|
@@ -145502,7 +145502,7 @@ service.interceptors.request.use(function (config) {
|
|
|
145502
145502
|
} else if (window.productCode && location.href.indexOf('productCode') === -1) {
|
|
145503
145503
|
config.headers['productCode'] = window.productCode;
|
|
145504
145504
|
}
|
|
145505
|
-
config.headers['ecweb-csrf-token'] = decodeURIComponent(sessionStorage.getItem('ecweb-csrf-token')
|
|
145505
|
+
config.headers['ecweb-csrf-token'] = decodeURIComponent(sessionStorage.getItem('ecweb-csrf-token') || '');
|
|
145506
145506
|
var language = (0,lang/* getLanguage */.Z0)();
|
|
145507
145507
|
if (language === 'en') {
|
|
145508
145508
|
language = 'en-US';
|
|
@@ -185426,6 +185426,97 @@ external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('wfidea-lbl', {
|
|
|
185426
185426
|
wfIdeaLblI18nFunc(el, binding, vnode);
|
|
185427
185427
|
}
|
|
185428
185428
|
});
|
|
185429
|
+
;// CONCATENATED MODULE: ./packages/common/directive/escaped-html/index.js
|
|
185430
|
+
|
|
185431
|
+
function escapedHtml(htmlStr) {
|
|
185432
|
+
if (typeof htmlStr !== 'string') {
|
|
185433
|
+
return '';
|
|
185434
|
+
}
|
|
185435
|
+
|
|
185436
|
+
// 1. 基本转义
|
|
185437
|
+
var basic = htmlStr.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/').replace(/`/g, '`');
|
|
185438
|
+
|
|
185439
|
+
// 2. 特殊危险模式处理
|
|
185440
|
+
var patterns = [
|
|
185441
|
+
// 事件处理器
|
|
185442
|
+
{
|
|
185443
|
+
regex: /\bon\w+\s*=\s*["'][^"']*["']/gi,
|
|
185444
|
+
replace: ': '
|
|
185445
|
+
}, {
|
|
185446
|
+
regex: /\bon\w+\s*=\s*[^\s>]+/gi,
|
|
185447
|
+
replace: '='
|
|
185448
|
+
},
|
|
185449
|
+
// JavaScript 协议
|
|
185450
|
+
{
|
|
185451
|
+
regex: /javascript:/gi,
|
|
185452
|
+
escape: ':'
|
|
185453
|
+
}, {
|
|
185454
|
+
regex: /data:/gi,
|
|
185455
|
+
escape: ':'
|
|
185456
|
+
}, {
|
|
185457
|
+
regex: /vbscript:/gi,
|
|
185458
|
+
escape: ':'
|
|
185459
|
+
},
|
|
185460
|
+
// 十六进制/八进制编码
|
|
185461
|
+
{
|
|
185462
|
+
regex: /&#x?[0-9a-f]+;/gi,
|
|
185463
|
+
decode: true
|
|
185464
|
+
},
|
|
185465
|
+
// CSS 危险表达式
|
|
185466
|
+
{
|
|
185467
|
+
regex: /expression\s*\(/gi,
|
|
185468
|
+
escape: '('
|
|
185469
|
+
}, {
|
|
185470
|
+
regex: /url\s*\(\s*["']?javascript:/gi,
|
|
185471
|
+
escape: ':'
|
|
185472
|
+
},
|
|
185473
|
+
// HTML5 新事件
|
|
185474
|
+
{
|
|
185475
|
+
regex: /onpointer\w+/gi,
|
|
185476
|
+
replace: 'on'
|
|
185477
|
+
}, {
|
|
185478
|
+
regex: /ontouch\w+/gi,
|
|
185479
|
+
replace: 'on'
|
|
185480
|
+
},
|
|
185481
|
+
// 内联样式中的 JavaScript
|
|
185482
|
+
{
|
|
185483
|
+
regex: /style\s*=\s*["'][^"']*javascript:[^"']*["']/gi,
|
|
185484
|
+
escape: ':'
|
|
185485
|
+
}];
|
|
185486
|
+
var result = basic;
|
|
185487
|
+
patterns.forEach(function (_ref) {
|
|
185488
|
+
var regex = _ref.regex,
|
|
185489
|
+
replace = _ref.replace,
|
|
185490
|
+
escape = _ref.escape,
|
|
185491
|
+
decode = _ref.decode;
|
|
185492
|
+
result = result.replace(regex, function (match) {
|
|
185493
|
+
if (decode) {
|
|
185494
|
+
// 处理 HTML 实体编码
|
|
185495
|
+
var temp = document.createElement('div');
|
|
185496
|
+
temp.innerHTML = match;
|
|
185497
|
+
return temp.textContent;
|
|
185498
|
+
} else if (replace) {
|
|
185499
|
+
// 替换特定部分
|
|
185500
|
+
return match.replace(new RegExp(replace, 'g'), replace === ':' ? ':' : replace === '=' ? '=' : replace === '(' ? '(' : replace === 'on' ? 'on' : replace);
|
|
185501
|
+
} else if (escape) {
|
|
185502
|
+
// 转义特定字符
|
|
185503
|
+
return match.replace(new RegExp(escape, 'g'), escape === ':' ? ':' : escape === '(' ? '(' : '');
|
|
185504
|
+
}
|
|
185505
|
+
return match;
|
|
185506
|
+
});
|
|
185507
|
+
});
|
|
185508
|
+
return result;
|
|
185509
|
+
}
|
|
185510
|
+
external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('escaped-html', {
|
|
185511
|
+
inserted: function inserted(el, binding, vnode) {
|
|
185512
|
+
el.innerHTML = escapedHtml(binding.value);
|
|
185513
|
+
},
|
|
185514
|
+
componentUpdated: function componentUpdated(el, binding, vnode) {
|
|
185515
|
+
if (binding.value !== binding.oldValue) {
|
|
185516
|
+
el.innerHTML = escapedHtml(binding.value);
|
|
185517
|
+
}
|
|
185518
|
+
}
|
|
185519
|
+
});
|
|
185429
185520
|
;// CONCATENATED MODULE: ./packages/common/directive/index.js
|
|
185430
185521
|
|
|
185431
185522
|
|
|
@@ -185436,6 +185527,7 @@ external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('wfidea-lbl', {
|
|
|
185436
185527
|
|
|
185437
185528
|
|
|
185438
185529
|
|
|
185530
|
+
|
|
185439
185531
|
;// CONCATENATED MODULE: ./packages/ecwapp/Directive/select-dialog/index.js
|
|
185440
185532
|
|
|
185441
185533
|
|