1 | function proxyAttrs(template, attrsWhitelist) {
|
2 | return function copyAttrs(iElement, iAttrs) {
|
3 | const PREFIX = 'data-proxy-';
|
4 |
|
5 | const attrsList = attrsWhitelist || Object.keys(iAttrs.$attr);
|
6 | let resultTemplate = template;
|
7 |
|
8 | attrsList.forEach(attrName => {
|
9 | if (iAttrs[attrName] !== undefined) {
|
10 | const attrLower = iAttrs.$attr[attrName];
|
11 | const attrValue = iAttrs[attrName];
|
12 |
|
13 | const attrFind = `${PREFIX}${attrLower}`.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
14 | const attrReplace = `${attrLower}="${attrValue}"`;
|
15 |
|
16 | resultTemplate = resultTemplate.replace(RegExp(`${attrFind}(="")*`, 'g'), attrReplace);
|
17 | }
|
18 | });
|
19 |
|
20 | return resultTemplate;
|
21 | };
|
22 | }
|
23 |
|
24 | export default proxyAttrs;
|