@cycle/dom
Version:
The standard DOM Driver for Cycle.js, based on Snabbdom
62 lines • 2.33 kB
JavaScript
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
;