return dx * dx + dy * dy;
}
-},{"tinyqueue":232}],2:[function(require,module,exports){
+},{"tinyqueue":242}],2:[function(require,module,exports){
/*
* Copyright (C) 2008 Apple Inc. All Rights Reserved.
*
}(Subject_1.Subject));
exports.BehaviorSubject = BehaviorSubject;
-},{"./Subject":34,"./util/ObjectUnsubscribedError":211}],27:[function(require,module,exports){
+},{"./Subject":34,"./util/ObjectUnsubscribedError":221}],27:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}());
exports.Observable = Observable;
-},{"./symbol/observable":206,"./util/pipe":226,"./util/root":227,"./util/toSubscriber":229}],30:[function(require,module,exports){
+},{"./symbol/observable":216,"./util/pipe":236,"./util/root":237,"./util/toSubscriber":239}],30:[function(require,module,exports){
"use strict";
exports.empty = {
closed: true,
return ReplayEvent;
}());
-},{"./Subject":34,"./SubjectSubscription":35,"./Subscription":37,"./operators/observeOn":174,"./scheduler/queue":204,"./util/ObjectUnsubscribedError":211}],33:[function(require,module,exports){
+},{"./Subject":34,"./SubjectSubscription":35,"./Subscription":37,"./operators/observeOn":182,"./scheduler/queue":214,"./util/ObjectUnsubscribedError":221}],33:[function(require,module,exports){
"use strict";
/**
* An execution context and a data structure to order tasks and schedule their
}(Subject));
exports.AnonymousSubject = AnonymousSubject;
-},{"./Observable":29,"./SubjectSubscription":35,"./Subscriber":36,"./Subscription":37,"./symbol/rxSubscriber":207,"./util/ObjectUnsubscribedError":211}],35:[function(require,module,exports){
+},{"./Observable":29,"./SubjectSubscription":35,"./Subscriber":36,"./Subscription":37,"./symbol/rxSubscriber":217,"./util/ObjectUnsubscribedError":221}],35:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SafeSubscriber;
}(Subscriber));
-},{"./Observer":30,"./Subscription":37,"./symbol/rxSubscriber":207,"./util/isFunction":220}],37:[function(require,module,exports){
+},{"./Observer":30,"./Subscription":37,"./symbol/rxSubscriber":217,"./util/isFunction":230}],37:[function(require,module,exports){
"use strict";
var isArray_1 = require('./util/isArray');
var isObject_1 = require('./util/isObject');
return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);
}
-},{"./util/UnsubscriptionError":214,"./util/errorObject":215,"./util/isArray":217,"./util/isFunction":220,"./util/isObject":222,"./util/tryCatch":230}],38:[function(require,module,exports){
+},{"./util/UnsubscriptionError":224,"./util/errorObject":225,"./util/isArray":227,"./util/isFunction":230,"./util/isObject":232,"./util/tryCatch":240}],38:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var combineLatest_1 = require('../../observable/combineLatest');
Observable_1.Observable.combineLatest = combineLatest_1.combineLatest;
-},{"../../Observable":29,"../../observable/combineLatest":101}],39:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/combineLatest":104}],39:[function(require,module,exports){
+"use strict";
+var Observable_1 = require('../../Observable');
+var concat_1 = require('../../observable/concat');
+Observable_1.Observable.concat = concat_1.concat;
+
+},{"../../Observable":29,"../../observable/concat":105}],40:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var defer_1 = require('../../observable/defer');
Observable_1.Observable.defer = defer_1.defer;
-},{"../../Observable":29,"../../observable/defer":103}],40:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/defer":106}],41:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var empty_1 = require('../../observable/empty');
Observable_1.Observable.empty = empty_1.empty;
-},{"../../Observable":29,"../../observable/empty":104}],41:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/empty":107}],42:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var from_1 = require('../../observable/from');
Observable_1.Observable.from = from_1.from;
-},{"../../Observable":29,"../../observable/from":105}],42:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/from":108}],43:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var fromEvent_1 = require('../../observable/fromEvent');
Observable_1.Observable.fromEvent = fromEvent_1.fromEvent;
-},{"../../Observable":29,"../../observable/fromEvent":106}],43:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/fromEvent":109}],44:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var fromPromise_1 = require('../../observable/fromPromise');
Observable_1.Observable.fromPromise = fromPromise_1.fromPromise;
-},{"../../Observable":29,"../../observable/fromPromise":107}],44:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/fromPromise":110}],45:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var merge_1 = require('../../observable/merge');
Observable_1.Observable.merge = merge_1.merge;
-},{"../../Observable":29,"../../observable/merge":108}],45:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/merge":111}],46:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var of_1 = require('../../observable/of');
Observable_1.Observable.of = of_1.of;
-},{"../../Observable":29,"../../observable/of":109}],46:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/of":112}],47:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var throw_1 = require('../../observable/throw');
Observable_1.Observable.throw = throw_1._throw;
-},{"../../Observable":29,"../../observable/throw":110}],47:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/throw":113}],48:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var timer_1 = require('../../observable/timer');
Observable_1.Observable.timer = timer_1.timer;
-},{"../../Observable":29,"../../observable/timer":111}],48:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/timer":114}],49:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var zip_1 = require('../../observable/zip');
Observable_1.Observable.zip = zip_1.zip;
-},{"../../Observable":29,"../../observable/zip":112}],49:[function(require,module,exports){
+},{"../../Observable":29,"../../observable/zip":115}],50:[function(require,module,exports){
+"use strict";
+var Observable_1 = require('../../Observable');
+var auditTime_1 = require('../../operator/auditTime');
+Observable_1.Observable.prototype.auditTime = auditTime_1.auditTime;
+
+},{"../../Observable":29,"../../operator/auditTime":116}],51:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var buffer_1 = require('../../operator/buffer');
Observable_1.Observable.prototype.buffer = buffer_1.buffer;
-},{"../../Observable":29,"../../operator/buffer":113}],50:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/buffer":117}],52:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var bufferCount_1 = require('../../operator/bufferCount');
Observable_1.Observable.prototype.bufferCount = bufferCount_1.bufferCount;
-},{"../../Observable":29,"../../operator/bufferCount":114}],51:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/bufferCount":118}],53:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var bufferWhen_1 = require('../../operator/bufferWhen');
Observable_1.Observable.prototype.bufferWhen = bufferWhen_1.bufferWhen;
-},{"../../Observable":29,"../../operator/bufferWhen":115}],52:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/bufferWhen":119}],54:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var catch_1 = require('../../operator/catch');
Observable_1.Observable.prototype.catch = catch_1._catch;
Observable_1.Observable.prototype._catch = catch_1._catch;
-},{"../../Observable":29,"../../operator/catch":116}],53:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/catch":120}],55:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var combineLatest_1 = require('../../operator/combineLatest');
Observable_1.Observable.prototype.combineLatest = combineLatest_1.combineLatest;
-},{"../../Observable":29,"../../operator/combineLatest":117}],54:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/combineLatest":121}],56:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var concat_1 = require('../../operator/concat');
Observable_1.Observable.prototype.concat = concat_1.concat;
-},{"../../Observable":29,"../../operator/concat":118}],55:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/concat":122}],57:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var debounceTime_1 = require('../../operator/debounceTime');
Observable_1.Observable.prototype.debounceTime = debounceTime_1.debounceTime;
-},{"../../Observable":29,"../../operator/debounceTime":119}],56:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/debounceTime":123}],58:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var delay_1 = require('../../operator/delay');
Observable_1.Observable.prototype.delay = delay_1.delay;
-},{"../../Observable":29,"../../operator/delay":120}],57:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/delay":124}],59:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var distinct_1 = require('../../operator/distinct');
Observable_1.Observable.prototype.distinct = distinct_1.distinct;
-},{"../../Observable":29,"../../operator/distinct":121}],58:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/distinct":125}],60:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var distinctUntilChanged_1 = require('../../operator/distinctUntilChanged');
Observable_1.Observable.prototype.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged;
-},{"../../Observable":29,"../../operator/distinctUntilChanged":122}],59:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/distinctUntilChanged":126}],61:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var do_1 = require('../../operator/do');
Observable_1.Observable.prototype.do = do_1._do;
Observable_1.Observable.prototype._do = do_1._do;
-},{"../../Observable":29,"../../operator/do":123}],60:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/do":127}],62:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var expand_1 = require('../../operator/expand');
Observable_1.Observable.prototype.expand = expand_1.expand;
-},{"../../Observable":29,"../../operator/expand":124}],61:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/expand":128}],63:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var filter_1 = require('../../operator/filter');
Observable_1.Observable.prototype.filter = filter_1.filter;
-},{"../../Observable":29,"../../operator/filter":125}],62:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/filter":129}],64:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var finally_1 = require('../../operator/finally');
Observable_1.Observable.prototype.finally = finally_1._finally;
Observable_1.Observable.prototype._finally = finally_1._finally;
-},{"../../Observable":29,"../../operator/finally":126}],63:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/finally":130}],65:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var first_1 = require('../../operator/first');
Observable_1.Observable.prototype.first = first_1.first;
-},{"../../Observable":29,"../../operator/first":127}],64:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/first":131}],66:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var last_1 = require('../../operator/last');
Observable_1.Observable.prototype.last = last_1.last;
-},{"../../Observable":29,"../../operator/last":128}],65:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/last":132}],67:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var map_1 = require('../../operator/map');
Observable_1.Observable.prototype.map = map_1.map;
-},{"../../Observable":29,"../../operator/map":129}],66:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/map":133}],68:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var merge_1 = require('../../operator/merge');
Observable_1.Observable.prototype.merge = merge_1.merge;
-},{"../../Observable":29,"../../operator/merge":130}],67:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/merge":134}],69:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var mergeAll_1 = require('../../operator/mergeAll');
Observable_1.Observable.prototype.mergeAll = mergeAll_1.mergeAll;
-},{"../../Observable":29,"../../operator/mergeAll":131}],68:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/mergeAll":135}],70:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var mergeMap_1 = require('../../operator/mergeMap');
Observable_1.Observable.prototype.mergeMap = mergeMap_1.mergeMap;
Observable_1.Observable.prototype.flatMap = mergeMap_1.mergeMap;
-},{"../../Observable":29,"../../operator/mergeMap":132}],69:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/mergeMap":136}],71:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var pairwise_1 = require('../../operator/pairwise');
Observable_1.Observable.prototype.pairwise = pairwise_1.pairwise;
-},{"../../Observable":29,"../../operator/pairwise":133}],70:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/pairwise":137}],72:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var pluck_1 = require('../../operator/pluck');
Observable_1.Observable.prototype.pluck = pluck_1.pluck;
-},{"../../Observable":29,"../../operator/pluck":134}],71:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/pluck":138}],73:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var publish_1 = require('../../operator/publish');
Observable_1.Observable.prototype.publish = publish_1.publish;
-},{"../../Observable":29,"../../operator/publish":135}],72:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/publish":139}],74:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var publishReplay_1 = require('../../operator/publishReplay');
Observable_1.Observable.prototype.publishReplay = publishReplay_1.publishReplay;
-},{"../../Observable":29,"../../operator/publishReplay":136}],73:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/publishReplay":140}],75:[function(require,module,exports){
+"use strict";
+var Observable_1 = require('../../Observable');
+var reduce_1 = require('../../operator/reduce');
+Observable_1.Observable.prototype.reduce = reduce_1.reduce;
+
+},{"../../Observable":29,"../../operator/reduce":141}],76:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var retry_1 = require('../../operator/retry');
Observable_1.Observable.prototype.retry = retry_1.retry;
-},{"../../Observable":29,"../../operator/retry":137}],74:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/retry":142}],77:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var sample_1 = require('../../operator/sample');
Observable_1.Observable.prototype.sample = sample_1.sample;
-},{"../../Observable":29,"../../operator/sample":138}],75:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/sample":143}],78:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var scan_1 = require('../../operator/scan');
Observable_1.Observable.prototype.scan = scan_1.scan;
-},{"../../Observable":29,"../../operator/scan":139}],76:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/scan":144}],79:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var share_1 = require('../../operator/share');
Observable_1.Observable.prototype.share = share_1.share;
-},{"../../Observable":29,"../../operator/share":140}],77:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/share":145}],80:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var skip_1 = require('../../operator/skip');
Observable_1.Observable.prototype.skip = skip_1.skip;
-},{"../../Observable":29,"../../operator/skip":141}],78:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/skip":146}],81:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var skipUntil_1 = require('../../operator/skipUntil');
Observable_1.Observable.prototype.skipUntil = skipUntil_1.skipUntil;
-},{"../../Observable":29,"../../operator/skipUntil":142}],79:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/skipUntil":147}],82:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var skipWhile_1 = require('../../operator/skipWhile');
Observable_1.Observable.prototype.skipWhile = skipWhile_1.skipWhile;
-},{"../../Observable":29,"../../operator/skipWhile":143}],80:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/skipWhile":148}],83:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var startWith_1 = require('../../operator/startWith');
Observable_1.Observable.prototype.startWith = startWith_1.startWith;
-},{"../../Observable":29,"../../operator/startWith":144}],81:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/startWith":149}],84:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var switchMap_1 = require('../../operator/switchMap');
Observable_1.Observable.prototype.switchMap = switchMap_1.switchMap;
-},{"../../Observable":29,"../../operator/switchMap":145}],82:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/switchMap":150}],85:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var take_1 = require('../../operator/take');
Observable_1.Observable.prototype.take = take_1.take;
-},{"../../Observable":29,"../../operator/take":146}],83:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/take":151}],86:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var takeUntil_1 = require('../../operator/takeUntil');
Observable_1.Observable.prototype.takeUntil = takeUntil_1.takeUntil;
-},{"../../Observable":29,"../../operator/takeUntil":147}],84:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/takeUntil":152}],87:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var takeWhile_1 = require('../../operator/takeWhile');
Observable_1.Observable.prototype.takeWhile = takeWhile_1.takeWhile;
-},{"../../Observable":29,"../../operator/takeWhile":148}],85:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/takeWhile":153}],88:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var throttleTime_1 = require('../../operator/throttleTime');
Observable_1.Observable.prototype.throttleTime = throttleTime_1.throttleTime;
-},{"../../Observable":29,"../../operator/throttleTime":149}],86:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/throttleTime":154}],89:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var timeout_1 = require('../../operator/timeout');
Observable_1.Observable.prototype.timeout = timeout_1.timeout;
-},{"../../Observable":29,"../../operator/timeout":150}],87:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/timeout":155}],90:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var withLatestFrom_1 = require('../../operator/withLatestFrom');
Observable_1.Observable.prototype.withLatestFrom = withLatestFrom_1.withLatestFrom;
-},{"../../Observable":29,"../../operator/withLatestFrom":151}],88:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/withLatestFrom":156}],91:[function(require,module,exports){
"use strict";
var Observable_1 = require('../../Observable');
var zip_1 = require('../../operator/zip');
Observable_1.Observable.prototype.zip = zip_1.zipProto;
-},{"../../Observable":29,"../../operator/zip":152}],89:[function(require,module,exports){
+},{"../../Observable":29,"../../operator/zip":157}],92:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.ArrayLikeObservable = ArrayLikeObservable;
-},{"../Observable":29,"./EmptyObservable":93,"./ScalarObservable":99}],90:[function(require,module,exports){
+},{"../Observable":29,"./EmptyObservable":96,"./ScalarObservable":102}],93:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.ArrayObservable = ArrayObservable;
-},{"../Observable":29,"../util/isScheduler":224,"./EmptyObservable":93,"./ScalarObservable":99}],91:[function(require,module,exports){
+},{"../Observable":29,"../util/isScheduler":234,"./EmptyObservable":96,"./ScalarObservable":102}],94:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return RefCountSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Observable":29,"../Subject":34,"../Subscriber":36,"../Subscription":37,"../operators/refCount":179}],92:[function(require,module,exports){
+},{"../Observable":29,"../Subject":34,"../Subscriber":36,"../Subscription":37,"../operators/refCount":188}],95:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return DeferSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../Observable":29,"../OuterSubscriber":31,"../util/subscribeToResult":228}],93:[function(require,module,exports){
+},{"../Observable":29,"../OuterSubscriber":31,"../util/subscribeToResult":238}],96:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.EmptyObservable = EmptyObservable;
-},{"../Observable":29}],94:[function(require,module,exports){
+},{"../Observable":29}],97:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.ErrorObservable = ErrorObservable;
-},{"../Observable":29}],95:[function(require,module,exports){
+},{"../Observable":29}],98:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.FromEventObservable = FromEventObservable;
-},{"../Observable":29,"../Subscription":37,"../util/errorObject":215,"../util/isFunction":220,"../util/tryCatch":230}],96:[function(require,module,exports){
+},{"../Observable":29,"../Subscription":37,"../util/errorObject":225,"../util/isFunction":230,"../util/tryCatch":240}],99:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.FromObservable = FromObservable;
-},{"../Observable":29,"../operators/observeOn":174,"../symbol/iterator":205,"../symbol/observable":206,"../util/isArray":217,"../util/isArrayLike":218,"../util/isPromise":223,"./ArrayLikeObservable":89,"./ArrayObservable":90,"./IteratorObservable":97,"./PromiseObservable":98}],97:[function(require,module,exports){
+},{"../Observable":29,"../operators/observeOn":182,"../symbol/iterator":215,"../symbol/observable":216,"../util/isArray":227,"../util/isArrayLike":228,"../util/isPromise":233,"./ArrayLikeObservable":92,"./ArrayObservable":93,"./IteratorObservable":100,"./PromiseObservable":101}],100:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return valueAsNumber < 0 ? -1 : 1;
}
-},{"../Observable":29,"../symbol/iterator":205,"../util/root":227}],98:[function(require,module,exports){
+},{"../Observable":29,"../symbol/iterator":215,"../util/root":237}],101:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}
}
-},{"../Observable":29,"../util/root":227}],99:[function(require,module,exports){
+},{"../Observable":29,"../util/root":237}],102:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.ScalarObservable = ScalarObservable;
-},{"../Observable":29}],100:[function(require,module,exports){
+},{"../Observable":29}],103:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Observable_1.Observable));
exports.TimerObservable = TimerObservable;
-},{"../Observable":29,"../scheduler/async":203,"../util/isDate":219,"../util/isNumeric":221,"../util/isScheduler":224}],101:[function(require,module,exports){
+},{"../Observable":29,"../scheduler/async":213,"../util/isDate":229,"../util/isNumeric":231,"../util/isScheduler":234}],104:[function(require,module,exports){
"use strict";
var isScheduler_1 = require('../util/isScheduler');
var isArray_1 = require('../util/isArray');
}
exports.combineLatest = combineLatest;
-},{"../operators/combineLatest":157,"../util/isArray":217,"../util/isScheduler":224,"./ArrayObservable":90}],102:[function(require,module,exports){
+},{"../operators/combineLatest":164,"../util/isArray":227,"../util/isScheduler":234,"./ArrayObservable":93}],105:[function(require,module,exports){
"use strict";
var isScheduler_1 = require('../util/isScheduler');
var of_1 = require('./of');
}
exports.concat = concat;
-},{"../operators/concatAll":159,"../util/isScheduler":224,"./from":105,"./of":109}],103:[function(require,module,exports){
+},{"../operators/concatAll":166,"../util/isScheduler":234,"./from":108,"./of":112}],106:[function(require,module,exports){
"use strict";
var DeferObservable_1 = require('./DeferObservable');
exports.defer = DeferObservable_1.DeferObservable.create;
-},{"./DeferObservable":92}],104:[function(require,module,exports){
+},{"./DeferObservable":95}],107:[function(require,module,exports){
"use strict";
var EmptyObservable_1 = require('./EmptyObservable');
exports.empty = EmptyObservable_1.EmptyObservable.create;
-},{"./EmptyObservable":93}],105:[function(require,module,exports){
+},{"./EmptyObservable":96}],108:[function(require,module,exports){
"use strict";
var FromObservable_1 = require('./FromObservable');
exports.from = FromObservable_1.FromObservable.create;
-},{"./FromObservable":96}],106:[function(require,module,exports){
+},{"./FromObservable":99}],109:[function(require,module,exports){
"use strict";
var FromEventObservable_1 = require('./FromEventObservable');
exports.fromEvent = FromEventObservable_1.FromEventObservable.create;
-},{"./FromEventObservable":95}],107:[function(require,module,exports){
+},{"./FromEventObservable":98}],110:[function(require,module,exports){
"use strict";
var PromiseObservable_1 = require('./PromiseObservable');
exports.fromPromise = PromiseObservable_1.PromiseObservable.create;
-},{"./PromiseObservable":98}],108:[function(require,module,exports){
+},{"./PromiseObservable":101}],111:[function(require,module,exports){
"use strict";
var merge_1 = require('../operator/merge');
exports.merge = merge_1.mergeStatic;
-},{"../operator/merge":130}],109:[function(require,module,exports){
+},{"../operator/merge":134}],112:[function(require,module,exports){
"use strict";
var ArrayObservable_1 = require('./ArrayObservable');
exports.of = ArrayObservable_1.ArrayObservable.of;
-},{"./ArrayObservable":90}],110:[function(require,module,exports){
+},{"./ArrayObservable":93}],113:[function(require,module,exports){
"use strict";
var ErrorObservable_1 = require('./ErrorObservable');
exports._throw = ErrorObservable_1.ErrorObservable.create;
-},{"./ErrorObservable":94}],111:[function(require,module,exports){
+},{"./ErrorObservable":97}],114:[function(require,module,exports){
"use strict";
var TimerObservable_1 = require('./TimerObservable');
exports.timer = TimerObservable_1.TimerObservable.create;
-},{"./TimerObservable":100}],112:[function(require,module,exports){
+},{"./TimerObservable":103}],115:[function(require,module,exports){
"use strict";
var zip_1 = require('../operators/zip');
exports.zip = zip_1.zipStatic;
-},{"../operators/zip":197}],113:[function(require,module,exports){
+},{"../operators/zip":207}],116:[function(require,module,exports){
+"use strict";
+var async_1 = require('../scheduler/async');
+var auditTime_1 = require('../operators/auditTime');
+/**
+ * Ignores source values for `duration` milliseconds, then emits the most recent
+ * value from the source Observable, then repeats this process.
+ *
+ * <span class="informal">When it sees a source values, it ignores that plus
+ * the next ones for `duration` milliseconds, and then it emits the most recent
+ * value from the source.</span>
+ *
+ * <img src="./img/auditTime.png" width="100%">
+ *
+ * `auditTime` is similar to `throttleTime`, but emits the last value from the
+ * silenced time window, instead of the first value. `auditTime` emits the most
+ * recent value from the source Observable on the output Observable as soon as
+ * its internal timer becomes disabled, and ignores source values while the
+ * timer is enabled. Initially, the timer is disabled. As soon as the first
+ * source value arrives, the timer is enabled. After `duration` milliseconds (or
+ * the time unit determined internally by the optional `scheduler`) has passed,
+ * the timer is disabled, then the most recent source value is emitted on the
+ * output Observable, and this process repeats for the next source value.
+ * Optionally takes a {@link IScheduler} for managing timers.
+ *
+ * @example <caption>Emit clicks at a rate of at most one click per second</caption>
+ * var clicks = Rx.Observable.fromEvent(document, 'click');
+ * var result = clicks.auditTime(1000);
+ * result.subscribe(x => console.log(x));
+ *
+ * @see {@link audit}
+ * @see {@link debounceTime}
+ * @see {@link delay}
+ * @see {@link sampleTime}
+ * @see {@link throttleTime}
+ *
+ * @param {number} duration Time to wait before emitting the most recent source
+ * value, measured in milliseconds or the time unit determined internally
+ * by the optional `scheduler`.
+ * @param {Scheduler} [scheduler=async] The {@link IScheduler} to use for
+ * managing the timers that handle the rate-limiting behavior.
+ * @return {Observable<T>} An Observable that performs rate-limiting of
+ * emissions from the source Observable.
+ * @method auditTime
+ * @owner Observable
+ */
+function auditTime(duration, scheduler) {
+ if (scheduler === void 0) { scheduler = async_1.async; }
+ return auditTime_1.auditTime(duration, scheduler)(this);
+}
+exports.auditTime = auditTime;
+
+},{"../operators/auditTime":159,"../scheduler/async":213}],117:[function(require,module,exports){
"use strict";
var buffer_1 = require('../operators/buffer');
/**
}
exports.buffer = buffer;
-},{"../operators/buffer":153}],114:[function(require,module,exports){
+},{"../operators/buffer":160}],118:[function(require,module,exports){
"use strict";
var bufferCount_1 = require('../operators/bufferCount');
/**
}
exports.bufferCount = bufferCount;
-},{"../operators/bufferCount":154}],115:[function(require,module,exports){
+},{"../operators/bufferCount":161}],119:[function(require,module,exports){
"use strict";
var bufferWhen_1 = require('../operators/bufferWhen');
/**
}
exports.bufferWhen = bufferWhen;
-},{"../operators/bufferWhen":155}],116:[function(require,module,exports){
+},{"../operators/bufferWhen":162}],120:[function(require,module,exports){
"use strict";
var catchError_1 = require('../operators/catchError');
/**
}
exports._catch = _catch;
-},{"../operators/catchError":156}],117:[function(require,module,exports){
+},{"../operators/catchError":163}],121:[function(require,module,exports){
"use strict";
var combineLatest_1 = require('../operators/combineLatest');
/* tslint:enable:max-line-length */
}
exports.combineLatest = combineLatest;
-},{"../operators/combineLatest":157}],118:[function(require,module,exports){
+},{"../operators/combineLatest":164}],122:[function(require,module,exports){
"use strict";
var concat_1 = require('../operators/concat');
/* tslint:enable:max-line-length */
}
exports.concat = concat;
-},{"../operators/concat":158}],119:[function(require,module,exports){
+},{"../operators/concat":165}],123:[function(require,module,exports){
"use strict";
var async_1 = require('../scheduler/async');
var debounceTime_1 = require('../operators/debounceTime');
}
exports.debounceTime = debounceTime;
-},{"../operators/debounceTime":160,"../scheduler/async":203}],120:[function(require,module,exports){
+},{"../operators/debounceTime":167,"../scheduler/async":213}],124:[function(require,module,exports){
"use strict";
var async_1 = require('../scheduler/async');
var delay_1 = require('../operators/delay');
}
exports.delay = delay;
-},{"../operators/delay":161,"../scheduler/async":203}],121:[function(require,module,exports){
+},{"../operators/delay":169,"../scheduler/async":213}],125:[function(require,module,exports){
"use strict";
var distinct_1 = require('../operators/distinct');
/**
}
exports.distinct = distinct;
-},{"../operators/distinct":162}],122:[function(require,module,exports){
+},{"../operators/distinct":170}],126:[function(require,module,exports){
"use strict";
var distinctUntilChanged_1 = require('../operators/distinctUntilChanged');
/* tslint:enable:max-line-length */
}
exports.distinctUntilChanged = distinctUntilChanged;
-},{"../operators/distinctUntilChanged":163}],123:[function(require,module,exports){
+},{"../operators/distinctUntilChanged":171}],127:[function(require,module,exports){
"use strict";
var tap_1 = require('../operators/tap');
/* tslint:enable:max-line-length */
}
exports._do = _do;
-},{"../operators/tap":192}],124:[function(require,module,exports){
+},{"../operators/tap":202}],128:[function(require,module,exports){
"use strict";
var expand_1 = require('../operators/expand');
/* tslint:enable:max-line-length */
}
exports.expand = expand;
-},{"../operators/expand":164}],125:[function(require,module,exports){
+},{"../operators/expand":172}],129:[function(require,module,exports){
"use strict";
var filter_1 = require('../operators/filter');
/* tslint:enable:max-line-length */
}
exports.filter = filter;
-},{"../operators/filter":165}],126:[function(require,module,exports){
+},{"../operators/filter":173}],130:[function(require,module,exports){
"use strict";
var finalize_1 = require('../operators/finalize');
/**
}
exports._finally = _finally;
-},{"../operators/finalize":166}],127:[function(require,module,exports){
+},{"../operators/finalize":174}],131:[function(require,module,exports){
"use strict";
var first_1 = require('../operators/first');
/**
}
exports.first = first;
-},{"../operators/first":167}],128:[function(require,module,exports){
+},{"../operators/first":175}],132:[function(require,module,exports){
"use strict";
var last_1 = require('../operators/last');
/* tslint:enable:max-line-length */
}
exports.last = last;
-},{"../operators/last":168}],129:[function(require,module,exports){
+},{"../operators/last":176}],133:[function(require,module,exports){
"use strict";
var map_1 = require('../operators/map');
/**
}
exports.map = map;
-},{"../operators/map":169}],130:[function(require,module,exports){
+},{"../operators/map":177}],134:[function(require,module,exports){
"use strict";
var merge_1 = require('../operators/merge');
var merge_2 = require('../operators/merge');
}
exports.merge = merge;
-},{"../operators/merge":170}],131:[function(require,module,exports){
+},{"../operators/merge":178}],135:[function(require,module,exports){
"use strict";
var mergeAll_1 = require('../operators/mergeAll');
/**
}
exports.mergeAll = mergeAll;
-},{"../operators/mergeAll":171}],132:[function(require,module,exports){
+},{"../operators/mergeAll":179}],136:[function(require,module,exports){
"use strict";
var mergeMap_1 = require('../operators/mergeMap');
/* tslint:enable:max-line-length */
}
exports.mergeMap = mergeMap;
-},{"../operators/mergeMap":172}],133:[function(require,module,exports){
+},{"../operators/mergeMap":180}],137:[function(require,module,exports){
"use strict";
var pairwise_1 = require('../operators/pairwise');
/**
}
exports.pairwise = pairwise;
-},{"../operators/pairwise":175}],134:[function(require,module,exports){
+},{"../operators/pairwise":183}],138:[function(require,module,exports){
"use strict";
var pluck_1 = require('../operators/pluck');
/**
}
exports.pluck = pluck;
-},{"../operators/pluck":176}],135:[function(require,module,exports){
+},{"../operators/pluck":184}],139:[function(require,module,exports){
"use strict";
var publish_1 = require('../operators/publish');
/* tslint:enable:max-line-length */
}
exports.publish = publish;
-},{"../operators/publish":177}],136:[function(require,module,exports){
+},{"../operators/publish":185}],140:[function(require,module,exports){
"use strict";
var publishReplay_1 = require('../operators/publishReplay');
/* tslint:enable:max-line-length */
}
exports.publishReplay = publishReplay;
-},{"../operators/publishReplay":178}],137:[function(require,module,exports){
+},{"../operators/publishReplay":186}],141:[function(require,module,exports){
+"use strict";
+var reduce_1 = require('../operators/reduce');
+/* tslint:enable:max-line-length */
+/**
+ * Applies an accumulator function over the source Observable, and returns the
+ * accumulated result when the source completes, given an optional seed value.
+ *
+ * <span class="informal">Combines together all values emitted on the source,
+ * using an accumulator function that knows how to join a new source value into
+ * the accumulation from the past.</span>
+ *
+ * <img src="./img/reduce.png" width="100%">
+ *
+ * Like
+ * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),
+ * `reduce` applies an `accumulator` function against an accumulation and each
+ * value of the source Observable (from the past) to reduce it to a single
+ * value, emitted on the output Observable. Note that `reduce` will only emit
+ * one value, only when the source Observable completes. It is equivalent to
+ * applying operator {@link scan} followed by operator {@link last}.
+ *
+ * Returns an Observable that applies a specified `accumulator` function to each
+ * item emitted by the source Observable. If a `seed` value is specified, then
+ * that value will be used as the initial value for the accumulator. If no seed
+ * value is specified, the first item of the source is used as the seed.
+ *
+ * @example <caption>Count the number of click events that happened in 5 seconds</caption>
+ * var clicksInFiveSeconds = Rx.Observable.fromEvent(document, 'click')
+ * .takeUntil(Rx.Observable.interval(5000));
+ * var ones = clicksInFiveSeconds.mapTo(1);
+ * var seed = 0;
+ * var count = ones.reduce((acc, one) => acc + one, seed);
+ * count.subscribe(x => console.log(x));
+ *
+ * @see {@link count}
+ * @see {@link expand}
+ * @see {@link mergeScan}
+ * @see {@link scan}
+ *
+ * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function
+ * called on each source value.
+ * @param {R} [seed] The initial accumulation value.
+ * @return {Observable<R>} An Observable that emits a single value that is the
+ * result of accumulating the values emitted by the source Observable.
+ * @method reduce
+ * @owner Observable
+ */
+function reduce(accumulator, seed) {
+ // providing a seed of `undefined` *should* be valid and trigger
+ // hasSeed! so don't use `seed !== undefined` checks!
+ // For this reason, we have to check it here at the original call site
+ // otherwise inside Operator/Subscriber we won't know if `undefined`
+ // means they didn't provide anything or if they literally provided `undefined`
+ if (arguments.length >= 2) {
+ return reduce_1.reduce(accumulator, seed)(this);
+ }
+ return reduce_1.reduce(accumulator)(this);
+}
+exports.reduce = reduce;
+
+},{"../operators/reduce":187}],142:[function(require,module,exports){
"use strict";
var retry_1 = require('../operators/retry');
/**
}
exports.retry = retry;
-},{"../operators/retry":180}],138:[function(require,module,exports){
+},{"../operators/retry":189}],143:[function(require,module,exports){
"use strict";
var sample_1 = require('../operators/sample');
/**
}
exports.sample = sample;
-},{"../operators/sample":181}],139:[function(require,module,exports){
+},{"../operators/sample":190}],144:[function(require,module,exports){
"use strict";
var scan_1 = require('../operators/scan');
/* tslint:enable:max-line-length */
}
exports.scan = scan;
-},{"../operators/scan":182}],140:[function(require,module,exports){
+},{"../operators/scan":191}],145:[function(require,module,exports){
"use strict";
var share_1 = require('../operators/share');
/**
exports.share = share;
;
-},{"../operators/share":183}],141:[function(require,module,exports){
+},{"../operators/share":192}],146:[function(require,module,exports){
"use strict";
var skip_1 = require('../operators/skip');
/**
}
exports.skip = skip;
-},{"../operators/skip":184}],142:[function(require,module,exports){
+},{"../operators/skip":193}],147:[function(require,module,exports){
"use strict";
var skipUntil_1 = require('../operators/skipUntil');
/**
}
exports.skipUntil = skipUntil;
-},{"../operators/skipUntil":185}],143:[function(require,module,exports){
+},{"../operators/skipUntil":194}],148:[function(require,module,exports){
"use strict";
var skipWhile_1 = require('../operators/skipWhile');
/**
}
exports.skipWhile = skipWhile;
-},{"../operators/skipWhile":186}],144:[function(require,module,exports){
+},{"../operators/skipWhile":195}],149:[function(require,module,exports){
"use strict";
var startWith_1 = require('../operators/startWith');
/* tslint:enable:max-line-length */
}
exports.startWith = startWith;
-},{"../operators/startWith":187}],145:[function(require,module,exports){
+},{"../operators/startWith":196}],150:[function(require,module,exports){
"use strict";
var switchMap_1 = require('../operators/switchMap');
/* tslint:enable:max-line-length */
}
exports.switchMap = switchMap;
-},{"../operators/switchMap":188}],146:[function(require,module,exports){
+},{"../operators/switchMap":197}],151:[function(require,module,exports){
"use strict";
var take_1 = require('../operators/take');
/**
}
exports.take = take;
-},{"../operators/take":189}],147:[function(require,module,exports){
+},{"../operators/take":198}],152:[function(require,module,exports){
"use strict";
var takeUntil_1 = require('../operators/takeUntil');
/**
}
exports.takeUntil = takeUntil;
-},{"../operators/takeUntil":190}],148:[function(require,module,exports){
+},{"../operators/takeUntil":200}],153:[function(require,module,exports){
"use strict";
var takeWhile_1 = require('../operators/takeWhile');
/**
}
exports.takeWhile = takeWhile;
-},{"../operators/takeWhile":191}],149:[function(require,module,exports){
+},{"../operators/takeWhile":201}],154:[function(require,module,exports){
"use strict";
var async_1 = require('../scheduler/async');
var throttle_1 = require('../operators/throttle');
}
exports.throttleTime = throttleTime;
-},{"../operators/throttle":193,"../operators/throttleTime":194,"../scheduler/async":203}],150:[function(require,module,exports){
+},{"../operators/throttle":203,"../operators/throttleTime":204,"../scheduler/async":213}],155:[function(require,module,exports){
"use strict";
var async_1 = require('../scheduler/async');
var timeout_1 = require('../operators/timeout');
}
exports.timeout = timeout;
-},{"../operators/timeout":195,"../scheduler/async":203}],151:[function(require,module,exports){
+},{"../operators/timeout":205,"../scheduler/async":213}],156:[function(require,module,exports){
"use strict";
var withLatestFrom_1 = require('../operators/withLatestFrom');
/* tslint:enable:max-line-length */
}
exports.withLatestFrom = withLatestFrom;
-},{"../operators/withLatestFrom":196}],152:[function(require,module,exports){
+},{"../operators/withLatestFrom":206}],157:[function(require,module,exports){
"use strict";
var zip_1 = require('../operators/zip');
/* tslint:enable:max-line-length */
}
exports.zipProto = zipProto;
-},{"../operators/zip":197}],153:[function(require,module,exports){
+},{"../operators/zip":207}],158:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var tryCatch_1 = require('../util/tryCatch');
+var errorObject_1 = require('../util/errorObject');
+var OuterSubscriber_1 = require('../OuterSubscriber');
+var subscribeToResult_1 = require('../util/subscribeToResult');
+/**
+ * Ignores source values for a duration determined by another Observable, then
+ * emits the most recent value from the source Observable, then repeats this
+ * process.
+ *
+ * <span class="informal">It's like {@link auditTime}, but the silencing
+ * duration is determined by a second Observable.</span>
+ *
+ * <img src="./img/audit.png" width="100%">
+ *
+ * `audit` is similar to `throttle`, but emits the last value from the silenced
+ * time window, instead of the first value. `audit` emits the most recent value
+ * from the source Observable on the output Observable as soon as its internal
+ * timer becomes disabled, and ignores source values while the timer is enabled.
+ * Initially, the timer is disabled. As soon as the first source value arrives,
+ * the timer is enabled by calling the `durationSelector` function with the
+ * source value, which returns the "duration" Observable. When the duration
+ * Observable emits a value or completes, the timer is disabled, then the most
+ * recent source value is emitted on the output Observable, and this process
+ * repeats for the next source value.
+ *
+ * @example <caption>Emit clicks at a rate of at most one click per second</caption>
+ * var clicks = Rx.Observable.fromEvent(document, 'click');
+ * var result = clicks.audit(ev => Rx.Observable.interval(1000));
+ * result.subscribe(x => console.log(x));
+ *
+ * @see {@link auditTime}
+ * @see {@link debounce}
+ * @see {@link delayWhen}
+ * @see {@link sample}
+ * @see {@link throttle}
+ *
+ * @param {function(value: T): SubscribableOrPromise} durationSelector A function
+ * that receives a value from the source Observable, for computing the silencing
+ * duration, returned as an Observable or a Promise.
+ * @return {Observable<T>} An Observable that performs rate-limiting of
+ * emissions from the source Observable.
+ * @method audit
+ * @owner Observable
+ */
+function audit(durationSelector) {
+ return function auditOperatorFunction(source) {
+ return source.lift(new AuditOperator(durationSelector));
+ };
+}
+exports.audit = audit;
+var AuditOperator = (function () {
+ function AuditOperator(durationSelector) {
+ this.durationSelector = durationSelector;
+ }
+ AuditOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
+ };
+ return AuditOperator;
+}());
+/**
+ * We need this JSDoc comment for affecting ESDoc.
+ * @ignore
+ * @extends {Ignored}
+ */
+var AuditSubscriber = (function (_super) {
+ __extends(AuditSubscriber, _super);
+ function AuditSubscriber(destination, durationSelector) {
+ _super.call(this, destination);
+ this.durationSelector = durationSelector;
+ this.hasValue = false;
+ }
+ AuditSubscriber.prototype._next = function (value) {
+ this.value = value;
+ this.hasValue = true;
+ if (!this.throttled) {
+ var duration = tryCatch_1.tryCatch(this.durationSelector)(value);
+ if (duration === errorObject_1.errorObject) {
+ this.destination.error(errorObject_1.errorObject.e);
+ }
+ else {
+ var innerSubscription = subscribeToResult_1.subscribeToResult(this, duration);
+ if (innerSubscription.closed) {
+ this.clearThrottle();
+ }
+ else {
+ this.add(this.throttled = innerSubscription);
+ }
+ }
+ }
+ };
+ AuditSubscriber.prototype.clearThrottle = function () {
+ var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;
+ if (throttled) {
+ this.remove(throttled);
+ this.throttled = null;
+ throttled.unsubscribe();
+ }
+ if (hasValue) {
+ this.value = null;
+ this.hasValue = false;
+ this.destination.next(value);
+ }
+ };
+ AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {
+ this.clearThrottle();
+ };
+ AuditSubscriber.prototype.notifyComplete = function () {
+ this.clearThrottle();
+ };
+ return AuditSubscriber;
+}(OuterSubscriber_1.OuterSubscriber));
+
+},{"../OuterSubscriber":31,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],159:[function(require,module,exports){
+"use strict";
+var async_1 = require('../scheduler/async');
+var audit_1 = require('./audit');
+var timer_1 = require('../observable/timer');
+/**
+ * Ignores source values for `duration` milliseconds, then emits the most recent
+ * value from the source Observable, then repeats this process.
+ *
+ * <span class="informal">When it sees a source values, it ignores that plus
+ * the next ones for `duration` milliseconds, and then it emits the most recent
+ * value from the source.</span>
+ *
+ * <img src="./img/auditTime.png" width="100%">
+ *
+ * `auditTime` is similar to `throttleTime`, but emits the last value from the
+ * silenced time window, instead of the first value. `auditTime` emits the most
+ * recent value from the source Observable on the output Observable as soon as
+ * its internal timer becomes disabled, and ignores source values while the
+ * timer is enabled. Initially, the timer is disabled. As soon as the first
+ * source value arrives, the timer is enabled. After `duration` milliseconds (or
+ * the time unit determined internally by the optional `scheduler`) has passed,
+ * the timer is disabled, then the most recent source value is emitted on the
+ * output Observable, and this process repeats for the next source value.
+ * Optionally takes a {@link IScheduler} for managing timers.
+ *
+ * @example <caption>Emit clicks at a rate of at most one click per second</caption>
+ * var clicks = Rx.Observable.fromEvent(document, 'click');
+ * var result = clicks.auditTime(1000);
+ * result.subscribe(x => console.log(x));
+ *
+ * @see {@link audit}
+ * @see {@link debounceTime}
+ * @see {@link delay}
+ * @see {@link sampleTime}
+ * @see {@link throttleTime}
+ *
+ * @param {number} duration Time to wait before emitting the most recent source
+ * value, measured in milliseconds or the time unit determined internally
+ * by the optional `scheduler`.
+ * @param {Scheduler} [scheduler=async] The {@link IScheduler} to use for
+ * managing the timers that handle the rate-limiting behavior.
+ * @return {Observable<T>} An Observable that performs rate-limiting of
+ * emissions from the source Observable.
+ * @method auditTime
+ * @owner Observable
+ */
+function auditTime(duration, scheduler) {
+ if (scheduler === void 0) { scheduler = async_1.async; }
+ return audit_1.audit(function () { return timer_1.timer(duration, scheduler); });
+}
+exports.auditTime = auditTime;
+
+},{"../observable/timer":114,"../scheduler/async":213,"./audit":158}],160:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return BufferSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],154:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],161:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return BufferSkipCountSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],155:[function(require,module,exports){
+},{"../Subscriber":36}],162:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return BufferWhenSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../Subscription":37,"../util/errorObject":215,"../util/subscribeToResult":228,"../util/tryCatch":230}],156:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../Subscription":37,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],163:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return CatchSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],157:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],164:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(OuterSubscriber_1.OuterSubscriber));
exports.CombineLatestSubscriber = CombineLatestSubscriber;
-},{"../OuterSubscriber":31,"../observable/ArrayObservable":90,"../util/isArray":217,"../util/subscribeToResult":228}],158:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../observable/ArrayObservable":93,"../util/isArray":227,"../util/subscribeToResult":238}],165:[function(require,module,exports){
"use strict";
var concat_1 = require('../observable/concat');
/* tslint:enable:max-line-length */
}
exports.concat = concat;
-},{"../observable/concat":102}],159:[function(require,module,exports){
+},{"../observable/concat":105}],166:[function(require,module,exports){
"use strict";
var mergeAll_1 = require('./mergeAll');
/**
}
exports.concatAll = concatAll;
-},{"./mergeAll":171}],160:[function(require,module,exports){
+},{"./mergeAll":179}],167:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
subscriber.debouncedNext();
}
-},{"../Subscriber":36,"../scheduler/async":203}],161:[function(require,module,exports){
+},{"../Subscriber":36,"../scheduler/async":213}],168:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var Subscriber_1 = require('../Subscriber');
+/* tslint:enable:max-line-length */
+/**
+ * Emits a given value if the source Observable completes without emitting any
+ * `next` value, otherwise mirrors the source Observable.
+ *
+ * <span class="informal">If the source Observable turns out to be empty, then
+ * this operator will emit a default value.</span>
+ *
+ * <img src="./img/defaultIfEmpty.png" width="100%">
+ *
+ * `defaultIfEmpty` emits the values emitted by the source Observable or a
+ * specified default value if the source Observable is empty (completes without
+ * having emitted any `next` value).
+ *
+ * @example <caption>If no clicks happen in 5 seconds, then emit "no clicks"</caption>
+ * var clicks = Rx.Observable.fromEvent(document, 'click');
+ * var clicksBeforeFive = clicks.takeUntil(Rx.Observable.interval(5000));
+ * var result = clicksBeforeFive.defaultIfEmpty('no clicks');
+ * result.subscribe(x => console.log(x));
+ *
+ * @see {@link empty}
+ * @see {@link last}
+ *
+ * @param {any} [defaultValue=null] The default value used if the source
+ * Observable is empty.
+ * @return {Observable} An Observable that emits either the specified
+ * `defaultValue` if the source Observable emits no items, or the values emitted
+ * by the source Observable.
+ * @method defaultIfEmpty
+ * @owner Observable
+ */
+function defaultIfEmpty(defaultValue) {
+ if (defaultValue === void 0) { defaultValue = null; }
+ return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };
+}
+exports.defaultIfEmpty = defaultIfEmpty;
+var DefaultIfEmptyOperator = (function () {
+ function DefaultIfEmptyOperator(defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+ DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
+ };
+ return DefaultIfEmptyOperator;
+}());
+/**
+ * We need this JSDoc comment for affecting ESDoc.
+ * @ignore
+ * @extends {Ignored}
+ */
+var DefaultIfEmptySubscriber = (function (_super) {
+ __extends(DefaultIfEmptySubscriber, _super);
+ function DefaultIfEmptySubscriber(destination, defaultValue) {
+ _super.call(this, destination);
+ this.defaultValue = defaultValue;
+ this.isEmpty = true;
+ }
+ DefaultIfEmptySubscriber.prototype._next = function (value) {
+ this.isEmpty = false;
+ this.destination.next(value);
+ };
+ DefaultIfEmptySubscriber.prototype._complete = function () {
+ if (this.isEmpty) {
+ this.destination.next(this.defaultValue);
+ }
+ this.destination.complete();
+ };
+ return DefaultIfEmptySubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Subscriber":36}],169:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return DelayMessage;
}());
-},{"../Notification":28,"../Subscriber":36,"../scheduler/async":203,"../util/isDate":219}],162:[function(require,module,exports){
+},{"../Notification":28,"../Subscriber":36,"../scheduler/async":213,"../util/isDate":229}],170:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(OuterSubscriber_1.OuterSubscriber));
exports.DistinctSubscriber = DistinctSubscriber;
-},{"../OuterSubscriber":31,"../util/Set":212,"../util/subscribeToResult":228}],163:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/Set":222,"../util/subscribeToResult":238}],171:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return DistinctUntilChangedSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../util/errorObject":215,"../util/tryCatch":230}],164:[function(require,module,exports){
+},{"../Subscriber":36,"../util/errorObject":225,"../util/tryCatch":240}],172:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(OuterSubscriber_1.OuterSubscriber));
exports.ExpandSubscriber = ExpandSubscriber;
-},{"../OuterSubscriber":31,"../util/errorObject":215,"../util/subscribeToResult":228,"../util/tryCatch":230}],165:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/errorObject":225,"../util/subscribeToResult":238,"../util/tryCatch":240}],173:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return FilterSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],166:[function(require,module,exports){
+},{"../Subscriber":36}],174:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return FinallySubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../Subscription":37}],167:[function(require,module,exports){
+},{"../Subscriber":36,"../Subscription":37}],175:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return FirstSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../util/EmptyError":210}],168:[function(require,module,exports){
+},{"../Subscriber":36,"../util/EmptyError":220}],176:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return LastSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../util/EmptyError":210}],169:[function(require,module,exports){
+},{"../Subscriber":36,"../util/EmptyError":220}],177:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return MapSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],170:[function(require,module,exports){
+},{"../Subscriber":36}],178:[function(require,module,exports){
"use strict";
var Observable_1 = require('../Observable');
var ArrayObservable_1 = require('../observable/ArrayObservable');
}
exports.mergeStatic = mergeStatic;
-},{"../Observable":29,"../observable/ArrayObservable":90,"../util/isScheduler":224,"./mergeAll":171}],171:[function(require,module,exports){
+},{"../Observable":29,"../observable/ArrayObservable":93,"../util/isScheduler":234,"./mergeAll":179}],179:[function(require,module,exports){
"use strict";
var mergeMap_1 = require('./mergeMap');
var identity_1 = require('../util/identity');
}
exports.mergeAll = mergeAll;
-},{"../util/identity":216,"./mergeMap":172}],172:[function(require,module,exports){
+},{"../util/identity":226,"./mergeMap":180}],180:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(OuterSubscriber_1.OuterSubscriber));
exports.MergeMapSubscriber = MergeMapSubscriber;
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],173:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],181:[function(require,module,exports){
"use strict";
var ConnectableObservable_1 = require('../observable/ConnectableObservable');
/* tslint:enable:max-line-length */
}());
exports.MulticastOperator = MulticastOperator;
-},{"../observable/ConnectableObservable":91}],174:[function(require,module,exports){
+},{"../observable/ConnectableObservable":94}],182:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}());
exports.ObserveOnMessage = ObserveOnMessage;
-},{"../Notification":28,"../Subscriber":36}],175:[function(require,module,exports){
+},{"../Notification":28,"../Subscriber":36}],183:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return PairwiseSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],176:[function(require,module,exports){
+},{"../Subscriber":36}],184:[function(require,module,exports){
"use strict";
var map_1 = require('./map');
/**
return mapper;
}
-},{"./map":169}],177:[function(require,module,exports){
+},{"./map":177}],185:[function(require,module,exports){
"use strict";
var Subject_1 = require('../Subject');
var multicast_1 = require('./multicast');
}
exports.publish = publish;
-},{"../Subject":34,"./multicast":173}],178:[function(require,module,exports){
+},{"../Subject":34,"./multicast":181}],186:[function(require,module,exports){
"use strict";
var ReplaySubject_1 = require('../ReplaySubject');
var multicast_1 = require('./multicast');
}
exports.publishReplay = publishReplay;
-},{"../ReplaySubject":32,"./multicast":173}],179:[function(require,module,exports){
+},{"../ReplaySubject":32,"./multicast":181}],187:[function(require,module,exports){
+"use strict";
+var scan_1 = require('./scan');
+var takeLast_1 = require('./takeLast');
+var defaultIfEmpty_1 = require('./defaultIfEmpty');
+var pipe_1 = require('../util/pipe');
+/* tslint:enable:max-line-length */
+/**
+ * Applies an accumulator function over the source Observable, and returns the
+ * accumulated result when the source completes, given an optional seed value.
+ *
+ * <span class="informal">Combines together all values emitted on the source,
+ * using an accumulator function that knows how to join a new source value into
+ * the accumulation from the past.</span>
+ *
+ * <img src="./img/reduce.png" width="100%">
+ *
+ * Like
+ * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),
+ * `reduce` applies an `accumulator` function against an accumulation and each
+ * value of the source Observable (from the past) to reduce it to a single
+ * value, emitted on the output Observable. Note that `reduce` will only emit
+ * one value, only when the source Observable completes. It is equivalent to
+ * applying operator {@link scan} followed by operator {@link last}.
+ *
+ * Returns an Observable that applies a specified `accumulator` function to each
+ * item emitted by the source Observable. If a `seed` value is specified, then
+ * that value will be used as the initial value for the accumulator. If no seed
+ * value is specified, the first item of the source is used as the seed.
+ *
+ * @example <caption>Count the number of click events that happened in 5 seconds</caption>
+ * var clicksInFiveSeconds = Rx.Observable.fromEvent(document, 'click')
+ * .takeUntil(Rx.Observable.interval(5000));
+ * var ones = clicksInFiveSeconds.mapTo(1);
+ * var seed = 0;
+ * var count = ones.reduce((acc, one) => acc + one, seed);
+ * count.subscribe(x => console.log(x));
+ *
+ * @see {@link count}
+ * @see {@link expand}
+ * @see {@link mergeScan}
+ * @see {@link scan}
+ *
+ * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function
+ * called on each source value.
+ * @param {R} [seed] The initial accumulation value.
+ * @return {Observable<R>} An Observable that emits a single value that is the
+ * result of accumulating the values emitted by the source Observable.
+ * @method reduce
+ * @owner Observable
+ */
+function reduce(accumulator, seed) {
+ // providing a seed of `undefined` *should* be valid and trigger
+ // hasSeed! so don't use `seed !== undefined` checks!
+ // For this reason, we have to check it here at the original call site
+ // otherwise inside Operator/Subscriber we won't know if `undefined`
+ // means they didn't provide anything or if they literally provided `undefined`
+ if (arguments.length >= 2) {
+ return function reduceOperatorFunctionWithSeed(source) {
+ return pipe_1.pipe(scan_1.scan(accumulator, seed), takeLast_1.takeLast(1), defaultIfEmpty_1.defaultIfEmpty(seed))(source);
+ };
+ }
+ return function reduceOperatorFunction(source) {
+ return pipe_1.pipe(scan_1.scan(function (acc, value, index) {
+ return accumulator(acc, value, index + 1);
+ }), takeLast_1.takeLast(1))(source);
+ };
+}
+exports.reduce = reduce;
+
+},{"../util/pipe":236,"./defaultIfEmpty":168,"./scan":191,"./takeLast":199}],188:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return RefCountSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],180:[function(require,module,exports){
+},{"../Subscriber":36}],189:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return RetrySubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],181:[function(require,module,exports){
+},{"../Subscriber":36}],190:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SampleSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],182:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],191:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return ScanSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],183:[function(require,module,exports){
+},{"../Subscriber":36}],192:[function(require,module,exports){
"use strict";
var multicast_1 = require('./multicast');
var refCount_1 = require('./refCount');
exports.share = share;
;
-},{"../Subject":34,"./multicast":173,"./refCount":179}],184:[function(require,module,exports){
+},{"../Subject":34,"./multicast":181,"./refCount":188}],193:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SkipSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],185:[function(require,module,exports){
+},{"../Subscriber":36}],194:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SkipUntilSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],186:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],195:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SkipWhileSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],187:[function(require,module,exports){
+},{"../Subscriber":36}],196:[function(require,module,exports){
"use strict";
var ArrayObservable_1 = require('../observable/ArrayObservable');
var ScalarObservable_1 = require('../observable/ScalarObservable');
}
exports.startWith = startWith;
-},{"../observable/ArrayObservable":90,"../observable/EmptyObservable":93,"../observable/ScalarObservable":99,"../observable/concat":102,"../util/isScheduler":224}],188:[function(require,module,exports){
+},{"../observable/ArrayObservable":93,"../observable/EmptyObservable":96,"../observable/ScalarObservable":102,"../observable/concat":105,"../util/isScheduler":234}],197:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return SwitchMapSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],189:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],198:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return TakeSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../observable/EmptyObservable":93,"../util/ArgumentOutOfRangeError":209}],190:[function(require,module,exports){
+},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":219}],199:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var Subscriber_1 = require('../Subscriber');
+var ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError');
+var EmptyObservable_1 = require('../observable/EmptyObservable');
+/**
+ * Emits only the last `count` values emitted by the source Observable.
+ *
+ * <span class="informal">Remembers the latest `count` values, then emits those
+ * only when the source completes.</span>
+ *
+ * <img src="./img/takeLast.png" width="100%">
+ *
+ * `takeLast` returns an Observable that emits at most the last `count` values
+ * emitted by the source Observable. If the source emits fewer than `count`
+ * values then all of its values are emitted. This operator must wait until the
+ * `complete` notification emission from the source in order to emit the `next`
+ * values on the output Observable, because otherwise it is impossible to know
+ * whether or not more values will be emitted on the source. For this reason,
+ * all values are emitted synchronously, followed by the complete notification.
+ *
+ * @example <caption>Take the last 3 values of an Observable with many values</caption>
+ * var many = Rx.Observable.range(1, 100);
+ * var lastThree = many.takeLast(3);
+ * lastThree.subscribe(x => console.log(x));
+ *
+ * @see {@link take}
+ * @see {@link takeUntil}
+ * @see {@link takeWhile}
+ * @see {@link skip}
+ *
+ * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an
+ * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.
+ *
+ * @param {number} count The maximum number of values to emit from the end of
+ * the sequence of values emitted by the source Observable.
+ * @return {Observable<T>} An Observable that emits at most the last count
+ * values emitted by the source Observable.
+ * @method takeLast
+ * @owner Observable
+ */
+function takeLast(count) {
+ return function takeLastOperatorFunction(source) {
+ if (count === 0) {
+ return new EmptyObservable_1.EmptyObservable();
+ }
+ else {
+ return source.lift(new TakeLastOperator(count));
+ }
+ };
+}
+exports.takeLast = takeLast;
+var TakeLastOperator = (function () {
+ function TakeLastOperator(total) {
+ this.total = total;
+ if (this.total < 0) {
+ throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
+ }
+ }
+ TakeLastOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
+ };
+ return TakeLastOperator;
+}());
+/**
+ * We need this JSDoc comment for affecting ESDoc.
+ * @ignore
+ * @extends {Ignored}
+ */
+var TakeLastSubscriber = (function (_super) {
+ __extends(TakeLastSubscriber, _super);
+ function TakeLastSubscriber(destination, total) {
+ _super.call(this, destination);
+ this.total = total;
+ this.ring = new Array();
+ this.count = 0;
+ }
+ TakeLastSubscriber.prototype._next = function (value) {
+ var ring = this.ring;
+ var total = this.total;
+ var count = this.count++;
+ if (ring.length < total) {
+ ring.push(value);
+ }
+ else {
+ var index = count % total;
+ ring[index] = value;
+ }
+ };
+ TakeLastSubscriber.prototype._complete = function () {
+ var destination = this.destination;
+ var count = this.count;
+ if (count > 0) {
+ var total = this.count >= this.total ? this.total : this.count;
+ var ring = this.ring;
+ for (var i = 0; i < total; i++) {
+ var idx = (count++) % total;
+ destination.next(ring[idx]);
+ }
+ }
+ destination.complete();
+ };
+ return TakeLastSubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Subscriber":36,"../observable/EmptyObservable":96,"../util/ArgumentOutOfRangeError":219}],200:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return TakeUntilSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],191:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],201:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return TakeWhileSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],192:[function(require,module,exports){
+},{"../Subscriber":36}],202:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return DoSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36}],193:[function(require,module,exports){
+},{"../Subscriber":36}],203:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return ThrottleSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],194:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],204:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
subscriber.clearThrottle();
}
-},{"../Subscriber":36,"../scheduler/async":203,"./throttle":193}],195:[function(require,module,exports){
+},{"../Subscriber":36,"../scheduler/async":213,"./throttle":203}],205:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return TimeoutSubscriber;
}(Subscriber_1.Subscriber));
-},{"../Subscriber":36,"../scheduler/async":203,"../util/TimeoutError":213,"../util/isDate":219}],196:[function(require,module,exports){
+},{"../Subscriber":36,"../scheduler/async":213,"../util/TimeoutError":223,"../util/isDate":229}],206:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return WithLatestFromSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../util/subscribeToResult":228}],197:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../util/subscribeToResult":238}],207:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
return ZipBufferIterator;
}(OuterSubscriber_1.OuterSubscriber));
-},{"../OuterSubscriber":31,"../Subscriber":36,"../observable/ArrayObservable":90,"../symbol/iterator":205,"../util/isArray":217,"../util/subscribeToResult":228}],198:[function(require,module,exports){
+},{"../OuterSubscriber":31,"../Subscriber":36,"../observable/ArrayObservable":93,"../symbol/iterator":215,"../util/isArray":227,"../util/subscribeToResult":238}],208:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Subscription_1.Subscription));
exports.Action = Action;
-},{"../Subscription":37}],199:[function(require,module,exports){
+},{"../Subscription":37}],209:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Action_1.Action));
exports.AsyncAction = AsyncAction;
-},{"../util/root":227,"./Action":198}],200:[function(require,module,exports){
+},{"../util/root":237,"./Action":208}],210:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Scheduler_1.Scheduler));
exports.AsyncScheduler = AsyncScheduler;
-},{"../Scheduler":33}],201:[function(require,module,exports){
+},{"../Scheduler":33}],211:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(AsyncAction_1.AsyncAction));
exports.QueueAction = QueueAction;
-},{"./AsyncAction":199}],202:[function(require,module,exports){
+},{"./AsyncAction":209}],212:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(AsyncScheduler_1.AsyncScheduler));
exports.QueueScheduler = QueueScheduler;
-},{"./AsyncScheduler":200}],203:[function(require,module,exports){
+},{"./AsyncScheduler":210}],213:[function(require,module,exports){
"use strict";
var AsyncAction_1 = require('./AsyncAction');
var AsyncScheduler_1 = require('./AsyncScheduler');
*/
exports.async = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);
-},{"./AsyncAction":199,"./AsyncScheduler":200}],204:[function(require,module,exports){
+},{"./AsyncAction":209,"./AsyncScheduler":210}],214:[function(require,module,exports){
"use strict";
var QueueAction_1 = require('./QueueAction');
var QueueScheduler_1 = require('./QueueScheduler');
*/
exports.queue = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);
-},{"./QueueAction":201,"./QueueScheduler":202}],205:[function(require,module,exports){
+},{"./QueueAction":211,"./QueueScheduler":212}],215:[function(require,module,exports){
"use strict";
var root_1 = require('../util/root');
function symbolIteratorPonyfill(root) {
*/
exports.$$iterator = exports.iterator;
-},{"../util/root":227}],206:[function(require,module,exports){
+},{"../util/root":237}],216:[function(require,module,exports){
"use strict";
var root_1 = require('../util/root');
function getSymbolObservable(context) {
*/
exports.$$observable = exports.observable;
-},{"../util/root":227}],207:[function(require,module,exports){
+},{"../util/root":237}],217:[function(require,module,exports){
"use strict";
var root_1 = require('../util/root');
var Symbol = root_1.root.Symbol;
*/
exports.$$rxSubscriber = exports.rxSubscriber;
-},{"../util/root":227}],208:[function(require,module,exports){
+},{"../util/root":237}],218:[function(require,module,exports){
"use strict";
var root_1 = require('./root');
var RequestAnimationFrameDefinition = (function () {
exports.RequestAnimationFrameDefinition = RequestAnimationFrameDefinition;
exports.AnimationFrame = new RequestAnimationFrameDefinition(root_1.root);
-},{"./root":227}],209:[function(require,module,exports){
+},{"./root":237}],219:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Error));
exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;
-},{}],210:[function(require,module,exports){
+},{}],220:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Error));
exports.EmptyError = EmptyError;
-},{}],211:[function(require,module,exports){
+},{}],221:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Error));
exports.ObjectUnsubscribedError = ObjectUnsubscribedError;
-},{}],212:[function(require,module,exports){
+},{}],222:[function(require,module,exports){
"use strict";
var root_1 = require('./root');
function minimalSetImpl() {
exports.minimalSetImpl = minimalSetImpl;
exports.Set = root_1.root.Set || minimalSetImpl();
-},{"./root":227}],213:[function(require,module,exports){
+},{"./root":237}],223:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Error));
exports.TimeoutError = TimeoutError;
-},{}],214:[function(require,module,exports){
+},{}],224:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
}(Error));
exports.UnsubscriptionError = UnsubscriptionError;
-},{}],215:[function(require,module,exports){
+},{}],225:[function(require,module,exports){
"use strict";
// typeof any so that it we don't have to cast when comparing a result to the error object
exports.errorObject = { e: {} };
-},{}],216:[function(require,module,exports){
+},{}],226:[function(require,module,exports){
"use strict";
function identity(x) {
return x;
}
exports.identity = identity;
-},{}],217:[function(require,module,exports){
+},{}],227:[function(require,module,exports){
"use strict";
exports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });
-},{}],218:[function(require,module,exports){
+},{}],228:[function(require,module,exports){
"use strict";
exports.isArrayLike = (function (x) { return x && typeof x.length === 'number'; });
-},{}],219:[function(require,module,exports){
+},{}],229:[function(require,module,exports){
"use strict";
function isDate(value) {
return value instanceof Date && !isNaN(+value);
}
exports.isDate = isDate;
-},{}],220:[function(require,module,exports){
+},{}],230:[function(require,module,exports){
"use strict";
function isFunction(x) {
return typeof x === 'function';
}
exports.isFunction = isFunction;
-},{}],221:[function(require,module,exports){
+},{}],231:[function(require,module,exports){
"use strict";
var isArray_1 = require('../util/isArray');
function isNumeric(val) {
exports.isNumeric = isNumeric;
;
-},{"../util/isArray":217}],222:[function(require,module,exports){
+},{"../util/isArray":227}],232:[function(require,module,exports){
"use strict";
function isObject(x) {
return x != null && typeof x === 'object';
}
exports.isObject = isObject;
-},{}],223:[function(require,module,exports){
+},{}],233:[function(require,module,exports){
"use strict";
function isPromise(value) {
return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
}
exports.isPromise = isPromise;
-},{}],224:[function(require,module,exports){
+},{}],234:[function(require,module,exports){
"use strict";
function isScheduler(value) {
return value && typeof value.schedule === 'function';
}
exports.isScheduler = isScheduler;
-},{}],225:[function(require,module,exports){
+},{}],235:[function(require,module,exports){
"use strict";
/* tslint:disable:no-empty */
function noop() { }
exports.noop = noop;
-},{}],226:[function(require,module,exports){
+},{}],236:[function(require,module,exports){
"use strict";
var noop_1 = require('./noop');
/* tslint:enable:max-line-length */
}
exports.pipeFromArray = pipeFromArray;
-},{"./noop":225}],227:[function(require,module,exports){
+},{"./noop":235}],237:[function(require,module,exports){
(function (global){
"use strict";
// CommonJS / Node have global context exposed as "global" variable.
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],228:[function(require,module,exports){
+},{}],238:[function(require,module,exports){
"use strict";
var root_1 = require('./root');
var isArrayLike_1 = require('./isArrayLike');
}
exports.subscribeToResult = subscribeToResult;
-},{"../InnerSubscriber":27,"../Observable":29,"../symbol/iterator":205,"../symbol/observable":206,"./isArrayLike":218,"./isObject":222,"./isPromise":223,"./root":227}],229:[function(require,module,exports){
+},{"../InnerSubscriber":27,"../Observable":29,"../symbol/iterator":215,"../symbol/observable":216,"./isArrayLike":228,"./isObject":232,"./isPromise":233,"./root":237}],239:[function(require,module,exports){
"use strict";
var Subscriber_1 = require('../Subscriber');
var rxSubscriber_1 = require('../symbol/rxSubscriber');
}
exports.toSubscriber = toSubscriber;
-},{"../Observer":30,"../Subscriber":36,"../symbol/rxSubscriber":207}],230:[function(require,module,exports){
+},{"../Observer":30,"../Subscriber":36,"../symbol/rxSubscriber":217}],240:[function(require,module,exports){
"use strict";
var errorObject_1 = require('./errorObject');
var tryCatchTarget;
exports.tryCatch = tryCatch;
;
-},{"./errorObject":215}],231:[function(require,module,exports){
+},{"./errorObject":225}],241:[function(require,module,exports){
// threejs.org/license
(function(m,ja){"object"===typeof exports&&"undefined"!==typeof module?ja(exports):"function"===typeof define&&define.amd?define(["exports"],ja):ja(m.THREE=m.THREE||{})})(this,function(m){function ja(){}function C(a,b){this.x=a||0;this.y=b||0}function K(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function Z(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}
function p(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}function ra(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function ea(a,b,c,d,e,f,g,h,k,l){Object.defineProperty(this,"id",{value:kf++});this.uuid=R.generateUUID();this.name="";this.image=void 0!==a?a:ea.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:ea.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=
function(a,b){console.warn("THREE.Projector: .projectVector() is now vector.project().");a.project(b)};this.unprojectVector=function(a,b){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject().");a.unproject(b)};this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}};m.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js");this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml",
"canvas");this.clear=function(){};this.render=function(){};this.setClearColor=function(){};this.setSize=function(){}};Object.defineProperty(m,"__esModule",{value:!0})});
-},{}],232:[function(require,module,exports){
+},{}],242:[function(require,module,exports){
'use strict';
module.exports = TinyQueue;
}
};
-},{}],233:[function(require,module,exports){
+},{}],243:[function(require,module,exports){
// Underscore.js 1.8.3
// http://underscorejs.org
// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
}
}.call(this));
-},{}],234:[function(require,module,exports){
+},{}],244:[function(require,module,exports){
var createElement = require("./vdom/create-element.js")
module.exports = createElement
-},{"./vdom/create-element.js":240}],235:[function(require,module,exports){
+},{"./vdom/create-element.js":250}],245:[function(require,module,exports){
var diff = require("./vtree/diff.js")
module.exports = diff
-},{"./vtree/diff.js":260}],236:[function(require,module,exports){
+},{"./vtree/diff.js":270}],246:[function(require,module,exports){
var h = require("./virtual-hyperscript/index.js")
module.exports = h
-},{"./virtual-hyperscript/index.js":247}],237:[function(require,module,exports){
+},{"./virtual-hyperscript/index.js":257}],247:[function(require,module,exports){
var diff = require("./diff.js")
var patch = require("./patch.js")
var h = require("./h.js")
VText: VText
}
-},{"./create-element.js":234,"./diff.js":235,"./h.js":236,"./patch.js":238,"./vnode/vnode.js":256,"./vnode/vtext.js":258}],238:[function(require,module,exports){
+},{"./create-element.js":244,"./diff.js":245,"./h.js":246,"./patch.js":248,"./vnode/vnode.js":266,"./vnode/vtext.js":268}],248:[function(require,module,exports){
var patch = require("./vdom/patch.js")
module.exports = patch
-},{"./vdom/patch.js":243}],239:[function(require,module,exports){
+},{"./vdom/patch.js":253}],249:[function(require,module,exports){
var isObject = require("is-object")
var isHook = require("../vnode/is-vhook.js")
}
}
-},{"../vnode/is-vhook.js":251,"is-object":20}],240:[function(require,module,exports){
+},{"../vnode/is-vhook.js":261,"is-object":20}],250:[function(require,module,exports){
var document = require("global/document")
var applyProperties = require("./apply-properties")
return node
}
-},{"../vnode/handle-thunk.js":249,"../vnode/is-vnode.js":252,"../vnode/is-vtext.js":253,"../vnode/is-widget.js":254,"./apply-properties":239,"global/document":16}],241:[function(require,module,exports){
+},{"../vnode/handle-thunk.js":259,"../vnode/is-vnode.js":262,"../vnode/is-vtext.js":263,"../vnode/is-widget.js":264,"./apply-properties":249,"global/document":16}],251:[function(require,module,exports){
// Maps a virtual DOM tree onto a real DOM tree in an efficient manner.
// We don't want to read all of the DOM nodes in the tree so we use
// the in-order tree indexing to eliminate recursion down certain branches.
return a > b ? 1 : -1
}
-},{}],242:[function(require,module,exports){
+},{}],252:[function(require,module,exports){
var applyProperties = require("./apply-properties")
var isWidget = require("../vnode/is-widget.js")
return newRoot;
}
-},{"../vnode/is-widget.js":254,"../vnode/vpatch.js":257,"./apply-properties":239,"./update-widget":244}],243:[function(require,module,exports){
+},{"../vnode/is-widget.js":264,"../vnode/vpatch.js":267,"./apply-properties":249,"./update-widget":254}],253:[function(require,module,exports){
var document = require("global/document")
var isArray = require("x-is-array")
return indices
}
-},{"./create-element":240,"./dom-index":241,"./patch-op":242,"global/document":16,"x-is-array":279}],244:[function(require,module,exports){
+},{"./create-element":250,"./dom-index":251,"./patch-op":252,"global/document":16,"x-is-array":289}],254:[function(require,module,exports){
var isWidget = require("../vnode/is-widget.js")
module.exports = updateWidget
return false
}
-},{"../vnode/is-widget.js":254}],245:[function(require,module,exports){
+},{"../vnode/is-widget.js":264}],255:[function(require,module,exports){
'use strict';
var EvStore = require('ev-store');
es[propName] = undefined;
};
-},{"ev-store":9}],246:[function(require,module,exports){
+},{"ev-store":9}],256:[function(require,module,exports){
'use strict';
module.exports = SoftSetHook;
}
};
-},{}],247:[function(require,module,exports){
+},{}],257:[function(require,module,exports){
'use strict';
var isArray = require('x-is-array');
}
}
-},{"../vnode/is-thunk":250,"../vnode/is-vhook":251,"../vnode/is-vnode":252,"../vnode/is-vtext":253,"../vnode/is-widget":254,"../vnode/vnode.js":256,"../vnode/vtext.js":258,"./hooks/ev-hook.js":245,"./hooks/soft-set-hook.js":246,"./parse-tag.js":248,"x-is-array":279}],248:[function(require,module,exports){
+},{"../vnode/is-thunk":260,"../vnode/is-vhook":261,"../vnode/is-vnode":262,"../vnode/is-vtext":263,"../vnode/is-widget":264,"../vnode/vnode.js":266,"../vnode/vtext.js":268,"./hooks/ev-hook.js":255,"./hooks/soft-set-hook.js":256,"./parse-tag.js":258,"x-is-array":289}],258:[function(require,module,exports){
'use strict';
var split = require('browser-split');
return props.namespace ? tagName : tagName.toUpperCase();
}
-},{"browser-split":5}],249:[function(require,module,exports){
+},{"browser-split":5}],259:[function(require,module,exports){
var isVNode = require("./is-vnode")
var isVText = require("./is-vtext")
var isWidget = require("./is-widget")
return renderedThunk
}
-},{"./is-thunk":250,"./is-vnode":252,"./is-vtext":253,"./is-widget":254}],250:[function(require,module,exports){
+},{"./is-thunk":260,"./is-vnode":262,"./is-vtext":263,"./is-widget":264}],260:[function(require,module,exports){
module.exports = isThunk
function isThunk(t) {
return t && t.type === "Thunk"
}
-},{}],251:[function(require,module,exports){
+},{}],261:[function(require,module,exports){
module.exports = isHook
function isHook(hook) {
typeof hook.unhook === "function" && !hook.hasOwnProperty("unhook"))
}
-},{}],252:[function(require,module,exports){
+},{}],262:[function(require,module,exports){
var version = require("./version")
module.exports = isVirtualNode
return x && x.type === "VirtualNode" && x.version === version
}
-},{"./version":255}],253:[function(require,module,exports){
+},{"./version":265}],263:[function(require,module,exports){
var version = require("./version")
module.exports = isVirtualText
return x && x.type === "VirtualText" && x.version === version
}
-},{"./version":255}],254:[function(require,module,exports){
+},{"./version":265}],264:[function(require,module,exports){
module.exports = isWidget
function isWidget(w) {
return w && w.type === "Widget"
}
-},{}],255:[function(require,module,exports){
+},{}],265:[function(require,module,exports){
module.exports = "2"
-},{}],256:[function(require,module,exports){
+},{}],266:[function(require,module,exports){
var version = require("./version")
var isVNode = require("./is-vnode")
var isWidget = require("./is-widget")
VirtualNode.prototype.version = version
VirtualNode.prototype.type = "VirtualNode"
-},{"./is-thunk":250,"./is-vhook":251,"./is-vnode":252,"./is-widget":254,"./version":255}],257:[function(require,module,exports){
+},{"./is-thunk":260,"./is-vhook":261,"./is-vnode":262,"./is-widget":264,"./version":265}],267:[function(require,module,exports){
var version = require("./version")
VirtualPatch.NONE = 0
VirtualPatch.prototype.version = version
VirtualPatch.prototype.type = "VirtualPatch"
-},{"./version":255}],258:[function(require,module,exports){
+},{"./version":265}],268:[function(require,module,exports){
var version = require("./version")
module.exports = VirtualText
VirtualText.prototype.version = version
VirtualText.prototype.type = "VirtualText"
-},{"./version":255}],259:[function(require,module,exports){
+},{"./version":265}],269:[function(require,module,exports){
var isObject = require("is-object")
var isHook = require("../vnode/is-vhook")
}
}
-},{"../vnode/is-vhook":251,"is-object":20}],260:[function(require,module,exports){
+},{"../vnode/is-vhook":261,"is-object":20}],270:[function(require,module,exports){
var isArray = require("x-is-array")
var VPatch = require("../vnode/vpatch")
}
}
-},{"../vnode/handle-thunk":249,"../vnode/is-thunk":250,"../vnode/is-vnode":252,"../vnode/is-vtext":253,"../vnode/is-widget":254,"../vnode/vpatch":257,"./diff-props":259,"x-is-array":279}],261:[function(require,module,exports){
+},{"../vnode/handle-thunk":259,"../vnode/is-thunk":260,"../vnode/is-vnode":262,"../vnode/is-vtext":263,"../vnode/is-widget":264,"../vnode/vpatch":267,"./diff-props":269,"x-is-array":289}],271:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-},{"./Scheduler":262,"./env":274,"./makePromise":276}],262:[function(require,module,exports){
+},{"./Scheduler":272,"./env":284,"./makePromise":286}],272:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],263:[function(require,module,exports){
+},{}],273:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
return TimeoutError;
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],264:[function(require,module,exports){
+},{}],274:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
-},{}],265:[function(require,module,exports){
+},{}],275:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-},{"../apply":264,"../state":277}],266:[function(require,module,exports){
+},{"../apply":274,"../state":287}],276:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],267:[function(require,module,exports){
+},{}],277:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],268:[function(require,module,exports){
+},{}],278:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-},{"../state":277}],269:[function(require,module,exports){
+},{"../state":287}],279:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],270:[function(require,module,exports){
+},{}],280:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],271:[function(require,module,exports){
+},{}],281:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-},{"../TimeoutError":263,"../env":274}],272:[function(require,module,exports){
+},{"../TimeoutError":273,"../env":284}],282:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
-},{"../env":274,"../format":275}],273:[function(require,module,exports){
+},{"../env":284,"../format":285}],283:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],274:[function(require,module,exports){
+},{}],284:[function(require,module,exports){
(function (process){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
}).call(this,require('_process'))
-},{"_process":6}],275:[function(require,module,exports){
+},{"_process":6}],285:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],276:[function(require,module,exports){
+},{}],286:[function(require,module,exports){
(function (process){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
}).call(this,require('_process'))
-},{"_process":6}],277:[function(require,module,exports){
+},{"_process":6}],287:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
-},{}],278:[function(require,module,exports){
+},{}],288:[function(require,module,exports){
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/**
});
})(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); });
-},{"./lib/Promise":261,"./lib/TimeoutError":263,"./lib/apply":264,"./lib/decorators/array":265,"./lib/decorators/flow":266,"./lib/decorators/fold":267,"./lib/decorators/inspect":268,"./lib/decorators/iterate":269,"./lib/decorators/progress":270,"./lib/decorators/timed":271,"./lib/decorators/unhandledRejection":272,"./lib/decorators/with":273}],279:[function(require,module,exports){
+},{"./lib/Promise":271,"./lib/TimeoutError":273,"./lib/apply":274,"./lib/decorators/array":275,"./lib/decorators/flow":276,"./lib/decorators/fold":277,"./lib/decorators/inspect":278,"./lib/decorators/iterate":279,"./lib/decorators/progress":280,"./lib/decorators/timed":281,"./lib/decorators/unhandledRejection":282,"./lib/decorators/with":283}],289:[function(require,module,exports){
var nativeIsArray = Array.isArray
var toString = Object.prototype.toString
return toString.call(obj) === "[object Array]"
}
-},{}],280:[function(require,module,exports){
+},{}],290:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var APIv3_1 = require("./api/APIv3");
var ModelCreator_1 = require("./api/ModelCreator");
exports.ModelCreator = ModelCreator_1.ModelCreator;
-},{"./api/APIv3":293,"./api/ModelCreator":294}],281:[function(require,module,exports){
+},{"./api/APIv3":303,"./api/ModelCreator":304}],291:[function(require,module,exports){
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
exports.SequenceComponent = SequenceComponent_1.SequenceComponent;
var SequenceDOMRenderer_1 = require("./component/sequence/SequenceDOMRenderer");
exports.SequenceDOMRenderer = SequenceDOMRenderer_1.SequenceDOMRenderer;
-var SequenceDOMInteraction_1 = require("./component/sequence/SequenceDOMInteraction");
-exports.SequenceDOMInteraction = SequenceDOMInteraction_1.SequenceDOMInteraction;
-var ControlMode_1 = require("./component/sequence/ControlMode");
-exports.ControlMode = ControlMode_1.ControlMode;
+var SequenceMode_1 = require("./component/sequence/SequenceMode");
+exports.SequenceMode = SequenceMode_1.SequenceMode;
var ImagePlaneComponent_1 = require("./component/imageplane/ImagePlaneComponent");
exports.ImagePlaneComponent = ImagePlaneComponent_1.ImagePlaneComponent;
var ImagePlaneFactory_1 = require("./component/imageplane/ImagePlaneFactory");
exports.GeometryTagError = GeometryTagError_1.GeometryTagError;
__export(require("./component/interfaces/interfaces"));
-},{"./component/AttributionComponent":295,"./component/BackgroundComponent":296,"./component/BearingComponent":297,"./component/CacheComponent":298,"./component/Component":299,"./component/ComponentService":300,"./component/CoverComponent":301,"./component/DebugComponent":302,"./component/ImageComponent":303,"./component/LoadingComponent":304,"./component/NavigationComponent":305,"./component/RouteComponent":306,"./component/StatsComponent":307,"./component/direction/DirectionComponent":308,"./component/direction/DirectionDOMCalculator":309,"./component/direction/DirectionDOMRenderer":310,"./component/imageplane/ImagePlaneComponent":311,"./component/imageplane/ImagePlaneFactory":312,"./component/imageplane/ImagePlaneGLRenderer":313,"./component/imageplane/ImagePlaneScene":314,"./component/imageplane/ImagePlaneShaders":315,"./component/imageplane/SliderComponent":316,"./component/interfaces/interfaces":318,"./component/keyboard/KeyPlayHandler":319,"./component/keyboard/KeySequenceNavigationHandler":320,"./component/keyboard/KeySpatialNavigationHandler":321,"./component/keyboard/KeyZoomHandler":322,"./component/keyboard/KeyboardComponent":323,"./component/marker/MarkerComponent":325,"./component/marker/MarkerScene":326,"./component/marker/MarkerSet":327,"./component/marker/marker/CircleMarker":328,"./component/marker/marker/Marker":329,"./component/marker/marker/SimpleMarker":330,"./component/mouse/BounceHandler":331,"./component/mouse/DoubleClickZoomHandler":332,"./component/mouse/DragPanHandler":333,"./component/mouse/MouseComponent":334,"./component/mouse/ScrollZoomHandler":335,"./component/mouse/TouchZoomHandler":336,"./component/popup/PopupComponent":338,"./component/popup/popup/Popup":339,"./component/sequence/ControlMode":340,"./component/sequence/SequenceComponent":341,"./component/sequence/SequenceDOMInteraction":342,"./component/sequence/SequenceDOMRenderer":343,"./component/tag/TagComponent":345,"./component/tag/TagCreator":346,"./component/tag/TagDOMRenderer":347,"./component/tag/TagMode":348,"./component/tag/TagOperation":349,"./component/tag/TagScene":350,"./component/tag/TagSet":351,"./component/tag/error/GeometryTagError":352,"./component/tag/geometry/Geometry":353,"./component/tag/geometry/PointGeometry":354,"./component/tag/geometry/PolygonGeometry":355,"./component/tag/geometry/RectGeometry":356,"./component/tag/geometry/VertexGeometry":357,"./component/tag/handlers/CreateHandlerBase":358,"./component/tag/handlers/CreatePointHandler":359,"./component/tag/handlers/CreatePolygonHandler":360,"./component/tag/handlers/CreateRectDragHandler":361,"./component/tag/handlers/CreateRectHandler":362,"./component/tag/handlers/CreateVertexHandler":363,"./component/tag/handlers/EditVertexHandler":364,"./component/tag/handlers/TagHandlerBase":365,"./component/tag/tag/OutlineCreateTag":366,"./component/tag/tag/OutlineRenderTag":367,"./component/tag/tag/OutlineTag":368,"./component/tag/tag/RenderTag":369,"./component/tag/tag/SpotRenderTag":370,"./component/tag/tag/SpotTag":371,"./component/tag/tag/Tag":372,"./component/utils/HandlerBase":373}],282:[function(require,module,exports){
+},{"./component/AttributionComponent":305,"./component/BackgroundComponent":306,"./component/BearingComponent":307,"./component/CacheComponent":308,"./component/Component":309,"./component/ComponentService":310,"./component/CoverComponent":311,"./component/DebugComponent":312,"./component/ImageComponent":313,"./component/LoadingComponent":314,"./component/NavigationComponent":315,"./component/RouteComponent":316,"./component/StatsComponent":317,"./component/direction/DirectionComponent":318,"./component/direction/DirectionDOMCalculator":319,"./component/direction/DirectionDOMRenderer":320,"./component/imageplane/ImagePlaneComponent":321,"./component/imageplane/ImagePlaneFactory":322,"./component/imageplane/ImagePlaneGLRenderer":323,"./component/imageplane/ImagePlaneScene":324,"./component/imageplane/ImagePlaneShaders":325,"./component/imageplane/SliderComponent":326,"./component/interfaces/interfaces":328,"./component/keyboard/KeyPlayHandler":329,"./component/keyboard/KeySequenceNavigationHandler":330,"./component/keyboard/KeySpatialNavigationHandler":331,"./component/keyboard/KeyZoomHandler":332,"./component/keyboard/KeyboardComponent":333,"./component/marker/MarkerComponent":335,"./component/marker/MarkerScene":336,"./component/marker/MarkerSet":337,"./component/marker/marker/CircleMarker":338,"./component/marker/marker/Marker":339,"./component/marker/marker/SimpleMarker":340,"./component/mouse/BounceHandler":341,"./component/mouse/DoubleClickZoomHandler":342,"./component/mouse/DragPanHandler":343,"./component/mouse/MouseComponent":344,"./component/mouse/ScrollZoomHandler":345,"./component/mouse/TouchZoomHandler":346,"./component/popup/PopupComponent":348,"./component/popup/popup/Popup":349,"./component/sequence/SequenceComponent":350,"./component/sequence/SequenceDOMRenderer":351,"./component/sequence/SequenceMode":352,"./component/tag/TagComponent":354,"./component/tag/TagCreator":355,"./component/tag/TagDOMRenderer":356,"./component/tag/TagMode":357,"./component/tag/TagOperation":358,"./component/tag/TagScene":359,"./component/tag/TagSet":360,"./component/tag/error/GeometryTagError":361,"./component/tag/geometry/Geometry":362,"./component/tag/geometry/PointGeometry":363,"./component/tag/geometry/PolygonGeometry":364,"./component/tag/geometry/RectGeometry":365,"./component/tag/geometry/VertexGeometry":366,"./component/tag/handlers/CreateHandlerBase":367,"./component/tag/handlers/CreatePointHandler":368,"./component/tag/handlers/CreatePolygonHandler":369,"./component/tag/handlers/CreateRectDragHandler":370,"./component/tag/handlers/CreateRectHandler":371,"./component/tag/handlers/CreateVertexHandler":372,"./component/tag/handlers/EditVertexHandler":373,"./component/tag/handlers/TagHandlerBase":374,"./component/tag/tag/OutlineCreateTag":375,"./component/tag/tag/OutlineRenderTag":376,"./component/tag/tag/OutlineTag":377,"./component/tag/tag/RenderTag":378,"./component/tag/tag/SpotRenderTag":379,"./component/tag/tag/SpotTag":380,"./component/tag/tag/Tag":381,"./component/utils/HandlerBase":382}],292:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EdgeDirection_1 = require("./graph/edge/EdgeDirection");
var EdgeCalculator_1 = require("./graph/edge/EdgeCalculator");
exports.EdgeCalculator = EdgeCalculator_1.EdgeCalculator;
-},{"./graph/edge/EdgeCalculator":392,"./graph/edge/EdgeCalculatorCoefficients":393,"./graph/edge/EdgeCalculatorDirections":394,"./graph/edge/EdgeCalculatorSettings":395,"./graph/edge/EdgeDirection":396}],283:[function(require,module,exports){
+},{"./graph/edge/EdgeCalculator":402,"./graph/edge/EdgeCalculatorCoefficients":403,"./graph/edge/EdgeCalculatorDirections":404,"./graph/edge/EdgeCalculatorSettings":405,"./graph/edge/EdgeDirection":406}],293:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
+var AbortMapillaryError_1 = require("./error/AbortMapillaryError");
+exports.AbortMapillaryError = AbortMapillaryError_1.AbortMapillaryError;
var ArgumentMapillaryError_1 = require("./error/ArgumentMapillaryError");
exports.ArgumentMapillaryError = ArgumentMapillaryError_1.ArgumentMapillaryError;
var GraphMapillaryError_1 = require("./error/GraphMapillaryError");
var MapillaryError_1 = require("./error/MapillaryError");
exports.MapillaryError = MapillaryError_1.MapillaryError;
-},{"./error/ArgumentMapillaryError":374,"./error/GraphMapillaryError":375,"./error/MapillaryError":376}],284:[function(require,module,exports){
+},{"./error/AbortMapillaryError":383,"./error/ArgumentMapillaryError":384,"./error/GraphMapillaryError":385,"./error/MapillaryError":386}],294:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Camera_1 = require("./geo/Camera");
var Transform_1 = require("./geo/Transform");
exports.Transform = Transform_1.Transform;
-},{"./geo/Camera":377,"./geo/GeoCoords":378,"./geo/Spatial":379,"./geo/Transform":380,"./geo/ViewportCoords":381}],285:[function(require,module,exports){
+},{"./geo/Camera":387,"./geo/GeoCoords":388,"./geo/Spatial":389,"./geo/Transform":390,"./geo/ViewportCoords":391}],295:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var FilterCreator_1 = require("./graph/FilterCreator");
var Sequence_1 = require("./graph/Sequence");
exports.Sequence = Sequence_1.Sequence;
-},{"./graph/FilterCreator":382,"./graph/Graph":383,"./graph/GraphCalculator":384,"./graph/GraphMode":385,"./graph/GraphService":386,"./graph/ImageLoadingService":387,"./graph/MeshReader":388,"./graph/Node":389,"./graph/NodeCache":390,"./graph/Sequence":391}],286:[function(require,module,exports){
+},{"./graph/FilterCreator":392,"./graph/Graph":393,"./graph/GraphCalculator":394,"./graph/GraphMode":395,"./graph/GraphService":396,"./graph/ImageLoadingService":397,"./graph/MeshReader":398,"./graph/Node":399,"./graph/NodeCache":400,"./graph/Sequence":401}],296:[function(require,module,exports){
"use strict";
/**
* MapillaryJS is a WebGL JavaScript library for exploring street level imagery
exports.EdgeDirection = Edge_1.EdgeDirection;
var Render_1 = require("./Render");
exports.RenderMode = Render_1.RenderMode;
+var State_1 = require("./State");
+exports.TransitionMode = State_1.TransitionMode;
var Viewer_1 = require("./Viewer");
exports.Alignment = Viewer_1.Alignment;
exports.ImageSize = Viewer_1.ImageSize;
var PopupComponent = require("./component/popup/Popup");
exports.PopupComponent = PopupComponent;
-},{"./Edge":282,"./Render":287,"./Support":289,"./Viewer":292,"./component/marker/Marker":324,"./component/popup/Popup":337,"./component/tag/Tag":344}],287:[function(require,module,exports){
+},{"./Edge":292,"./Render":297,"./State":298,"./Support":299,"./Viewer":302,"./component/marker/Marker":334,"./component/popup/Popup":347,"./component/tag/Tag":353}],297:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var DOMRenderer_1 = require("./render/DOMRenderer");
var RenderService_1 = require("./render/RenderService");
exports.RenderService = RenderService_1.RenderService;
-},{"./render/DOMRenderer":397,"./render/GLRenderStage":398,"./render/GLRenderer":399,"./render/RenderCamera":400,"./render/RenderMode":401,"./render/RenderService":402}],288:[function(require,module,exports){
+},{"./render/DOMRenderer":407,"./render/GLRenderStage":408,"./render/GLRenderer":409,"./render/RenderCamera":410,"./render/RenderMode":411,"./render/RenderService":412}],298:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var State_1 = require("./state/State");
exports.StateContext = StateContext_1.StateContext;
var StateService_1 = require("./state/StateService");
exports.StateService = StateService_1.StateService;
+var TransitionMode_1 = require("./state/TransitionMode");
+exports.TransitionMode = TransitionMode_1.TransitionMode;
var TraversingState_1 = require("./state/states/TraversingState");
exports.TraversingState = TraversingState_1.TraversingState;
var WaitingState_1 = require("./state/states/WaitingState");
exports.WaitingState = WaitingState_1.WaitingState;
-},{"./state/State":403,"./state/StateContext":404,"./state/StateService":405,"./state/states/StateBase":406,"./state/states/TraversingState":407,"./state/states/WaitingState":408}],289:[function(require,module,exports){
+},{"./state/State":413,"./state/StateContext":414,"./state/StateService":415,"./state/TransitionMode":416,"./state/states/StateBase":417,"./state/states/TraversingState":418,"./state/states/WaitingState":419}],299:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var support = require("./utils/Support");
}
exports.isFallbackSupported = isFallbackSupported;
-},{"./utils/Support":416}],290:[function(require,module,exports){
+},{"./utils/Support":427}],300:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ImageTileLoader_1 = require("./tiles/ImageTileLoader");
var RegionOfInterestCalculator_1 = require("./tiles/RegionOfInterestCalculator");
exports.RegionOfInterestCalculator = RegionOfInterestCalculator_1.RegionOfInterestCalculator;
-},{"./tiles/ImageTileLoader":409,"./tiles/ImageTileStore":410,"./tiles/RegionOfInterestCalculator":411,"./tiles/TextureProvider":412}],291:[function(require,module,exports){
+},{"./tiles/ImageTileLoader":420,"./tiles/ImageTileStore":421,"./tiles/RegionOfInterestCalculator":422,"./tiles/TextureProvider":423}],301:[function(require,module,exports){
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
var Urls_1 = require("./utils/Urls");
exports.Urls = Urls_1.Urls;
-},{"./utils/DOM":413,"./utils/EventEmitter":414,"./utils/Settings":415,"./utils/Support":416,"./utils/Urls":417}],292:[function(require,module,exports){
+},{"./utils/DOM":424,"./utils/EventEmitter":425,"./utils/Settings":426,"./utils/Support":427,"./utils/Urls":428}],302:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Alignment_1 = require("./viewer/Alignment");
var Viewer_1 = require("./viewer/Viewer");
exports.Viewer = Viewer_1.Viewer;
-},{"./viewer/Alignment":418,"./viewer/CacheService":419,"./viewer/ComponentController":420,"./viewer/Container":421,"./viewer/ImageSize":422,"./viewer/KeyboardService":423,"./viewer/LoadingService":424,"./viewer/MouseService":425,"./viewer/Navigator":426,"./viewer/Observer":427,"./viewer/PlayService":428,"./viewer/Projection":429,"./viewer/SpriteService":430,"./viewer/TouchService":431,"./viewer/Viewer":432}],293:[function(require,module,exports){
+},{"./viewer/Alignment":429,"./viewer/CacheService":430,"./viewer/ComponentController":431,"./viewer/Container":432,"./viewer/ImageSize":433,"./viewer/KeyboardService":434,"./viewer/LoadingService":435,"./viewer/MouseService":436,"./viewer/Navigator":437,"./viewer/Observer":438,"./viewer/PlayService":439,"./viewer/Projection":440,"./viewer/SpriteService":441,"./viewer/TouchService":442,"./viewer/Viewer":443}],303:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
this._propertiesCore = [
"cl",
"l",
- "sequence",
+ "sequence_key",
];
this._propertiesFill = [
"captured_at",
+ "captured_with_camera_uuid",
"user",
+ "organization_key",
+ "private",
"project",
];
this._propertiesKey = [
hs,
{ from: 0, to: this._pageCount },
this._propertiesKey
- .concat(this._propertiesCore),
- this._propertiesKey
+ .concat(this._propertiesCore)
]))
.map(function (value) {
- if (value == null) {
+ if (!value) {
value = { json: { imagesByH: {} } };
for (var _i = 0, hs_1 = hs; _i < hs_1.length; _i++) {
var h = hs_1[_i];
.concat(this._propertiesSequence)
]))
.map(function (value) {
+ if (!value) {
+ value = { json: { sequenceByKey: {} } };
+ }
+ for (var _i = 0, sequenceKeys_1 = sequenceKeys; _i < sequenceKeys_1.length; _i++) {
+ var sequenceKey = sequenceKeys_1[_i];
+ if (!(sequenceKey in value.json.sequenceByKey)) {
+ console.warn("Sequence data missing (" + sequenceKey + ")");
+ value.json.sequenceByKey[sequenceKey] = { key: sequenceKey, keys: [] };
+ }
+ }
return value.json.sequenceByKey;
}), this._pathSequenceByKey, sequenceKeys);
};
exports.APIv3 = APIv3;
exports.default = APIv3;
-},{"../API":280,"rxjs/Observable":29,"rxjs/add/observable/defer":39,"rxjs/add/observable/fromPromise":43,"rxjs/add/operator/catch":52,"rxjs/add/operator/map":65}],294:[function(require,module,exports){
+},{"../API":290,"rxjs/Observable":29,"rxjs/add/observable/defer":40,"rxjs/add/observable/fromPromise":44,"rxjs/add/operator/catch":54,"rxjs/add/operator/map":67}],304:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModelCreator = ModelCreator;
exports.default = ModelCreator;
-},{"../Utils":291,"falcor":15,"falcor-http-datasource":10}],295:[function(require,module,exports){
+},{"../Utils":301,"falcor":15,"falcor-http-datasource":10}],305:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var vd = require("virtual-dom");
var Component_1 = require("../Component");
+var Utils_1 = require("../Utils");
var AttributionComponent = /** @class */ (function (_super) {
__extends(AttributionComponent, _super);
function AttributionComponent(name, container, navigator) {
};
AttributionComponent.prototype._getAttributionNode = function (username, key) {
return vd.h("div.Attribution", {}, [
- vd.h("a", { href: "https://www.mapillary.com/app/user/" + username,
+ vd.h("a", { href: Utils_1.Urls.exporeUser(username),
target: "_blank",
textContent: "@" + username,
}, []),
vd.h("span", { textContent: "|" }, []),
- vd.h("a", { href: "https://www.mapillary.com/app/?pKey=" + key + "&focus=photo",
+ vd.h("a", { href: Utils_1.Urls.exporeImage(key),
target: "_blank",
textContent: "mapillary.com",
}, []),
Component_1.ComponentService.register(AttributionComponent);
exports.default = AttributionComponent;
-},{"../Component":281,"virtual-dom":237}],296:[function(require,module,exports){
+},{"../Component":291,"../Utils":301,"virtual-dom":247}],306:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(BackgroundComponent);
exports.default = BackgroundComponent;
-},{"../Component":281,"virtual-dom":237}],297:[function(require,module,exports){
+},{"../Component":291,"virtual-dom":247}],307:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(BearingComponent);
exports.default = BearingComponent;
-},{"../Component":281,"../Geo":284,"rxjs/Observable":29,"virtual-dom":237}],298:[function(require,module,exports){
+},{"../Component":291,"../Geo":294,"rxjs/Observable":29,"virtual-dom":247}],308:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
Component_1.ComponentService.register(CacheComponent);
exports.default = CacheComponent;
-},{"../Component":281,"../Edge":282,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/from":41,"rxjs/add/observable/merge":44,"rxjs/add/observable/of":45,"rxjs/add/observable/zip":48,"rxjs/add/operator/catch":52,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinct":57,"rxjs/add/operator/expand":60,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeAll":67,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/skip":77,"rxjs/add/operator/switchMap":81}],299:[function(require,module,exports){
+},{"../Component":291,"../Edge":292,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/from":42,"rxjs/add/observable/merge":45,"rxjs/add/observable/of":46,"rxjs/add/observable/zip":49,"rxjs/add/operator/catch":54,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinct":59,"rxjs/add/operator/expand":62,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeAll":69,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/skip":80,"rxjs/add/operator/switchMap":84}],309:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.Component = Component;
exports.default = Component;
-},{"../Utils":291,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/startWith":80}],300:[function(require,module,exports){
+},{"../Utils":301,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83}],310:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComponentService = ComponentService;
exports.default = ComponentService;
-},{"../Error":283,"underscore":233}],301:[function(require,module,exports){
+},{"../Error":293,"underscore":243}],311:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
require("rxjs/add/operator/map");
require("rxjs/add/operator/withLatestFrom");
var Component_1 = require("../Component");
+var Utils_1 = require("../Utils");
+var Viewer_1 = require("../Viewer");
var CoverComponent = /** @class */ (function (_super) {
__extends(CoverComponent, _super);
function CoverComponent(name, container, navigator) {
return vd.h(cover, [
this._getCoverBackgroundVNode(conf),
vd.h("button.CoverButton", { onclick: function () { _this.configure({ state: Component_1.CoverState.Loading }); } }, ["Explore"]),
- vd.h("a.CoverLogo", { href: "https://www.mapillary.com", target: "_blank" }, []),
+ vd.h("a.CoverLogo", { href: Utils_1.Urls.explore, target: "_blank" }, []),
]);
};
CoverComponent.prototype._getCoverBackgroundVNode = function (conf) {
var url = conf.src != null ?
- "url(" + conf.src + ")" :
- "url(https://d1cuyjsrcm0gby.cloudfront.net/" + conf.key + "/thumb-640.jpg)";
- var properties = { style: { backgroundImage: url } };
+ conf.src : Utils_1.Urls.thumbnail(conf.key, Viewer_1.ImageSize.Size640);
+ var properties = { style: { backgroundImage: "url(" + url + ")" } };
var children = [];
if (conf.state === Component_1.CoverState.Loading) {
children.push(vd.h("div.Spinner", {}, []));
Component_1.ComponentService.registerCover(CoverComponent);
exports.default = CoverComponent;
-},{"../Component":281,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/withLatestFrom":87,"virtual-dom":237}],302:[function(require,module,exports){
+},{"../Component":291,"../Utils":301,"../Viewer":302,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/withLatestFrom":90,"virtual-dom":247}],312:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(DebugComponent);
exports.default = DebugComponent;
-},{"../Component":281,"rxjs/BehaviorSubject":26,"rxjs/add/operator/combineLatest":53,"underscore":233,"virtual-dom":237}],303:[function(require,module,exports){
+},{"../Component":291,"rxjs/BehaviorSubject":26,"rxjs/add/operator/combineLatest":55,"underscore":243,"virtual-dom":247}],313:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(ImageComponent);
exports.default = ImageComponent;
-},{"../Component":281,"../Utils":291,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":53,"virtual-dom":237}],304:[function(require,module,exports){
+},{"../Component":291,"../Utils":301,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":55,"virtual-dom":247}],314:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(LoadingComponent);
exports.default = LoadingComponent;
-},{"../Component":281,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":53,"underscore":233,"virtual-dom":237}],305:[function(require,module,exports){
+},{"../Component":291,"rxjs/Observable":29,"rxjs/add/operator/combineLatest":55,"underscore":243,"virtual-dom":247}],315:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
require("rxjs/add/operator/map");
require("rxjs/add/operator/first");
var Edge_1 = require("../Edge");
+var Error_1 = require("../Error");
var Component_1 = require("../Component");
/**
* @class NavigationComponent
return vd.h("span.Direction.Direction" + name, {
onclick: function (ev) {
_this._navigator.moveDir$(direction)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
},
style: {
visibility: visibility,
Component_1.ComponentService.register(NavigationComponent);
exports.default = NavigationComponent;
-},{"../Component":281,"../Edge":282,"rxjs/Observable":29,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"virtual-dom":237}],306:[function(require,module,exports){
+},{"../Component":291,"../Edge":292,"../Error":293,"rxjs/Observable":29,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"virtual-dom":247}],316:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(RouteComponent);
exports.default = RouteComponent;
-},{"../Component":281,"rxjs/Observable":29,"rxjs/add/observable/fromPromise":43,"rxjs/add/observable/of":45,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinct":57,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/pluck":70,"rxjs/add/operator/scan":75,"underscore":233,"virtual-dom":237}],307:[function(require,module,exports){
+},{"../Component":291,"rxjs/Observable":29,"rxjs/add/observable/fromPromise":44,"rxjs/add/observable/of":46,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinct":59,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/pluck":72,"rxjs/add/operator/scan":78,"underscore":243,"virtual-dom":247}],317:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
Component_1.ComponentService.register(StatsComponent);
exports.default = StatsComponent;
-},{"../Component":281,"rxjs/Observable":29,"rxjs/add/operator/buffer":49,"rxjs/add/operator/debounceTime":55,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/scan":75}],308:[function(require,module,exports){
+},{"../Component":291,"rxjs/Observable":29,"rxjs/add/operator/buffer":51,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78}],318:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(DirectionComponent);
exports.default = DirectionComponent;
-},{"../../Component":281,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/share":76,"virtual-dom":237}],309:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/share":79,"virtual-dom":247}],319:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Geo_1 = require("../../Geo");
exports.DirectionDOMCalculator = DirectionDOMCalculator;
exports.default = DirectionDOMCalculator;
-},{"../../Geo":284}],310:[function(require,module,exports){
+},{"../../Geo":294}],320:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
var vd = require("virtual-dom");
var Component_1 = require("../../Component");
var Edge_1 = require("../../Edge");
+var Error_1 = require("../../Error");
var Geo_1 = require("../../Geo");
/**
* @class DirectionDOMRenderer
DirectionDOMRenderer.prototype._createVNodeByKey = function (navigator, key, azimuth, rotation, offset, className, shiftVertically) {
var onClick = function (e) {
navigator.moveToKey$(key)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
};
return this._createVNode(key, azimuth, rotation, offset, className, "DirectionsCircle", onClick, shiftVertically);
};
DirectionDOMRenderer.prototype._createVNodeByDirection = function (navigator, key, azimuth, rotation, direction) {
var onClick = function (e) {
navigator.moveDir$(direction)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
};
return this._createVNode(key, azimuth, rotation, this._calculator.outerRadius, "DirectionsArrowStep", "DirectionsCircle", onClick);
};
DirectionDOMRenderer.prototype._createVNodeByTurn = function (navigator, key, className, direction) {
var onClick = function (e) {
navigator.moveDir$(direction)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
};
var style = {
height: this._calculator.turnCircleSizeCss,
exports.DirectionDOMRenderer = DirectionDOMRenderer;
exports.default = DirectionDOMRenderer;
-},{"../../Component":281,"../../Edge":282,"../../Geo":284,"virtual-dom":237}],311:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292,"../../Error":293,"../../Geo":294,"virtual-dom":247}],321:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
Component_1.ComponentService.register(ImagePlaneComponent);
exports.default = ImagePlaneComponent;
-},{"../../Component":281,"../../Render":287,"../../Tiles":290,"../../Utils":291,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":52,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/debounceTime":55,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/pairwise":69,"rxjs/add/operator/publish":71,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/skipWhile":79,"rxjs/add/operator/startWith":80,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/takeUntil":83,"rxjs/add/operator/withLatestFrom":87}],312:[function(require,module,exports){
+},{"../../Component":291,"../../Render":297,"../../Tiles":300,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":54,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/pairwise":71,"rxjs/add/operator/publish":73,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/skipWhile":82,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90}],322:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImagePlaneFactory = ImagePlaneFactory;
exports.default = ImagePlaneFactory;
-},{"../../Component":281,"three":231}],313:[function(require,module,exports){
+},{"../../Component":291,"three":241}],323:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImagePlaneGLRenderer = ImagePlaneGLRenderer;
exports.default = ImagePlaneGLRenderer;
-},{"../../Component":281}],314:[function(require,module,exports){
+},{"../../Component":291}],324:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImagePlaneScene = ImagePlaneScene;
exports.default = ImagePlaneScene;
-},{"three":231}],315:[function(require,module,exports){
+},{"three":241}],325:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.ImagePlaneShaders = ImagePlaneShaders;
-},{"path":22}],316:[function(require,module,exports){
+},{"path":22}],326:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(SliderComponent);
exports.default = SliderComponent;
-},{"../../Component":281,"../../Render":287,"../../State":288,"../../Utils":291,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/fromEvent":42,"rxjs/add/observable/of":45,"rxjs/add/observable/zip":48,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/scan":75,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/withLatestFrom":87,"rxjs/add/operator/zip":88}],317:[function(require,module,exports){
+},{"../../Component":291,"../../Render":297,"../../State":298,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/fromEvent":43,"rxjs/add/observable/of":46,"rxjs/add/observable/zip":49,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90,"rxjs/add/operator/zip":91}],327:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var CoverState;
CoverState[CoverState["Visible"] = 2] = "Visible";
})(CoverState = exports.CoverState || (exports.CoverState = {}));
-},{}],318:[function(require,module,exports){
+},{}],328:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ICoverConfiguration_1 = require("./ICoverConfiguration");
exports.CoverState = ICoverConfiguration_1.CoverState;
-},{"./ICoverConfiguration":317}],319:[function(require,module,exports){
+},{"./ICoverConfiguration":327}],329:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.KeyPlayHandler = KeyPlayHandler;
exports.default = KeyPlayHandler;
-},{"../../Component":281,"../../Edge":282}],320:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292}],330:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
require("rxjs/add/operator/withLatestFrom");
var Component_1 = require("../../Component");
var Edge_1 = require("../../Edge");
+var Error_1 = require("../../Error");
/**
* The `KeySequenceNavigationHandler` allows the user to navigate through a sequence using the
* following key commands:
var edge = _b[_i];
if (edge.data.direction === direction) {
_this._navigator.moveToKey$(edge.to)
- .subscribe(function (n) { return; }, function (e) { console.error(e); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
return;
}
}
exports.KeySequenceNavigationHandler = KeySequenceNavigationHandler;
exports.default = KeySequenceNavigationHandler;
-},{"../../Component":281,"../../Edge":282,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/withLatestFrom":87}],321:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],331:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
require("rxjs/add/operator/withLatestFrom");
var Component_1 = require("../../Component");
var Edge_1 = require("../../Edge");
+var Error_1 = require("../../Error");
/**
* The `KeySpatialNavigationHandler` allows the user to navigate through a sequence using the
* following key commands:
};
KeySpatialNavigationHandler.prototype._moveToKey = function (key) {
this._navigator.moveToKey$(key)
- .subscribe(function (n) { }, function (e) { console.error(e); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
};
KeySpatialNavigationHandler.prototype._rotationFromCamera = function (camera) {
var direction = camera.lookat.clone().sub(camera.position);
exports.KeySpatialNavigationHandler = KeySpatialNavigationHandler;
exports.default = KeySpatialNavigationHandler;
-},{"../../Component":281,"../../Edge":282,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/withLatestFrom":87}],322:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],332:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.KeyZoomHandler = KeyZoomHandler;
exports.default = KeyZoomHandler;
-},{"../../Component":281,"rxjs/add/operator/withLatestFrom":87}],323:[function(require,module,exports){
+},{"../../Component":291,"rxjs/add/operator/withLatestFrom":90}],333:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
Component_1.ComponentService.register(KeyboardComponent);
exports.default = KeyboardComponent;
-},{"../../Component":281,"../../Geo":284}],324:[function(require,module,exports){
+},{"../../Component":291,"../../Geo":294}],334:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var MarkerComponent_1 = require("./MarkerComponent");
var CircleMarker_1 = require("./marker/CircleMarker");
exports.CircleMarker = CircleMarker_1.CircleMarker;
-},{"./MarkerComponent":325,"./marker/CircleMarker":328,"./marker/SimpleMarker":330}],325:[function(require,module,exports){
+},{"./MarkerComponent":335,"./marker/CircleMarker":338,"./marker/SimpleMarker":340}],335:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(MarkerComponent);
exports.default = MarkerComponent;
-},{"../../Component":281,"../../Geo":284,"../../Graph":285,"../../Render":287,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/map":65,"three":231,"when":278}],326:[function(require,module,exports){
+},{"../../Component":291,"../../Geo":294,"../../Graph":295,"../../Render":297,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"three":241,"when":288}],336:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarkerScene = MarkerScene;
exports.default = MarkerScene;
-},{"three":231}],327:[function(require,module,exports){
+},{"three":241}],337:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarkerSet = MarkerSet;
exports.default = MarkerSet;
-},{"rbush":25,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75}],328:[function(require,module,exports){
+},{"rbush":25,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78}],338:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.CircleMarker = CircleMarker;
exports.default = CircleMarker;
-},{"../../../Component":281,"three":231}],329:[function(require,module,exports){
+},{"../../../Component":291,"three":241}],339:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.Marker = Marker;
exports.default = Marker;
-},{}],330:[function(require,module,exports){
+},{}],340:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.SimpleMarker = SimpleMarker;
exports.default = SimpleMarker;
-},{"../../../Component":281,"three":231}],331:[function(require,module,exports){
+},{"../../../Component":291,"three":241}],341:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.BounceHandler = BounceHandler;
exports.default = BounceHandler;
-},{"../../Component":281,"rxjs/Observable":29}],332:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Observable":29}],342:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.DoubleClickZoomHandler = DoubleClickZoomHandler;
exports.default = DoubleClickZoomHandler;
-},{"../../Component":281,"rxjs/Observable":29}],333:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Observable":29}],343:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.DragPanHandler = DragPanHandler;
exports.default = DragPanHandler;
-},{"../../Component":281,"rxjs/Observable":29,"rxjs/add/operator/concat":54,"rxjs/add/operator/sample":74,"rxjs/add/operator/takeWhile":84,"three":231}],334:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Observable":29,"rxjs/add/operator/concat":56,"rxjs/add/operator/sample":77,"rxjs/add/operator/takeWhile":87,"three":241}],344:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
this._touchZoomHandler.disable();
};
MouseComponent.prototype._getDefaultConfiguration = function () {
- return { doubleClickZoom: true, dragPan: true, scrollZoom: true, touchZoom: true };
+ return { doubleClickZoom: false, dragPan: true, scrollZoom: true, touchZoom: true };
};
/** @inheritdoc */
MouseComponent.componentName = "mouse";
Component_1.ComponentService.register(MouseComponent);
exports.default = MouseComponent;
-},{"../../Component":281,"../../Geo":284,"rxjs/add/observable/merge":44,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/withLatestFrom":87}],335:[function(require,module,exports){
+},{"../../Component":291,"../../Geo":294,"rxjs/add/observable/merge":45,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/withLatestFrom":90}],345:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.ScrollZoomHandler = ScrollZoomHandler;
exports.default = ScrollZoomHandler;
-},{"../../Component":281}],336:[function(require,module,exports){
+},{"../../Component":291}],346:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.TouchZoomHandler = TouchZoomHandler;
exports.default = TouchZoomHandler;
-},{"../../Component":281,"rxjs/Observable":29}],337:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Observable":29}],347:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Popup_1 = require("./popup/Popup");
var PopupComponent_1 = require("./PopupComponent");
exports.PopupComponent = PopupComponent_1.PopupComponent;
-},{"./PopupComponent":338,"./popup/Popup":339}],338:[function(require,module,exports){
+},{"./PopupComponent":348,"./popup/Popup":349}],348:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
Component_1.ComponentService.register(PopupComponent);
exports.default = PopupComponent;
-},{"../../Component":281,"../../Utils":291,"rxjs/Observable":29,"rxjs/Subject":34}],339:[function(require,module,exports){
+},{"../../Component":291,"../../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34}],349:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.Popup = Popup;
exports.default = Popup;
-},{"../../../Geo":284,"../../../Utils":291,"../../../Viewer":292,"rxjs/Subject":34}],340:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ControlMode;
-(function (ControlMode) {
- ControlMode[ControlMode["Default"] = 0] = "Default";
- ControlMode[ControlMode["Playback"] = 1] = "Playback";
-})(ControlMode = exports.ControlMode || (exports.ControlMode = {}));
-exports.default = ControlMode;
-
-},{}],341:[function(require,module,exports){
+},{"../../../Geo":294,"../../../Utils":301,"../../../Viewer":302,"rxjs/Subject":34}],350:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
var Subject_1 = require("rxjs/Subject");
require("rxjs/add/observable/combineLatest");
require("rxjs/add/observable/of");
+require("rxjs/add/observable/concat");
+require("rxjs/add/operator/auditTime");
require("rxjs/add/operator/bufferCount");
require("rxjs/add/operator/concat");
require("rxjs/add/operator/distinctUntilChanged");
require("rxjs/add/operator/withLatestFrom");
var Component_1 = require("../../Component");
var Edge_1 = require("../../Edge");
+var Graph_1 = require("../../Graph");
/**
* @class SequenceComponent
* @classdesc Component showing navigation arrows for sequence directions
*/
var SequenceComponent = /** @class */ (function (_super) {
__extends(SequenceComponent, _super);
- function SequenceComponent(name, container, navigator) {
+ function SequenceComponent(name, container, navigator, renderer, scheduler) {
var _this = _super.call(this, name, container, navigator) || this;
- _this._sequenceDOMRenderer = new Component_1.SequenceDOMRenderer(container);
- _this._sequenceDOMInteraction = new Component_1.SequenceDOMInteraction();
+ _this._sequenceDOMRenderer = !!renderer ? renderer : new Component_1.SequenceDOMRenderer(container);
+ _this._scheduler = scheduler;
_this._containerWidth$ = new Subject_1.Subject();
_this._hoveredKeySubject$ = new Subject_1.Subject();
_this._hoveredKey$ = _this._hoveredKeySubject$.share();
})
.publishReplay(1)
.refCount();
+ var sequence$ = this._navigator.stateService.currentNode$
+ .distinctUntilChanged(undefined, function (node) {
+ return node.sequenceKey;
+ })
+ .switchMap(function (node) {
+ return Observable_1.Observable
+ .concat(Observable_1.Observable.of(null), _this._navigator.graphService.cacheSequence$(node.sequenceKey)
+ .retry(3)
+ .catch(function (e) {
+ console.error("Failed to cache sequence", e);
+ return Observable_1.Observable.of(null);
+ }));
+ })
+ .startWith(null)
+ .publishReplay(1)
+ .refCount();
+ this._sequenceSubscription = sequence$.subscribe();
+ var rendererKey$ = this._sequenceDOMRenderer.index$
+ .withLatestFrom(sequence$)
+ .map(function (_a) {
+ var index = _a[0], sequence = _a[1];
+ return sequence != null ? sequence.keys[index] : null;
+ })
+ .filter(function (key) {
+ return !!key;
+ })
+ .distinctUntilChanged()
+ .publish()
+ .refCount();
+ this._moveSubscription = Observable_1.Observable
+ .merge(rendererKey$.debounceTime(100, this._scheduler), rendererKey$.auditTime(400, this._scheduler))
+ .distinctUntilChanged()
+ .switchMap(function (key) {
+ return _this._navigator.moveToKey$(key)
+ .catch(function (e) {
+ return Observable_1.Observable.empty();
+ });
+ })
+ .subscribe();
+ this._setSequenceGraphModeSubscription = this._sequenceDOMRenderer.changingPositionChanged$
+ .filter(function (changing) {
+ return changing;
+ })
+ .subscribe(function () {
+ _this._navigator.graphService.setGraphMode(Graph_1.GraphMode.Sequence);
+ });
+ this._setSpatialGraphModeSubscription = this._sequenceDOMRenderer.changingPositionChanged$
+ .filter(function (changing) {
+ return !changing;
+ })
+ .subscribe(function () {
+ _this._navigator.graphService.setGraphMode(Graph_1.GraphMode.Spatial);
+ });
+ this._navigator.graphService.graphMode$
+ .switchMap(function (mode) {
+ return mode === Graph_1.GraphMode.Spatial ?
+ _this._navigator.stateService.currentNode$
+ .take(2) :
+ Observable_1.Observable.empty();
+ })
+ .filter(function (node) {
+ return !node.spatialEdges.cached;
+ })
+ .switchMap(function (node) {
+ return _this._navigator.graphService.cacheNode$(node.key)
+ .catch(function (e) {
+ return Observable_1.Observable.empty();
+ });
+ })
+ .subscribe();
+ this._stopSubscription = this._sequenceDOMRenderer.changingPositionChanged$
+ .filter(function (changing) {
+ return changing;
+ })
+ .subscribe(function () {
+ _this._navigator.playService.stop();
+ });
+ this._cacheSequenceNodesSubscription = Observable_1.Observable
+ .combineLatest(this._navigator.graphService.graphMode$, this._sequenceDOMRenderer.changingPositionChanged$
+ .startWith(false)
+ .distinctUntilChanged())
+ .withLatestFrom(this._navigator.stateService.currentNode$)
+ .switchMap(function (_a) {
+ var _b = _a[0], mode = _b[0], changing = _b[1], node = _a[1];
+ return changing && mode === Graph_1.GraphMode.Sequence ?
+ _this._navigator.graphService.cacheSequenceNodes$(node.sequenceKey, node.key)
+ .retry(3)
+ .catch(function (error) {
+ console.error("Failed to cache sequence nodes.", error);
+ return Observable_1.Observable.empty();
+ }) :
+ Observable_1.Observable.empty();
+ })
+ .subscribe();
+ var position$ = sequence$
+ .switchMap(function (sequence) {
+ if (!sequence) {
+ return Observable_1.Observable.of({ index: null, max: null });
+ }
+ var firstCurrentKey = true;
+ return _this._sequenceDOMRenderer.changingPositionChanged$
+ .startWith(false)
+ .distinctUntilChanged()
+ .switchMap(function (changingPosition) {
+ var skip = !changingPosition && firstCurrentKey ? 0 : 1;
+ firstCurrentKey = false;
+ return changingPosition ?
+ rendererKey$ :
+ _this._navigator.stateService.currentNode$
+ .map(function (node) {
+ return node.key;
+ })
+ .distinctUntilChanged()
+ .skip(skip);
+ })
+ .map(function (key) {
+ var index = sequence.keys.indexOf(key);
+ if (index === -1) {
+ return { index: null, max: null };
+ }
+ return { index: index, max: sequence.keys.length - 1 };
+ });
+ });
this._renderSubscription = Observable_1.Observable
- .combineLatest(edgeStatus$, this._configuration$, this._containerWidth$, this._sequenceDOMRenderer.changed$.startWith(this._sequenceDOMRenderer), this._navigator.playService.speed$)
+ .combineLatest(edgeStatus$, this._configuration$, this._containerWidth$, this._sequenceDOMRenderer.changed$.startWith(this._sequenceDOMRenderer), this._navigator.playService.speed$, position$)
.map(function (_a) {
- var edgeStatus = _a[0], configuration = _a[1], containerWidth = _a[2], renderer = _a[3], speed = _a[4];
+ var edgeStatus = _a[0], configuration = _a[1], containerWidth = _a[2], renderer = _a[3], speed = _a[4], position = _a[5];
var vNode = _this._sequenceDOMRenderer
- .render(edgeStatus, configuration, containerWidth, speed, _this, _this._sequenceDOMInteraction, _this._navigator);
+ .render(edgeStatus, configuration, containerWidth, speed, position.index, position.max, _this, _this._navigator);
return { name: _this._name, vnode: vNode };
})
.subscribe(this._container.domRenderer.render$);
_this._navigator.playService.stop();
}
});
- this._hoveredKeySubscription = this._sequenceDOMInteraction.mouseEnterDirection$
+ this._hoveredKeySubscription = this._sequenceDOMRenderer.mouseEnterDirection$
.switchMap(function (direction) {
return edgeStatus$
.map(function (edgeStatus) {
}
return null;
})
- .takeUntil(_this._sequenceDOMInteraction.mouseLeaveDirection$)
+ .takeUntil(_this._sequenceDOMRenderer.mouseLeaveDirection$)
.concat(Observable_1.Observable.of(null));
})
.distinctUntilChanged()
this._hoveredKeySubscription.unsubscribe();
this._setSpeedSubscription.unsubscribe();
this._setDirectionSubscription.unsubscribe();
+ this._setSequenceGraphModeSubscription.unsubscribe();
+ this._setSpatialGraphModeSubscription.unsubscribe();
+ this._sequenceSubscription.unsubscribe();
+ this._moveSubscription.unsubscribe();
+ this._cacheSequenceNodesSubscription.unsubscribe();
+ this._stopSubscription.unsubscribe();
this._sequenceDOMRenderer.deactivate();
};
SequenceComponent.prototype._getDefaultConfiguration = function () {
Component_1.ComponentService.register(SequenceComponent);
exports.default = SequenceComponent;
-},{"../../Component":281,"../../Edge":282,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/of":45,"rxjs/add/operator/bufferCount":50,"rxjs/add/operator/concat":54,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/finally":62,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/retry":73,"rxjs/add/operator/scan":75,"rxjs/add/operator/share":76,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/takeUntil":83,"rxjs/add/operator/withLatestFrom":87}],342:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("rxjs/Subject");
-var SequenceDOMInteraction = /** @class */ (function () {
- function SequenceDOMInteraction() {
- this._mouseEnterDirection$ = new Subject_1.Subject();
- this._mouseLeaveDirection$ = new Subject_1.Subject();
- }
- Object.defineProperty(SequenceDOMInteraction.prototype, "mouseEnterDirection$", {
- get: function () {
- return this._mouseEnterDirection$;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(SequenceDOMInteraction.prototype, "mouseLeaveDirection$", {
- get: function () {
- return this._mouseLeaveDirection$;
- },
- enumerable: true,
- configurable: true
- });
- return SequenceDOMInteraction;
-}());
-exports.SequenceDOMInteraction = SequenceDOMInteraction;
-exports.default = SequenceDOMInteraction;
-
-},{"rxjs/Subject":34}],343:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292,"../../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/concat":39,"rxjs/add/observable/of":46,"rxjs/add/operator/auditTime":50,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/concat":56,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/retry":76,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90}],351:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
var Subject_1 = require("rxjs/Subject");
var Component_1 = require("../../Component");
var Edge_1 = require("../../Edge");
+var Error_1 = require("../../Error");
var SequenceDOMRenderer = /** @class */ (function () {
function SequenceDOMRenderer(container) {
this._container = container;
this._minThresholdHeight = 240;
this._maxThresholdHeight = 820;
this._stepperDefaultWidth = 108;
- this._controlsDefaultWidth = 52;
+ this._controlsDefaultWidth = 88;
this._defaultHeight = 30;
this._expandControls = false;
- this._mode = Component_1.ControlMode.Default;
+ this._mode = Component_1.SequenceMode.Default;
this._speed = 0.5;
this._changingSpeed = false;
+ this._index = null;
+ this._changingPosition = false;
+ this._mouseEnterDirection$ = new Subject_1.Subject();
+ this._mouseLeaveDirection$ = new Subject_1.Subject();
this._notifyChanged$ = new Subject_1.Subject();
+ this._notifyChangingPositionChanged$ = new Subject_1.Subject();
this._notifySpeedChanged$ = new Subject_1.Subject();
+ this._notifyIndexChanged$ = new Subject_1.Subject();
}
- Object.defineProperty(SequenceDOMRenderer.prototype, "speed", {
+ Object.defineProperty(SequenceDOMRenderer.prototype, "changed$", {
get: function () {
- return this._speed;
+ return this._notifyChanged$;
},
enumerable: true,
configurable: true
});
- Object.defineProperty(SequenceDOMRenderer.prototype, "changed$", {
+ Object.defineProperty(SequenceDOMRenderer.prototype, "changingPositionChanged$", {
get: function () {
- return this._notifyChanged$;
+ return this._notifyChangingPositionChanged$;
},
enumerable: true,
configurable: true
enumerable: true,
configurable: true
});
+ Object.defineProperty(SequenceDOMRenderer.prototype, "index$", {
+ get: function () {
+ return this._notifyIndexChanged$;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SequenceDOMRenderer.prototype, "mouseEnterDirection$", {
+ get: function () {
+ return this._mouseEnterDirection$;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SequenceDOMRenderer.prototype, "mouseLeaveDirection$", {
+ get: function () {
+ return this._mouseLeaveDirection$;
+ },
+ enumerable: true,
+ configurable: true
+ });
SequenceDOMRenderer.prototype.activate = function () {
var _this = this;
- if (!!this._changingSpeedSubscription) {
+ if (!!this._changingSubscription) {
return;
}
- this._changingSpeedSubscription = Observable_1.Observable
+ this._changingSubscription = Observable_1.Observable
.merge(this._container.mouseService.documentMouseUp$, this._container.touchService.touchEnd$
.filter(function (touchEvent) {
return touchEvent.touches.length === 0;
if (_this._changingSpeed) {
_this._changingSpeed = false;
}
+ if (_this._changingPosition) {
+ _this._setChangingPosition(false);
+ }
});
};
SequenceDOMRenderer.prototype.deactivate = function () {
- if (!this._changingSpeedSubscription) {
+ if (!this._changingSubscription) {
return;
}
this._changingSpeed = false;
+ this._changingPosition = false;
this._expandControls = false;
- this._mode = Component_1.ControlMode.Default;
- this._changingSpeedSubscription.unsubscribe();
- this._changingSpeedSubscription = null;
+ this._mode = Component_1.SequenceMode.Default;
+ this._changingSubscription.unsubscribe();
+ this._changingSubscription = null;
};
- SequenceDOMRenderer.prototype.render = function (edgeStatus, configuration, containerWidth, speed, component, interaction, navigator) {
+ SequenceDOMRenderer.prototype.render = function (edgeStatus, configuration, containerWidth, speed, index, max, component, navigator) {
if (configuration.visible === false) {
return vd.h("div.SequenceContainer", {}, []);
}
- var stepper = this._createStepper(edgeStatus, configuration, containerWidth, component, interaction, navigator);
+ var stepper = this._createStepper(edgeStatus, configuration, containerWidth, component, navigator);
var controls = this._createSequenceControls(containerWidth);
var playback = this._createPlaybackControls(containerWidth, speed, component, configuration);
- return vd.h("div.SequenceContainer", [stepper, controls, playback]);
+ var timeline = this._createTimelineControls(containerWidth, index, max);
+ return vd.h("div.SequenceContainer", [stepper, controls, playback, timeline]);
};
SequenceDOMRenderer.prototype.getContainerWidth = function (element, configuration) {
var elementWidth = element.offsetWidth;
var coeff = Math.max(0, Math.min(1, Math.min(relativeWidth, relativeHeight)));
return minWidth + coeff * (maxWidth - minWidth);
};
+ SequenceDOMRenderer.prototype._createPositionInput = function (index, max) {
+ var _this = this;
+ this._index = index;
+ var onPosition = function (e) {
+ _this._index = Number(e.target.value);
+ _this._notifyIndexChanged$.next(_this._index);
+ };
+ var boundingRect = this._container.domContainer.getBoundingClientRect();
+ var width = Math.max(276, Math.min(410, 5 + 0.8 * boundingRect.width)) - 65;
+ var onStart = function (e) {
+ e.stopPropagation();
+ _this._setChangingPosition(true);
+ };
+ var onMove = function (e) {
+ if (_this._changingPosition === true) {
+ e.stopPropagation();
+ }
+ };
+ var onKeyDown = function (e) {
+ if (e.key === "ArrowDown" || e.key === "ArrowLeft" ||
+ e.key === "ArrowRight" || e.key === "ArrowUp") {
+ e.preventDefault();
+ }
+ };
+ var positionInputProperties = {
+ max: max != null ? max : 1,
+ min: 0,
+ onchange: onPosition,
+ oninput: onPosition,
+ onkeydown: onKeyDown,
+ onmousedown: onStart,
+ onmousemove: onMove,
+ ontouchmove: onMove,
+ ontouchstart: onStart,
+ style: {
+ width: width + "px",
+ },
+ type: "range",
+ value: index != null ? index : 0,
+ };
+ var disabled = index == null || max == null || max <= 1;
+ if (disabled) {
+ positionInputProperties.disabled = "true";
+ }
+ var positionInput = vd.h("input.SequencePosition", positionInputProperties, []);
+ var positionContainerClass = disabled ? ".SequencePositionContainerDisabled" : ".SequencePositionContainer";
+ return vd.h("div" + positionContainerClass, [positionInput]);
+ };
SequenceDOMRenderer.prototype._createSpeedInput = function (speed) {
var _this = this;
this._speed = speed;
e.stopPropagation();
}
};
+ var onKeyDown = function (e) {
+ if (e.key === "ArrowDown" || e.key === "ArrowLeft" ||
+ e.key === "ArrowRight" || e.key === "ArrowUp") {
+ e.preventDefault();
+ }
+ };
var speedInput = vd.h("input.SequenceSpeed", {
max: 1000,
min: 0,
onchange: onSpeed,
oninput: onSpeed,
+ onkeydown: onKeyDown,
onmousedown: onStart,
onmousemove: onMove,
ontouchmove: onMove,
};
SequenceDOMRenderer.prototype._createPlaybackControls = function (containerWidth, speed, component, configuration) {
var _this = this;
- if (this._mode !== Component_1.ControlMode.Playback) {
+ if (this._mode !== Component_1.SequenceMode.Playback) {
return vd.h("div.SequencePlayback", []);
}
var switchIcon = vd.h("div.SequenceSwitchIcon.SequenceIconVisible", []);
var closeIcon = vd.h("div.SequenceCloseIcon.SequenceIconVisible", []);
var closeButtonProperties = {
onclick: function () {
- _this._mode = Component_1.ControlMode.Default;
+ _this._mode = Component_1.SequenceMode.Default;
_this._notifyChanged$.next(_this);
},
};
var expanderProperties = {
onclick: function () {
_this._expandControls = !_this._expandControls;
- _this._mode = Component_1.ControlMode.Default;
+ _this._mode = Component_1.SequenceMode.Default;
_this._notifyChanged$.next(_this);
},
style: {
};
var expanderBar = vd.h("div.SequenceExpanderBar", []);
var expander = vd.h("div.SequenceExpanderButton", expanderProperties, [expanderBar]);
- var fastIconClassName = this._mode === Component_1.ControlMode.Playback ?
+ var fastIconClassName = this._mode === Component_1.SequenceMode.Playback ?
".SequenceFastIconGrey.SequenceIconVisible" : ".SequenceFastIcon";
var fastIcon = vd.h("div" + fastIconClassName, []);
var playbackProperties = {
onclick: function () {
- _this._mode = _this._mode === Component_1.ControlMode.Playback ?
- Component_1.ControlMode.Default :
- Component_1.ControlMode.Playback;
+ _this._mode = _this._mode === Component_1.SequenceMode.Playback ?
+ Component_1.SequenceMode.Default :
+ Component_1.SequenceMode.Playback;
_this._notifyChanged$.next(_this);
},
};
- var controls = vd.h("div.SequencePlaybackButton", playbackProperties, [fastIcon]);
+ var playback = vd.h("div.SequencePlaybackButton", playbackProperties, [fastIcon]);
+ var timelineIconClassName = this._mode === Component_1.SequenceMode.Timeline ?
+ ".SequenceTimelineIconGrey.SequenceIconVisible" : ".SequenceTimelineIcon";
+ var timelineIcon = vd.h("div" + timelineIconClassName, []);
+ var timelineProperties = {
+ onclick: function () {
+ _this._mode = _this._mode === Component_1.SequenceMode.Timeline ?
+ Component_1.SequenceMode.Default :
+ Component_1.SequenceMode.Timeline;
+ _this._notifyChanged$.next(_this);
+ },
+ };
+ var timeline = vd.h("div.SequenceTimelineButton", timelineProperties, [timelineIcon]);
var properties = {
style: {
height: (this._defaultHeight / this._stepperDefaultWidth * containerWidth) + "px",
};
var className = ".SequenceControls" +
(this._expandControls ? ".SequenceControlsExpanded" : "");
- return vd.h("div" + className, properties, [controls, expander]);
+ return vd.h("div" + className, properties, [playback, timeline, expander]);
};
- SequenceDOMRenderer.prototype._createSequenceArrows = function (nextKey, prevKey, containerWidth, configuration, interaction, navigator) {
+ SequenceDOMRenderer.prototype._createSequenceArrows = function (nextKey, prevKey, containerWidth, configuration, navigator) {
+ var _this = this;
var nextProperties = {
onclick: nextKey != null ?
function (e) {
navigator.moveDir$(Edge_1.EdgeDirection.Next)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
} :
null,
- onmouseenter: function (e) { interaction.mouseEnterDirection$.next(Edge_1.EdgeDirection.Next); },
- onmouseleave: function (e) { interaction.mouseLeaveDirection$.next(Edge_1.EdgeDirection.Next); },
+ onmouseenter: function (e) { _this._mouseEnterDirection$.next(Edge_1.EdgeDirection.Next); },
+ onmouseleave: function (e) { _this._mouseLeaveDirection$.next(Edge_1.EdgeDirection.Next); },
};
var borderRadius = Math.round(8 / this._stepperDefaultWidth * containerWidth);
var prevProperties = {
onclick: prevKey != null ?
function (e) {
navigator.moveDir$(Edge_1.EdgeDirection.Prev)
- .subscribe(function (node) { return; }, function (error) { console.error(error); });
+ .subscribe(undefined, function (error) {
+ if (!(error instanceof Error_1.AbortMapillaryError)) {
+ console.error(error);
+ }
+ });
} :
null,
- onmouseenter: function (e) { interaction.mouseEnterDirection$.next(Edge_1.EdgeDirection.Prev); },
- onmouseleave: function (e) { interaction.mouseLeaveDirection$.next(Edge_1.EdgeDirection.Prev); },
+ onmouseenter: function (e) { _this._mouseEnterDirection$.next(Edge_1.EdgeDirection.Prev); },
+ onmouseleave: function (e) { _this._mouseLeaveDirection$.next(Edge_1.EdgeDirection.Prev); },
style: {
"border-bottom-left-radius": borderRadius + "px",
"border-top-left-radius": borderRadius + "px",
vd.h("div." + nextClass, nextProperties, [nextIcon]),
];
};
- SequenceDOMRenderer.prototype._createStepper = function (edgeStatus, configuration, containerWidth, component, interaction, navigator) {
+ SequenceDOMRenderer.prototype._createStepper = function (edgeStatus, configuration, containerWidth, component, navigator) {
var nextKey = null;
var prevKey = null;
for (var _i = 0, _a = edgeStatus.edges; _i < _a.length; _i++) {
}
}
var playingButton = this._createPlayingButton(nextKey, prevKey, configuration, component);
- var buttons = this._createSequenceArrows(nextKey, prevKey, containerWidth, configuration, interaction, navigator);
+ var buttons = this._createSequenceArrows(nextKey, prevKey, containerWidth, configuration, navigator);
buttons.splice(1, 0, playingButton);
var containerProperties = {
oncontextmenu: function (event) { event.preventDefault(); },
};
return vd.h("div.SequenceStepper", containerProperties, buttons);
};
+ SequenceDOMRenderer.prototype._createTimelineControls = function (containerWidth, index, max) {
+ var _this = this;
+ if (this._mode !== Component_1.SequenceMode.Timeline) {
+ return vd.h("div.SequenceTimeline", []);
+ }
+ var positionInput = this._createPositionInput(index, max);
+ var closeIcon = vd.h("div.SequenceCloseIcon.SequenceIconVisible", []);
+ var closeButtonProperties = {
+ onclick: function () {
+ _this._mode = Component_1.SequenceMode.Default;
+ _this._notifyChanged$.next(_this);
+ },
+ };
+ var closeButton = vd.h("div.SequenceCloseButton", closeButtonProperties, [closeIcon]);
+ var top = Math.round(containerWidth / this._stepperDefaultWidth * this._defaultHeight + 10);
+ var playbackProperties = { style: { top: top + "px" } };
+ return vd.h("div.SequenceTimeline", playbackProperties, [positionInput, closeButton]);
+ };
SequenceDOMRenderer.prototype._getStepClassName = function (direction, key, highlightKey) {
var className = direction === Edge_1.EdgeDirection.Next ?
"SequenceStepNext" :
}
return className;
};
+ SequenceDOMRenderer.prototype._setChangingPosition = function (value) {
+ this._changingPosition = value;
+ this._notifyChangingPositionChanged$.next(value);
+ };
return SequenceDOMRenderer;
}());
exports.SequenceDOMRenderer = SequenceDOMRenderer;
exports.default = SequenceDOMRenderer;
-},{"../../Component":281,"../../Edge":282,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":237}],344:[function(require,module,exports){
+},{"../../Component":291,"../../Edge":292,"../../Error":293,"rxjs/Observable":29,"rxjs/Subject":34,"virtual-dom":247}],352:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var SequenceMode;
+(function (SequenceMode) {
+ SequenceMode[SequenceMode["Default"] = 0] = "Default";
+ SequenceMode[SequenceMode["Playback"] = 1] = "Playback";
+ SequenceMode[SequenceMode["Timeline"] = 2] = "Timeline";
+})(SequenceMode = exports.SequenceMode || (exports.SequenceMode = {}));
+exports.default = SequenceMode;
+
+},{}],353:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var GeometryTagError_1 = require("./error/GeometryTagError");
var TagMode_1 = require("./TagMode");
exports.TagMode = TagMode_1.TagMode;
-},{"./TagComponent":345,"./TagMode":348,"./error/GeometryTagError":352,"./geometry/PointGeometry":354,"./geometry/PolygonGeometry":355,"./geometry/RectGeometry":356,"./tag/OutlineTag":368,"./tag/SpotTag":371}],345:[function(require,module,exports){
+},{"./TagComponent":354,"./TagMode":357,"./error/GeometryTagError":361,"./geometry/PointGeometry":363,"./geometry/PolygonGeometry":364,"./geometry/RectGeometry":365,"./tag/OutlineTag":377,"./tag/SpotTag":380}],354:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
Component_1.ComponentService.register(TagComponent);
exports.default = TagComponent;
-},{"../../Component":281,"../../Geo":284,"../../Render":287,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/empty":40,"rxjs/add/observable/from":41,"rxjs/add/observable/merge":44,"rxjs/add/observable/of":45,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/concat":54,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/share":76,"rxjs/add/operator/skip":77,"rxjs/add/operator/skipUntil":78,"rxjs/add/operator/startWith":80,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/take":82,"rxjs/add/operator/takeUntil":83,"rxjs/add/operator/withLatestFrom":87,"when":278}],346:[function(require,module,exports){
+},{"../../Component":291,"../../Geo":294,"../../Render":297,"rxjs/Observable":29,"rxjs/add/observable/combineLatest":38,"rxjs/add/observable/empty":41,"rxjs/add/observable/from":42,"rxjs/add/observable/merge":45,"rxjs/add/observable/of":46,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/concat":56,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/skip":80,"rxjs/add/operator/skipUntil":81,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/take":85,"rxjs/add/operator/takeUntil":86,"rxjs/add/operator/withLatestFrom":90,"when":288}],355:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Subject_1 = require("rxjs/Subject");
exports.TagCreator = TagCreator;
exports.default = TagCreator;
-},{"../../Component":281,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/scan":75,"rxjs/add/operator/share":76,"rxjs/add/operator/withLatestFrom":87}],347:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/withLatestFrom":90}],356:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.TagDOMRenderer = TagDOMRenderer;
-},{"virtual-dom":237}],348:[function(require,module,exports){
+},{"virtual-dom":247}],357:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
})(TagMode = exports.TagMode || (exports.TagMode = {}));
exports.default = TagMode;
-},{}],349:[function(require,module,exports){
+},{}],358:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var TagOperation;
})(TagOperation = exports.TagOperation || (exports.TagOperation = {}));
exports.default = TagOperation;
-},{}],350:[function(require,module,exports){
+},{}],359:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.TagScene = TagScene;
exports.default = TagScene;
-},{"three":231}],351:[function(require,module,exports){
+},{"three":241}],360:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Subject_1 = require("rxjs/Subject");
exports.TagSet = TagSet;
exports.default = TagSet;
-},{"../../Component":281,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/scan":75,"rxjs/add/operator/share":76}],352:[function(require,module,exports){
+},{"../../Component":291,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79}],361:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.GeometryTagError = GeometryTagError;
exports.default = Error_1.MapillaryError;
-},{"../../../Error":283}],353:[function(require,module,exports){
+},{"../../../Error":293}],362:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Subject_1 = require("rxjs/Subject");
exports.Geometry = Geometry;
exports.default = Geometry;
-},{"rxjs/Subject":34}],354:[function(require,module,exports){
+},{"rxjs/Subject":34}],363:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
}(Component_1.Geometry));
exports.PointGeometry = PointGeometry;
-},{"../../../Component":281}],355:[function(require,module,exports){
+},{"../../../Component":291}],364:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.PolygonGeometry = PolygonGeometry;
exports.default = PolygonGeometry;
-},{"../../../Component":281}],356:[function(require,module,exports){
+},{"../../../Component":291}],365:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.RectGeometry = RectGeometry;
exports.default = RectGeometry;
-},{"../../../Component":281}],357:[function(require,module,exports){
+},{"../../../Component":291}],366:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.VertexGeometry = VertexGeometry;
exports.default = VertexGeometry;
-},{"../../../Component":281,"@mapbox/polylabel":1,"earcut":8}],358:[function(require,module,exports){
+},{"../../../Component":291,"@mapbox/polylabel":1,"earcut":8}],367:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.CreateHandlerBase = CreateHandlerBase;
exports.default = CreateHandlerBase;
-},{"../../../Component":281,"rxjs/Subject":34}],359:[function(require,module,exports){
+},{"../../../Component":291,"rxjs/Subject":34}],368:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.CreatePointHandler = CreatePointHandler;
exports.default = CreatePointHandler;
-},{"../../../Component":281}],360:[function(require,module,exports){
+},{"../../../Component":291}],369:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.CreatePolygonHandler = CreatePolygonHandler;
exports.default = CreatePolygonHandler;
-},{"../../../Component":281}],361:[function(require,module,exports){
+},{"../../../Component":291}],370:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.CreateRectDragHandler = CreateRectDragHandler;
exports.default = CreateRectDragHandler;
-},{"../../../Component":281,"rxjs/Observable":29}],362:[function(require,module,exports){
+},{"../../../Component":291,"rxjs/Observable":29}],371:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.CreateRectHandler = CreateRectHandler;
exports.default = CreateRectHandler;
-},{"../../../Component":281}],363:[function(require,module,exports){
+},{"../../../Component":291}],372:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.CreateVertexHandler = CreateVertexHandler;
exports.default = CreateVertexHandler;
-},{"../../../Component":281,"rxjs/Observable":29}],364:[function(require,module,exports){
+},{"../../../Component":291,"rxjs/Observable":29}],373:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.EditVertexHandler = EditVertexHandler;
exports.default = EditVertexHandler;
-},{"../../../Component":281,"rxjs/Observable":29}],365:[function(require,module,exports){
+},{"../../../Component":291,"rxjs/Observable":29}],374:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
exports.TagHandlerBase = TagHandlerBase;
exports.default = TagHandlerBase;
-},{"../../../Component":281}],366:[function(require,module,exports){
+},{"../../../Component":291}],375:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.OutlineCreateTag = OutlineCreateTag;
exports.default = OutlineCreateTag;
-},{"../../../Component":281,"../../../Geo":284,"rxjs/Subject":34,"three":231,"virtual-dom":237}],367:[function(require,module,exports){
+},{"../../../Component":291,"../../../Geo":294,"rxjs/Subject":34,"three":241,"virtual-dom":247}],376:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
}(Component_1.RenderTag));
exports.OutlineRenderTag = OutlineRenderTag;
-},{"../../../Component":281,"three":231,"virtual-dom":237}],368:[function(require,module,exports){
+},{"../../../Component":291,"three":241,"virtual-dom":247}],377:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.OutlineTag = OutlineTag;
exports.default = OutlineTag;
-},{"../../../Component":281,"../../../Viewer":292,"rxjs/Subject":34}],369:[function(require,module,exports){
+},{"../../../Component":291,"../../../Viewer":302,"rxjs/Subject":34}],378:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.RenderTag = RenderTag;
exports.default = RenderTag;
-},{"../../../Geo":284,"rxjs/Subject":34}],370:[function(require,module,exports){
+},{"../../../Geo":294,"rxjs/Subject":34}],379:[function(require,module,exports){
"use strict";
/// <reference path="../../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
}(Component_1.RenderTag));
exports.SpotRenderTag = SpotRenderTag;
-},{"../../../Component":281,"../../../Viewer":292,"virtual-dom":237}],371:[function(require,module,exports){
+},{"../../../Component":291,"../../../Viewer":302,"virtual-dom":247}],380:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.SpotTag = SpotTag;
exports.default = SpotTag;
-},{"../../../Component":281}],372:[function(require,module,exports){
+},{"../../../Component":291}],381:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
exports.Tag = Tag;
exports.default = Tag;
-},{"../../../Utils":291,"rxjs/Subject":34,"rxjs/add/operator/map":65,"rxjs/add/operator/share":76}],373:[function(require,module,exports){
+},{"../../../Utils":301,"rxjs/Subject":34,"rxjs/add/operator/map":67,"rxjs/add/operator/share":79}],382:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var HandlerBase = /** @class */ (function () {
exports.HandlerBase = HandlerBase;
exports.default = HandlerBase;
-},{}],374:[function(require,module,exports){
+},{}],383:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var MapillaryError_1 = require("./MapillaryError");
+var AbortMapillaryError = /** @class */ (function (_super) {
+ __extends(AbortMapillaryError, _super);
+ function AbortMapillaryError(message) {
+ var _this = _super.call(this, message != null ? message : "The request was aborted.") || this;
+ Object.setPrototypeOf(_this, AbortMapillaryError.prototype);
+ _this.name = "AbortMapillaryError";
+ return _this;
+ }
+ return AbortMapillaryError;
+}(MapillaryError_1.MapillaryError));
+exports.AbortMapillaryError = AbortMapillaryError;
+exports.default = AbortMapillaryError;
+
+},{"./MapillaryError":386}],384:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
__extends(ArgumentMapillaryError, _super);
function ArgumentMapillaryError(message) {
var _this = _super.call(this, message != null ? message : "The argument is not valid.") || this;
+ Object.setPrototypeOf(_this, ArgumentMapillaryError.prototype);
_this.name = "ArgumentMapillaryError";
return _this;
}
exports.ArgumentMapillaryError = ArgumentMapillaryError;
exports.default = ArgumentMapillaryError;
-},{"./MapillaryError":376}],375:[function(require,module,exports){
+},{"./MapillaryError":386}],385:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
__extends(GraphMapillaryError, _super);
function GraphMapillaryError(message) {
var _this = _super.call(this, message) || this;
+ Object.setPrototypeOf(_this, GraphMapillaryError.prototype);
_this.name = "GraphMapillaryError";
return _this;
}
exports.GraphMapillaryError = GraphMapillaryError;
exports.default = GraphMapillaryError;
-},{"./MapillaryError":376}],376:[function(require,module,exports){
+},{"./MapillaryError":386}],386:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
__extends(MapillaryError, _super);
function MapillaryError(message) {
var _this = _super.call(this, message) || this;
+ Object.setPrototypeOf(_this, MapillaryError.prototype);
_this.name = "MapillaryError";
return _this;
}
exports.MapillaryError = MapillaryError;
exports.default = MapillaryError;
-},{}],377:[function(require,module,exports){
+},{}],387:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.Camera = Camera;
-},{"three":231}],378:[function(require,module,exports){
+},{"three":241}],388:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
exports.GeoCoords = GeoCoords;
exports.default = GeoCoords;
-},{}],379:[function(require,module,exports){
+},{}],389:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
* (latitude longitude pairs) in meters according to
* the haversine formula.
*
- * @param {number} lat1 - Latitude of the first coordinate.
- * @param {number} lon1 - Longitude of the first coordinate.
- * @param {number} lat2 - Latitude of the second coordinate.
- * @param {number} lon2 - Longitude of the second coordinate.
- * @returns {number} Distance between lat lon positions.
+ * @param {number} lat1 - Latitude of the first coordinate in degrees.
+ * @param {number} lon1 - Longitude of the first coordinate in degrees.
+ * @param {number} lat2 - Latitude of the second coordinate in degrees.
+ * @param {number} lon2 - Longitude of the second coordinate in degrees.
+ * @returns {number} Distance between lat lon positions in meters.
*/
Spatial.prototype.distanceFromLatLon = function (lat1, lon1, lat2, lon2) {
var r = 6371000;
var dLat = this.degToRad(lat2 - lat1);
var dLon = this.degToRad(lon2 - lon1);
var hav = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
- Math.cos(lat1) * Math.cos(lat2) *
+ Math.cos(this.degToRad(lat1)) * Math.cos(this.degToRad(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var d = 2 * r * Math.atan2(Math.sqrt(hav), Math.sqrt(1 - hav));
return d;
exports.Spatial = Spatial;
exports.default = Spatial;
-},{"three":231}],380:[function(require,module,exports){
+},{"three":241}],390:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.Transform = Transform;
-},{"three":231}],381:[function(require,module,exports){
+},{"three":241}],391:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.ViewportCoords = ViewportCoords;
exports.default = ViewportCoords;
-},{"three":231}],382:[function(require,module,exports){
+},{"three":241}],392:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
exports.FilterCreator = FilterCreator;
exports.default = FilterCreator;
-},{}],383:[function(require,module,exports){
+},{}],393:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
require("rxjs/add/operator/catch");
require("rxjs/add/operator/do");
require("rxjs/add/operator/finally");
+require("rxjs/add/operator/last");
require("rxjs/add/operator/map");
require("rxjs/add/operator/publish");
+require("rxjs/add/operator/reduce");
var Edge_1 = require("../Edge");
var Error_1 = require("../Error");
var Graph_1 = require("../Graph");
enumerable: true,
configurable: true
});
+ /**
+ * Caches the full node data for all images within a bounding
+ * box.
+ *
+ * @description The node assets are not cached.
+ *
+ * @param {ILatLon} sw - South west corner of bounding box.
+ * @param {ILatLon} ne - North east corner of bounding box.
+ * @returns {Observable<Graph>} Observable emitting the full
+ * nodes in the bounding box.
+ */
+ Graph.prototype.cacheBoundingBox$ = function (sw, ne) {
+ var _this = this;
+ var cacheTiles$ = this._graphCalculator.encodeHsFromBoundingBox(sw, ne)
+ .filter(function (h) {
+ return !(h in _this._cachedTiles);
+ })
+ .map(function (h) {
+ return h in _this._cachingTiles$ ?
+ _this._cachingTiles$[h] :
+ _this._cacheTile$(h);
+ });
+ if (cacheTiles$.length === 0) {
+ cacheTiles$.push(Observable_1.Observable.of(this));
+ }
+ return Observable_1.Observable
+ .from(cacheTiles$)
+ .mergeAll()
+ .last()
+ .mergeMap(function (graph) {
+ var nodes = _this._nodeIndex
+ .search({
+ maxX: ne.lat,
+ maxY: ne.lon,
+ minX: sw.lat,
+ minY: sw.lon,
+ })
+ .map(function (item) {
+ return item.node;
+ });
+ var fullNodes = [];
+ var coreNodes = [];
+ for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
+ var node = nodes_1[_i];
+ if (node.full) {
+ fullNodes.push(node);
+ }
+ else {
+ coreNodes.push(node.key);
+ }
+ }
+ var coreNodeBatches = [];
+ var batchSize = 200;
+ while (coreNodes.length > 0) {
+ coreNodeBatches.push(coreNodes.splice(0, batchSize));
+ }
+ var fullNodes$ = Observable_1.Observable.of(fullNodes);
+ var fillNodes$ = coreNodeBatches
+ .map(function (batch) {
+ return _this._apiV3.imageByKeyFill$(batch)
+ .map(function (imageByKeyFill) {
+ var filledNodes = [];
+ for (var fillKey in imageByKeyFill) {
+ if (!imageByKeyFill.hasOwnProperty(fillKey)) {
+ continue;
+ }
+ if (_this.hasNode(fillKey)) {
+ var node = _this.getNode(fillKey);
+ if (!node.full) {
+ _this._makeFull(node, imageByKeyFill[fillKey]);
+ }
+ filledNodes.push(node);
+ }
+ }
+ return filledNodes;
+ });
+ });
+ return Observable_1.Observable
+ .merge(fullNodes$, Observable_1.Observable
+ .from(fillNodes$)
+ .mergeAll());
+ })
+ .reduce(function (acc, value) {
+ return acc.concat(value);
+ });
+ };
/**
* Retrieve and cache node fill properties.
*
}
}
else {
- if (fn.sequence == null || fn.sequence.key == null) {
- throw new Error_1.GraphMapillaryError("Node has no sequence (" + key + ").");
+ if (fn.sequence_key == null) {
+ throw new Error_1.GraphMapillaryError("Node has no sequence key (" + key + ").");
}
var node = new Graph_1.Node(fn);
_this._makeFull(node, fn);
}
var batches = [];
var keys = sequence.keys.slice();
- if (!!referenceNodeKey) {
+ var referenceBatchSize = 50;
+ if (!!referenceNodeKey && keys.length > referenceBatchSize) {
var referenceIndex = keys.indexOf(referenceNodeKey);
- if (referenceIndex !== -1) {
- for (var _i = 0, _a = [20, 40]; _i < _a.length; _i++) {
- var referenceBatchSize = _a[_i];
- if (referenceIndex < keys.length - 1) {
- batches.push(keys.splice(referenceIndex, referenceBatchSize));
- }
- if (referenceIndex > 0) {
- var shift = referenceIndex === keys.length - 1 ? 1 : 0;
- var batch = keys.splice(Math.max(0, referenceIndex + shift - referenceBatchSize), referenceBatchSize);
- batches.push(batch);
- referenceIndex -= batch.length;
- }
- }
- }
+ var startIndex = Math.max(0, Math.min(referenceIndex - referenceBatchSize / 2, keys.length - referenceBatchSize));
+ batches.push(keys.splice(startIndex, referenceBatchSize));
}
var batchSize = 200;
while (keys.length > 0) {
}
}
else {
- if (fn.sequence == null || fn.sequence.key == null) {
- console.warn("Sequence missing, discarding (" + fn.key + ")");
+ if (fn.sequence_key == null) {
+ console.warn("Sequence missing, discarding node (" + fn.key + ")");
}
var node = new Graph_1.Node(fn);
_this._makeFull(node, fn);
* Retrieve and cache geohash tiles for a node.
*
* @param {string} key - Key of node for which to retrieve tiles.
- * @returns {Observable<Graph>} Observable emitting the graph
- * when the tiles required for the node has been cached.
+ * @returns {Array<Observable<Graph>>} Array of observables emitting
+ * the graph for each tile required for the node has been cached.
* @throws {GraphMapillaryError} When the operation is not valid on the
* current graph.
*/
nodeTiles.cache = [];
var cacheTiles$ = [];
var _loop_2 = function (h) {
- var cacheTile$ = null;
- if (h in this_2._cachingTiles$) {
- cacheTile$ = this_2._cachingTiles$[h];
- }
- else {
- cacheTile$ = this_2._apiV3.imagesByH$([h])
- .do(function (imagesByH) {
- var coreNodes = imagesByH[h];
- if (h in _this._cachedTiles) {
- return;
- }
- _this._nodeIndexTiles[h] = [];
- _this._cachedTiles[h] = { accessed: new Date().getTime(), nodes: [] };
- var hCache = _this._cachedTiles[h].nodes;
- var preStored = _this._removeFromPreStore(h);
- for (var index in coreNodes) {
- if (!coreNodes.hasOwnProperty(index)) {
- continue;
- }
- var coreNode = coreNodes[index];
- if (coreNode == null) {
- break;
- }
- if (coreNode.sequence == null ||
- coreNode.sequence.key == null) {
- console.warn("Sequence missing, discarding (" + coreNode.key + ")");
- continue;
- }
- if (preStored != null && coreNode.key in preStored) {
- var preStoredNode = preStored[coreNode.key];
- delete preStored[coreNode.key];
- hCache.push(preStoredNode);
- var preStoredNodeIndexItem = {
- lat: preStoredNode.latLon.lat,
- lon: preStoredNode.latLon.lon,
- node: preStoredNode,
- };
- _this._nodeIndex.insert(preStoredNodeIndexItem);
- _this._nodeIndexTiles[h].push(preStoredNodeIndexItem);
- _this._nodeToTile[preStoredNode.key] = h;
- continue;
- }
- var node = new Graph_1.Node(coreNode);
- hCache.push(node);
- var nodeIndexItem = {
- lat: node.latLon.lat,
- lon: node.latLon.lon,
- node: node,
- };
- _this._nodeIndex.insert(nodeIndexItem);
- _this._nodeIndexTiles[h].push(nodeIndexItem);
- _this._nodeToTile[node.key] = h;
- _this._setNode(node);
- }
- delete _this._cachingTiles$[h];
- })
- .map(function (imagesByH) {
- return _this;
- })
- .catch(function (error) {
- delete _this._cachingTiles$[h];
- throw error;
- })
- .publish()
- .refCount();
- this_2._cachingTiles$[h] = cacheTile$;
- }
+ var cacheTile$ = h in this_2._cachingTiles$ ?
+ this_2._cachingTiles$[h] :
+ this_2._cacheTile$(h);
cacheTiles$.push(cacheTile$
.do(function (graph) {
var index = nodeTiles.caching.indexOf(h);
this._nodes = {};
this._nodeToTile = {};
this._preStored = {};
- for (var _c = 0, nodes_1 = nodes; _c < nodes_1.length; _c++) {
- var node = nodes_1[_c];
+ for (var _c = 0, nodes_2 = nodes; _c < nodes_2.length; _c++) {
+ var node = nodes_2[_c];
this._nodes[node.key] = node;
var h = this._graphCalculator.encodeH(node.originalLatLon, this._tilePrecision);
this._preStore(h, node);
.refCount();
return this._cachingSequences$[sequenceKey];
};
+ Graph.prototype._cacheTile$ = function (h) {
+ var _this = this;
+ this._cachingTiles$[h] = this._apiV3.imagesByH$([h])
+ .do(function (imagesByH) {
+ var coreNodes = imagesByH[h];
+ if (h in _this._cachedTiles) {
+ return;
+ }
+ _this._nodeIndexTiles[h] = [];
+ _this._cachedTiles[h] = { accessed: new Date().getTime(), nodes: [] };
+ var hCache = _this._cachedTiles[h].nodes;
+ var preStored = _this._removeFromPreStore(h);
+ for (var index in coreNodes) {
+ if (!coreNodes.hasOwnProperty(index)) {
+ continue;
+ }
+ var coreNode = coreNodes[index];
+ if (coreNode == null) {
+ break;
+ }
+ if (coreNode.sequence_key == null) {
+ console.warn("Sequence missing, discarding node (" + coreNode.key + ")");
+ continue;
+ }
+ if (preStored != null && coreNode.key in preStored) {
+ var preStoredNode = preStored[coreNode.key];
+ delete preStored[coreNode.key];
+ hCache.push(preStoredNode);
+ var preStoredNodeIndexItem = {
+ lat: preStoredNode.latLon.lat,
+ lon: preStoredNode.latLon.lon,
+ node: preStoredNode,
+ };
+ _this._nodeIndex.insert(preStoredNodeIndexItem);
+ _this._nodeIndexTiles[h].push(preStoredNodeIndexItem);
+ _this._nodeToTile[preStoredNode.key] = h;
+ continue;
+ }
+ var node = new Graph_1.Node(coreNode);
+ hCache.push(node);
+ var nodeIndexItem = {
+ lat: node.latLon.lat,
+ lon: node.latLon.lon,
+ node: node,
+ };
+ _this._nodeIndex.insert(nodeIndexItem);
+ _this._nodeIndexTiles[h].push(nodeIndexItem);
+ _this._nodeToTile[node.key] = h;
+ _this._setNode(node);
+ }
+ delete _this._cachingTiles$[h];
+ })
+ .map(function (imagesByH) {
+ return _this;
+ })
+ .catch(function (error) {
+ delete _this._cachingTiles$[h];
+ throw error;
+ })
+ .publish()
+ .refCount();
+ return this._cachingTiles$[h];
+ };
Graph.prototype._makeFull = function (node, fillNode) {
if (fillNode.calt == null) {
fillNode.calt = this._defaultAlt;
exports.Graph = Graph;
exports.default = Graph;
-},{"../Edge":282,"../Error":283,"../Graph":285,"rbush":25,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/from":41,"rxjs/add/operator/catch":52,"rxjs/add/operator/do":59,"rxjs/add/operator/finally":62,"rxjs/add/operator/map":65,"rxjs/add/operator/publish":71}],384:[function(require,module,exports){
+},{"../Edge":292,"../Error":293,"../Graph":295,"rbush":25,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/from":42,"rxjs/add/operator/catch":54,"rxjs/add/operator/do":61,"rxjs/add/operator/finally":64,"rxjs/add/operator/last":66,"rxjs/add/operator/map":67,"rxjs/add/operator/publish":73,"rxjs/add/operator/reduce":75}],394:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
var geohash = require("latlon-geohash");
var THREE = require("three");
+var Error_1 = require("../Error");
var Geo_1 = require("../Geo");
var GeoHashDirections = /** @class */ (function () {
function GeoHashDirections() {
}
return hs;
};
+ /**
+ * Encode the minimum set of geohash tiles containing a bounding box.
+ *
+ * @description The current algorithm does expect the bounding box
+ * to be sufficiently small to be contained in an area with the size
+ * of maximally four tiles. Up to nine adjacent tiles may be returned.
+ * The method currently uses the largest side as the threshold leading to
+ * more tiles being returned than needed in edge cases.
+ *
+ * @param {ILatLon} sw - South west corner of bounding box.
+ * @param {ILatLon} ne - North east corner of bounding box.
+ * @param {number} precision - Precision of the encoding.
+ *
+ * @returns {string} The geohash tiles containing the bounding box.
+ */
+ GraphCalculator.prototype.encodeHsFromBoundingBox = function (sw, ne, precision) {
+ if (precision === void 0) { precision = 7; }
+ if (ne.lat <= sw.lat || ne.lon <= sw.lon) {
+ throw new Error_1.GraphMapillaryError("North east needs to be top right of south west");
+ }
+ var centerLat = (sw.lat + ne.lat) / 2;
+ var centerLon = (sw.lon + ne.lon) / 2;
+ var enu = this._geoCoords.geodeticToEnu(ne.lat, ne.lon, 0, centerLat, centerLon, 0);
+ var threshold = Math.max(enu[0], enu[1]);
+ return this.encodeHs({ lat: centerLat, lon: centerLon }, precision, threshold);
+ };
/**
* Get the bounding box corners for a circle with radius of a threshold
* with center in a geodetic position.
exports.GraphCalculator = GraphCalculator;
exports.default = GraphCalculator;
-},{"../Geo":284,"latlon-geohash":21,"three":231}],385:[function(require,module,exports){
+},{"../Error":293,"../Geo":294,"latlon-geohash":21,"three":241}],395:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
})(GraphMode = exports.GraphMode || (exports.GraphMode = {}));
exports.default = GraphMode;
-},{}],386:[function(require,module,exports){
+},{}],396:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
enumerable: true,
configurable: true
});
+ /**
+ * Cache full nodes in a bounding box.
+ *
+ * @description When called, the full properties of
+ * the node are retrieved. The node cache is not initialized
+ * for any new nodes retrieved and the node assets are not
+ * retrieved, {@link cacheNode$} needs to be called for caching
+ * assets.
+ *
+ * @param {ILatLon} sw - South west corner of bounding box.
+ * @param {ILatLon} ne - North east corner of bounding box.
+ * @return {Observable<Array<Node>>} Observable emitting a single item,
+ * the nodes of the bounding box, when they have all been retrieved.
+ * @throws {Error} Propagates any IO node caching errors to the caller.
+ */
+ GraphService.prototype.cacheBoundingBox$ = function (sw, ne) {
+ return this._graph$
+ .first()
+ .mergeMap(function (graph) {
+ return graph.cacheBoundingBox$(sw, ne);
+ });
+ };
/**
* Cache a node in the graph and retrieve it.
*
exports.GraphService = GraphService;
exports.default = GraphService;
-},{"../Graph":285,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":52,"rxjs/add/operator/concat":54,"rxjs/add/operator/do":59,"rxjs/add/operator/expand":60,"rxjs/add/operator/finally":62,"rxjs/add/operator/first":63,"rxjs/add/operator/last":64,"rxjs/add/operator/map":65,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/publishReplay":72}],387:[function(require,module,exports){
+},{"../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/catch":54,"rxjs/add/operator/concat":56,"rxjs/add/operator/do":61,"rxjs/add/operator/expand":62,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/last":66,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74}],397:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.ImageLoadingService = ImageLoadingService;
-},{"rxjs/Subject":34}],388:[function(require,module,exports){
+},{"rxjs/Subject":34}],398:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
}());
exports.MeshReader = MeshReader;
-},{"pbf":23}],389:[function(require,module,exports){
+},{"pbf":23}],399:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require("rxjs/add/observable/combineLatest");
* Explanation of position and bearing properties:
*
* When images are uploaded they will have GPS information in the EXIF, this is what
- * is called `originalLatLon`(@link Node#originalLatLon).
+ * is called `originalLatLon` {@link Node.originalLatLon}.
*
* When Structure from Motions has been run for a node a `computedLatLon` that
* differs from the `originalLatLon` will be created. It is different because
* GPS positions are not very exact and SfM aligns the camera positions according
- * to the 3D reconstruction (@link Node#computedLatLon).
+ * to the 3D reconstruction {@link Node.computedLatLon}.
*
* At last there exist a `latLon` property which evaluates to
* the `computedLatLon` from SfM if it exists but falls back
- * to the `originalLatLon` from the EXIF GPS otherwise (@link Node#latlon).
+ * to the `originalLatLon` from the EXIF GPS otherwise {@link Node.latlon}.
*
* Everything that is done in in the Viewer is based on the SfM positions,
* i.e. `computedLatLon`. That is why the smooth transitions go in the right
enumerable: true,
configurable: true
});
+ Object.defineProperty(Node.prototype, "cameraUuid", {
+ /**
+ * Get camera uuid.
+ *
+ * @description Will be undefined if the camera uuid was not
+ * recorded in the image exif information.
+ *
+ * @returns {string} Universally unique id for camera used
+ * when capturing image.
+ */
+ get: function () {
+ return this._fill.captured_with_camera_uuid;
+ },
+ enumerable: true,
+ configurable: true
+ });
Object.defineProperty(Node.prototype, "computedCA", {
/**
* Get computedCA.
enumerable: true,
configurable: true
});
+ Object.defineProperty(Node.prototype, "organizationKey", {
+ /**
+ * Get organizationKey.
+ *
+ * @returns {string} Unique key of the organization to which
+ * the node belongs. If the node does not belong to an
+ * organization the organization key will be undefined.
+ */
+ get: function () {
+ return this._fill.organization_key;
+ },
+ enumerable: true,
+ configurable: true
+ });
Object.defineProperty(Node.prototype, "orientation", {
/**
* Get orientation.
enumerable: true,
configurable: true
});
+ Object.defineProperty(Node.prototype, "private", {
+ /**
+ * Get private.
+ *
+ * @returns {boolean} Value specifying if image is accessible to
+ * organization members only or to everyone.
+ */
+ get: function () {
+ return this._fill.private;
+ },
+ enumerable: true,
+ configurable: true
+ });
Object.defineProperty(Node.prototype, "projectKey", {
/**
* Get projectKey.
*
* @returns {string} Unique key of the project to which
- * the node belongs.
+ * the node belongs. If the node does not belong to a
+ * project the project key will be undefined.
+ *
+ * @deprecated This property will be deprecated in favor
+ * of the organization key and private properties.
*/
get: function () {
return this._fill.project != null ?
* the node belongs.
*/
get: function () {
- return this._core.sequence.key;
+ return this._core.sequence_key;
},
enumerable: true,
configurable: true
exports.Node = Node;
exports.default = Node;
-},{"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/map":65}],390:[function(require,module,exports){
+},{"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/map":67}],400:[function(require,module,exports){
(function (Buffer){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var _this = this;
return Observable_1.Observable.create(function (subscriber) {
var xmlHTTP = new XMLHttpRequest();
- xmlHTTP.open("GET", Utils_1.Urls.thumbnail(key, imageSize), true);
+ xmlHTTP.open("GET", Utils_1.Urls.thumbnail(key, imageSize, Utils_1.Urls.origin), true);
xmlHTTP.responseType = "arraybuffer";
xmlHTTP.timeout = 15000;
xmlHTTP.onload = function (pe) {
}).call(this,require("buffer").Buffer)
-},{"../Graph":285,"../Utils":291,"buffer":7,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/publishReplay":72}],391:[function(require,module,exports){
+},{"../Graph":295,"../Utils":301,"buffer":7,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/publishReplay":74}],401:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.Sequence = Sequence;
exports.default = Sequence;
-},{"underscore":233}],392:[function(require,module,exports){
+},{"underscore":243}],402:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.EdgeCalculator = EdgeCalculator;
exports.default = EdgeCalculator;
-},{"../../Edge":282,"../../Error":283,"../../Geo":284,"three":231}],393:[function(require,module,exports){
+},{"../../Edge":292,"../../Error":293,"../../Geo":294,"three":241}],403:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EdgeCalculatorCoefficients = /** @class */ (function () {
exports.EdgeCalculatorCoefficients = EdgeCalculatorCoefficients;
exports.default = EdgeCalculatorCoefficients;
-},{}],394:[function(require,module,exports){
+},{}],404:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Edge_1 = require("../../Edge");
}());
exports.EdgeCalculatorDirections = EdgeCalculatorDirections;
-},{"../../Edge":282}],395:[function(require,module,exports){
+},{"../../Edge":292}],405:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EdgeCalculatorSettings = /** @class */ (function () {
exports.EdgeCalculatorSettings = EdgeCalculatorSettings;
exports.default = EdgeCalculatorSettings;
-},{}],396:[function(require,module,exports){
+},{}],406:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
EdgeDirection[EdgeDirection["Similar"] = 10] = "Similar";
})(EdgeDirection = exports.EdgeDirection || (exports.EdgeDirection = {}));
-},{}],397:[function(require,module,exports){
+},{}],407:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.DOMRenderer = DOMRenderer;
exports.default = DOMRenderer;
-},{"../Render":287,"rxjs/Subject":34,"rxjs/add/operator/combineLatest":53,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/pluck":70,"rxjs/add/operator/scan":75,"underscore":233,"virtual-dom":237}],398:[function(require,module,exports){
+},{"../Render":297,"rxjs/Subject":34,"rxjs/add/operator/combineLatest":55,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/pluck":72,"rxjs/add/operator/scan":78,"underscore":243,"virtual-dom":247}],408:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var GLRenderStage;
})(GLRenderStage = exports.GLRenderStage || (exports.GLRenderStage = {}));
exports.default = GLRenderStage;
-},{}],399:[function(require,module,exports){
+},{}],409:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.GLRenderer = GLRenderer;
exports.default = GLRenderer;
-},{"../Render":287,"../Utils":291,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/scan":75,"rxjs/add/operator/share":76,"rxjs/add/operator/startWith":80,"three":231}],400:[function(require,module,exports){
+},{"../Render":297,"../Utils":301,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/scan":78,"rxjs/add/operator/share":79,"rxjs/add/operator/startWith":83,"three":241}],410:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.RenderCamera = RenderCamera;
exports.default = RenderCamera;
-},{"../Geo":284,"../Render":287,"three":231}],401:[function(require,module,exports){
+},{"../Geo":294,"../Render":297,"three":241}],411:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
})(RenderMode = exports.RenderMode || (exports.RenderMode = {}));
exports.default = RenderMode;
-},{}],402:[function(require,module,exports){
+},{}],412:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.RenderService = RenderService;
exports.default = RenderService;
-},{"../Geo":284,"../Render":287,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/skip":77,"rxjs/add/operator/startWith":80,"rxjs/add/operator/withLatestFrom":87}],403:[function(require,module,exports){
+},{"../Geo":294,"../Render":297,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/skip":80,"rxjs/add/operator/startWith":83,"rxjs/add/operator/withLatestFrom":90}],413:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var State;
})(State = exports.State || (exports.State = {}));
exports.default = State;
-},{}],404:[function(require,module,exports){
+},{}],414:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var State_1 = require("../State");
var Geo_1 = require("../Geo");
var StateContext = /** @class */ (function () {
- function StateContext() {
+ function StateContext(transitionMode) {
this._state = new State_1.TraversingState({
alpha: 1,
camera: new Geo_1.Camera(),
currentIndex: -1,
reference: { alt: 0, lat: 0, lon: 0 },
trajectory: [],
+ transitionMode: transitionMode == null ? State_1.TransitionMode.Default : transitionMode,
zoom: 0,
});
}
StateContext.prototype.setSpeed = function (speed) {
this._state.setSpeed(speed);
};
+ StateContext.prototype.setTransitionMode = function (mode) {
+ this._state.setTransitionMode(mode);
+ };
return StateContext;
}());
exports.StateContext = StateContext;
-},{"../Geo":284,"../State":288}],405:[function(require,module,exports){
+},{"../Geo":294,"../State":298}],415:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var BehaviorSubject_1 = require("rxjs/BehaviorSubject");
require("rxjs/add/operator/withLatestFrom");
var State_1 = require("../State");
var StateService = /** @class */ (function () {
- function StateService() {
+ function StateService(transitionMode) {
var _this = this;
this._appendNode$ = new Subject_1.Subject();
this._start$ = new Subject_1.Subject();
this._context$ = this._contextOperation$
.scan(function (context, operation) {
return operation(context);
- }, new State_1.StateContext())
+ }, new State_1.StateContext(transitionMode))
.publishReplay(1)
.refCount();
this._state$ = this._context$
StateService.prototype.setSpeed = function (speed) {
this._invokeContextOperation(function (context) { context.setSpeed(speed); });
};
+ StateService.prototype.setTransitionMode = function (mode) {
+ this._invokeContextOperation(function (context) { context.setTransitionMode(mode); });
+ };
StateService.prototype.setZoom = function (zoom) {
this._inMotionOperation$.next(true);
this._invokeContextOperation(function (context) { context.setZoom(zoom); });
}());
exports.StateService = StateService;
-},{"../State":288,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/bufferCount":50,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/do":59,"rxjs/add/operator/filter":61,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/pairwise":69,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/startWith":80,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/withLatestFrom":87,"rxjs/util/AnimationFrame":208}],406:[function(require,module,exports){
+},{"../State":298,"rxjs/BehaviorSubject":26,"rxjs/Subject":34,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/do":61,"rxjs/add/operator/filter":63,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/pairwise":71,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90,"rxjs/util/AnimationFrame":218}],416:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Enumeration for transition mode
+ * @enum {number}
+ * @readonly
+ * @description Modes for specifying how transitions
+ * between nodes are performed.
+ */
+var TransitionMode;
+(function (TransitionMode) {
+ /**
+ * Default transitions.
+ *
+ * @description The viewer dynamically determines
+ * whether transitions should be performed with or
+ * without motion and blending for each transition
+ * based on the underlying data.
+ */
+ TransitionMode[TransitionMode["Default"] = 0] = "Default";
+ /**
+ * Instantaneous transitions.
+ *
+ * @description All transitions are performed
+ * without motion or blending.
+ */
+ TransitionMode[TransitionMode["Instantaneous"] = 1] = "Instantaneous";
+})(TransitionMode = exports.TransitionMode || (exports.TransitionMode = {}));
+exports.default = TransitionMode;
+
+},{}],417:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
var Error_1 = require("../../Error");
var Geo_1 = require("../../Geo");
+var State_1 = require("../../State");
var StateBase = /** @class */ (function () {
function StateBase(state) {
this._spatial = new Geo_1.Spatial();
this._geoCoords = new Geo_1.GeoCoords();
this._referenceThreshold = 0.01;
+ this._transitionMode = state.transitionMode;
this._reference = state.reference;
this._alpha = state.alpha;
this._camera = state.camera.clone();
enumerable: true,
configurable: true
});
+ Object.defineProperty(StateBase.prototype, "transitionMode", {
+ get: function () {
+ return this._transitionMode;
+ },
+ enumerable: true,
+ configurable: true
+ });
StateBase.prototype.append = function (nodes) {
if (nodes.length < 1) {
throw Error("Trajectory can not be empty");
this.currentTransform.projectBasic(this._camera.lookat.toArray()) :
[0.5, 0.5];
};
+ StateBase.prototype.setTransitionMode = function (mode) {
+ this._transitionMode = mode;
+ };
StateBase.prototype._setCurrent = function () {
this._setCurrentNode();
var referenceReset = this._setReference(this._currentNode);
};
StateBase.prototype._motionlessTransition = function () {
var nodesSet = this._currentNode != null && this._previousNode != null;
- return nodesSet && !(this._currentNode.merged &&
+ return nodesSet && (this._transitionMode === State_1.TransitionMode.Instantaneous || !(this._currentNode.merged &&
this._previousNode.merged &&
this._withinOriginalDistance() &&
- this._sameConnectedComponent());
+ this._sameConnectedComponent()));
};
StateBase.prototype._setReference = function (node) {
// do not reset reference if node is within threshold distance
}());
exports.StateBase = StateBase;
-},{"../../Error":283,"../../Geo":284}],407:[function(require,module,exports){
+},{"../../Error":293,"../../Geo":294,"../../State":298}],418:[function(require,module,exports){
"use strict";
/// <reference path="../../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
}(State_1.StateBase));
exports.TraversingState = TraversingState;
-},{"../../State":288,"@mapbox/unitbezier":2,"three":231}],408:[function(require,module,exports){
+},{"../../State":298,"@mapbox/unitbezier":2,"three":241}],419:[function(require,module,exports){
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
}(State_1.StateBase));
exports.WaitingState = WaitingState;
-},{"../../State":288}],409:[function(require,module,exports){
+},{"../../State":298}],420:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
exports.ImageTileLoader = ImageTileLoader;
exports.default = ImageTileLoader;
-},{"rxjs/Observable":29}],410:[function(require,module,exports){
+},{"rxjs/Observable":29}],421:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
exports.ImageTileStore = ImageTileStore;
exports.default = ImageTileStore;
-},{}],411:[function(require,module,exports){
+},{}],422:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegionOfInterestCalculator = RegionOfInterestCalculator;
exports.default = RegionOfInterestCalculator;
-},{"../Geo":284}],412:[function(require,module,exports){
+},{"../Geo":294}],423:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextureProvider = TextureProvider;
exports.default = TextureProvider;
-},{"rxjs/Subject":34,"three":231}],413:[function(require,module,exports){
+},{"rxjs/Subject":34,"three":241}],424:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var DOM = /** @class */ (function () {
exports.DOM = DOM;
exports.default = DOM;
-},{}],414:[function(require,module,exports){
+},{}],425:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EventEmitter = /** @class */ (function () {
exports.EventEmitter = EventEmitter;
exports.default = EventEmitter;
-},{}],415:[function(require,module,exports){
+},{}],426:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Viewer_1 = require("../Viewer");
exports.Settings = Settings;
exports.default = Settings;
-},{"../Viewer":292}],416:[function(require,module,exports){
+},{"../Viewer":302}],427:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function isBrowser() {
}
exports.isWebGLSupported = isWebGLSupported;
-},{}],417:[function(require,module,exports){
+},{}],428:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Urls = /** @class */ (function () {
function Urls() {
}
- Object.defineProperty(Urls, "tileScheme", {
+ Object.defineProperty(Urls, "explore", {
get: function () {
- return "https";
+ return Urls._scheme + "://" + Urls._exploreHost;
},
enumerable: true,
configurable: true
});
- Object.defineProperty(Urls, "tileDomain", {
+ Object.defineProperty(Urls, "origin", {
get: function () {
- return "d2qb1440i7l50o.cloudfront.net";
+ return Urls._origin;
},
enumerable: true,
configurable: true
});
- Object.defineProperty(Urls, "origin", {
+ Object.defineProperty(Urls, "tileScheme", {
get: function () {
- return "mapillary.webgl";
+ return Urls._scheme;
},
enumerable: true,
configurable: true
});
- Urls.thumbnail = function (key, size) {
- return "https://d1cuyjsrcm0gby.cloudfront.net/" + key + "/thumb-" + size + ".jpg?origin=" + this.origin;
+ Object.defineProperty(Urls, "tileDomain", {
+ get: function () {
+ return Urls._imageTileHost;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Urls.exporeImage = function (key) {
+ return Urls._scheme + "://" + Urls._exploreHost + "/app/?pKey=" + key + "&focus=photo";
+ };
+ Urls.exporeUser = function (username) {
+ return Urls._scheme + "://" + Urls._exploreHost + "/app/user/" + username;
};
Urls.falcorModel = function (clientId) {
- return "https://a.mapillary.com/v3/model.json?client_id=" + clientId;
+ return Urls._scheme + "://" + Urls._apiHost + "/v3/model.json?client_id=" + clientId;
};
Urls.protoMesh = function (key) {
- return "https://d1brzeo354iq2l.cloudfront.net/v2/mesh/" + key;
+ return Urls._scheme + "://" + Urls._meshHost + "/v2/mesh/" + key;
+ };
+ Urls.thumbnail = function (key, size, origin) {
+ var query = !!origin ? "?origin=" + origin : "";
+ return Urls._scheme + "://" + Urls._imageHost + "/" + key + "/thumb-" + size + ".jpg" + query;
};
+ Urls.setOptions = function (options) {
+ if (!options) {
+ return;
+ }
+ if (!!options.apiHost) {
+ Urls._apiHost = options.apiHost;
+ }
+ if (!!options.exploreHost) {
+ Urls._exploreHost = options.exploreHost;
+ }
+ if (!!options.imageHost) {
+ Urls._imageHost = options.imageHost;
+ }
+ if (!!options.imageTileHost) {
+ Urls._imageTileHost = options.imageTileHost;
+ }
+ if (!!options.meshHost) {
+ Urls._meshHost = options.meshHost;
+ }
+ if (!!options.scheme) {
+ Urls._scheme = options.scheme;
+ }
+ };
+ Urls._apiHost = "a.mapillary.com";
+ Urls._exploreHost = "www.mapillary.com";
+ Urls._imageHost = "d1cuyjsrcm0gby.cloudfront.net";
+ Urls._imageTileHost = "d2qb1440i7l50o.cloudfront.net";
+ Urls._meshHost = "d1brzeo354iq2l.cloudfront.net";
+ Urls._origin = "mapillary.webgl";
+ Urls._scheme = "https";
return Urls;
}());
exports.Urls = Urls;
exports.default = Urls;
-},{}],418:[function(require,module,exports){
+},{}],429:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
})(Alignment = exports.Alignment || (exports.Alignment = {}));
exports.default = Alignment;
-},{}],419:[function(require,module,exports){
+},{}],430:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
exports.CacheService = CacheService;
exports.default = CacheService;
-},{"../Graph":285,"rxjs/Observable":29,"rxjs/add/operator/bufferCount":50,"rxjs/add/operator/delay":56,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/map":65,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/timeout":86}],420:[function(require,module,exports){
+},{"../Graph":295,"rxjs/Observable":29,"rxjs/add/operator/bufferCount":52,"rxjs/add/operator/delay":58,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/timeout":89}],431:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Component_1 = require("../Component");
}());
exports.ComponentController = ComponentController;
-},{"../Component":281}],421:[function(require,module,exports){
+},{"../Component":291}],432:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Render_1 = require("../Render");
exports.Container = Container;
exports.default = Container;
-},{"../Render":287,"../Utils":291,"../Viewer":292}],422:[function(require,module,exports){
+},{"../Render":297,"../Utils":301,"../Viewer":302}],433:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
ImageSize[ImageSize["Size2048"] = 2048] = "Size2048";
})(ImageSize = exports.ImageSize || (exports.ImageSize = {}));
-},{}],423:[function(require,module,exports){
+},{}],434:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
exports.KeyboardService = KeyboardService;
exports.default = KeyboardService;
-},{"rxjs/Observable":29}],424:[function(require,module,exports){
+},{"rxjs/Observable":29}],435:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoadingService = LoadingService;
exports.default = LoadingService;
-},{"rxjs/Subject":34,"rxjs/add/operator/debounceTime":55,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/map":65,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/startWith":80,"underscore":233}],425:[function(require,module,exports){
+},{"rxjs/Subject":34,"rxjs/add/operator/debounceTime":57,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,"underscore":243}],436:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var BehaviorSubject_1 = require("rxjs/BehaviorSubject");
exports.MouseService = MouseService;
exports.default = MouseService;
-},{"../Geo":284,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/fromEvent":42,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/mergeMap":68,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/switchMap":81,"rxjs/add/operator/withLatestFrom":87}],426:[function(require,module,exports){
+},{"../Geo":294,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/fromEvent":43,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/mergeMap":70,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84,"rxjs/add/operator/withLatestFrom":90}],437:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
var API_1 = require("../API");
var Graph_1 = require("../Graph");
var Edge_1 = require("../Edge");
+var Error_1 = require("../Error");
var State_1 = require("../State");
var Viewer_1 = require("../Viewer");
var Navigator = /** @class */ (function () {
- function Navigator(clientId, token, apiV3, graphService, imageLoadingService, loadingService, stateService, cacheService, playService) {
+ function Navigator(clientId, options, token, apiV3, graphService, imageLoadingService, loadingService, stateService, cacheService, playService) {
this._apiV3 = apiV3 != null ? apiV3 : new API_1.APIv3(clientId, token);
this._imageLoadingService = imageLoadingService != null ? imageLoadingService : new Graph_1.ImageLoadingService();
this._graphService = graphService != null ?
new Graph_1.GraphService(new Graph_1.Graph(this.apiV3), this._imageLoadingService);
this._loadingService = loadingService != null ? loadingService : new Viewer_1.LoadingService();
this._loadingName = "navigator";
- this._stateService = stateService != null ? stateService : new State_1.StateService();
+ this._stateService = stateService != null ? stateService : new State_1.StateService(options.transitionMode);
this._cacheService = cacheService != null ?
cacheService :
new Viewer_1.CacheService(this._graphService, this._stateService);
this._nodeRequestSubscription = null;
}
if (this._request$ != null) {
- this._request$.error(new Error("Request aborted by a subsequent request " + reason + "."));
+ this._request$.error(new Error_1.AbortMapillaryError("Request aborted by a subsequent request " + reason + "."));
this._request$ = null;
}
};
exports.Navigator = Navigator;
exports.default = Navigator;
-},{"../API":280,"../Edge":282,"../Graph":285,"../State":288,"../Viewer":292,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/ReplaySubject":32,"rxjs/add/observable/throw":46,"rxjs/add/operator/do":59,"rxjs/add/operator/finally":62,"rxjs/add/operator/first":63,"rxjs/add/operator/map":65,"rxjs/add/operator/mergeMap":68}],427:[function(require,module,exports){
+},{"../API":290,"../Edge":292,"../Error":293,"../Graph":295,"../State":298,"../Viewer":302,"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/ReplaySubject":32,"rxjs/add/observable/throw":47,"rxjs/add/operator/do":61,"rxjs/add/operator/finally":64,"rxjs/add/operator/first":65,"rxjs/add/operator/map":67,"rxjs/add/operator/mergeMap":70}],438:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
exports.Observer = Observer;
exports.default = Observer;
-},{"../Viewer":292,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":58,"rxjs/add/operator/map":65,"rxjs/add/operator/throttleTime":85}],428:[function(require,module,exports){
+},{"../Viewer":302,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/combineLatest":38,"rxjs/add/operator/distinctUntilChanged":60,"rxjs/add/operator/map":67,"rxjs/add/operator/throttleTime":88}],439:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Observable_1 = require("rxjs/Observable");
var Edge_1 = require("../Edge");
var Graph_1 = require("../Graph");
var PlayService = /** @class */ (function () {
- function PlayService(graphService, stateService) {
+ function PlayService(graphService, stateService, graphCalculator) {
this._graphService = graphService;
this._stateService = stateService;
+ this._graphCalculator = !!graphCalculator ? graphCalculator : new Graph_1.GraphCalculator();
this._directionSubject$ = new Subject_1.Subject();
this._direction$ = this._directionSubject$
.startWith(Edge_1.EdgeDirection.Next)
.refCount();
this._speed$.subscribe();
this._nodesAhead = this._mapNodesAhead(this._mapSpeed(this._speed));
+ this._bridging$ = null;
}
Object.defineProperty(PlayService.prototype, "playing", {
get: function () {
_this._graphService.cacheSequenceNodes$(sequenceKey, nodeKey) :
_this._graphService.cacheSequence$(sequenceKey))
.retry(3)
- .catch(function () {
+ .catch(function (error) {
+ console.error(error);
return Observable_1.Observable.of(undefined);
});
return Observable_1.Observable
.filter(function (frame) {
return frame.state.nodesAhead < _this._nodesAhead;
})
- .map(function (frame) {
- return frame.state.lastNode;
+ .distinctUntilChanged(undefined, function (frame) {
+ return frame.state.lastNode.key;
})
- .distinctUntilChanged(undefined, function (lastNode) {
- return lastNode.key;
+ .map(function (frame) {
+ var lastNode = frame.state.lastNode;
+ var trajectory = frame.state.trajectory;
+ var increasingTime = undefined;
+ for (var i = trajectory.length - 2; i >= 0; i--) {
+ var node = trajectory[i];
+ if (node.sequenceKey !== lastNode.sequenceKey) {
+ break;
+ }
+ if (node.capturedAt !== lastNode.capturedAt) {
+ increasingTime = node.capturedAt < lastNode.capturedAt;
+ break;
+ }
+ }
+ return [frame.state.lastNode, increasingTime];
})
.withLatestFrom(this._direction$)
.switchMap(function (_a) {
- var node = _a[0], direction = _a[1];
+ var _b = _a[0], node = _b[0], increasingTime = _b[1], direction = _a[1];
return ([Edge_1.EdgeDirection.Next, Edge_1.EdgeDirection.Prev].indexOf(direction) > -1 ?
node.sequenceEdges$ :
node.spatialEdges$)
}
}
return null;
- })
- .filter(function (key) {
- return key != null;
})
.switchMap(function (key) {
- return _this._graphService.cacheNode$(key);
+ return key != null ?
+ _this._graphService.cacheNode$(key) :
+ _this._bridge$(node, increasingTime)
+ .filter(function (n) {
+ return !!n;
+ });
});
})
.subscribe(function (node) {
_this._stateService.clearPriorNodes();
});
this._setPlaying(true);
+ var currentLastNodes$ = this._stateService.currentState$
+ .map(function (frame) {
+ return frame.state;
+ })
+ .distinctUntilChanged(function (_a, _b) {
+ var kc1 = _a[0], kl1 = _a[1];
+ var kc2 = _b[0], kl2 = _b[1];
+ return kc1 === kc2 && kl1 === kl2;
+ }, function (state) {
+ return [state.currentNode.key, state.lastNode.key];
+ })
+ .filter(function (state) {
+ return state.currentNode.key === state.lastNode.key &&
+ state.currentIndex === state.trajectory.length - 1;
+ })
+ .map(function (state) {
+ return state.currentNode;
+ });
this._stopSubscription = Observable_1.Observable
- .combineLatest(this._stateService.currentNode$, this._direction$)
+ .combineLatest(currentLastNodes$, this._direction$)
.switchMap(function (_a) {
var node = _a[0], direction = _a[1];
var edgeStatus$ = ([Edge_1.EdgeDirection.Next, Edge_1.EdgeDirection.Prev].indexOf(direction) > -1 ?
return Observable_1.Observable.of({ cached: false, edges: [] });
});
return Observable_1.Observable
- .combineLatest(Observable_1.Observable.of(direction), edgeStatus$);
- })
- .map(function (_a) {
- var direction = _a[0], edgeStatus = _a[1];
- for (var _i = 0, _b = edgeStatus.edges; _i < _b.length; _i++) {
- var edge = _b[_i];
- if (edge.data.direction === direction) {
- return true;
+ .combineLatest(Observable_1.Observable.of(direction), edgeStatus$)
+ .map(function (_a) {
+ var d = _a[0], es = _a[1];
+ for (var _i = 0, _b = es.edges; _i < _b.length; _i++) {
+ var edge = _b[_i];
+ if (edge.data.direction === d) {
+ return true;
+ }
}
+ return false;
+ });
+ })
+ .mergeMap(function (hasEdge) {
+ if (hasEdge || !_this._bridging$) {
+ return Observable_1.Observable.of(hasEdge);
}
- return false;
+ return _this._bridging$
+ .map(function (node) {
+ return node != null;
+ })
+ .catch(function (error) {
+ console.error(error);
+ return Observable_1.Observable.of(false);
+ });
})
.first(function (hasEdge) {
return !hasEdge;
this._graphService.setGraphMode(Graph_1.GraphMode.Spatial);
this._setPlaying(false);
};
+ PlayService.prototype._bridge$ = function (node, increasingTime) {
+ var _this = this;
+ if (increasingTime === undefined) {
+ return Observable_1.Observable.of(null);
+ }
+ var boundingBox = this._graphCalculator.boundingBoxCorners(node.latLon, 25);
+ this._bridging$ = this._graphService.cacheBoundingBox$(boundingBox[0], boundingBox[1])
+ .mergeMap(function (nodes) {
+ var nextNode = null;
+ for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
+ var n = nodes_1[_i];
+ if (n.sequenceKey === node.sequenceKey ||
+ !n.cameraUuid ||
+ n.cameraUuid !== node.cameraUuid ||
+ n.capturedAt === node.capturedAt ||
+ n.capturedAt > node.capturedAt !== increasingTime) {
+ continue;
+ }
+ var delta = Math.abs(n.capturedAt - node.capturedAt);
+ if (delta > 15000) {
+ continue;
+ }
+ if (!nextNode || delta < Math.abs(nextNode.capturedAt - node.capturedAt)) {
+ nextNode = n;
+ }
+ }
+ return !!nextNode ?
+ _this._graphService.cacheNode$(nextNode.key) :
+ Observable_1.Observable.of(null);
+ })
+ .finally(function () {
+ _this._bridging$ = null;
+ })
+ .publish()
+ .refCount();
+ return this._bridging$;
+ };
PlayService.prototype._mapSpeed = function (speed) {
var x = 2 * speed - 1;
return Math.pow(10, x) - 0.2 * x;
exports.PlayService = PlayService;
exports.default = PlayService;
-},{"../Edge":282,"../Graph":285,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/timeout":86}],429:[function(require,module,exports){
+},{"../Edge":292,"../Graph":295,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/operator/timeout":89}],440:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.Projection = Projection;
exports.default = Projection;
-},{"../Geo":284,"three":231}],430:[function(require,module,exports){
+},{"../Geo":294,"three":241}],441:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpriteService = SpriteService;
exports.default = SpriteService;
-},{"../Viewer":292,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":72,"rxjs/add/operator/scan":75,"rxjs/add/operator/startWith":80,"three":231,"virtual-dom":237}],431:[function(require,module,exports){
+},{"../Viewer":302,"rxjs/Subject":34,"rxjs/add/operator/publishReplay":74,"rxjs/add/operator/scan":78,"rxjs/add/operator/startWith":83,"three":241,"virtual-dom":247}],442:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var BehaviorSubject_1 = require("rxjs/BehaviorSubject");
}());
exports.TouchService = TouchService;
-},{"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/timer":47,"rxjs/add/operator/bufferWhen":51,"rxjs/add/operator/filter":61,"rxjs/add/operator/map":65,"rxjs/add/operator/merge":66,"rxjs/add/operator/scan":75,"rxjs/add/operator/switchMap":81}],432:[function(require,module,exports){
+},{"rxjs/BehaviorSubject":26,"rxjs/Observable":29,"rxjs/Subject":34,"rxjs/add/observable/timer":48,"rxjs/add/operator/bufferWhen":53,"rxjs/add/operator/filter":63,"rxjs/add/operator/map":67,"rxjs/add/operator/merge":68,"rxjs/add/operator/scan":78,"rxjs/add/operator/switchMap":84}],443:[function(require,module,exports){
"use strict";
/// <reference path="../../typings/index.d.ts" />
var __extends = (this && this.__extends) || (function () {
* @description It is possible to initialize the viewer with or
* without a key.
*
+ * When you want to show a specific image in the viewer from
+ * the start you should initialize it with a key.
+ *
+ * When you do not know the first image key at implementation
+ * time, e.g. in a map-viewer application you should initialize
+ * the viewer without a key and call `moveToKey` instead.
+ *
* When initializing with a key the viewer is bound to that key
- * until the node/image for that key has been successfully loaded.
+ * until the node for that key has been successfully loaded.
* Also, a cover with the image of the key will be shown.
* If the data for that key can not be loaded because the key is
* faulty or other errors occur it is not possible to navigate
* to another key because the viewer is not navigable. The viewer
- * becomes navigable when the data for the has been loaded and
- * the image is shown in the viewer. This wayof initializing
+ * becomes navigable when the data for the key has been loaded and
+ * the image is shown in the viewer. This way of initializing
* the viewer is mostly for embedding in blog posts and similar
* where one wants to show a specific image initially.
*
var _this = _super.call(this) || this;
options = options != null ? options : {};
Utils_1.Settings.setOptions(options);
- _this._navigator = new Viewer_1.Navigator(clientId, token);
+ Utils_1.Urls.setOptions(options.url);
+ _this._navigator = new Viewer_1.Navigator(clientId, options, token);
_this._container = new Viewer_1.Container(id, _this._navigator.stateService, options);
_this._observer = new Viewer_1.Observer(_this, _this._navigator, _this._container);
_this._componentController = new Viewer_1.ComponentController(_this._container, _this._navigator, _this._observer, key, options.component);
* Return a boolean indicating if the viewer is in a navigable state.
*
* @description The navigable state indicates if the viewer supports
- * moving, i.e. calling the `moveToKey`, `moveDir` and `moveCloseTo`
- * methods. The viewer will not be in a navigable state if the cover
- * is activated and the viewer has been supplied a key. When the cover
- * is deactivated or activated without being supplied a key it will
- * be navigable.
+ * moving, i.e. calling the {@link moveToKey}, {@link moveDir`}
+ * and {@link moveCloseTo} methods or changing the authentication state,
+ * i.e. calling {@link setAuthToken}. The viewer will not be in a navigable
+ * state if the cover is activated and the viewer has been supplied a key.
+ * When the cover is deactivated or the viewer is activated without being
+ * supplied a key it will be navigable.
*
* @returns {boolean} Boolean indicating whether the viewer is navigable.
*/
* pixel point that lies in the visible area of the viewer container.
*
* @param {Array<number>} basicPoint - Basic images coordinates to project.
- * @returns {Promise<ILatLon>} Promise to the pixel coordinates corresponding
+ * @returns {Promise<Array<number>>} Promise to the pixel coordinates corresponding
* to the basic image point.
*
* @example
*
* `["all", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`
*
- * A key must be a string that identifies a node property name. A value must be
- * a string, number, or boolean. Strictly-typed comparisons are used. The values
+ * A key must be a string that identifies a property name of a
+ * simple {@link Node} property. A value must be a string, number, or
+ * boolean. Strictly-typed comparisons are used. The values
* `f0, ..., fn` of the combining filter must be filter expressions.
*
* Clear the filter by setting it to null or empty array.
Viewer.prototype.setRenderMode = function (renderMode) {
this._container.renderService.renderMode$.next(renderMode);
};
+ /**
+ * Set the viewer's transition mode.
+ *
+ * @param {TransitionMode} transitionMode - Transition mode.
+ *
+ * @example
+ * ```
+ * viewer.setTransitionMode(Mapillary.TransitionMode.Instantaneous);
+ * ```
+ */
+ Viewer.prototype.setTransitionMode = function (transitionMode) {
+ this._navigator.stateService.setTransitionMode(transitionMode);
+ };
/**
* Set the image's current zoom level.
*
}(Utils_1.EventEmitter));
exports.Viewer = Viewer;
-},{"../Utils":291,"../Viewer":292,"rxjs/Observable":29,"when":278}]},{},[286])(286)
+},{"../Utils":301,"../Viewer":302,"rxjs/Observable":29,"when":288}]},{},[296])(296)
});
//# sourceMappingURL=mapillary.js.map