MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / #resolveTemplateScopes

Method #resolveTemplateScopes

www/js/_hyperscript-max.js:2839–2872  ·  view source on GitHub ↗
(elt)

Source from the content-addressed store, hash-verified

2837 }
2838 }
2839 #resolveTemplateScopes(elt) {
2840 var root = elt.closest('[data-live-template], [dom-scope="isolated"]');
2841 if (!root || !root.__hs_scopes) return;
2842 var matches = [];
2843 var node = elt;
2844 while (node && node !== root) {
2845 var prev = node.previousSibling;
2846 while (prev) {
2847 if (prev.nodeType === 8) {
2848 var text = prev.data;
2849 if (text.startsWith("hs-scope:")) {
2850 matches.push(text);
2851 break;
2852 }
2853 }
2854 prev = prev.previousSibling;
2855 }
2856 node = node.parentElement;
2857 }
2858 if (!matches.length) return;
2859 var internalData = this.getInternalData(elt);
2860 if (!internalData.elementScope) internalData.elementScope = {};
2861 for (var i = 0; i < matches.length; i++) {
2862 var parts = matches[i].split(":");
2863 var loopId = parts[1];
2864 var iter = parseInt(parts[2]);
2865 var scope = root.__hs_scopes[loopId];
2866 if (!scope) continue;
2867 internalData.elementScope[scope.identifier] = scope.source[iter];
2868 if (scope.indexIdentifier) {
2869 internalData.elementScope[scope.indexIdentifier] = iter;
2870 }
2871 }
2872 }
2873 #beforeProcessHooks = [];
2874 #afterProcessHooks = [];
2875 addBeforeProcessHook(fn) {

Callers 1

#initElementMethod · 0.95

Calls 1

getInternalDataMethod · 0.95

Tested by

no test coverage detected