UNPKG

@tdb/util

Version:
43 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var dynamics = require('dynamics.js'); function animate(target, props, options) { return new Promise(function (resolve, reject) { var type = dynamics[options.type]; var args = tslib_1.__assign({}, options, { type: type, complete: function () { return resolve(); } }); dynamics.animate(target, props, args); }); } function start(options) { var _this = this; var target = options.target; var subject = new rxjs_1.Subject(); var obj = {}; var define = function (key) { Object.defineProperty(obj, key, { get: function () { return options.current()[key]; }, set: function (value) { var _a; return subject.next((_a = {}, _a[key] = value, _a)); }, }); }; Object.keys(target).forEach(function (key) { return define(key); }); setTimeout(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4, animate(obj, target, options)]; case 1: _a.sent(); subject.complete(); return [2]; } }); }); }, 0); return subject.pipe(operators_1.share()); } exports.start = start; //# sourceMappingURL=animation.js.map