@cycle/dom
Version:
The standard DOM Driver for Cycle.js, based on Snabbdom
38 lines • 1.33 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import { isClassOrId } from './utils';
export function makeIsolateSink(namespace) {
return function (sink, scope) {
if (scope === ':root') {
return sink;
}
return sink.map(function (node) {
if (!node) {
return node;
}
var scopeObj = getScopeObj(scope);
var newNode = __assign({}, node, { data: __assign({}, node.data, { isolate: !node.data || !Array.isArray(node.data.isolate)
? namespace.concat([scopeObj])
: node.data.isolate }) });
return __assign({}, newNode, { key: newNode.key !== undefined
? newNode.key
: JSON.stringify(newNode.data.isolate) });
});
};
}
export function getScopeObj(scope) {
return {
type: isClassOrId(scope) ? 'sibling' : 'total',
scope: scope,
};
}
//# sourceMappingURL=isolate.js.map