1 line
		
	
	
	
		
			9.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
		
		
			
		
	
	
			1 line
		
	
	
	
		
			9.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
|   | {"ast":null,"code":"import { Subject } from '../Subject';\nimport { asyncScheduler } from '../scheduler/async';\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function windowTime(windowTimeSpan) {\n  var _a, _b;\n  var otherArgs = [];\n  for (var _i = 1; _i < arguments.length; _i++) {\n    otherArgs[_i - 1] = arguments[_i];\n  }\n  var scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;\n  var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n  var maxWindowSize = otherArgs[1] || Infinity;\n  return operate(function (source, subscriber) {\n    var windowRecords = [];\n    var restartOnClose = false;\n    var closeWindow = function (record) {\n      var window = record.window,\n        subs = record.subs;\n      window.complete();\n      subs.unsubscribe();\n      arrRemove(windowRecords, record);\n      restartOnClose && startWindow();\n    };\n    var startWindow = function () {\n      if (windowRecords) {\n        var subs = new Subscription();\n        subscriber.add(subs);\n        var window_1 = new Subject();\n        var record_1 = {\n          window: window_1,\n          subs: subs,\n          seen: 0\n        };\n        windowRecords.push(record_1);\n        subscriber.next(window_1.asObservable());\n        executeSchedule(subs, scheduler, function () {\n          return closeWindow(record_1);\n        }, windowTimeSpan);\n      }\n    };\n    if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n      executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true);\n    } else {\n      restartOnClose = true;\n    }\n    startWindow();\n    var loop = function (cb) {\n      return windowRecords.slice().forEach(cb);\n    };\n    var terminate = function (cb) {\n      loop(function (_a) {\n        var window = _a.window;\n        return cb(window);\n      });\n      cb(subscriber);\n      subscriber.unsubscribe();\n    };\n    source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n      loop(function (record) {\n        record.window.next(value);\n        maxWindowSize <= ++record.seen && closeWindow(record);\n      });\n    }, function () {\n      return terminate(function (consumer) {\n        return consumer.complete();\n      });\n    }, function (err) {\n      return terminate(function (consumer) {\n        return consumer.error(err);\n      });\n    }));\n    return function () {\n      windowRecords = null;\n    };\n  });\n}\n//# sourceMappingURL=windowTime.js.map","map":{"version":3,"names":["Subject","asyncScheduler","Subscription","operate","createOperatorSubscriber","arrRemove","popScheduler","executeSchedule","windowTime","windowTimeSpan","_a","_b","otherArgs","_i","arguments","length","scheduler","windowCreationInterval","maxWindowSize","Infinity","source","subscriber","windowRecords","restartOnClose","closeWindow","record","window","subs","complete","unsubscribe","startWindow","add","window_1","record_1","seen","push","next","asObservable","loop","cb","slice","forEach","terminate","subscribe","value","consumer","err","error"],"sources":["/home/poule/encrypted/stockage-syncable/www/development/html/ng-implementation/implem/node_modules/rxjs/dist/esm5/internal/operators/windowTime.js"],"sourcesContent":["import { Subject } from '../Subject';\nimport { asyncScheduler } from '../scheduler/async';\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function windowTime(windowTimeSpan) {\n    var _a, _b;\n    var otherArgs = [];\n    for (var _i = 1; |