UNPKG

736 BJavaScriptView Raw
1function 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
24export default proxyAttrs;