UNPKG

@cycle/dom

Version:

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

62 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var xstream_1 = require("xstream"); var adapt_1 = require("@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_1.adapt(xstream_1.default.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_1.adapt(output$); out._isCycleSource = 'MockedDOM'; return out; }; MockedDOMSource.prototype.events = function (eventType, options, bubbles) { var streamForEventType = this._mockConfig[eventType]; var out = adapt_1.adapt(streamForEventType || xstream_1.default.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_1.adapt(xstream_1.default.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; }()); exports.MockedDOMSource = MockedDOMSource; function mockDOMSource(mockConfig) { return new MockedDOMSource(mockConfig); } exports.mockDOMSource = mockDOMSource; //# sourceMappingURL=mockDOMSource.js.map