UNPKG

@cycle/dom

Version:

The standard DOM Driver for Cycle.js, based on Snabbdom

59 lines 2.11 kB
import xs from 'xstream'; import { adapt } from '@cycle/run/lib/adapt'; var SCOPE_PREFIX = '___'; var MockedDOMSource = /** @class */ (function () { function MockedDOMSource(_mockConfig) { this._mockConfig = _mockConfig; if (_mockConfig.elements) { this._elements = _mockConfig.elements; } else { this._elements = adapt(xs.empty()); } } MockedDOMSource.prototype.elements = function () { var out = this ._elements; out._isCycleSource = 'MockedDOM'; return out; }; MockedDOMSource.prototype.element = function () { var output$ = this.elements() .filter(function (arr) { return arr.length > 0; }) .map(function (arr) { return arr[0]; }) .remember(); var out = adapt(output$); out._isCycleSource = 'MockedDOM'; return out; }; MockedDOMSource.prototype.events = function (eventType, options, bubbles) { var streamForEventType = this._mockConfig[eventType]; var out = adapt(streamForEventType || xs.empty()); out._isCycleSource = 'MockedDOM'; return out; }; MockedDOMSource.prototype.select = function (selector) { var mockConfigForSelector = this._mockConfig[selector] || {}; return new MockedDOMSource(mockConfigForSelector); }; MockedDOMSource.prototype.isolateSource = function (source, scope) { return source.select('.' + SCOPE_PREFIX + scope); }; MockedDOMSource.prototype.isolateSink = function (sink, scope) { return adapt(xs.fromObservable(sink).map(function (vnode) { if (vnode.sel && vnode.sel.indexOf(SCOPE_PREFIX + scope) !== -1) { return vnode; } else { vnode.sel += "." + SCOPE_PREFIX + scope; return vnode; } })); }; return MockedDOMSource; }()); export { MockedDOMSource }; export function mockDOMSource(mockConfig) { return new MockedDOMSource(mockConfig); } //# sourceMappingURL=mockDOMSource.js.map