vscroll 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles/vscroll.esm5.js +517 -367
- package/dist/bundles/vscroll.esm5.js.map +1 -1
- package/dist/bundles/vscroll.esm5.min.js +2 -2
- package/dist/bundles/vscroll.esm5.min.js.map +1 -1
- package/dist/bundles/vscroll.esm6.js +407 -259
- package/dist/bundles/vscroll.esm6.js.map +1 -1
- package/dist/bundles/vscroll.esm6.min.js +2 -2
- package/dist/bundles/vscroll.esm6.min.js.map +1 -1
- package/dist/bundles/vscroll.umd.js +518 -368
- package/dist/bundles/vscroll.umd.js.map +1 -1
- package/dist/bundles/vscroll.umd.min.js +2 -2
- package/dist/bundles/vscroll.umd.min.js.map +1 -1
- package/dist/esm2015/classes/adapter/context.js +2 -1
- package/dist/esm2015/classes/adapter/context.js.map +1 -1
- package/dist/esm2015/classes/adapter/props.js +1 -1
- package/dist/esm2015/classes/adapter/props.js.map +1 -1
- package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
- package/dist/esm2015/classes/adapter.js +17 -18
- package/dist/esm2015/classes/adapter.js.map +1 -1
- package/dist/esm2015/classes/buffer/cache.js +11 -8
- package/dist/esm2015/classes/buffer/cache.js.map +1 -1
- package/dist/esm2015/classes/buffer/checkCall.js +4 -5
- package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm2015/classes/buffer/defaultSize.js +2 -1
- package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
- package/dist/esm2015/classes/buffer.js +12 -11
- package/dist/esm2015/classes/buffer.js.map +1 -1
- package/dist/esm2015/classes/datasource.js +16 -3
- package/dist/esm2015/classes/datasource.js.map +1 -1
- package/dist/esm2015/classes/domRoutines.js +14 -14
- package/dist/esm2015/classes/domRoutines.js.map +1 -1
- package/dist/esm2015/classes/item.js.map +1 -1
- package/dist/esm2015/classes/logger.js +74 -31
- package/dist/esm2015/classes/logger.js.map +1 -1
- package/dist/esm2015/classes/paddings.js +6 -2
- package/dist/esm2015/classes/paddings.js.map +1 -1
- package/dist/esm2015/classes/reactive.js.map +1 -1
- package/dist/esm2015/classes/settings.js.map +1 -1
- package/dist/esm2015/classes/state/clip.js.map +1 -1
- package/dist/esm2015/classes/state/cycle.js.map +1 -1
- package/dist/esm2015/classes/state/fetch.js +4 -2
- package/dist/esm2015/classes/state/fetch.js.map +1 -1
- package/dist/esm2015/classes/state/render.js.map +1 -1
- package/dist/esm2015/classes/state/scroll.js.map +1 -1
- package/dist/esm2015/classes/state.js +6 -4
- package/dist/esm2015/classes/state.js.map +1 -1
- package/dist/esm2015/classes/viewport.js +4 -2
- package/dist/esm2015/classes/viewport.js.map +1 -1
- package/dist/esm2015/index.js +1 -1
- package/dist/esm2015/index.js.map +1 -1
- package/dist/esm2015/inputs/adapter.js +44 -24
- package/dist/esm2015/inputs/adapter.js.map +1 -1
- package/dist/esm2015/inputs/common.js.map +1 -1
- package/dist/esm2015/inputs/datasource.js.map +1 -1
- package/dist/esm2015/inputs/index.js +1 -1
- package/dist/esm2015/inputs/index.js.map +1 -1
- package/dist/esm2015/inputs/settings.js +8 -3
- package/dist/esm2015/inputs/settings.js.map +1 -1
- package/dist/esm2015/inputs/validation.js +8 -14
- package/dist/esm2015/inputs/validation.js.map +1 -1
- package/dist/esm2015/inputs/workflow.js.map +1 -1
- package/dist/esm2015/interfaces/adapter.js.map +1 -1
- package/dist/esm2015/interfaces/datasource.js.map +1 -1
- package/dist/esm2015/interfaces/index.js.map +1 -1
- package/dist/esm2015/interfaces/item.js.map +1 -1
- package/dist/esm2015/interfaces/process.js.map +1 -1
- package/dist/esm2015/interfaces/routines.js.map +1 -1
- package/dist/esm2015/interfaces/settings.js.map +1 -1
- package/dist/esm2015/interfaces/state.js.map +1 -1
- package/dist/esm2015/interfaces/validation.js.map +1 -1
- package/dist/esm2015/interfaces/workflow.js.map +1 -1
- package/dist/esm2015/processes/adapter/append.js +2 -1
- package/dist/esm2015/processes/adapter/append.js.map +1 -1
- package/dist/esm2015/processes/adapter/check.js +2 -1
- package/dist/esm2015/processes/adapter/check.js.map +1 -1
- package/dist/esm2015/processes/adapter/clip.js.map +1 -1
- package/dist/esm2015/processes/adapter/fix.js +4 -2
- package/dist/esm2015/processes/adapter/fix.js.map +1 -1
- package/dist/esm2015/processes/adapter/insert.js +4 -3
- package/dist/esm2015/processes/adapter/insert.js.map +1 -1
- package/dist/esm2015/processes/adapter/pause.js.map +1 -1
- package/dist/esm2015/processes/adapter/reload.js.map +1 -1
- package/dist/esm2015/processes/adapter/remove.js +8 -5
- package/dist/esm2015/processes/adapter/remove.js.map +1 -1
- package/dist/esm2015/processes/adapter/replace.js +1 -1
- package/dist/esm2015/processes/adapter/replace.js.map +1 -1
- package/dist/esm2015/processes/adapter/reset.js +5 -5
- package/dist/esm2015/processes/adapter/reset.js.map +1 -1
- package/dist/esm2015/processes/adapter/update.js +4 -3
- package/dist/esm2015/processes/adapter/update.js.map +1 -1
- package/dist/esm2015/processes/adjust.js +15 -10
- package/dist/esm2015/processes/adjust.js.map +1 -1
- package/dist/esm2015/processes/clip.js +4 -4
- package/dist/esm2015/processes/clip.js.map +1 -1
- package/dist/esm2015/processes/end.js +2 -1
- package/dist/esm2015/processes/end.js.map +1 -1
- package/dist/esm2015/processes/fetch.js +6 -4
- package/dist/esm2015/processes/fetch.js.map +1 -1
- package/dist/esm2015/processes/index.js +1 -1
- package/dist/esm2015/processes/index.js.map +1 -1
- package/dist/esm2015/processes/init.js.map +1 -1
- package/dist/esm2015/processes/misc/base.js +1 -2
- package/dist/esm2015/processes/misc/base.js.map +1 -1
- package/dist/esm2015/processes/misc/enums.js.map +1 -1
- package/dist/esm2015/processes/misc/index.js.map +1 -1
- package/dist/esm2015/processes/postFetch.js +13 -12
- package/dist/esm2015/processes/postFetch.js.map +1 -1
- package/dist/esm2015/processes/preClip.js +6 -5
- package/dist/esm2015/processes/preClip.js.map +1 -1
- package/dist/esm2015/processes/preFetch.js +28 -15
- package/dist/esm2015/processes/preFetch.js.map +1 -1
- package/dist/esm2015/processes/render.js +6 -4
- package/dist/esm2015/processes/render.js.map +1 -1
- package/dist/esm2015/processes/scroll.js +19 -10
- package/dist/esm2015/processes/scroll.js.map +1 -1
- package/dist/esm2015/processes/start.js.map +1 -1
- package/dist/esm2015/scroller.js +14 -9
- package/dist/esm2015/scroller.js.map +1 -1
- package/dist/esm2015/version.js +1 -1
- package/dist/esm2015/version.js.map +1 -1
- package/dist/esm2015/workflow-transducer.js +3 -2
- package/dist/esm2015/workflow-transducer.js.map +1 -1
- package/dist/esm2015/workflow.js +28 -17
- package/dist/esm2015/workflow.js.map +1 -1
- package/dist/esm5/classes/adapter/context.js +2 -1
- package/dist/esm5/classes/adapter/context.js.map +1 -1
- package/dist/esm5/classes/adapter/props.js +1 -1
- package/dist/esm5/classes/adapter/props.js.map +1 -1
- package/dist/esm5/classes/adapter/wanted.js.map +1 -1
- package/dist/esm5/classes/adapter.js +22 -19
- package/dist/esm5/classes/adapter.js.map +1 -1
- package/dist/esm5/classes/buffer/cache.js +11 -9
- package/dist/esm5/classes/buffer/cache.js.map +1 -1
- package/dist/esm5/classes/buffer/checkCall.js +4 -7
- package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm5/classes/buffer/defaultSize.js +2 -1
- package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
- package/dist/esm5/classes/buffer.js +15 -14
- package/dist/esm5/classes/buffer.js.map +1 -1
- package/dist/esm5/classes/datasource.js +20 -3
- package/dist/esm5/classes/datasource.js.map +1 -1
- package/dist/esm5/classes/domRoutines.js +14 -14
- package/dist/esm5/classes/domRoutines.js.map +1 -1
- package/dist/esm5/classes/item.js.map +1 -1
- package/dist/esm5/classes/logger.js +75 -34
- package/dist/esm5/classes/logger.js.map +1 -1
- package/dist/esm5/classes/paddings.js +6 -2
- package/dist/esm5/classes/paddings.js.map +1 -1
- package/dist/esm5/classes/reactive.js.map +1 -1
- package/dist/esm5/classes/settings.js.map +1 -1
- package/dist/esm5/classes/state/clip.js.map +1 -1
- package/dist/esm5/classes/state/cycle.js.map +1 -1
- package/dist/esm5/classes/state/fetch.js +4 -2
- package/dist/esm5/classes/state/fetch.js.map +1 -1
- package/dist/esm5/classes/state/render.js.map +1 -1
- package/dist/esm5/classes/state/scroll.js.map +1 -1
- package/dist/esm5/classes/state.js +6 -4
- package/dist/esm5/classes/state.js.map +1 -1
- package/dist/esm5/classes/viewport.js +3 -2
- package/dist/esm5/classes/viewport.js.map +1 -1
- package/dist/esm5/index.js +1 -1
- package/dist/esm5/index.js.map +1 -1
- package/dist/esm5/inputs/adapter.js +32 -12
- package/dist/esm5/inputs/adapter.js.map +1 -1
- package/dist/esm5/inputs/common.js.map +1 -1
- package/dist/esm5/inputs/datasource.js.map +1 -1
- package/dist/esm5/inputs/index.js +1 -1
- package/dist/esm5/inputs/index.js.map +1 -1
- package/dist/esm5/inputs/settings.js +5 -0
- package/dist/esm5/inputs/settings.js.map +1 -1
- package/dist/esm5/inputs/validation.js +99 -93
- package/dist/esm5/inputs/validation.js.map +1 -1
- package/dist/esm5/inputs/workflow.js.map +1 -1
- package/dist/esm5/interfaces/adapter.js.map +1 -1
- package/dist/esm5/interfaces/datasource.js.map +1 -1
- package/dist/esm5/interfaces/index.js.map +1 -1
- package/dist/esm5/interfaces/item.js.map +1 -1
- package/dist/esm5/interfaces/process.js.map +1 -1
- package/dist/esm5/interfaces/routines.js.map +1 -1
- package/dist/esm5/interfaces/settings.js.map +1 -1
- package/dist/esm5/interfaces/state.js.map +1 -1
- package/dist/esm5/interfaces/validation.js.map +1 -1
- package/dist/esm5/interfaces/workflow.js.map +1 -1
- package/dist/esm5/processes/adapter/append.js +2 -1
- package/dist/esm5/processes/adapter/append.js.map +1 -1
- package/dist/esm5/processes/adapter/check.js +7 -6
- package/dist/esm5/processes/adapter/check.js.map +1 -1
- package/dist/esm5/processes/adapter/clip.js.map +1 -1
- package/dist/esm5/processes/adapter/fix.js +4 -2
- package/dist/esm5/processes/adapter/fix.js.map +1 -1
- package/dist/esm5/processes/adapter/insert.js +4 -3
- package/dist/esm5/processes/adapter/insert.js.map +1 -1
- package/dist/esm5/processes/adapter/pause.js.map +1 -1
- package/dist/esm5/processes/adapter/reload.js.map +1 -1
- package/dist/esm5/processes/adapter/remove.js +11 -10
- package/dist/esm5/processes/adapter/remove.js.map +1 -1
- package/dist/esm5/processes/adapter/replace.js +1 -1
- package/dist/esm5/processes/adapter/replace.js.map +1 -1
- package/dist/esm5/processes/adapter/reset.js +5 -5
- package/dist/esm5/processes/adapter/reset.js.map +1 -1
- package/dist/esm5/processes/adapter/update.js +20 -15
- package/dist/esm5/processes/adapter/update.js.map +1 -1
- package/dist/esm5/processes/adjust.js +16 -11
- package/dist/esm5/processes/adjust.js.map +1 -1
- package/dist/esm5/processes/clip.js +4 -4
- package/dist/esm5/processes/clip.js.map +1 -1
- package/dist/esm5/processes/end.js +2 -1
- package/dist/esm5/processes/end.js.map +1 -1
- package/dist/esm5/processes/fetch.js +5 -3
- package/dist/esm5/processes/fetch.js.map +1 -1
- package/dist/esm5/processes/index.js +1 -1
- package/dist/esm5/processes/index.js.map +1 -1
- package/dist/esm5/processes/init.js.map +1 -1
- package/dist/esm5/processes/misc/base.js +1 -2
- package/dist/esm5/processes/misc/base.js.map +1 -1
- package/dist/esm5/processes/misc/enums.js.map +1 -1
- package/dist/esm5/processes/misc/index.js.map +1 -1
- package/dist/esm5/processes/postFetch.js +14 -15
- package/dist/esm5/processes/postFetch.js.map +1 -1
- package/dist/esm5/processes/preClip.js +5 -4
- package/dist/esm5/processes/preClip.js.map +1 -1
- package/dist/esm5/processes/preFetch.js +26 -14
- package/dist/esm5/processes/preFetch.js.map +1 -1
- package/dist/esm5/processes/render.js +7 -7
- package/dist/esm5/processes/render.js.map +1 -1
- package/dist/esm5/processes/scroll.js +18 -12
- package/dist/esm5/processes/scroll.js.map +1 -1
- package/dist/esm5/processes/start.js.map +1 -1
- package/dist/esm5/scroller.js +11 -7
- package/dist/esm5/scroller.js.map +1 -1
- package/dist/esm5/version.js +1 -1
- package/dist/esm5/version.js.map +1 -1
- package/dist/esm5/workflow-transducer.js +3 -2
- package/dist/esm5/workflow-transducer.js.map +1 -1
- package/dist/esm5/workflow.js +31 -25
- package/dist/esm5/workflow.js.map +1 -1
- package/dist/typings/classes/buffer/cache.d.ts +0 -1
- package/dist/typings/classes/datasource.d.ts +1 -1
- package/dist/typings/classes/domRoutines.d.ts +1 -1
- package/dist/typings/classes/logger.d.ts +4 -0
- package/dist/typings/classes/settings.d.ts +7 -0
- package/dist/typings/index.d.ts +2 -2
- package/dist/typings/inputs/index.d.ts +1 -1
- package/dist/typings/inputs/settings.d.ts +1 -0
- package/dist/typings/interfaces/index.d.ts +1 -1
- package/dist/typings/interfaces/settings.d.ts +1 -0
- package/dist/typings/processes/index.d.ts +1 -1
- package/dist/typings/processes/scroll.d.ts +1 -1
- package/dist/typings/workflow.d.ts +1 -0
- package/package.json +72 -70
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vscroll (https://github.com/dhilt/vscroll) FESM5
|
|
3
|
-
* Version: 1.
|
|
3
|
+
* Version: 1.8.0 (2025-11-28T14:24:41.992Z)
|
|
4
4
|
* Author: Denis Hilt
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -154,7 +154,7 @@ var bufferInfoDefault = {
|
|
|
154
154
|
maxIndex: NaN,
|
|
155
155
|
absMinIndex: -Infinity,
|
|
156
156
|
absMaxIndex: +Infinity,
|
|
157
|
-
defaultSize: NaN
|
|
157
|
+
defaultSize: NaN
|
|
158
158
|
};
|
|
159
159
|
var EMPTY_ITEM = {
|
|
160
160
|
data: {},
|
|
@@ -377,7 +377,7 @@ var reactiveConfigStorage = new Map();
|
|
|
377
377
|
|
|
378
378
|
var core = {
|
|
379
379
|
name: 'vscroll',
|
|
380
|
-
version: '1.
|
|
380
|
+
version: '1.8.0'
|
|
381
381
|
};
|
|
382
382
|
|
|
383
383
|
var getBox = function (id) {
|
|
@@ -448,13 +448,30 @@ var AdapterContext = /** @class */ (function () {
|
|
|
448
448
|
return value;
|
|
449
449
|
} }, conf));
|
|
450
450
|
});
|
|
451
|
-
if (reactive) {
|
|
451
|
+
if (reactive) {
|
|
452
|
+
// save both configured and default reactive props in the store
|
|
452
453
|
reactiveConfigStorage.set(id, reactivePropsStore);
|
|
453
454
|
}
|
|
454
455
|
}
|
|
455
456
|
return AdapterContext;
|
|
456
457
|
}());
|
|
457
458
|
|
|
459
|
+
var getDefaultAdapterConfig = function () {
|
|
460
|
+
var reactive = getDefaultAdapterProps()
|
|
461
|
+
.filter(function (_a) {
|
|
462
|
+
var type = _a.type;
|
|
463
|
+
return type === AdapterPropType.Reactive;
|
|
464
|
+
})
|
|
465
|
+
.reduce(function (acc, _a) {
|
|
466
|
+
var name = _a.name, value = _a.value;
|
|
467
|
+
acc[name] = {
|
|
468
|
+
source: value,
|
|
469
|
+
emit: function (source, val) { return source.set(val); }
|
|
470
|
+
};
|
|
471
|
+
return acc;
|
|
472
|
+
}, {});
|
|
473
|
+
return { mock: false, reactive: reactive };
|
|
474
|
+
};
|
|
458
475
|
var DatasourceGeneric = /** @class */ (function () {
|
|
459
476
|
function DatasourceGeneric(datasource, config) {
|
|
460
477
|
this.get = datasource.get;
|
|
@@ -463,17 +480,18 @@ var DatasourceGeneric = /** @class */ (function () {
|
|
|
463
480
|
var adapterContext = new AdapterContext(config || { mock: false });
|
|
464
481
|
this.adapter = adapterContext;
|
|
465
482
|
}
|
|
483
|
+
// todo: should it be published?
|
|
466
484
|
DatasourceGeneric.prototype.dispose = function () {
|
|
467
485
|
reactiveConfigStorage.delete(this.adapter.id);
|
|
468
486
|
wantedStorage.delete(this.adapter.id);
|
|
469
487
|
};
|
|
470
488
|
return DatasourceGeneric;
|
|
471
489
|
}());
|
|
472
|
-
var makeDatasource = function (
|
|
490
|
+
var makeDatasource = function (getAdapterConfig) {
|
|
473
491
|
return /** @class */ (function (_super) {
|
|
474
492
|
__extends(class_1, _super);
|
|
475
493
|
function class_1(datasource) {
|
|
476
|
-
var config = typeof
|
|
494
|
+
var config = typeof getAdapterConfig === 'function' ? getAdapterConfig() : getDefaultAdapterConfig();
|
|
477
495
|
return _super.call(this, datasource, config) || this;
|
|
478
496
|
}
|
|
479
497
|
return class_1;
|
|
@@ -516,9 +534,7 @@ var getError = function (msg, args) {
|
|
|
516
534
|
return (args || ['']).reduce(function (acc, arg, index) { return acc.replace("{arg".concat(index + 1, "}"), arg); }, msg);
|
|
517
535
|
};
|
|
518
536
|
var getNumber = function (value) {
|
|
519
|
-
return typeof value === 'number' || (typeof value === 'string' && value !== '')
|
|
520
|
-
? Number(value)
|
|
521
|
-
: NaN;
|
|
537
|
+
return typeof value === 'number' || (typeof value === 'string' && value !== '') ? Number(value) : NaN;
|
|
522
538
|
};
|
|
523
539
|
var onNumber = function (value) {
|
|
524
540
|
var parsedValue = getNumber(value);
|
|
@@ -552,23 +568,25 @@ var onIntegerUnlimited = function (value) {
|
|
|
552
568
|
}
|
|
553
569
|
return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
|
|
554
570
|
};
|
|
555
|
-
var onMoreOrEqual = function (limit, fallback) {
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
var parsedValue = result.value;
|
|
561
|
-
var errors = [];
|
|
562
|
-
if (parsedValue < limit) {
|
|
563
|
-
if (!fallback) {
|
|
564
|
-
errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
|
|
571
|
+
var onMoreOrEqual = function (limit, fallback) {
|
|
572
|
+
return function (value) {
|
|
573
|
+
var result = onNumber(value);
|
|
574
|
+
if (!result.isValid) {
|
|
575
|
+
return result;
|
|
565
576
|
}
|
|
566
|
-
|
|
567
|
-
|
|
577
|
+
var parsedValue = result.value;
|
|
578
|
+
var errors = [];
|
|
579
|
+
if (parsedValue < limit) {
|
|
580
|
+
if (!fallback) {
|
|
581
|
+
errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
parsedValue = limit;
|
|
585
|
+
}
|
|
568
586
|
}
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
};
|
|
587
|
+
return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
|
|
588
|
+
};
|
|
589
|
+
};
|
|
572
590
|
var onBoolean = function (value) {
|
|
573
591
|
var errors = [];
|
|
574
592
|
var parsedValue = value;
|
|
@@ -637,75 +655,87 @@ var onFunctionWithXArguments = function (argsCount) { return function (value) {
|
|
|
637
655
|
}
|
|
638
656
|
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
639
657
|
}; };
|
|
640
|
-
var onFunctionWithXAndMoreArguments = function (argsCount) {
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
errors
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
658
|
+
var onFunctionWithXAndMoreArguments = function (argsCount) {
|
|
659
|
+
return function (value) {
|
|
660
|
+
var result = onFunction(value);
|
|
661
|
+
if (!result.isValid) {
|
|
662
|
+
return result;
|
|
663
|
+
}
|
|
664
|
+
value = result.value;
|
|
665
|
+
var errors = [];
|
|
666
|
+
if (value.length < argsCount) {
|
|
667
|
+
errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));
|
|
668
|
+
}
|
|
669
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
670
|
+
};
|
|
671
|
+
};
|
|
672
|
+
var onFunctionWithXToYArguments = function (from, to) {
|
|
673
|
+
return function (value) {
|
|
674
|
+
var result = onFunction(value);
|
|
675
|
+
if (!result.isValid) {
|
|
676
|
+
return result;
|
|
677
|
+
}
|
|
678
|
+
value = result.value;
|
|
679
|
+
var errors = [];
|
|
680
|
+
if (value.length < from || value.length > to) {
|
|
681
|
+
errors.push(getError(ValidatorType.funcOfXToYArguments, [String(from), String(to)]));
|
|
682
|
+
}
|
|
683
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
684
|
+
};
|
|
685
|
+
};
|
|
686
|
+
var onOneOf = function (tokens, must) {
|
|
687
|
+
return function (value, context) {
|
|
688
|
+
var errors = [];
|
|
689
|
+
var isSet = value !== void 0;
|
|
690
|
+
var noOneIsPresent = !isSet;
|
|
691
|
+
var err = must ? ValidatorType.oneOfMust : ValidatorType.oneOfCan;
|
|
692
|
+
if (!Array.isArray(tokens) || !tokens.length) {
|
|
693
|
+
errors.push(getError(err, ['undefined']));
|
|
694
|
+
}
|
|
695
|
+
else {
|
|
696
|
+
for (var i = tokens.length - 1; i >= 0; i--) {
|
|
697
|
+
var token = tokens[i];
|
|
698
|
+
if (typeof token !== 'string') {
|
|
699
|
+
errors.push(getError(err, [tokens.join('", "')]) + ' (non-string token)');
|
|
700
|
+
break;
|
|
701
|
+
}
|
|
702
|
+
var isAnotherPresent = context && Object.prototype.hasOwnProperty.call(context, token);
|
|
703
|
+
if (isSet && isAnotherPresent) {
|
|
704
|
+
errors.push(getError(err, [tokens.join('", "')]) + " (".concat(token, " is present)"));
|
|
705
|
+
break;
|
|
706
|
+
}
|
|
707
|
+
if (noOneIsPresent && isAnotherPresent) {
|
|
708
|
+
noOneIsPresent = false;
|
|
709
|
+
}
|
|
683
710
|
}
|
|
684
|
-
if (
|
|
685
|
-
|
|
711
|
+
if (must && noOneIsPresent) {
|
|
712
|
+
errors.push(getError(err, [tokens.join('", "')]));
|
|
686
713
|
}
|
|
687
714
|
}
|
|
688
|
-
|
|
689
|
-
|
|
715
|
+
return { value: value, isSet: isSet, isValid: !errors.length, errors: errors };
|
|
716
|
+
};
|
|
717
|
+
};
|
|
718
|
+
var onOr = function (validators) {
|
|
719
|
+
return function (value) {
|
|
720
|
+
var errors = [];
|
|
721
|
+
if (validators.every(function (validator) { return !validator.method(value).isValid; })) {
|
|
722
|
+
errors.push(validators.map(function (v) { return v.type; }).join(' OR '));
|
|
690
723
|
}
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
};
|
|
694
|
-
var
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
}
|
|
707
|
-
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
708
|
-
}; };
|
|
724
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
var onEnum = function (list) {
|
|
728
|
+
return function (value) {
|
|
729
|
+
var errors = [];
|
|
730
|
+
var values = Object.keys(list)
|
|
731
|
+
.filter(function (k) { return isNaN(Number(k)); })
|
|
732
|
+
.map(function (k) { return list[k]; });
|
|
733
|
+
if (!values.some(function (item) { return item === value; })) {
|
|
734
|
+
errors.push(getError(ValidatorType.enum, ['[' + values.join(',') + ']']));
|
|
735
|
+
}
|
|
736
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
737
|
+
};
|
|
738
|
+
};
|
|
709
739
|
var VALIDATORS = {
|
|
710
740
|
NUMBER: {
|
|
711
741
|
type: ValidatorType.number,
|
|
@@ -804,17 +834,13 @@ var ValidatedData = /** @class */ (function () {
|
|
|
804
834
|
if (!value.isValid) {
|
|
805
835
|
value.errors = !value.isSet
|
|
806
836
|
? ["\"".concat(token, "\" must be set")]
|
|
807
|
-
: value.errors.map(function (err) {
|
|
808
|
-
return "\"".concat(token, "\" ").concat(err);
|
|
809
|
-
});
|
|
837
|
+
: value.errors.map(function (err) { return "\"".concat(token, "\" ").concat(err); });
|
|
810
838
|
}
|
|
811
839
|
this.params[token] = value;
|
|
812
840
|
this.setValidity();
|
|
813
841
|
};
|
|
814
842
|
ValidatedData.prototype.showErrors = function () {
|
|
815
|
-
return this.errors.length
|
|
816
|
-
? 'validation failed: ' + this.errors.join(', ')
|
|
817
|
-
: '';
|
|
843
|
+
return this.errors.length ? 'validation failed: ' + this.errors.join(', ') : '';
|
|
818
844
|
};
|
|
819
845
|
return ValidatedData;
|
|
820
846
|
}());
|
|
@@ -833,7 +859,7 @@ var getDefault = function (value, prop) {
|
|
|
833
859
|
var empty = value === void 0;
|
|
834
860
|
var auto = !prop.mandatory && prop.defaultValue !== void 0;
|
|
835
861
|
return {
|
|
836
|
-
value: !empty ? value :
|
|
862
|
+
value: !empty ? value : auto ? prop.defaultValue : void 0,
|
|
837
863
|
isSet: !empty || auto,
|
|
838
864
|
isValid: !empty || !prop.mandatory,
|
|
839
865
|
errors: []
|
|
@@ -878,9 +904,7 @@ var validate = function (context, params) {
|
|
|
878
904
|
var data = new ValidatedData(context);
|
|
879
905
|
Object.entries(params).forEach(function (_a) {
|
|
880
906
|
var _b = __read(_a, 2), key = _b[0], prop = _b[1];
|
|
881
|
-
return data.setParam(key, data.isValidContext
|
|
882
|
-
? validateOne(data.context, key, prop)
|
|
883
|
-
: getDefault(void 0, prop));
|
|
907
|
+
return data.setParam(key, data.isValidContext ? validateOne(data.context, key, prop) : getDefault(void 0, prop));
|
|
884
908
|
});
|
|
885
909
|
return data;
|
|
886
910
|
};
|
|
@@ -931,6 +955,7 @@ var DevSettings;
|
|
|
931
955
|
DevSettings["immediateLog"] = "immediateLog";
|
|
932
956
|
DevSettings["logProcessRun"] = "logProcessRun";
|
|
933
957
|
DevSettings["logTime"] = "logTime";
|
|
958
|
+
DevSettings["logColor"] = "logColor";
|
|
934
959
|
DevSettings["throttle"] = "throttle";
|
|
935
960
|
DevSettings["initDelay"] = "initDelay";
|
|
936
961
|
DevSettings["initWindowDelay"] = "initWindowDelay";
|
|
@@ -1022,6 +1047,10 @@ var DEV_SETTINGS = (_c$1 = {},
|
|
|
1022
1047
|
validators: [BOOLEAN$1],
|
|
1023
1048
|
defaultValue: false
|
|
1024
1049
|
},
|
|
1050
|
+
_c$1[DevSettings.logColor] = {
|
|
1051
|
+
validators: [BOOLEAN$1],
|
|
1052
|
+
defaultValue: true
|
|
1053
|
+
},
|
|
1025
1054
|
_c$1[DevSettings.throttle] = {
|
|
1026
1055
|
validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.throttle], true)],
|
|
1027
1056
|
defaultValue: 40
|
|
@@ -1213,24 +1242,44 @@ var INSERT_METHOD_PARAMS = (_g = {},
|
|
|
1213
1242
|
mandatory: true
|
|
1214
1243
|
},
|
|
1215
1244
|
_g[AdapterInsertParams.before] = {
|
|
1216
|
-
validators: [
|
|
1217
|
-
|
|
1218
|
-
|
|
1245
|
+
validators: [
|
|
1246
|
+
FUNC_WITH_X_ARGUMENTS$1(1),
|
|
1247
|
+
ONE_OF_MUST([
|
|
1248
|
+
AdapterInsertParams.after,
|
|
1249
|
+
AdapterInsertParams.beforeIndex,
|
|
1250
|
+
AdapterInsertParams.afterIndex
|
|
1251
|
+
])
|
|
1252
|
+
]
|
|
1219
1253
|
},
|
|
1220
1254
|
_g[AdapterInsertParams.after] = {
|
|
1221
|
-
validators: [
|
|
1222
|
-
|
|
1223
|
-
|
|
1255
|
+
validators: [
|
|
1256
|
+
FUNC_WITH_X_ARGUMENTS$1(1),
|
|
1257
|
+
ONE_OF_MUST([
|
|
1258
|
+
AdapterInsertParams.before,
|
|
1259
|
+
AdapterInsertParams.beforeIndex,
|
|
1260
|
+
AdapterInsertParams.afterIndex
|
|
1261
|
+
])
|
|
1262
|
+
]
|
|
1224
1263
|
},
|
|
1225
1264
|
_g[AdapterInsertParams.beforeIndex] = {
|
|
1226
|
-
validators: [
|
|
1227
|
-
|
|
1228
|
-
|
|
1265
|
+
validators: [
|
|
1266
|
+
INTEGER,
|
|
1267
|
+
ONE_OF_MUST([
|
|
1268
|
+
AdapterInsertParams.before,
|
|
1269
|
+
AdapterInsertParams.after,
|
|
1270
|
+
AdapterInsertParams.afterIndex
|
|
1271
|
+
])
|
|
1272
|
+
]
|
|
1229
1273
|
},
|
|
1230
1274
|
_g[AdapterInsertParams.afterIndex] = {
|
|
1231
|
-
validators: [
|
|
1232
|
-
|
|
1233
|
-
|
|
1275
|
+
validators: [
|
|
1276
|
+
INTEGER,
|
|
1277
|
+
ONE_OF_MUST([
|
|
1278
|
+
AdapterInsertParams.before,
|
|
1279
|
+
AdapterInsertParams.after,
|
|
1280
|
+
AdapterInsertParams.beforeIndex
|
|
1281
|
+
])
|
|
1282
|
+
]
|
|
1234
1283
|
},
|
|
1235
1284
|
_g[AdapterInsertParams.decrease] = {
|
|
1236
1285
|
validators: [BOOLEAN],
|
|
@@ -1424,8 +1473,7 @@ var BaseAdapterProcessFactory = function (process) { var _a; return _a = /** @cl
|
|
|
1424
1473
|
data: validate(options, ADAPTER_METHODS[_process || process])
|
|
1425
1474
|
};
|
|
1426
1475
|
if (result.data.isValid) {
|
|
1427
|
-
result.params = Object.entries(result.data.params)
|
|
1428
|
-
.reduce(function (acc, _b) {
|
|
1476
|
+
result.params = Object.entries(result.data.params).reduce(function (acc, _b) {
|
|
1429
1477
|
var _c;
|
|
1430
1478
|
var _d = __read(_b, 2), key = _d[0], value = _d[1].value;
|
|
1431
1479
|
return (__assign(__assign({}, acc), (_c = {}, _c[key] = value, _c)));
|
|
@@ -1472,16 +1520,13 @@ var Scroll = /** @class */ (function (_super) {
|
|
|
1472
1520
|
function Scroll() {
|
|
1473
1521
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1474
1522
|
}
|
|
1475
|
-
|
|
1476
|
-
Scroll.run = function (scroller, payload) {
|
|
1523
|
+
Scroll.run = function (scroller, _payload) {
|
|
1477
1524
|
var workflow = scroller.workflow, viewport = scroller.viewport;
|
|
1478
1525
|
var position = viewport.scrollPosition;
|
|
1479
1526
|
if (Scroll.onSynthetic(scroller, position)) {
|
|
1480
1527
|
return;
|
|
1481
1528
|
}
|
|
1482
|
-
Scroll.onThrottle(scroller, position, function () {
|
|
1483
|
-
return Scroll.onScroll(scroller, workflow);
|
|
1484
|
-
});
|
|
1529
|
+
Scroll.onThrottle(scroller, position, function () { return Scroll.onScroll(scroller, workflow); });
|
|
1485
1530
|
};
|
|
1486
1531
|
Scroll.onSynthetic = function (scroller, position) {
|
|
1487
1532
|
var scroll = scroller.state.scroll;
|
|
@@ -1492,29 +1537,34 @@ var Scroll = /** @class */ (function (_super) {
|
|
|
1492
1537
|
}
|
|
1493
1538
|
if (!scroll.syntheticFulfill || synthPos === position) {
|
|
1494
1539
|
scroller.logger.log(function () { return [
|
|
1495
|
-
'skipping scroll',
|
|
1540
|
+
'skipping scroll',
|
|
1541
|
+
position,
|
|
1496
1542
|
"[".concat(scroll.syntheticFulfill ? '' : 'pre-', "synthetic]")
|
|
1497
1543
|
]; });
|
|
1498
1544
|
return true;
|
|
1499
1545
|
}
|
|
1500
1546
|
scroller.logger.log(function () { return [
|
|
1501
|
-
'synthetic scroll has been fulfilled:',
|
|
1547
|
+
'synthetic scroll has been fulfilled:',
|
|
1548
|
+
position,
|
|
1549
|
+
position < synthPos ? '<' : '>',
|
|
1550
|
+
synthPos
|
|
1502
1551
|
]; });
|
|
1503
1552
|
}
|
|
1504
1553
|
return false;
|
|
1505
1554
|
};
|
|
1506
1555
|
Scroll.onThrottle = function (scroller, position, done) {
|
|
1507
|
-
var
|
|
1556
|
+
var state = scroller.state, settings = scroller.settings, logger = scroller.logger;
|
|
1557
|
+
var scroll = state.scroll;
|
|
1508
1558
|
scroll.current = Scroll.getScrollEvent(position, scroll.previous);
|
|
1509
1559
|
var _a = scroll.current, direction = _a.direction, time = _a.time;
|
|
1510
1560
|
var timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;
|
|
1511
|
-
var delta = throttle - timeDiff;
|
|
1561
|
+
var delta = settings.throttle - timeDiff;
|
|
1512
1562
|
var shouldDelay = isFinite(delta) && delta > 0;
|
|
1513
1563
|
var alreadyDelayed = !!scroll.scrollTimer;
|
|
1514
1564
|
logger.log(function () { return [
|
|
1515
1565
|
direction === Direction.backward ? '\u2934' : '\u2935',
|
|
1516
1566
|
position,
|
|
1517
|
-
shouldDelay ?
|
|
1567
|
+
shouldDelay ? timeDiff + 'ms' : '0ms',
|
|
1518
1568
|
shouldDelay ? (alreadyDelayed ? 'delayed' : "/ ".concat(delta, "ms delay")) : ''
|
|
1519
1569
|
]; });
|
|
1520
1570
|
if (!shouldDelay) {
|
|
@@ -1532,7 +1582,7 @@ var Scroll = /** @class */ (function (_super) {
|
|
|
1532
1582
|
return [
|
|
1533
1583
|
curr.direction === Direction.backward ? '\u2934' : '\u2935',
|
|
1534
1584
|
curr.position,
|
|
1535
|
-
|
|
1585
|
+
curr.time - time + 'ms',
|
|
1536
1586
|
'triggered by timer set on',
|
|
1537
1587
|
position
|
|
1538
1588
|
];
|
|
@@ -1560,7 +1610,11 @@ var Scroll = /** @class */ (function (_super) {
|
|
|
1560
1610
|
scroll.previous = __assign({}, scroll.current);
|
|
1561
1611
|
scroll.current = null;
|
|
1562
1612
|
if (cycle.busy.get()) {
|
|
1563
|
-
scroller.logger.log(function () { return [
|
|
1613
|
+
scroller.logger.log(function () { return [
|
|
1614
|
+
'skipping scroll',
|
|
1615
|
+
scroll.previous.position,
|
|
1616
|
+
'[pending]'
|
|
1617
|
+
]; });
|
|
1564
1618
|
return;
|
|
1565
1619
|
}
|
|
1566
1620
|
workflow.call({
|
|
@@ -1577,7 +1631,7 @@ var Reset = /** @class */ (function (_super) {
|
|
|
1577
1631
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1578
1632
|
}
|
|
1579
1633
|
Reset.run = function (scroller, options) {
|
|
1580
|
-
var datasource = scroller.datasource, buffer = scroller.buffer,
|
|
1634
|
+
var datasource = scroller.datasource, buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
|
|
1581
1635
|
if (options) {
|
|
1582
1636
|
var data_1 = Reset.parseInput(scroller, options).data;
|
|
1583
1637
|
if (!data_1.isValid) {
|
|
@@ -1593,12 +1647,12 @@ var Reset = /** @class */ (function (_super) {
|
|
|
1593
1647
|
});
|
|
1594
1648
|
}
|
|
1595
1649
|
buffer.reset(true);
|
|
1596
|
-
paddings.backward.reset();
|
|
1597
|
-
paddings.forward.reset();
|
|
1650
|
+
viewport.paddings.backward.reset();
|
|
1651
|
+
viewport.paddings.forward.reset();
|
|
1598
1652
|
var payload = { datasource: datasource };
|
|
1599
|
-
if (cycle.busy.get()) {
|
|
1653
|
+
if (state.cycle.busy.get()) {
|
|
1600
1654
|
payload.finalize = true;
|
|
1601
|
-
cycle.interrupter = Reset.process;
|
|
1655
|
+
state.cycle.interrupter = Reset.process;
|
|
1602
1656
|
}
|
|
1603
1657
|
scroller.workflow.call({
|
|
1604
1658
|
process: Reset.process,
|
|
@@ -1726,7 +1780,7 @@ var Update = /** @class */ (function (_super) {
|
|
|
1726
1780
|
});
|
|
1727
1781
|
};
|
|
1728
1782
|
Update.doUpdate = function (scroller, params) {
|
|
1729
|
-
var buffer = scroller.buffer, viewport = scroller.viewport,
|
|
1783
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, routines = scroller.routines, logger = scroller.logger;
|
|
1730
1784
|
if (!buffer.items) {
|
|
1731
1785
|
logger.log(function () { return 'no items in Buffer'; });
|
|
1732
1786
|
return false;
|
|
@@ -1739,26 +1793,31 @@ var Update = /** @class */ (function (_super) {
|
|
|
1739
1793
|
delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;
|
|
1740
1794
|
}
|
|
1741
1795
|
toRemove.forEach(function (item) { return item.hide(); });
|
|
1742
|
-
logger.log(function () {
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1796
|
+
logger.log(function () {
|
|
1797
|
+
return toRemove.length
|
|
1798
|
+
? 'items to remove: [' + toRemove.map(function (_a) {
|
|
1799
|
+
var $index = _a.$index;
|
|
1800
|
+
return $index;
|
|
1801
|
+
}).join(',') + ']'
|
|
1802
|
+
: 'no items to remove';
|
|
1803
|
+
});
|
|
1804
|
+
if (toRemove.length) {
|
|
1805
|
+
// insertions will be processed on render
|
|
1749
1806
|
buffer.checkDefaultSize();
|
|
1750
1807
|
}
|
|
1751
1808
|
var toRender = buffer.items.filter(function (_a) {
|
|
1752
1809
|
var toInsert = _a.toInsert;
|
|
1753
1810
|
return toInsert;
|
|
1754
1811
|
});
|
|
1755
|
-
logger.log(function () {
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1812
|
+
logger.log(function () {
|
|
1813
|
+
return toRender.length
|
|
1814
|
+
? 'items to render: [' + toRender.map(function (_a) {
|
|
1815
|
+
var $index = _a.$index;
|
|
1816
|
+
return $index;
|
|
1817
|
+
}).join(',') + ']'
|
|
1818
|
+
: 'no items to render';
|
|
1819
|
+
});
|
|
1820
|
+
state.fetch.update(trackedIndex, delta, toRender, toRemove);
|
|
1762
1821
|
return !!toRemove.length || !!toRender.length;
|
|
1763
1822
|
};
|
|
1764
1823
|
return Update;
|
|
@@ -1791,7 +1850,7 @@ var Insert = /** @class */ (function (_super) {
|
|
|
1791
1850
|
return true;
|
|
1792
1851
|
};
|
|
1793
1852
|
Insert.insertEmpty = function (scroller, params) {
|
|
1794
|
-
var buffer = scroller.buffer, routines = scroller.routines,
|
|
1853
|
+
var buffer = scroller.buffer, routines = scroller.routines, state = scroller.state;
|
|
1795
1854
|
if (buffer.size) {
|
|
1796
1855
|
return false;
|
|
1797
1856
|
}
|
|
@@ -1799,7 +1858,7 @@ var Insert = /** @class */ (function (_super) {
|
|
|
1799
1858
|
if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
|
|
1800
1859
|
return false;
|
|
1801
1860
|
}
|
|
1802
|
-
fetch.fill(buffer.items, buffer.startIndex);
|
|
1861
|
+
state.fetch.fill(buffer.items, buffer.startIndex);
|
|
1803
1862
|
return true;
|
|
1804
1863
|
};
|
|
1805
1864
|
Insert.insertInBuffer = function (scroller, params) {
|
|
@@ -1823,12 +1882,13 @@ var Insert = /** @class */ (function (_super) {
|
|
|
1823
1882
|
};
|
|
1824
1883
|
Insert.insertVirtually = function (scroller, params) {
|
|
1825
1884
|
var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1826
|
-
var buffer = scroller.buffer,
|
|
1885
|
+
var buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
|
|
1827
1886
|
var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
|
|
1828
1887
|
var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
|
|
1829
1888
|
if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
|
|
1830
1889
|
return false;
|
|
1831
1890
|
}
|
|
1891
|
+
var fetch = state.fetch;
|
|
1832
1892
|
var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
|
|
1833
1893
|
fetch.firstVisible.index = index;
|
|
1834
1894
|
if (!isNaN(index)) {
|
|
@@ -1868,7 +1928,8 @@ var Append = /** @class */ (function (_super) {
|
|
|
1868
1928
|
items = __spreadArray([], __read(items), false).reverse();
|
|
1869
1929
|
}
|
|
1870
1930
|
else {
|
|
1871
|
-
afterIndex =
|
|
1931
|
+
afterIndex =
|
|
1932
|
+
(eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
|
|
1872
1933
|
}
|
|
1873
1934
|
return Insert.doInsert(scroller, {
|
|
1874
1935
|
items: items,
|
|
@@ -1887,7 +1948,7 @@ var Check = /** @class */ (function (_super) {
|
|
|
1887
1948
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1888
1949
|
}
|
|
1889
1950
|
Check.run = function (scroller) {
|
|
1890
|
-
var workflow = scroller.workflow, buffer = scroller.buffer,
|
|
1951
|
+
var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
|
|
1891
1952
|
var min = Infinity, max = -Infinity;
|
|
1892
1953
|
buffer.items.forEach(function (item) {
|
|
1893
1954
|
var size = item.size;
|
|
@@ -1899,14 +1960,15 @@ var Check = /** @class */ (function (_super) {
|
|
|
1899
1960
|
}
|
|
1900
1961
|
});
|
|
1901
1962
|
if (Number.isFinite(min)) {
|
|
1902
|
-
|
|
1903
|
-
|
|
1963
|
+
var fetch_1 = state.fetch;
|
|
1964
|
+
fetch_1.first.indexBuffer = buffer.firstIndex;
|
|
1965
|
+
fetch_1.last.indexBuffer = buffer.lastIndex;
|
|
1904
1966
|
var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstIndex = _a.index, diff = _a.diff;
|
|
1905
|
-
|
|
1967
|
+
fetch_1.firstVisible.index = firstIndex;
|
|
1906
1968
|
if (!isNaN(firstIndex)) {
|
|
1907
|
-
|
|
1969
|
+
fetch_1.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
|
|
1908
1970
|
}
|
|
1909
|
-
|
|
1971
|
+
fetch_1.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
|
|
1910
1972
|
}
|
|
1911
1973
|
scroller.logger.stat('check');
|
|
1912
1974
|
workflow.call({
|
|
@@ -1947,9 +2009,7 @@ var Remove = /** @class */ (function (_super) {
|
|
|
1947
2009
|
if (params.indexes && params.indexes.length) {
|
|
1948
2010
|
var diffLeft_1 = (params.increase ? 1 : 0) * removed.length;
|
|
1949
2011
|
var diffRight_1 = (params.increase ? 0 : -1) * removed.length;
|
|
1950
|
-
params.indexes = params.indexes.map(function (index) {
|
|
1951
|
-
return index + (index < removed[0] ? diffLeft_1 : diffRight_1);
|
|
1952
|
-
});
|
|
2012
|
+
params.indexes = params.indexes.map(function (index) { return index + (index < removed[0] ? diffLeft_1 : diffRight_1); });
|
|
1953
2013
|
}
|
|
1954
2014
|
}
|
|
1955
2015
|
var shouldVirtual = Remove.removeVirtualItems(scroller, params);
|
|
@@ -1965,12 +2025,9 @@ var Remove = /** @class */ (function (_super) {
|
|
|
1965
2025
|
return [];
|
|
1966
2026
|
}
|
|
1967
2027
|
var newPredicate = function (item) {
|
|
1968
|
-
return (predicate && predicate(item)) ||
|
|
1969
|
-
(!!indexes && indexes.includes(item.$index));
|
|
2028
|
+
return (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));
|
|
1970
2029
|
};
|
|
1971
|
-
var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) {
|
|
1972
|
-
return newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc;
|
|
1973
|
-
}, []);
|
|
2030
|
+
var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) { return (newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc); }, []);
|
|
1974
2031
|
var updateOptions = {
|
|
1975
2032
|
predicate: function (item) { return !newPredicate(item); },
|
|
1976
2033
|
fixRight: increase
|
|
@@ -1983,7 +2040,7 @@ var Remove = /** @class */ (function (_super) {
|
|
|
1983
2040
|
if (!indexes || !indexes.length) {
|
|
1984
2041
|
return false;
|
|
1985
2042
|
}
|
|
1986
|
-
var buffer = scroller.buffer, viewport = scroller.viewport,
|
|
2043
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
|
|
1987
2044
|
// get items to remove
|
|
1988
2045
|
var finiteAbsMinIndex = buffer.finiteAbsMinIndex, firstIndex = buffer.firstIndex, finiteAbsMaxIndex = buffer.finiteAbsMaxIndex, lastIndex = buffer.lastIndex;
|
|
1989
2046
|
var toRemove = [];
|
|
@@ -2003,6 +2060,7 @@ var Remove = /** @class */ (function (_super) {
|
|
|
2003
2060
|
return false;
|
|
2004
2061
|
}
|
|
2005
2062
|
// what should be shown after remove; Buffer removal has priority
|
|
2063
|
+
var fetch = state.fetch;
|
|
2006
2064
|
if (isNaN(fetch.firstVisible.index)) {
|
|
2007
2065
|
var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
|
|
2008
2066
|
fetch.firstVisible.index = index;
|
|
@@ -2022,7 +2080,12 @@ var Remove = /** @class */ (function (_super) {
|
|
|
2022
2080
|
if (isNaN(firstVisible.index)) {
|
|
2023
2081
|
return;
|
|
2024
2082
|
}
|
|
2025
|
-
var shift = listToRemove.reduce(function (acc, index) {
|
|
2083
|
+
var shift = listToRemove.reduce(function (acc, index) {
|
|
2084
|
+
return acc +
|
|
2085
|
+
((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)
|
|
2086
|
+
? 1
|
|
2087
|
+
: 0);
|
|
2088
|
+
}, 0);
|
|
2026
2089
|
firstVisible.index = firstVisible.index + (increase ? shift : -shift);
|
|
2027
2090
|
};
|
|
2028
2091
|
return Remove;
|
|
@@ -2058,7 +2121,7 @@ var Replace = /** @class */ (function (_super) {
|
|
|
2058
2121
|
var shouldReplace = Replace.doReplace(scroller, params);
|
|
2059
2122
|
scroller.workflow.call({
|
|
2060
2123
|
process: Replace.process,
|
|
2061
|
-
status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
|
|
2124
|
+
status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
|
|
2062
2125
|
});
|
|
2063
2126
|
};
|
|
2064
2127
|
Replace.doReplace = function (scroller, params) {
|
|
@@ -2152,7 +2215,9 @@ var Fix = /** @class */ (function (_super) {
|
|
|
2152
2215
|
case FixParams.scrollToItem:
|
|
2153
2216
|
if (methodData.params) {
|
|
2154
2217
|
var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
|
|
2155
|
-
var options = scrollToItemOpt
|
|
2218
|
+
var options = scrollToItemOpt
|
|
2219
|
+
? scrollToItemOpt.value
|
|
2220
|
+
: void 0;
|
|
2156
2221
|
return Fix.scrollToItem(scroller, value, options);
|
|
2157
2222
|
}
|
|
2158
2223
|
return;
|
|
@@ -2184,7 +2249,7 @@ var Fix = /** @class */ (function (_super) {
|
|
|
2184
2249
|
Fix.updateItems = function (_a, value) {
|
|
2185
2250
|
var buffer = _a.buffer, logger = _a.logger;
|
|
2186
2251
|
var updateReference = false;
|
|
2187
|
-
var updater = function () { return updateReference = true; };
|
|
2252
|
+
var updater = function () { return (updateReference = true); };
|
|
2188
2253
|
buffer.items.forEach(function (item) { return value(item.get(), updater); });
|
|
2189
2254
|
if (updateReference) {
|
|
2190
2255
|
logger.log(function () { return 'update Buffer.items reference'; });
|
|
@@ -2224,7 +2289,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2224
2289
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2225
2290
|
}
|
|
2226
2291
|
PreFetch.run = function (scroller) {
|
|
2227
|
-
var workflow = scroller.workflow, buffer = scroller.buffer,
|
|
2292
|
+
var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state;
|
|
2293
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2228
2294
|
fetch.minIndex = buffer.minIndex;
|
|
2229
2295
|
// set first and last indexes of items to fetch
|
|
2230
2296
|
PreFetch.setPositionsAndIndexes(scroller);
|
|
@@ -2251,7 +2317,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2251
2317
|
scroller.logger.fetch();
|
|
2252
2318
|
};
|
|
2253
2319
|
PreFetch.setPositions = function (scroller) {
|
|
2254
|
-
var
|
|
2320
|
+
var state = scroller.state, viewport = scroller.viewport;
|
|
2321
|
+
var positions = state.fetch.positions;
|
|
2255
2322
|
var paddingDelta = viewport.getBufferPadding();
|
|
2256
2323
|
positions.before = viewport.scrollPosition;
|
|
2257
2324
|
positions.startDelta = PreFetch.getStartDelta(scroller);
|
|
@@ -2260,7 +2327,9 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2260
2327
|
positions.end = positions.relative + viewport.getSize() + paddingDelta;
|
|
2261
2328
|
};
|
|
2262
2329
|
PreFetch.getStartDelta = function (scroller) {
|
|
2263
|
-
|
|
2330
|
+
// calculate size before start index
|
|
2331
|
+
var buffer = scroller.buffer, viewport = scroller.viewport;
|
|
2332
|
+
var offset = viewport.offset;
|
|
2264
2333
|
var startDelta = 0;
|
|
2265
2334
|
if (offset) {
|
|
2266
2335
|
startDelta += offset;
|
|
@@ -2278,7 +2347,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2278
2347
|
};
|
|
2279
2348
|
PreFetch.setFirstIndex = function (scroller) {
|
|
2280
2349
|
var state = scroller.state, buffer = scroller.buffer;
|
|
2281
|
-
var _a = state.fetch,
|
|
2350
|
+
var _a = state.fetch, positions = _a.positions, first = _a.first;
|
|
2351
|
+
var start = positions.start;
|
|
2282
2352
|
var firstIndex = buffer.startIndex;
|
|
2283
2353
|
var firstIndexPosition = 0;
|
|
2284
2354
|
if (state.cycle.innerLoop.isInitial) {
|
|
@@ -2290,10 +2360,10 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2290
2360
|
else {
|
|
2291
2361
|
var position = firstIndexPosition;
|
|
2292
2362
|
var index = firstIndex;
|
|
2293
|
-
while (
|
|
2363
|
+
while (true) {
|
|
2294
2364
|
if (start >= 0) {
|
|
2295
2365
|
var size = buffer.getSizeByIndex(index);
|
|
2296
|
-
var diff =
|
|
2366
|
+
var diff = position + size - start;
|
|
2297
2367
|
if (diff > 0) {
|
|
2298
2368
|
firstIndex = index;
|
|
2299
2369
|
firstIndexPosition = position;
|
|
@@ -2324,8 +2394,10 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2324
2394
|
first.position = firstIndexPosition;
|
|
2325
2395
|
};
|
|
2326
2396
|
PreFetch.setLastIndex = function (scroller) {
|
|
2327
|
-
var
|
|
2328
|
-
var
|
|
2397
|
+
var state = scroller.state, buffer = scroller.buffer, settings = scroller.settings;
|
|
2398
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2399
|
+
var firstVisible = fetch.firstVisible, positions = fetch.positions, first = fetch.first, last = fetch.last;
|
|
2400
|
+
var relative = positions.relative, end = positions.end;
|
|
2329
2401
|
var lastIndex;
|
|
2330
2402
|
if (!buffer.defaultSize) {
|
|
2331
2403
|
// just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present
|
|
@@ -2336,7 +2408,7 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2336
2408
|
var index = first.indexBuffer;
|
|
2337
2409
|
var position = first.position;
|
|
2338
2410
|
lastIndex = index;
|
|
2339
|
-
while (
|
|
2411
|
+
while (true) {
|
|
2340
2412
|
lastIndex = index;
|
|
2341
2413
|
var size = buffer.getSizeByIndex(index);
|
|
2342
2414
|
position += size;
|
|
@@ -2390,7 +2462,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2390
2462
|
}
|
|
2391
2463
|
};
|
|
2392
2464
|
PreFetch.checkBufferGaps = function (scroller) {
|
|
2393
|
-
var buffer = scroller.buffer,
|
|
2465
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2466
|
+
var fetch = state.fetch;
|
|
2394
2467
|
if (!buffer.size) {
|
|
2395
2468
|
return;
|
|
2396
2469
|
}
|
|
@@ -2409,7 +2482,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2409
2482
|
}
|
|
2410
2483
|
};
|
|
2411
2484
|
PreFetch.checkFetchPackSize = function (scroller) {
|
|
2412
|
-
var buffer = scroller.buffer,
|
|
2485
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2486
|
+
var fetch = state.fetch;
|
|
2413
2487
|
if (!fetch.shouldFetch) {
|
|
2414
2488
|
return;
|
|
2415
2489
|
}
|
|
@@ -2419,7 +2493,8 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2419
2493
|
if (diff <= 0) {
|
|
2420
2494
|
return;
|
|
2421
2495
|
}
|
|
2422
|
-
if (!buffer.size || lastIndex > buffer.items[0].$index) {
|
|
2496
|
+
if (!buffer.size || lastIndex > buffer.items[0].$index) {
|
|
2497
|
+
// forward
|
|
2423
2498
|
var newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);
|
|
2424
2499
|
if (newLastIndex > lastIndex) {
|
|
2425
2500
|
fetch.last.index = fetch.last.indexBuffer = newLastIndex;
|
|
@@ -2437,11 +2512,13 @@ var PreFetch = /** @class */ (function (_super) {
|
|
|
2437
2512
|
}
|
|
2438
2513
|
};
|
|
2439
2514
|
PreFetch.setFetchDirection = function (scroller) {
|
|
2440
|
-
var buffer = scroller.buffer,
|
|
2515
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2516
|
+
var fetch = state.fetch;
|
|
2441
2517
|
if (fetch.last.index) {
|
|
2442
2518
|
var direction_1 = Direction.forward;
|
|
2443
2519
|
if (buffer.size) {
|
|
2444
|
-
direction_1 =
|
|
2520
|
+
direction_1 =
|
|
2521
|
+
fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;
|
|
2445
2522
|
}
|
|
2446
2523
|
fetch.direction = direction_1;
|
|
2447
2524
|
scroller.logger.log(function () { return "fetch direction is \"".concat(direction_1, "\""); });
|
|
@@ -2503,7 +2580,8 @@ var Fetch = /** @class */ (function (_super) {
|
|
|
2503
2580
|
}
|
|
2504
2581
|
}
|
|
2505
2582
|
else {
|
|
2506
|
-
var
|
|
2583
|
+
var state = scroller.state, viewport = scroller.viewport;
|
|
2584
|
+
var scroll_1 = state.scroll, fetch_1 = state.fetch;
|
|
2507
2585
|
if (scroll_1.positionBeforeAsync === null) {
|
|
2508
2586
|
scroll_1.positionBeforeAsync = viewport.scrollPosition;
|
|
2509
2587
|
}
|
|
@@ -2547,9 +2625,10 @@ var Fetch = /** @class */ (function (_super) {
|
|
|
2547
2625
|
});
|
|
2548
2626
|
}
|
|
2549
2627
|
}
|
|
2550
|
-
if (immediateData || immediateError) {
|
|
2628
|
+
if (immediateData || immediateError) {
|
|
2629
|
+
// callback case or immediate observable
|
|
2551
2630
|
return {
|
|
2552
|
-
data: immediateError ? null :
|
|
2631
|
+
data: immediateError ? null : immediateData || [],
|
|
2553
2632
|
error: immediateError,
|
|
2554
2633
|
isError: !!immediateError
|
|
2555
2634
|
};
|
|
@@ -2573,44 +2652,45 @@ var PostFetch = /** @class */ (function (_super) {
|
|
|
2573
2652
|
PostFetch.setBufferLimits(scroller);
|
|
2574
2653
|
workflow.call({
|
|
2575
2654
|
process: PostFetch.process,
|
|
2576
|
-
status: scroller.state.fetch.hasNewItems
|
|
2577
|
-
? ProcessStatus.next
|
|
2578
|
-
: ProcessStatus.done
|
|
2655
|
+
status: scroller.state.fetch.hasNewItems ? ProcessStatus.next : ProcessStatus.done
|
|
2579
2656
|
});
|
|
2580
2657
|
}
|
|
2581
2658
|
else {
|
|
2582
2659
|
workflow.call({
|
|
2583
2660
|
process: PostFetch.process,
|
|
2584
2661
|
status: ProcessStatus.error,
|
|
2585
|
-
payload: { error: 'Can
|
|
2662
|
+
payload: { error: 'Can not set buffer items' }
|
|
2586
2663
|
});
|
|
2587
2664
|
}
|
|
2588
2665
|
};
|
|
2589
2666
|
PostFetch.setBufferLimits = function (scroller) {
|
|
2590
|
-
var buffer = scroller.buffer,
|
|
2591
|
-
var
|
|
2667
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2668
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2669
|
+
var items = fetch.items, first = fetch.first, last = fetch.last;
|
|
2592
2670
|
if (!items.length) {
|
|
2593
|
-
if (last < buffer.minIndex || innerLoop.isInitial) {
|
|
2671
|
+
if (last.index < buffer.minIndex || cycle.innerLoop.isInitial) {
|
|
2594
2672
|
buffer.absMinIndex = buffer.minIndex;
|
|
2595
2673
|
}
|
|
2596
|
-
if (first > buffer.maxIndex || innerLoop.isInitial) {
|
|
2674
|
+
if (first.index > buffer.maxIndex || cycle.innerLoop.isInitial) {
|
|
2597
2675
|
buffer.absMaxIndex = buffer.maxIndex;
|
|
2598
2676
|
}
|
|
2599
2677
|
}
|
|
2600
2678
|
else {
|
|
2601
2679
|
var lastIndex = items.length - 1;
|
|
2602
|
-
if (first < items[0].$index) {
|
|
2680
|
+
if (first.index < items[0].$index) {
|
|
2603
2681
|
buffer.absMinIndex = items[0].$index;
|
|
2604
2682
|
}
|
|
2605
|
-
if (last > items[lastIndex].$index) {
|
|
2683
|
+
if (last.index > items[lastIndex].$index) {
|
|
2606
2684
|
buffer.absMaxIndex = items[lastIndex].$index;
|
|
2607
2685
|
}
|
|
2608
2686
|
}
|
|
2609
2687
|
};
|
|
2610
2688
|
PostFetch.setItems = function (scroller) {
|
|
2611
|
-
var buffer = scroller.buffer,
|
|
2689
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2690
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2612
2691
|
var items = fetch.newItemsData;
|
|
2613
|
-
if (!items || !items.length) {
|
|
2692
|
+
if (!items || !items.length) {
|
|
2693
|
+
// empty result
|
|
2614
2694
|
return true;
|
|
2615
2695
|
}
|
|
2616
2696
|
// eof/bof case, need to shift fetch index if bof
|
|
@@ -2625,9 +2705,7 @@ var PostFetch = /** @class */ (function (_super) {
|
|
|
2625
2705
|
fetchIndex = buffer.firstIndex - items.length;
|
|
2626
2706
|
}
|
|
2627
2707
|
}
|
|
2628
|
-
fetch.items = items.map(function (item, index) {
|
|
2629
|
-
return new Item(fetchIndex + index, item, scroller.routines);
|
|
2630
|
-
});
|
|
2708
|
+
fetch.items = items.map(function (item, index) { return new Item(fetchIndex + index, item, scroller.routines); });
|
|
2631
2709
|
return buffer.setItems(fetch.items);
|
|
2632
2710
|
};
|
|
2633
2711
|
return PostFetch;
|
|
@@ -2639,7 +2717,8 @@ var Render = /** @class */ (function (_super) {
|
|
|
2639
2717
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2640
2718
|
}
|
|
2641
2719
|
Render.run = function (scroller) {
|
|
2642
|
-
var workflow = scroller.workflow,
|
|
2720
|
+
var workflow = scroller.workflow, state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
|
|
2721
|
+
var cycle = state.cycle, render = state.render, scroll = state.scroll, fetch = state.fetch;
|
|
2643
2722
|
scroller.logger.stat('before new items render');
|
|
2644
2723
|
if (scroll.positionBeforeAsync === null) {
|
|
2645
2724
|
scroll.positionBeforeAsync = viewport.scrollPosition;
|
|
@@ -2657,26 +2736,25 @@ var Render = /** @class */ (function (_super) {
|
|
|
2657
2736
|
workflow.call({
|
|
2658
2737
|
process: Render.process,
|
|
2659
2738
|
status: ProcessStatus.error,
|
|
2660
|
-
payload: { error: 'Can
|
|
2739
|
+
payload: { error: 'Can not associate item with element' }
|
|
2661
2740
|
});
|
|
2662
2741
|
}
|
|
2663
2742
|
}, { items: fetch.items.map(function (i) { return i.get(); }) });
|
|
2664
2743
|
};
|
|
2665
2744
|
Render.doRender = function (scroller) {
|
|
2666
|
-
var
|
|
2745
|
+
var state = scroller.state, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger;
|
|
2746
|
+
var fetch = state.fetch, render = state.render;
|
|
2667
2747
|
render.positionBefore = viewport.scrollPosition;
|
|
2668
2748
|
if (!fetch.isCheck) {
|
|
2669
2749
|
render.sizeBefore = viewport.getScrollableSize();
|
|
2670
|
-
if (!fetch.items.every(function (item) {
|
|
2671
|
-
return Render.processElement(scroller, item);
|
|
2672
|
-
})) {
|
|
2750
|
+
if (!fetch.items.every(function (item) { return Render.processElement(scroller, item); })) {
|
|
2673
2751
|
return false;
|
|
2674
2752
|
}
|
|
2675
2753
|
}
|
|
2676
2754
|
buffer.checkDefaultSize();
|
|
2677
2755
|
render.sizeAfter = viewport.getScrollableSize();
|
|
2678
2756
|
logger.stat('after new items render');
|
|
2679
|
-
logger.log(function () { return render.noSize ? 'viewport size has not been changed' : void 0; });
|
|
2757
|
+
logger.log(function () { return (render.noSize ? 'viewport size has not been changed' : void 0); });
|
|
2680
2758
|
return true;
|
|
2681
2759
|
};
|
|
2682
2760
|
Render.processElement = function (scroller, item) {
|
|
@@ -2705,7 +2783,8 @@ var End = /** @class */ (function (_super) {
|
|
|
2705
2783
|
}
|
|
2706
2784
|
End.run = function (scroller, _a) {
|
|
2707
2785
|
var _b = _a === void 0 ? {} : _a, error = _b.error;
|
|
2708
|
-
var workflow = scroller.workflow,
|
|
2786
|
+
var workflow = scroller.workflow, state = scroller.state;
|
|
2787
|
+
var interrupter = state.cycle.interrupter;
|
|
2709
2788
|
if (!error && !interrupter) {
|
|
2710
2789
|
// set out params accessible via Adapter
|
|
2711
2790
|
End.calculateParams(scroller);
|
|
@@ -2761,10 +2840,10 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2761
2840
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2762
2841
|
}
|
|
2763
2842
|
Adjust.run = function (scroller) {
|
|
2764
|
-
var workflow = scroller.workflow, viewport = scroller.viewport,
|
|
2765
|
-
scroll.positionBeforeAdjust = viewport.scrollPosition;
|
|
2843
|
+
var workflow = scroller.workflow, viewport = scroller.viewport, state = scroller.state;
|
|
2844
|
+
state.scroll.positionBeforeAdjust = viewport.scrollPosition;
|
|
2766
2845
|
Adjust.setPaddings(scroller);
|
|
2767
|
-
scroll.positionAfterAdjust = viewport.scrollPosition;
|
|
2846
|
+
state.scroll.positionAfterAdjust = viewport.scrollPosition;
|
|
2768
2847
|
// scroll position adjustments
|
|
2769
2848
|
var position = Adjust.calculatePosition(scroller);
|
|
2770
2849
|
// additional adjustment if the position can't be reached during the initial cycle
|
|
@@ -2778,7 +2857,7 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2778
2857
|
});
|
|
2779
2858
|
};
|
|
2780
2859
|
Adjust.setPaddings = function (scroller) {
|
|
2781
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
2860
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, settings = scroller.settings, state = scroller.state;
|
|
2782
2861
|
var firstItem = buffer.getFirstVisibleItem();
|
|
2783
2862
|
var lastItem = buffer.getLastVisibleItem();
|
|
2784
2863
|
var first, last;
|
|
@@ -2787,7 +2866,8 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2787
2866
|
last = lastItem.$index;
|
|
2788
2867
|
}
|
|
2789
2868
|
else {
|
|
2790
|
-
|
|
2869
|
+
var fetch_1 = state.fetch;
|
|
2870
|
+
first = !isNaN(fetch_1.firstVisible.index) ? fetch_1.firstVisible.index : buffer.startIndex;
|
|
2791
2871
|
last = first - 1;
|
|
2792
2872
|
}
|
|
2793
2873
|
var _a = viewport.paddings, forward = _a.forward, backward = _a.backward;
|
|
@@ -2804,14 +2884,16 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2804
2884
|
var scrollSize = bwdSize + bufferSize + fwdSize;
|
|
2805
2885
|
var viewportSizeDiff = viewport.getSize() - scrollSize;
|
|
2806
2886
|
if (viewportSizeDiff > 0) {
|
|
2807
|
-
if (inverse) {
|
|
2887
|
+
if (settings.inverse) {
|
|
2808
2888
|
bwdSize += viewportSizeDiff;
|
|
2809
2889
|
}
|
|
2810
2890
|
else {
|
|
2811
2891
|
fwdSize += viewportSizeDiff;
|
|
2812
2892
|
}
|
|
2813
2893
|
scroller.logger.log(function () {
|
|
2814
|
-
return inverse
|
|
2894
|
+
return settings.inverse
|
|
2895
|
+
? 'backward'
|
|
2896
|
+
: 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
|
|
2815
2897
|
});
|
|
2816
2898
|
}
|
|
2817
2899
|
backward.size = bwdSize;
|
|
@@ -2819,7 +2901,8 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2819
2901
|
scroller.logger.stat('after paddings adjustments');
|
|
2820
2902
|
};
|
|
2821
2903
|
Adjust.calculatePosition = function (scroller) {
|
|
2822
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
2904
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
|
|
2905
|
+
var fetch = state.fetch, render = state.render, scroll = state.scroll;
|
|
2823
2906
|
var position = viewport.paddings.backward.size;
|
|
2824
2907
|
// increase the position to meet the expectation of the first visible item
|
|
2825
2908
|
if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {
|
|
@@ -2856,8 +2939,8 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2856
2939
|
return Math.round(position);
|
|
2857
2940
|
};
|
|
2858
2941
|
Adjust.setAdditionalForwardPadding = function (scroller, position) {
|
|
2859
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
2860
|
-
if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
|
|
2942
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
|
|
2943
|
+
if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
|
|
2861
2944
|
return;
|
|
2862
2945
|
}
|
|
2863
2946
|
var diff = position - viewport.getMaxScrollPosition();
|
|
@@ -2880,7 +2963,8 @@ var Adjust = /** @class */ (function (_super) {
|
|
|
2880
2963
|
}
|
|
2881
2964
|
};
|
|
2882
2965
|
Adjust.setPosition = function (scroller, position, done) {
|
|
2883
|
-
var
|
|
2966
|
+
var state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
|
|
2967
|
+
var scroll = state.scroll;
|
|
2884
2968
|
if (!scroll.hasPositionChanged(position)) {
|
|
2885
2969
|
return done();
|
|
2886
2970
|
}
|
|
@@ -2958,7 +3042,8 @@ var PreClip = /** @class */ (function (_super) {
|
|
|
2958
3042
|
return false;
|
|
2959
3043
|
};
|
|
2960
3044
|
PreClip.isBackward = function (scroller, firstIndex) {
|
|
2961
|
-
var buffer = scroller.buffer,
|
|
3045
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
3046
|
+
var clip = state.clip, fetch = state.fetch;
|
|
2962
3047
|
if (clip.force) {
|
|
2963
3048
|
return clip.forceBackward;
|
|
2964
3049
|
}
|
|
@@ -2970,7 +3055,8 @@ var PreClip = /** @class */ (function (_super) {
|
|
|
2970
3055
|
return false;
|
|
2971
3056
|
};
|
|
2972
3057
|
PreClip.isForward = function (scroller, lastIndex) {
|
|
2973
|
-
var buffer = scroller.buffer,
|
|
3058
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
3059
|
+
var clip = state.clip, fetch = state.fetch;
|
|
2974
3060
|
if (clip.force) {
|
|
2975
3061
|
return clip.forceForward;
|
|
2976
3062
|
}
|
|
@@ -2984,8 +3070,7 @@ var PreClip = /** @class */ (function (_super) {
|
|
|
2984
3070
|
PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {
|
|
2985
3071
|
var forward = direction === Direction.forward;
|
|
2986
3072
|
scroller.buffer.items.forEach(function (item) {
|
|
2987
|
-
if ((!forward && item.$index < edgeIndex) ||
|
|
2988
|
-
(forward && item.$index > edgeIndex)) {
|
|
3073
|
+
if ((!forward && item.$index < edgeIndex) || (forward && item.$index > edgeIndex)) {
|
|
2989
3074
|
item.toRemove = true;
|
|
2990
3075
|
item.removeDirection = direction;
|
|
2991
3076
|
scroller.state.clip.doClip = true;
|
|
@@ -3010,9 +3095,9 @@ var Clip = /** @class */ (function (_super) {
|
|
|
3010
3095
|
};
|
|
3011
3096
|
Clip.doClip = function (scroller) {
|
|
3012
3097
|
var _a;
|
|
3013
|
-
var buffer = scroller.buffer,
|
|
3098
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, logger = scroller.logger;
|
|
3014
3099
|
var size = (_a = {}, _a[Direction.backward] = 0, _a[Direction.forward] = 0, _a);
|
|
3015
|
-
logger.stat("before clip (".concat(++clip.callCount, ")"));
|
|
3100
|
+
logger.stat("before clip (".concat(++state.clip.callCount, ")"));
|
|
3016
3101
|
var itemsToRemove = buffer.items.filter(function (item) {
|
|
3017
3102
|
if (!item.toRemove) {
|
|
3018
3103
|
return false;
|
|
@@ -3023,10 +3108,10 @@ var Clip = /** @class */ (function (_super) {
|
|
|
3023
3108
|
});
|
|
3024
3109
|
if (itemsToRemove.length) {
|
|
3025
3110
|
if (size[Direction.backward]) {
|
|
3026
|
-
paddings.byDirection(Direction.backward).size += size[Direction.backward];
|
|
3111
|
+
viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward];
|
|
3027
3112
|
}
|
|
3028
3113
|
if (size[Direction.forward]) {
|
|
3029
|
-
paddings.byDirection(Direction.forward).size += size[Direction.forward];
|
|
3114
|
+
viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward];
|
|
3030
3115
|
}
|
|
3031
3116
|
if (scroller.settings.onBeforeClip) {
|
|
3032
3117
|
scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); }));
|
|
@@ -3060,7 +3145,7 @@ var Logger = /** @class */ (function () {
|
|
|
3060
3145
|
if (!_this.debug) {
|
|
3061
3146
|
return;
|
|
3062
3147
|
}
|
|
3063
|
-
var params = (args === void 0 ? [] :
|
|
3148
|
+
var params = (args === void 0 ? [] : Array.isArray(args) ? args : [args])
|
|
3064
3149
|
.map(function (arg) {
|
|
3065
3150
|
if (typeof arg === 'function') {
|
|
3066
3151
|
return 'func';
|
|
@@ -3080,26 +3165,36 @@ var Logger = /** @class */ (function () {
|
|
|
3080
3165
|
this.debug = settings.debug;
|
|
3081
3166
|
this.immediateLog = settings.immediateLog;
|
|
3082
3167
|
this.logTime = settings.logTime;
|
|
3083
|
-
this.
|
|
3084
|
-
|
|
3085
|
-
};
|
|
3168
|
+
this.logColor = settings.logColor;
|
|
3169
|
+
this.getTime = function () { return scroller.state && " // time: ".concat(scroller.state.time); };
|
|
3086
3170
|
this.getStat = function () {
|
|
3087
3171
|
var buffer = scroller.buffer, viewport = scroller.viewport;
|
|
3088
3172
|
var first = buffer.getFirstVisibleItem();
|
|
3089
3173
|
var last = buffer.getLastVisibleItem();
|
|
3090
|
-
return 'pos: ' +
|
|
3091
|
-
|
|
3092
|
-
'
|
|
3093
|
-
'
|
|
3094
|
-
|
|
3095
|
-
'
|
|
3096
|
-
'
|
|
3174
|
+
return ('pos: ' +
|
|
3175
|
+
viewport.scrollPosition +
|
|
3176
|
+
', ' +
|
|
3177
|
+
'size: ' +
|
|
3178
|
+
viewport.getScrollableSize() +
|
|
3179
|
+
', ' +
|
|
3180
|
+
'bwd_p: ' +
|
|
3181
|
+
viewport.paddings.backward.size +
|
|
3182
|
+
', ' +
|
|
3183
|
+
'fwd_p: ' +
|
|
3184
|
+
viewport.paddings.forward.size +
|
|
3185
|
+
', ' +
|
|
3186
|
+
'default: ' +
|
|
3187
|
+
(buffer.defaultSize || 'no') +
|
|
3188
|
+
', ' +
|
|
3189
|
+
'items: ' +
|
|
3190
|
+
buffer.getVisibleItemsCount() +
|
|
3191
|
+
', ' +
|
|
3192
|
+
'range: ' +
|
|
3193
|
+
(first && last ? "[".concat(first.$index, "..").concat(last.$index, "]") : 'no'));
|
|
3097
3194
|
};
|
|
3098
3195
|
this.getFetchRange = function () {
|
|
3099
3196
|
var _a = scroller.state.fetch, first = _a.first.index, last = _a.last.index;
|
|
3100
|
-
return !Number.isNaN(first) && !Number.isNaN(last)
|
|
3101
|
-
? "[".concat(first, "..").concat(last, "]")
|
|
3102
|
-
: 'no';
|
|
3197
|
+
return !Number.isNaN(first) && !Number.isNaN(last) ? "[".concat(first, "..").concat(last, "]") : 'no';
|
|
3103
3198
|
};
|
|
3104
3199
|
this.getLoopId = function () { return scroller.state.cycle.loopId; };
|
|
3105
3200
|
this.getLoopIdNext = function () { return scroller.state.cycle.loopIdNext; };
|
|
@@ -3119,7 +3214,7 @@ var Logger = /** @class */ (function () {
|
|
|
3119
3214
|
this.log(function () { return [
|
|
3120
3215
|
str,
|
|
3121
3216
|
stringify
|
|
3122
|
-
? JSON.stringify(obj, function (
|
|
3217
|
+
? JSON.stringify(obj, function (_, v) {
|
|
3123
3218
|
if (Number.isNaN(v)) {
|
|
3124
3219
|
return 'NaN';
|
|
3125
3220
|
}
|
|
@@ -3149,27 +3244,36 @@ var Logger = /** @class */ (function () {
|
|
|
3149
3244
|
Logger.prototype.stat = function (str) {
|
|
3150
3245
|
var _this = this;
|
|
3151
3246
|
if (this.debug) {
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3247
|
+
if (this.logColor) {
|
|
3248
|
+
var logStyles_1 = [
|
|
3249
|
+
'color: #888; border: dashed #888 0; border-bottom-width: 0px',
|
|
3250
|
+
'color: #000; border-width: 0'
|
|
3251
|
+
];
|
|
3252
|
+
this.log(function () { return __spreadArray(['%cstat' + (str ? " ".concat(str) : '') + ',%c ' + _this.getStat()], __read(logStyles_1), false); });
|
|
3253
|
+
}
|
|
3254
|
+
else {
|
|
3255
|
+
this.log(function () { return ['stat' + (str ? " ".concat(str) : '') + ', ' + _this.getStat()]; });
|
|
3256
|
+
}
|
|
3157
3257
|
}
|
|
3158
3258
|
};
|
|
3159
3259
|
Logger.prototype.fetch = function (str) {
|
|
3160
3260
|
var _this = this;
|
|
3161
3261
|
if (this.debug) {
|
|
3162
3262
|
var _text_1 = 'fetch interval' + (str ? " ".concat(str) : '');
|
|
3163
|
-
|
|
3164
|
-
|
|
3263
|
+
if (this.logColor) {
|
|
3264
|
+
var logStyles_2 = ['color: #888', 'color: #000'];
|
|
3265
|
+
this.log(function () { return __spreadArray(["%c".concat(_text_1, ": %c").concat(_this.getFetchRange())], __read(logStyles_2), false); });
|
|
3266
|
+
}
|
|
3267
|
+
else {
|
|
3268
|
+
this.log(function () { return ["".concat(_text_1, ": ").concat(_this.getFetchRange())]; });
|
|
3269
|
+
}
|
|
3165
3270
|
}
|
|
3166
3271
|
};
|
|
3167
3272
|
Logger.prototype.prepareForLog = function (data) {
|
|
3168
|
-
return data instanceof Event && data.target
|
|
3169
|
-
? this.getScrollPosition()
|
|
3170
|
-
: data;
|
|
3273
|
+
return data instanceof Event && data.target ? this.getScrollPosition() : data;
|
|
3171
3274
|
};
|
|
3172
3275
|
Logger.prototype.logProcess = function (data) {
|
|
3276
|
+
var _this = this;
|
|
3173
3277
|
if (!this.debug) {
|
|
3174
3278
|
return;
|
|
3175
3279
|
}
|
|
@@ -3177,31 +3281,50 @@ var Logger = /** @class */ (function () {
|
|
|
3177
3281
|
// inner loop start-end log
|
|
3178
3282
|
var loopLog = [];
|
|
3179
3283
|
if (process === CommonProcess.init && status === ProcessStatus.next) {
|
|
3180
|
-
|
|
3284
|
+
var loopStart = "---=== loop ".concat(this.getLoopIdNext(), " start");
|
|
3285
|
+
loopLog.push(this.logColor ? "%c".concat(loopStart) : loopStart);
|
|
3181
3286
|
}
|
|
3182
3287
|
else if (process === CommonProcess.end) {
|
|
3183
|
-
|
|
3288
|
+
var loopDone = "---=== loop ".concat(this.getLoopId(), " done");
|
|
3289
|
+
loopLog.push(this.logColor ? "%c".concat(loopDone) : loopDone);
|
|
3184
3290
|
var parent_1 = payload && payload.process;
|
|
3185
|
-
if (status === ProcessStatus.next &&
|
|
3291
|
+
if (status === ProcessStatus.next &&
|
|
3292
|
+
parent_1 !== AdapterProcess.reset &&
|
|
3293
|
+
parent_1 !== AdapterProcess.reload) {
|
|
3186
3294
|
loopLog[0] += ", loop ".concat(this.getLoopIdNext(), " start");
|
|
3187
3295
|
}
|
|
3188
3296
|
}
|
|
3189
3297
|
if (loopLog.length) {
|
|
3190
|
-
this.log(function () { return __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false); });
|
|
3298
|
+
this.log(function () { return (_this.logColor ? __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false) : loopLog); });
|
|
3191
3299
|
}
|
|
3192
3300
|
};
|
|
3193
3301
|
Logger.prototype.logCycle = function (start) {
|
|
3194
3302
|
if (start === void 0) { start = true; }
|
|
3195
3303
|
var logData = this.getWorkflowCycleData();
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3304
|
+
if (this.logColor) {
|
|
3305
|
+
var border = start ? '1px 0 0 1px' : '0 0 1px 1px';
|
|
3306
|
+
var logStyles_3 = "color: #0000aa; border: solid #555 1px; border-width: ".concat(border, "; margin-left: -2px");
|
|
3307
|
+
this.log(function () { return [
|
|
3308
|
+
"%c ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ "),
|
|
3309
|
+
logStyles_3
|
|
3310
|
+
]; });
|
|
3311
|
+
}
|
|
3312
|
+
else {
|
|
3313
|
+
this.log(function () { return [" ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ ")]; });
|
|
3314
|
+
}
|
|
3199
3315
|
};
|
|
3200
3316
|
Logger.prototype.logError = function (str) {
|
|
3201
3317
|
var _this = this;
|
|
3202
3318
|
if (this.debug) {
|
|
3203
|
-
|
|
3204
|
-
|
|
3319
|
+
if (this.logColor) {
|
|
3320
|
+
var logStyles_4 = ['color: #a00;', 'color: #000'];
|
|
3321
|
+
this.log(function () { return __spreadArray([
|
|
3322
|
+
'error:%c' + (str ? " ".concat(str) : '') + "%c (loop ".concat(_this.getLoopIdNext(), ")")
|
|
3323
|
+
], __read(logStyles_4), false); });
|
|
3324
|
+
}
|
|
3325
|
+
else {
|
|
3326
|
+
this.log(function () { return ['error:' + (str ? " ".concat(str) : '') + " (loop ".concat(_this.getLoopIdNext(), ")")]; });
|
|
3327
|
+
}
|
|
3205
3328
|
}
|
|
3206
3329
|
};
|
|
3207
3330
|
Logger.prototype.log = function () {
|
|
@@ -3257,6 +3380,9 @@ var Logger = /** @class */ (function () {
|
|
|
3257
3380
|
}
|
|
3258
3381
|
}
|
|
3259
3382
|
};
|
|
3383
|
+
Logger.prototype.getLogs = function () {
|
|
3384
|
+
return this.logs;
|
|
3385
|
+
};
|
|
3260
3386
|
return Logger;
|
|
3261
3387
|
}());
|
|
3262
3388
|
|
|
@@ -3336,17 +3462,18 @@ var Routines = /** @class */ (function () {
|
|
|
3336
3462
|
return element.getBoundingClientRect();
|
|
3337
3463
|
};
|
|
3338
3464
|
Routines.prototype.getWindowParams = function () {
|
|
3339
|
-
var
|
|
3465
|
+
var height = window.innerHeight;
|
|
3466
|
+
var width = window.innerWidth;
|
|
3340
3467
|
return {
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3468
|
+
height: height,
|
|
3469
|
+
width: width,
|
|
3470
|
+
top: 0,
|
|
3471
|
+
bottom: height,
|
|
3472
|
+
left: 0,
|
|
3473
|
+
right: width,
|
|
3474
|
+
x: 0,
|
|
3475
|
+
y: 0,
|
|
3476
|
+
toJSON: function () { return null; }
|
|
3350
3477
|
};
|
|
3351
3478
|
};
|
|
3352
3479
|
Routines.prototype.getSize = function (element) {
|
|
@@ -3375,14 +3502,14 @@ var Routines = /** @class */ (function () {
|
|
|
3375
3502
|
var horizontal = this.settings.horizontal;
|
|
3376
3503
|
var params = this.getElementParams(element);
|
|
3377
3504
|
var isFwd = direction === Direction.forward;
|
|
3378
|
-
return params[isFwd ? (horizontal ? 'right' : 'bottom') :
|
|
3505
|
+
return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
|
|
3379
3506
|
};
|
|
3380
3507
|
Routines.prototype.getViewportEdge = function (direction) {
|
|
3381
3508
|
var _a = this.settings, window = _a.window, horizontal = _a.horizontal;
|
|
3382
3509
|
if (window) {
|
|
3383
3510
|
var params = this.getWindowParams();
|
|
3384
3511
|
var isFwd = direction === Direction.forward;
|
|
3385
|
-
return params[isFwd ? (horizontal ? 'right' : 'bottom') :
|
|
3512
|
+
return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
|
|
3386
3513
|
}
|
|
3387
3514
|
return this.getEdge(this.viewport, direction);
|
|
3388
3515
|
};
|
|
@@ -3407,8 +3534,7 @@ var Routines = /** @class */ (function () {
|
|
|
3407
3534
|
this.checkElement(element);
|
|
3408
3535
|
element.scrollIntoView(argument);
|
|
3409
3536
|
};
|
|
3410
|
-
|
|
3411
|
-
Routines.prototype.render = function (cb, params) {
|
|
3537
|
+
Routines.prototype.render = function (cb, _params) {
|
|
3412
3538
|
var timeoutId = setTimeout(function () { return cb(); });
|
|
3413
3539
|
return function () { return clearTimeout(timeoutId); };
|
|
3414
3540
|
};
|
|
@@ -3455,8 +3581,12 @@ var Paddings = /** @class */ (function () {
|
|
|
3455
3581
|
}
|
|
3456
3582
|
Paddings.prototype.byDirection = function (direction, opposite) {
|
|
3457
3583
|
return direction === Direction.backward
|
|
3458
|
-
?
|
|
3459
|
-
|
|
3584
|
+
? opposite
|
|
3585
|
+
? this.forward
|
|
3586
|
+
: this.backward
|
|
3587
|
+
: opposite
|
|
3588
|
+
? this.backward
|
|
3589
|
+
: this.forward;
|
|
3460
3590
|
};
|
|
3461
3591
|
Paddings.prototype.reset = function (viewportSize, startIndex, offset) {
|
|
3462
3592
|
var positive = this.getPositiveSize(startIndex, viewportSize, offset);
|
|
@@ -3525,7 +3655,8 @@ var Viewport = /** @class */ (function () {
|
|
|
3525
3655
|
this.routines.setScrollPosition(value);
|
|
3526
3656
|
var position = this.scrollPosition;
|
|
3527
3657
|
this.logger.log(function () { return __spreadArray([
|
|
3528
|
-
'setting scroll position at',
|
|
3658
|
+
'setting scroll position at',
|
|
3659
|
+
position
|
|
3529
3660
|
], __read((position !== value ? ["(".concat(value, ")")] : [])), false); });
|
|
3530
3661
|
return position;
|
|
3531
3662
|
};
|
|
@@ -3568,7 +3699,7 @@ var Viewport = /** @class */ (function () {
|
|
|
3568
3699
|
for (var i = bwd ? 0 : items.length - 1; bwd ? i <= items.length - 1 : i >= 0; i += bwd ? 1 : -1) {
|
|
3569
3700
|
var itemEdge = this.routines.getEdge(items[i].element, opposite);
|
|
3570
3701
|
diff = itemEdge - viewportEdge;
|
|
3571
|
-
if (bwd && diff > 0 || !bwd && diff < 0) {
|
|
3702
|
+
if ((bwd && diff > 0) || (!bwd && diff < 0)) {
|
|
3572
3703
|
item = items[i];
|
|
3573
3704
|
break;
|
|
3574
3705
|
}
|
|
@@ -3632,7 +3763,8 @@ var DefaultSize = /** @class */ (function () {
|
|
|
3632
3763
|
if (removed.length) {
|
|
3633
3764
|
var removedSize = removed.reduce(function (acc, item) { return acc + item.size; }, 0);
|
|
3634
3765
|
var averageSize = this.averageSizeFloat || 0;
|
|
3635
|
-
this.averageSizeFloat =
|
|
3766
|
+
this.averageSizeFloat =
|
|
3767
|
+
((cacheSize + removed.length) * averageSize - removedSize) / cacheSize;
|
|
3636
3768
|
}
|
|
3637
3769
|
this.averageSize = Math.round(this.averageSizeFloat);
|
|
3638
3770
|
};
|
|
@@ -3764,7 +3896,7 @@ var Cache = /** @class */ (function () {
|
|
|
3764
3896
|
};
|
|
3765
3897
|
Cache.prototype.getSizeByIndex = function (index) {
|
|
3766
3898
|
var item = this.get(index);
|
|
3767
|
-
return item && item.size || this.defaultSize.get();
|
|
3899
|
+
return (item && item.size) || this.defaultSize.get();
|
|
3768
3900
|
};
|
|
3769
3901
|
Cache.prototype.getDefaultSize = function () {
|
|
3770
3902
|
return this.defaultSize.get();
|
|
@@ -3782,12 +3914,12 @@ var Cache = /** @class */ (function () {
|
|
|
3782
3914
|
* Maintains min/max indexes and default item size.
|
|
3783
3915
|
*
|
|
3784
3916
|
* @param {Item<Data>} item A Buffer item to be cached, an objects with { $index, data, size } props.
|
|
3785
|
-
*
|
|
3786
3917
|
* @returns {ItemCache<Data>} Cached item.
|
|
3787
3918
|
*/
|
|
3788
3919
|
Cache.prototype.add = function (item) {
|
|
3789
3920
|
var itemCache = this.get(item.$index);
|
|
3790
|
-
if (itemCache) {
|
|
3921
|
+
if (itemCache) {
|
|
3922
|
+
// adding item is already cached
|
|
3791
3923
|
if (this.saveData) {
|
|
3792
3924
|
itemCache.data = item.data;
|
|
3793
3925
|
}
|
|
@@ -3859,7 +3991,8 @@ var Cache = /** @class */ (function () {
|
|
|
3859
3991
|
}
|
|
3860
3992
|
set(item);
|
|
3861
3993
|
});
|
|
3862
|
-
if (this.saveData) {
|
|
3994
|
+
if (this.saveData) {
|
|
3995
|
+
// persist data with no sizes
|
|
3863
3996
|
toInsert.forEach(function (data, i) {
|
|
3864
3997
|
var $index = index + i - (fixRight ? length : 0) + (direction === Direction.forward ? 1 : 0);
|
|
3865
3998
|
var item = new ItemCache({ $index: $index, data: data }, _this.saveData);
|
|
@@ -3933,20 +4066,21 @@ var Cache = /** @class */ (function () {
|
|
|
3933
4066
|
}
|
|
3934
4067
|
var items = new Map();
|
|
3935
4068
|
this.items.forEach(function (item) {
|
|
3936
|
-
if (item.$index < minB) {
|
|
4069
|
+
if (item.$index < minB) {
|
|
4070
|
+
// items to the left of the subset
|
|
3937
4071
|
item.changeIndex(item.$index + leftDiff);
|
|
3938
4072
|
items.set(item.$index, item);
|
|
3939
4073
|
return;
|
|
3940
4074
|
}
|
|
3941
|
-
else if (item.$index > maxB) {
|
|
4075
|
+
else if (item.$index > maxB) {
|
|
4076
|
+
// items to the right of the subset
|
|
3942
4077
|
item.changeIndex(item.$index + rightDiff);
|
|
3943
4078
|
items.set(item.$index, item);
|
|
3944
4079
|
return;
|
|
3945
4080
|
}
|
|
3946
4081
|
});
|
|
3947
|
-
after.forEach(function (item
|
|
3948
|
-
|
|
3949
|
-
});
|
|
4082
|
+
after.forEach(function (item // subset items
|
|
4083
|
+
) { return items.set(item.$index, new ItemCache(item, _this.saveData)); });
|
|
3950
4084
|
before // to maintain default size on remove
|
|
3951
4085
|
.filter(function (item) { return item.toRemove; })
|
|
3952
4086
|
.forEach(function (item) { return _this.defaultSize.setRemoved(item.size); });
|
|
@@ -3995,13 +4129,12 @@ var CheckBufferCall = /** @class */ (function () {
|
|
|
3995
4129
|
return true;
|
|
3996
4130
|
};
|
|
3997
4131
|
CheckBufferCall.prototype.insertInBuffer = function (predicate, before, after) {
|
|
3998
|
-
var index = Number.isInteger(before) ? before :
|
|
4132
|
+
var index = Number.isInteger(before) ? before : Number.isInteger(after) ? after : NaN;
|
|
3999
4133
|
var found = this.context.items.find(function (item) {
|
|
4000
|
-
return (predicate && predicate(item.get())) ||
|
|
4001
|
-
(Number.isInteger(index) && index === item.$index);
|
|
4134
|
+
return (predicate && predicate(item.get())) || (Number.isInteger(index) && index === item.$index);
|
|
4002
4135
|
});
|
|
4003
4136
|
if (!found) {
|
|
4004
|
-
this.logger.log('no items to insert in buffer; empty predicate
|
|
4137
|
+
this.logger.log('no items to insert in buffer; empty predicate result');
|
|
4005
4138
|
return NaN;
|
|
4006
4139
|
}
|
|
4007
4140
|
return found.$index;
|
|
@@ -4021,9 +4154,7 @@ var CheckBufferCall = /** @class */ (function () {
|
|
|
4021
4154
|
}
|
|
4022
4155
|
var before = direction === Direction.backward;
|
|
4023
4156
|
if (!(index < firstIndex + (before ? 1 : 0) || index > lastIndex - (before ? 0 : 1))) {
|
|
4024
|
-
this.logger.log(
|
|
4025
|
-
return "no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]");
|
|
4026
|
-
});
|
|
4157
|
+
this.logger.log("no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]"));
|
|
4027
4158
|
return false;
|
|
4028
4159
|
}
|
|
4029
4160
|
this.logger.log(function () { return "going to insert ".concat(items.length, " item(s) virtually"); });
|
|
@@ -4104,7 +4235,8 @@ var Buffer = /** @class */ (function () {
|
|
|
4104
4235
|
},
|
|
4105
4236
|
set: function (value) {
|
|
4106
4237
|
if (this._absMinIndex !== value) {
|
|
4107
|
-
this._absMinIndex =
|
|
4238
|
+
this._absMinIndex =
|
|
4239
|
+
Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
|
|
4108
4240
|
}
|
|
4109
4241
|
if (!this.pristine) {
|
|
4110
4242
|
this.checkBOF();
|
|
@@ -4119,7 +4251,8 @@ var Buffer = /** @class */ (function () {
|
|
|
4119
4251
|
},
|
|
4120
4252
|
set: function (value) {
|
|
4121
4253
|
if (this._absMaxIndex !== value) {
|
|
4122
|
-
this._absMaxIndex =
|
|
4254
|
+
this._absMaxIndex =
|
|
4255
|
+
Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
|
|
4123
4256
|
}
|
|
4124
4257
|
if (!this.pristine) {
|
|
4125
4258
|
this.checkEOF();
|
|
@@ -4131,14 +4264,14 @@ var Buffer = /** @class */ (function () {
|
|
|
4131
4264
|
Buffer.prototype.checkBOF = function () {
|
|
4132
4265
|
// since bof has no setter, need to call checkBOF() on items and absMinIndex change
|
|
4133
4266
|
var bof = this.items.length
|
|
4134
|
-
?
|
|
4267
|
+
? this.items[0].$index === this.absMinIndex
|
|
4135
4268
|
: isFinite(this.absMinIndex);
|
|
4136
4269
|
this.bof.set(bof);
|
|
4137
4270
|
};
|
|
4138
4271
|
Buffer.prototype.checkEOF = function () {
|
|
4139
4272
|
// since eof has no setter, need to call checkEOF() on items and absMaxIndex change
|
|
4140
4273
|
var eof = this.items.length
|
|
4141
|
-
?
|
|
4274
|
+
? this.items[this.items.length - 1].$index === this.absMaxIndex
|
|
4142
4275
|
: isFinite(this.absMaxIndex);
|
|
4143
4276
|
this.eof.set(eof);
|
|
4144
4277
|
};
|
|
@@ -4271,9 +4404,9 @@ var Buffer = /** @class */ (function () {
|
|
|
4271
4404
|
var shifted = false;
|
|
4272
4405
|
var _loop_1 = function (i) {
|
|
4273
4406
|
var item = this_1.items[i];
|
|
4274
|
-
var diff = indexes.reduce(function (acc, index) {
|
|
4275
|
-
? (item.$index < index ? 1 : 0)
|
|
4276
|
-
|
|
4407
|
+
var diff = indexes.reduce(function (acc, index) {
|
|
4408
|
+
return acc + (fixRight ? (item.$index < index ? 1 : 0) : item.$index > index ? -1 : 0);
|
|
4409
|
+
}, 0);
|
|
4277
4410
|
shifted = shifted || !!diff;
|
|
4278
4411
|
item.updateIndex(item.$index + diff);
|
|
4279
4412
|
};
|
|
@@ -4293,10 +4426,8 @@ var Buffer = /** @class */ (function () {
|
|
|
4293
4426
|
}
|
|
4294
4427
|
var before = Number.isInteger(beforeIndex);
|
|
4295
4428
|
var index = (before ? beforeIndex : afterIndex);
|
|
4296
|
-
var shift =
|
|
4297
|
-
this.items = items.map(function (data, i) {
|
|
4298
|
-
return generator(index + i + (!before ? 1 : 0) - shift, data);
|
|
4299
|
-
});
|
|
4429
|
+
var shift = fixRight ? items.length : before ? 1 : 0;
|
|
4430
|
+
this.items = items.map(function (data, i) { return generator(index + i + (!before ? 1 : 0) - shift, data); });
|
|
4300
4431
|
this._absMinIndex = this.items[0].$index;
|
|
4301
4432
|
this._absMaxIndex = this.items[this.size - 1].$index;
|
|
4302
4433
|
if (this.startIndex <= this.absMinIndex) {
|
|
@@ -4325,7 +4456,7 @@ var Buffer = /** @class */ (function () {
|
|
|
4325
4456
|
// if predicate result is falsy or empty array -> delete
|
|
4326
4457
|
if (!result || (Array.isArray(result) && !result.length)) {
|
|
4327
4458
|
item.toRemove = true;
|
|
4328
|
-
trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) :
|
|
4459
|
+
trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : fixRight ? 0 : -1;
|
|
4329
4460
|
this_2.shiftExtremum(-1, fixRight);
|
|
4330
4461
|
return "continue";
|
|
4331
4462
|
}
|
|
@@ -4421,8 +4552,9 @@ var Buffer = /** @class */ (function () {
|
|
|
4421
4552
|
return index >= 0 ? this.items[index] : void 0;
|
|
4422
4553
|
};
|
|
4423
4554
|
Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {
|
|
4424
|
-
return direction === (!opposite ? Direction.forward : Direction.backward)
|
|
4425
|
-
this.getLastVisibleItem()
|
|
4555
|
+
return direction === (!opposite ? Direction.forward : Direction.backward)
|
|
4556
|
+
? this.getLastVisibleItem()
|
|
4557
|
+
: this.getFirstVisibleItem();
|
|
4426
4558
|
};
|
|
4427
4559
|
Buffer.prototype.getVisibleItemsCount = function () {
|
|
4428
4560
|
return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);
|
|
@@ -4597,7 +4729,7 @@ var FetchModel = /** @class */ (function () {
|
|
|
4597
4729
|
});
|
|
4598
4730
|
Object.defineProperty(FetchModel.prototype, "hasNewItems", {
|
|
4599
4731
|
get: function () {
|
|
4600
|
-
return !!(
|
|
4732
|
+
return !!(this._newItemsData && this._newItemsData.length);
|
|
4601
4733
|
},
|
|
4602
4734
|
enumerable: false,
|
|
4603
4735
|
configurable: true
|
|
@@ -4611,7 +4743,9 @@ var FetchModel = /** @class */ (function () {
|
|
|
4611
4743
|
});
|
|
4612
4744
|
Object.defineProperty(FetchModel.prototype, "count", {
|
|
4613
4745
|
get: function () {
|
|
4614
|
-
return !isNaN(this.first.index) && !isNaN(this.last.index)
|
|
4746
|
+
return !isNaN(this.first.index) && !isNaN(this.last.index)
|
|
4747
|
+
? this.last.index - this.first.index + 1
|
|
4748
|
+
: 0;
|
|
4615
4749
|
},
|
|
4616
4750
|
enumerable: false,
|
|
4617
4751
|
configurable: true
|
|
@@ -4765,10 +4899,12 @@ var State = /** @class */ (function () {
|
|
|
4765
4899
|
}
|
|
4766
4900
|
clip.reset(clip.force);
|
|
4767
4901
|
render.reset();
|
|
4768
|
-
return __assign({}, (cycle.innerLoop.first
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4902
|
+
return __assign({}, (cycle.innerLoop.first
|
|
4903
|
+
? {
|
|
4904
|
+
process: cycle.initiator,
|
|
4905
|
+
doRender: fetch.simulate && fetch.items.length > 0
|
|
4906
|
+
}
|
|
4907
|
+
: {}));
|
|
4772
4908
|
};
|
|
4773
4909
|
State.prototype.endInnerLoop = function () {
|
|
4774
4910
|
var _a = this, fetch = _a.fetch, clip = _a.clip, render = _a.render, cycle = _a.cycle;
|
|
@@ -4819,7 +4955,6 @@ var Adapter = /** @class */ (function () {
|
|
|
4819
4955
|
this.source = {}; // for Reactive props
|
|
4820
4956
|
this.box = {}; // for Scalars over Reactive props
|
|
4821
4957
|
this.demand = {}; // for Scalars on demand
|
|
4822
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4823
4958
|
this.setFirstOrLastVisible = function (_) { };
|
|
4824
4959
|
this.getWorkflow = getWorkflow;
|
|
4825
4960
|
this.logger = logger;
|
|
@@ -4828,7 +4963,7 @@ var Adapter = /** @class */ (function () {
|
|
|
4828
4963
|
this.reloadCounter = 0;
|
|
4829
4964
|
var contextId = (context === null || context === void 0 ? void 0 : context.id) || -1;
|
|
4830
4965
|
// public context (if exists) should provide access to Reactive props config by id
|
|
4831
|
-
var reactivePropsStore = context && reactiveConfigStorage.get(context.id) || {};
|
|
4966
|
+
var reactivePropsStore = (context && reactiveConfigStorage.get(context.id)) || {};
|
|
4832
4967
|
// the Adapter initialization should not trigger "wanted" props setting;
|
|
4833
4968
|
// after the initialization is completed, "wanted" functionality must be unblocked
|
|
4834
4969
|
wantedUtils.setBlock(true, contextId);
|
|
@@ -4843,7 +4978,7 @@ var Adapter = /** @class */ (function () {
|
|
|
4843
4978
|
value = reactiveProp.default; // boolean doesn't matter here
|
|
4844
4979
|
}
|
|
4845
4980
|
}
|
|
4846
|
-
return
|
|
4981
|
+
return __assign(__assign({}, prop), { value: value });
|
|
4847
4982
|
})
|
|
4848
4983
|
: getDefaultAdapterProps();
|
|
4849
4984
|
// restore default reactive props if they were configured
|
|
@@ -4886,10 +5021,12 @@ var Adapter = /** @class */ (function () {
|
|
|
4886
5021
|
// so this method should be called when accessing the "wanted" props through one of the following getters
|
|
4887
5022
|
var processWanted = function (prop) {
|
|
4888
5023
|
if (wantedUtils.setBox(prop, contextId)) {
|
|
4889
|
-
|
|
5024
|
+
var firstPropList = [AdapterPropName.firstVisible, AdapterPropName.firstVisible$];
|
|
5025
|
+
var lastPropList = [AdapterPropName.lastVisible, AdapterPropName.lastVisible$];
|
|
5026
|
+
if (firstPropList.some(function (n) { return n === prop.name; })) {
|
|
4890
5027
|
_this.setFirstOrLastVisible({ first: true });
|
|
4891
5028
|
}
|
|
4892
|
-
else if (
|
|
5029
|
+
else if (lastPropList.some(function (n) { return n === prop.name; })) {
|
|
4893
5030
|
_this.setFirstOrLastVisible({ last: true });
|
|
4894
5031
|
}
|
|
4895
5032
|
}
|
|
@@ -4939,8 +5076,7 @@ var Adapter = /** @class */ (function () {
|
|
|
4939
5076
|
return;
|
|
4940
5077
|
}
|
|
4941
5078
|
// Adapter public context augmentation
|
|
4942
|
-
adapterProps
|
|
4943
|
-
.forEach(function (prop) {
|
|
5079
|
+
adapterProps.forEach(function (prop) {
|
|
4944
5080
|
var name = prop.name, type = prop.type, permanent = prop.permanent;
|
|
4945
5081
|
var value = _this[name];
|
|
4946
5082
|
if (type === AdapterPropType.Function) {
|
|
@@ -5034,23 +5170,23 @@ var Adapter = /** @class */ (function () {
|
|
|
5034
5170
|
maxIndex: buffer.maxIndex,
|
|
5035
5171
|
absMinIndex: buffer.absMinIndex,
|
|
5036
5172
|
absMaxIndex: buffer.absMaxIndex,
|
|
5037
|
-
defaultSize: buffer.defaultSize
|
|
5173
|
+
defaultSize: buffer.defaultSize
|
|
5038
5174
|
}); }
|
|
5039
5175
|
});
|
|
5040
5176
|
this.bof = buffer.bof.get();
|
|
5041
|
-
buffer.bof.on(function (bof) { return _this.bof = bof; });
|
|
5177
|
+
buffer.bof.on(function (bof) { return (_this.bof = bof); });
|
|
5042
5178
|
this.eof = buffer.eof.get();
|
|
5043
|
-
buffer.eof.on(function (eof) { return _this.eof = eof; });
|
|
5179
|
+
buffer.eof.on(function (eof) { return (_this.eof = eof); });
|
|
5044
5180
|
// state
|
|
5045
5181
|
Object.defineProperty(this.demand, AdapterPropName.packageInfo, {
|
|
5046
5182
|
get: function () { return state.packageInfo; }
|
|
5047
5183
|
});
|
|
5048
5184
|
this.loopPending = state.cycle.innerLoop.busy.get();
|
|
5049
|
-
state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });
|
|
5185
|
+
state.cycle.innerLoop.busy.on(function (busy) { return (_this.loopPending = busy); });
|
|
5050
5186
|
this.isLoading = state.cycle.busy.get();
|
|
5051
|
-
state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });
|
|
5187
|
+
state.cycle.busy.on(function (busy) { return (_this.isLoading = busy); });
|
|
5052
5188
|
this.paused = state.paused.get();
|
|
5053
|
-
state.paused.on(function (paused) { return _this.paused = paused; });
|
|
5189
|
+
state.paused.on(function (paused) { return (_this.paused = paused); });
|
|
5054
5190
|
//viewport
|
|
5055
5191
|
this.setFirstOrLastVisible = function (_a) {
|
|
5056
5192
|
var _b, _c, _d;
|
|
@@ -5128,8 +5264,7 @@ var Adapter = /** @class */ (function () {
|
|
|
5128
5264
|
var _this = this;
|
|
5129
5265
|
var _a;
|
|
5130
5266
|
var reactiveStore = reactiveConfigStorage.get((_a = this.externalContext) === null || _a === void 0 ? void 0 : _a.id);
|
|
5131
|
-
ADAPTER_PROPS_STUB
|
|
5132
|
-
.forEach(function (_a) {
|
|
5267
|
+
ADAPTER_PROPS_STUB.forEach(function (_a) {
|
|
5133
5268
|
var type = _a.type, permanent = _a.permanent, name = _a.name, value = _a.value;
|
|
5134
5269
|
// assign initial values to non-reactive non-permanent props
|
|
5135
5270
|
if (type !== AdapterPropType.Reactive && !permanent) {
|
|
@@ -5270,7 +5405,9 @@ var Adapter = /** @class */ (function () {
|
|
|
5270
5405
|
};
|
|
5271
5406
|
Adapter.prototype.relaxUnchained = function (callback, reloadId) {
|
|
5272
5407
|
var _this = this;
|
|
5273
|
-
var runCallback = function () {
|
|
5408
|
+
var runCallback = function () {
|
|
5409
|
+
return typeof callback === 'function' && reloadId === _this.reloadId && callback();
|
|
5410
|
+
};
|
|
5274
5411
|
if (!this.isLoading) {
|
|
5275
5412
|
runCallback();
|
|
5276
5413
|
}
|
|
@@ -5293,7 +5430,9 @@ var Adapter = /** @class */ (function () {
|
|
|
5293
5430
|
};
|
|
5294
5431
|
}
|
|
5295
5432
|
var success = reloadId === _this.reloadId;
|
|
5296
|
-
(_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
|
|
5433
|
+
(_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
|
|
5434
|
+
return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0;
|
|
5435
|
+
});
|
|
5297
5436
|
return {
|
|
5298
5437
|
immediate: immediate,
|
|
5299
5438
|
success: success,
|
|
@@ -5308,12 +5447,12 @@ var Adapter = /** @class */ (function () {
|
|
|
5308
5447
|
if (!this.init) {
|
|
5309
5448
|
return Promise.resolve(methodPreResult);
|
|
5310
5449
|
}
|
|
5311
|
-
return this.relaxRun = this.relaxRun
|
|
5450
|
+
return (this.relaxRun = this.relaxRun
|
|
5312
5451
|
? this.relaxRun.then(function () { return _this.relaxUnchained(callback, reloadId); })
|
|
5313
5452
|
: this.relaxUnchained(callback, reloadId).then(function (result) {
|
|
5314
5453
|
_this.relaxRun = null;
|
|
5315
5454
|
return result;
|
|
5316
|
-
});
|
|
5455
|
+
}));
|
|
5317
5456
|
};
|
|
5318
5457
|
Adapter.prototype.showLog = function () {
|
|
5319
5458
|
this.logger.logAdapterMethod('showLog');
|
|
@@ -5347,7 +5486,8 @@ var Scroller = /** @class */ (function () {
|
|
|
5347
5486
|
Object.getOwnPropertyNames(CustomRoutines.prototype)
|
|
5348
5487
|
.filter(function (method) { return method !== 'constructor'; })
|
|
5349
5488
|
.forEach(function (method) {
|
|
5350
|
-
return __Routines_1.prototype[method] =
|
|
5489
|
+
return (__Routines_1.prototype[method] =
|
|
5490
|
+
CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method]);
|
|
5351
5491
|
});
|
|
5352
5492
|
CustomRoutines = __Routines_1;
|
|
5353
5493
|
}
|
|
@@ -5363,7 +5503,8 @@ var Scroller = /** @class */ (function () {
|
|
|
5363
5503
|
}
|
|
5364
5504
|
Scroller.prototype.initDatasource = function (datasource, scroller) {
|
|
5365
5505
|
var _this = this;
|
|
5366
|
-
if (scroller) {
|
|
5506
|
+
if (scroller) {
|
|
5507
|
+
// scroller re-instantiating case
|
|
5367
5508
|
this.datasource = datasource;
|
|
5368
5509
|
this.adapter = scroller.adapter;
|
|
5369
5510
|
// todo: what about (this.settings.adapter !== scroller.setting.adapter) case?
|
|
@@ -5372,10 +5513,12 @@ var Scroller = /** @class */ (function () {
|
|
|
5372
5513
|
// scroller is being instantiated for the first time
|
|
5373
5514
|
var constructed = datasource instanceof DatasourceGeneric;
|
|
5374
5515
|
var mockAdapter = !constructed && !this.settings.adapter;
|
|
5375
|
-
if (constructed) {
|
|
5516
|
+
if (constructed) {
|
|
5517
|
+
// datasource is already instantiated
|
|
5376
5518
|
this.datasource = datasource;
|
|
5377
5519
|
}
|
|
5378
|
-
else {
|
|
5520
|
+
else {
|
|
5521
|
+
// datasource as POJO
|
|
5379
5522
|
var DS = makeDatasource(function () { return ({ mock: mockAdapter }); });
|
|
5380
5523
|
this.datasource = new DS(datasource);
|
|
5381
5524
|
if (this.settings.adapter) {
|
|
@@ -5400,14 +5543,14 @@ var Scroller = /** @class */ (function () {
|
|
|
5400
5543
|
};
|
|
5401
5544
|
Scroller.prototype.dispose = function (forever) {
|
|
5402
5545
|
this.logger.log(function () { return 'disposing scroller' + (forever ? ' (forever)' : ''); });
|
|
5403
|
-
if (forever) {
|
|
5546
|
+
if (forever) {
|
|
5547
|
+
// Adapter is not re-instantiated on reset
|
|
5404
5548
|
this.adapter.dispose();
|
|
5405
5549
|
}
|
|
5406
5550
|
this.buffer.dispose();
|
|
5407
5551
|
this.state.dispose();
|
|
5408
5552
|
};
|
|
5409
|
-
Scroller.prototype.finalize = function () {
|
|
5410
|
-
};
|
|
5553
|
+
Scroller.prototype.finalize = function () { };
|
|
5411
5554
|
return Scroller;
|
|
5412
5555
|
}());
|
|
5413
5556
|
|
|
@@ -5423,7 +5566,8 @@ var runStateMachine = function (_a) {
|
|
|
5423
5566
|
var options = payload.options;
|
|
5424
5567
|
switch (process) {
|
|
5425
5568
|
case CommonProcess.init:
|
|
5426
|
-
if (status === ProcessStatus.start) {
|
|
5569
|
+
if (status === ProcessStatus.start) {
|
|
5570
|
+
// App start
|
|
5427
5571
|
run(Init)(process);
|
|
5428
5572
|
}
|
|
5429
5573
|
if (status === ProcessStatus.next) {
|
|
@@ -5643,6 +5787,7 @@ var Workflow = /** @class */ (function () {
|
|
|
5643
5787
|
this.initTimer = null;
|
|
5644
5788
|
this.adapterRun$ = new Reactive();
|
|
5645
5789
|
this.cyclesDone = 0;
|
|
5790
|
+
this.cyclesDone$ = new Reactive(0);
|
|
5646
5791
|
this.interruptionCount = 0;
|
|
5647
5792
|
this.errors = [];
|
|
5648
5793
|
this.offScroll = function () { return null; };
|
|
@@ -5675,11 +5820,13 @@ var Workflow = /** @class */ (function () {
|
|
|
5675
5820
|
this.scroller.init(this.adapterRun$);
|
|
5676
5821
|
// set up scroll event listener
|
|
5677
5822
|
var routines = this.scroller.routines;
|
|
5678
|
-
var onScrollHandler = function (event) {
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5823
|
+
var onScrollHandler = function (event) {
|
|
5824
|
+
return _this.callWorkflow({
|
|
5825
|
+
process: CommonProcess.scroll,
|
|
5826
|
+
status: ProcessStatus.start,
|
|
5827
|
+
payload: { event: event }
|
|
5828
|
+
});
|
|
5829
|
+
};
|
|
5683
5830
|
this.offScroll = routines.onScroll(onScrollHandler);
|
|
5684
5831
|
// run the Workflow
|
|
5685
5832
|
this.isInitialized = true;
|
|
@@ -5711,18 +5858,19 @@ var Workflow = /** @class */ (function () {
|
|
|
5711
5858
|
Workflow.prototype.getUpdater = function () {
|
|
5712
5859
|
return {
|
|
5713
5860
|
call: this.callWorkflow.bind(this),
|
|
5714
|
-
onDataChanged: this.changeItems.bind(this)
|
|
5861
|
+
onDataChanged: this.changeItems.bind(this)
|
|
5715
5862
|
};
|
|
5716
5863
|
};
|
|
5717
5864
|
Workflow.prototype.process = function (data) {
|
|
5865
|
+
var _this = this;
|
|
5718
5866
|
var status = data.status, process = data.process, payload = data.payload;
|
|
5719
5867
|
if (this.scroller.settings.logProcessRun) {
|
|
5720
|
-
this.scroller.logger.log(function () {
|
|
5721
|
-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
"\"".concat(status, "\"")
|
|
5725
|
-
|
|
5868
|
+
this.scroller.logger.log(function () {
|
|
5869
|
+
var _fire = _this.scroller.settings.logColor
|
|
5870
|
+
? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']
|
|
5871
|
+
: ['fire'];
|
|
5872
|
+
return __spreadArray(__spreadArray(__spreadArray([], __read(_fire), false), [process, "\"".concat(status, "\"")], false), __read((payload !== void 0 ? [payload] : [])), false);
|
|
5873
|
+
});
|
|
5726
5874
|
}
|
|
5727
5875
|
this.scroller.logger.logProcess(data);
|
|
5728
5876
|
if (process === CommonProcess.end) {
|
|
@@ -5743,18 +5891,19 @@ var Workflow = /** @class */ (function () {
|
|
|
5743
5891
|
args[_i] = arguments[_i];
|
|
5744
5892
|
}
|
|
5745
5893
|
if (_this.scroller.settings.logProcessRun) {
|
|
5746
|
-
_this.scroller.logger.log(function () {
|
|
5747
|
-
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
|
|
5894
|
+
_this.scroller.logger.log(function () {
|
|
5895
|
+
var _run = _this.scroller.settings.logColor
|
|
5896
|
+
? ['%crun%c', 'color: #333399;', 'color: #000000;']
|
|
5897
|
+
: ['run'];
|
|
5898
|
+
return __spreadArray(__spreadArray(__spreadArray([], __read(_run), false), [process || name], false), __read(args), false);
|
|
5899
|
+
});
|
|
5751
5900
|
}
|
|
5752
5901
|
run.apply(void 0, __spreadArray([_this.scroller], __read(args), false));
|
|
5753
5902
|
};
|
|
5754
5903
|
};
|
|
5755
5904
|
};
|
|
5756
5905
|
Workflow.prototype.onError = function (process, payload) {
|
|
5757
|
-
var message = payload && String(payload.error) || '';
|
|
5906
|
+
var message = (payload && String(payload.error)) || '';
|
|
5758
5907
|
var _a = this.scroller.state, time = _a.time, cycle = _a.cycle;
|
|
5759
5908
|
this.errors.push({
|
|
5760
5909
|
process: process,
|
|
@@ -5771,15 +5920,14 @@ var Workflow = /** @class */ (function () {
|
|
|
5771
5920
|
var _b = this.scroller, workflow = _b.workflow, logger_1 = _b.logger;
|
|
5772
5921
|
// we are going to create a new reference for the scroller.workflow object
|
|
5773
5922
|
// calling the old version of the scroller.workflow by any outstanding async processes will be skipped
|
|
5774
|
-
workflow.call = function (_) {
|
|
5775
|
-
return logger_1.log('[skip wf call]');
|
|
5776
|
-
};
|
|
5923
|
+
workflow.call = function (_) { return logger_1.log('[skip wf call]'); };
|
|
5777
5924
|
workflow.call.interrupted = true;
|
|
5778
5925
|
this.scroller.workflow = this.getUpdater();
|
|
5779
5926
|
this.interruptionCount++;
|
|
5780
5927
|
logger_1.log(function () { return "workflow had been interrupted by the ".concat(process, " process (").concat(_this.interruptionCount, ")"); });
|
|
5781
5928
|
}
|
|
5782
|
-
if (datasource) {
|
|
5929
|
+
if (datasource) {
|
|
5930
|
+
// Scroller re-initialization case
|
|
5783
5931
|
var reInit = function () {
|
|
5784
5932
|
_this.scroller.logger.log('new Scroller instantiation');
|
|
5785
5933
|
var scroller = new Scroller({ datasource: datasource, scroller: _this.scroller });
|
|
@@ -5799,6 +5947,7 @@ var Workflow = /** @class */ (function () {
|
|
|
5799
5947
|
Workflow.prototype.done = function () {
|
|
5800
5948
|
var _a = this.scroller, state = _a.state, logger = _a.logger;
|
|
5801
5949
|
this.cyclesDone++;
|
|
5950
|
+
this.cyclesDone$.set(this.cyclesDone);
|
|
5802
5951
|
logger.logCycle(false);
|
|
5803
5952
|
state.endWorkflowCycle(this.cyclesDone + 1);
|
|
5804
5953
|
this.finalize();
|
|
@@ -5811,14 +5960,15 @@ var Workflow = /** @class */ (function () {
|
|
|
5811
5960
|
}
|
|
5812
5961
|
this.offScroll();
|
|
5813
5962
|
this.adapterRun$.dispose();
|
|
5963
|
+
this.cyclesDone$.dispose();
|
|
5814
5964
|
this.scroller.dispose(true);
|
|
5815
5965
|
Object.getOwnPropertyNames(this).forEach(function (prop) {
|
|
5816
5966
|
delete _this[prop];
|
|
5817
5967
|
});
|
|
5968
|
+
this.isInitialized = false;
|
|
5818
5969
|
this.disposed = true;
|
|
5819
5970
|
};
|
|
5820
|
-
Workflow.prototype.finalize = function () {
|
|
5821
|
-
};
|
|
5971
|
+
Workflow.prototype.finalize = function () { };
|
|
5822
5972
|
return Workflow;
|
|
5823
5973
|
}());
|
|
5824
5974
|
|