vscroll 1.7.0 → 1.8.1
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 +518 -368
- 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 +408 -260
- 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 +519 -369
- 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 +2 -2
- package/dist/esm2015/classes/adapter/props.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/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/fetch.js +4 -2
- package/dist/esm2015/classes/state/fetch.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/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/datasource.js.map +1 -1
- package/dist/esm2015/interfaces/index.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/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/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 +2 -2
- package/dist/esm5/classes/adapter/props.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/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/fetch.js +4 -2
- package/dist/esm5/classes/state/fetch.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/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/datasource.js.map +1 -1
- package/dist/esm5/interfaces/index.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/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/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 +3 -3
- 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 +10 -10
- 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 +23 -22
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vscroll (https://github.com/dhilt/vscroll) UMD
|
|
3
|
-
* Version: 1.
|
|
3
|
+
* Version: 1.8.1 (2026-02-07T22:49:12.100Z)
|
|
4
4
|
* Author: Denis Hilt
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
101
|
* vscroll (https://github.com/dhilt/vscroll) FESM5
|
|
102
|
-
* Version: 1.
|
|
102
|
+
* Version: 1.8.1 (2026-02-07T22:49:08.739Z)
|
|
103
103
|
* Author: Denis Hilt
|
|
104
104
|
* License: MIT
|
|
105
105
|
*/
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
maxIndex: NaN,
|
|
253
253
|
absMinIndex: -Infinity,
|
|
254
254
|
absMaxIndex: +Infinity,
|
|
255
|
-
defaultSize: NaN
|
|
255
|
+
defaultSize: NaN
|
|
256
256
|
};
|
|
257
257
|
var EMPTY_ITEM = {
|
|
258
258
|
data: {},
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
{
|
|
422
422
|
type: Type.Function,
|
|
423
423
|
name: Name.relax,
|
|
424
|
-
value:
|
|
424
|
+
value: noopWF
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
427
|
type: Type.Function,
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
|
|
476
476
|
var core = {
|
|
477
477
|
name: 'vscroll',
|
|
478
|
-
version: '1.
|
|
478
|
+
version: '1.8.1'
|
|
479
479
|
};
|
|
480
480
|
|
|
481
481
|
var getBox = function (id) {
|
|
@@ -546,13 +546,30 @@
|
|
|
546
546
|
return value;
|
|
547
547
|
} }, conf));
|
|
548
548
|
});
|
|
549
|
-
if (reactive) {
|
|
549
|
+
if (reactive) {
|
|
550
|
+
// save both configured and default reactive props in the store
|
|
550
551
|
reactiveConfigStorage.set(id, reactivePropsStore);
|
|
551
552
|
}
|
|
552
553
|
}
|
|
553
554
|
return AdapterContext;
|
|
554
555
|
}());
|
|
555
556
|
|
|
557
|
+
var getDefaultAdapterConfig = function () {
|
|
558
|
+
var reactive = getDefaultAdapterProps()
|
|
559
|
+
.filter(function (_a) {
|
|
560
|
+
var type = _a.type;
|
|
561
|
+
return type === AdapterPropType.Reactive;
|
|
562
|
+
})
|
|
563
|
+
.reduce(function (acc, _a) {
|
|
564
|
+
var name = _a.name, value = _a.value;
|
|
565
|
+
acc[name] = {
|
|
566
|
+
source: value,
|
|
567
|
+
emit: function (source, val) { return source.set(val); }
|
|
568
|
+
};
|
|
569
|
+
return acc;
|
|
570
|
+
}, {});
|
|
571
|
+
return { mock: false, reactive: reactive };
|
|
572
|
+
};
|
|
556
573
|
var DatasourceGeneric = /** @class */ (function () {
|
|
557
574
|
function DatasourceGeneric(datasource, config) {
|
|
558
575
|
this.get = datasource.get;
|
|
@@ -561,17 +578,18 @@
|
|
|
561
578
|
var adapterContext = new AdapterContext(config || { mock: false });
|
|
562
579
|
this.adapter = adapterContext;
|
|
563
580
|
}
|
|
581
|
+
// todo: should it be published?
|
|
564
582
|
DatasourceGeneric.prototype.dispose = function () {
|
|
565
583
|
reactiveConfigStorage.delete(this.adapter.id);
|
|
566
584
|
wantedStorage.delete(this.adapter.id);
|
|
567
585
|
};
|
|
568
586
|
return DatasourceGeneric;
|
|
569
587
|
}());
|
|
570
|
-
var makeDatasource = function (
|
|
588
|
+
var makeDatasource = function (getAdapterConfig) {
|
|
571
589
|
return /** @class */ (function (_super) {
|
|
572
590
|
__extends(class_1, _super);
|
|
573
591
|
function class_1(datasource) {
|
|
574
|
-
var config = typeof
|
|
592
|
+
var config = typeof getAdapterConfig === 'function' ? getAdapterConfig() : getDefaultAdapterConfig();
|
|
575
593
|
return _super.call(this, datasource, config) || this;
|
|
576
594
|
}
|
|
577
595
|
return class_1;
|
|
@@ -614,9 +632,7 @@
|
|
|
614
632
|
return (args || ['']).reduce(function (acc, arg, index) { return acc.replace("{arg".concat(index + 1, "}"), arg); }, msg);
|
|
615
633
|
};
|
|
616
634
|
var getNumber = function (value) {
|
|
617
|
-
return typeof value === 'number' || (typeof value === 'string' && value !== '')
|
|
618
|
-
? Number(value)
|
|
619
|
-
: NaN;
|
|
635
|
+
return typeof value === 'number' || (typeof value === 'string' && value !== '') ? Number(value) : NaN;
|
|
620
636
|
};
|
|
621
637
|
var onNumber = function (value) {
|
|
622
638
|
var parsedValue = getNumber(value);
|
|
@@ -650,23 +666,25 @@
|
|
|
650
666
|
}
|
|
651
667
|
return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
|
|
652
668
|
};
|
|
653
|
-
var onMoreOrEqual = function (limit, fallback) {
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
var parsedValue = result.value;
|
|
659
|
-
var errors = [];
|
|
660
|
-
if (parsedValue < limit) {
|
|
661
|
-
if (!fallback) {
|
|
662
|
-
errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
|
|
669
|
+
var onMoreOrEqual = function (limit, fallback) {
|
|
670
|
+
return function (value) {
|
|
671
|
+
var result = onNumber(value);
|
|
672
|
+
if (!result.isValid) {
|
|
673
|
+
return result;
|
|
663
674
|
}
|
|
664
|
-
|
|
665
|
-
|
|
675
|
+
var parsedValue = result.value;
|
|
676
|
+
var errors = [];
|
|
677
|
+
if (parsedValue < limit) {
|
|
678
|
+
if (!fallback) {
|
|
679
|
+
errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
parsedValue = limit;
|
|
683
|
+
}
|
|
666
684
|
}
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
};
|
|
685
|
+
return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };
|
|
686
|
+
};
|
|
687
|
+
};
|
|
670
688
|
var onBoolean = function (value) {
|
|
671
689
|
var errors = [];
|
|
672
690
|
var parsedValue = value;
|
|
@@ -735,75 +753,87 @@
|
|
|
735
753
|
}
|
|
736
754
|
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
737
755
|
}; };
|
|
738
|
-
var onFunctionWithXAndMoreArguments = function (argsCount) {
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
errors
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
756
|
+
var onFunctionWithXAndMoreArguments = function (argsCount) {
|
|
757
|
+
return function (value) {
|
|
758
|
+
var result = onFunction(value);
|
|
759
|
+
if (!result.isValid) {
|
|
760
|
+
return result;
|
|
761
|
+
}
|
|
762
|
+
value = result.value;
|
|
763
|
+
var errors = [];
|
|
764
|
+
if (value.length < argsCount) {
|
|
765
|
+
errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));
|
|
766
|
+
}
|
|
767
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
768
|
+
};
|
|
769
|
+
};
|
|
770
|
+
var onFunctionWithXToYArguments = function (from, to) {
|
|
771
|
+
return function (value) {
|
|
772
|
+
var result = onFunction(value);
|
|
773
|
+
if (!result.isValid) {
|
|
774
|
+
return result;
|
|
775
|
+
}
|
|
776
|
+
value = result.value;
|
|
777
|
+
var errors = [];
|
|
778
|
+
if (value.length < from || value.length > to) {
|
|
779
|
+
errors.push(getError(ValidatorType.funcOfXToYArguments, [String(from), String(to)]));
|
|
780
|
+
}
|
|
781
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
782
|
+
};
|
|
783
|
+
};
|
|
784
|
+
var onOneOf = function (tokens, must) {
|
|
785
|
+
return function (value, context) {
|
|
786
|
+
var errors = [];
|
|
787
|
+
var isSet = value !== void 0;
|
|
788
|
+
var noOneIsPresent = !isSet;
|
|
789
|
+
var err = must ? ValidatorType.oneOfMust : ValidatorType.oneOfCan;
|
|
790
|
+
if (!Array.isArray(tokens) || !tokens.length) {
|
|
791
|
+
errors.push(getError(err, ['undefined']));
|
|
792
|
+
}
|
|
793
|
+
else {
|
|
794
|
+
for (var i = tokens.length - 1; i >= 0; i--) {
|
|
795
|
+
var token = tokens[i];
|
|
796
|
+
if (typeof token !== 'string') {
|
|
797
|
+
errors.push(getError(err, [tokens.join('", "')]) + ' (non-string token)');
|
|
798
|
+
break;
|
|
799
|
+
}
|
|
800
|
+
var isAnotherPresent = context && Object.prototype.hasOwnProperty.call(context, token);
|
|
801
|
+
if (isSet && isAnotherPresent) {
|
|
802
|
+
errors.push(getError(err, [tokens.join('", "')]) + " (".concat(token, " is present)"));
|
|
803
|
+
break;
|
|
804
|
+
}
|
|
805
|
+
if (noOneIsPresent && isAnotherPresent) {
|
|
806
|
+
noOneIsPresent = false;
|
|
807
|
+
}
|
|
781
808
|
}
|
|
782
|
-
if (
|
|
783
|
-
|
|
809
|
+
if (must && noOneIsPresent) {
|
|
810
|
+
errors.push(getError(err, [tokens.join('", "')]));
|
|
784
811
|
}
|
|
785
812
|
}
|
|
786
|
-
|
|
787
|
-
|
|
813
|
+
return { value: value, isSet: isSet, isValid: !errors.length, errors: errors };
|
|
814
|
+
};
|
|
815
|
+
};
|
|
816
|
+
var onOr = function (validators) {
|
|
817
|
+
return function (value) {
|
|
818
|
+
var errors = [];
|
|
819
|
+
if (validators.every(function (validator) { return !validator.method(value).isValid; })) {
|
|
820
|
+
errors.push(validators.map(function (v) { return v.type; }).join(' OR '));
|
|
788
821
|
}
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
};
|
|
792
|
-
var
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
}
|
|
805
|
-
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
806
|
-
}; };
|
|
822
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
823
|
+
};
|
|
824
|
+
};
|
|
825
|
+
var onEnum = function (list) {
|
|
826
|
+
return function (value) {
|
|
827
|
+
var errors = [];
|
|
828
|
+
var values = Object.keys(list)
|
|
829
|
+
.filter(function (k) { return isNaN(Number(k)); })
|
|
830
|
+
.map(function (k) { return list[k]; });
|
|
831
|
+
if (!values.some(function (item) { return item === value; })) {
|
|
832
|
+
errors.push(getError(ValidatorType.enum, ['[' + values.join(',') + ']']));
|
|
833
|
+
}
|
|
834
|
+
return { value: value, isSet: true, isValid: !errors.length, errors: errors };
|
|
835
|
+
};
|
|
836
|
+
};
|
|
807
837
|
var VALIDATORS = {
|
|
808
838
|
NUMBER: {
|
|
809
839
|
type: ValidatorType.number,
|
|
@@ -902,17 +932,13 @@
|
|
|
902
932
|
if (!value.isValid) {
|
|
903
933
|
value.errors = !value.isSet
|
|
904
934
|
? ["\"".concat(token, "\" must be set")]
|
|
905
|
-
: value.errors.map(function (err) {
|
|
906
|
-
return "\"".concat(token, "\" ").concat(err);
|
|
907
|
-
});
|
|
935
|
+
: value.errors.map(function (err) { return "\"".concat(token, "\" ").concat(err); });
|
|
908
936
|
}
|
|
909
937
|
this.params[token] = value;
|
|
910
938
|
this.setValidity();
|
|
911
939
|
};
|
|
912
940
|
ValidatedData.prototype.showErrors = function () {
|
|
913
|
-
return this.errors.length
|
|
914
|
-
? 'validation failed: ' + this.errors.join(', ')
|
|
915
|
-
: '';
|
|
941
|
+
return this.errors.length ? 'validation failed: ' + this.errors.join(', ') : '';
|
|
916
942
|
};
|
|
917
943
|
return ValidatedData;
|
|
918
944
|
}());
|
|
@@ -931,7 +957,7 @@
|
|
|
931
957
|
var empty = value === void 0;
|
|
932
958
|
var auto = !prop.mandatory && prop.defaultValue !== void 0;
|
|
933
959
|
return {
|
|
934
|
-
value: !empty ? value :
|
|
960
|
+
value: !empty ? value : auto ? prop.defaultValue : void 0,
|
|
935
961
|
isSet: !empty || auto,
|
|
936
962
|
isValid: !empty || !prop.mandatory,
|
|
937
963
|
errors: []
|
|
@@ -976,9 +1002,7 @@
|
|
|
976
1002
|
var data = new ValidatedData(context);
|
|
977
1003
|
Object.entries(params).forEach(function (_a) {
|
|
978
1004
|
var _b = __read(_a, 2), key = _b[0], prop = _b[1];
|
|
979
|
-
return data.setParam(key, data.isValidContext
|
|
980
|
-
? validateOne(data.context, key, prop)
|
|
981
|
-
: getDefault(void 0, prop));
|
|
1005
|
+
return data.setParam(key, data.isValidContext ? validateOne(data.context, key, prop) : getDefault(void 0, prop));
|
|
982
1006
|
});
|
|
983
1007
|
return data;
|
|
984
1008
|
};
|
|
@@ -1029,6 +1053,7 @@
|
|
|
1029
1053
|
DevSettings["immediateLog"] = "immediateLog";
|
|
1030
1054
|
DevSettings["logProcessRun"] = "logProcessRun";
|
|
1031
1055
|
DevSettings["logTime"] = "logTime";
|
|
1056
|
+
DevSettings["logColor"] = "logColor";
|
|
1032
1057
|
DevSettings["throttle"] = "throttle";
|
|
1033
1058
|
DevSettings["initDelay"] = "initDelay";
|
|
1034
1059
|
DevSettings["initWindowDelay"] = "initWindowDelay";
|
|
@@ -1120,6 +1145,10 @@
|
|
|
1120
1145
|
validators: [BOOLEAN$1],
|
|
1121
1146
|
defaultValue: false
|
|
1122
1147
|
},
|
|
1148
|
+
_c$1[DevSettings.logColor] = {
|
|
1149
|
+
validators: [BOOLEAN$1],
|
|
1150
|
+
defaultValue: true
|
|
1151
|
+
},
|
|
1123
1152
|
_c$1[DevSettings.throttle] = {
|
|
1124
1153
|
validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.throttle], true)],
|
|
1125
1154
|
defaultValue: 40
|
|
@@ -1311,24 +1340,44 @@
|
|
|
1311
1340
|
mandatory: true
|
|
1312
1341
|
},
|
|
1313
1342
|
_g[AdapterInsertParams.before] = {
|
|
1314
|
-
validators: [
|
|
1315
|
-
|
|
1316
|
-
|
|
1343
|
+
validators: [
|
|
1344
|
+
FUNC_WITH_X_ARGUMENTS$1(1),
|
|
1345
|
+
ONE_OF_MUST([
|
|
1346
|
+
AdapterInsertParams.after,
|
|
1347
|
+
AdapterInsertParams.beforeIndex,
|
|
1348
|
+
AdapterInsertParams.afterIndex
|
|
1349
|
+
])
|
|
1350
|
+
]
|
|
1317
1351
|
},
|
|
1318
1352
|
_g[AdapterInsertParams.after] = {
|
|
1319
|
-
validators: [
|
|
1320
|
-
|
|
1321
|
-
|
|
1353
|
+
validators: [
|
|
1354
|
+
FUNC_WITH_X_ARGUMENTS$1(1),
|
|
1355
|
+
ONE_OF_MUST([
|
|
1356
|
+
AdapterInsertParams.before,
|
|
1357
|
+
AdapterInsertParams.beforeIndex,
|
|
1358
|
+
AdapterInsertParams.afterIndex
|
|
1359
|
+
])
|
|
1360
|
+
]
|
|
1322
1361
|
},
|
|
1323
1362
|
_g[AdapterInsertParams.beforeIndex] = {
|
|
1324
|
-
validators: [
|
|
1325
|
-
|
|
1326
|
-
|
|
1363
|
+
validators: [
|
|
1364
|
+
INTEGER,
|
|
1365
|
+
ONE_OF_MUST([
|
|
1366
|
+
AdapterInsertParams.before,
|
|
1367
|
+
AdapterInsertParams.after,
|
|
1368
|
+
AdapterInsertParams.afterIndex
|
|
1369
|
+
])
|
|
1370
|
+
]
|
|
1327
1371
|
},
|
|
1328
1372
|
_g[AdapterInsertParams.afterIndex] = {
|
|
1329
|
-
validators: [
|
|
1330
|
-
|
|
1331
|
-
|
|
1373
|
+
validators: [
|
|
1374
|
+
INTEGER,
|
|
1375
|
+
ONE_OF_MUST([
|
|
1376
|
+
AdapterInsertParams.before,
|
|
1377
|
+
AdapterInsertParams.after,
|
|
1378
|
+
AdapterInsertParams.beforeIndex
|
|
1379
|
+
])
|
|
1380
|
+
]
|
|
1332
1381
|
},
|
|
1333
1382
|
_g[AdapterInsertParams.decrease] = {
|
|
1334
1383
|
validators: [BOOLEAN],
|
|
@@ -1522,8 +1571,7 @@
|
|
|
1522
1571
|
data: validate(options, ADAPTER_METHODS[_process || process])
|
|
1523
1572
|
};
|
|
1524
1573
|
if (result.data.isValid) {
|
|
1525
|
-
result.params = Object.entries(result.data.params)
|
|
1526
|
-
.reduce(function (acc, _b) {
|
|
1574
|
+
result.params = Object.entries(result.data.params).reduce(function (acc, _b) {
|
|
1527
1575
|
var _c;
|
|
1528
1576
|
var _d = __read(_b, 2), key = _d[0], value = _d[1].value;
|
|
1529
1577
|
return (__assign(__assign({}, acc), (_c = {}, _c[key] = value, _c)));
|
|
@@ -1570,16 +1618,13 @@
|
|
|
1570
1618
|
function Scroll() {
|
|
1571
1619
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1572
1620
|
}
|
|
1573
|
-
|
|
1574
|
-
Scroll.run = function (scroller, payload) {
|
|
1621
|
+
Scroll.run = function (scroller, _payload) {
|
|
1575
1622
|
var workflow = scroller.workflow, viewport = scroller.viewport;
|
|
1576
1623
|
var position = viewport.scrollPosition;
|
|
1577
1624
|
if (Scroll.onSynthetic(scroller, position)) {
|
|
1578
1625
|
return;
|
|
1579
1626
|
}
|
|
1580
|
-
Scroll.onThrottle(scroller, position, function () {
|
|
1581
|
-
return Scroll.onScroll(scroller, workflow);
|
|
1582
|
-
});
|
|
1627
|
+
Scroll.onThrottle(scroller, position, function () { return Scroll.onScroll(scroller, workflow); });
|
|
1583
1628
|
};
|
|
1584
1629
|
Scroll.onSynthetic = function (scroller, position) {
|
|
1585
1630
|
var scroll = scroller.state.scroll;
|
|
@@ -1590,29 +1635,34 @@
|
|
|
1590
1635
|
}
|
|
1591
1636
|
if (!scroll.syntheticFulfill || synthPos === position) {
|
|
1592
1637
|
scroller.logger.log(function () { return [
|
|
1593
|
-
'skipping scroll',
|
|
1638
|
+
'skipping scroll',
|
|
1639
|
+
position,
|
|
1594
1640
|
"[".concat(scroll.syntheticFulfill ? '' : 'pre-', "synthetic]")
|
|
1595
1641
|
]; });
|
|
1596
1642
|
return true;
|
|
1597
1643
|
}
|
|
1598
1644
|
scroller.logger.log(function () { return [
|
|
1599
|
-
'synthetic scroll has been fulfilled:',
|
|
1645
|
+
'synthetic scroll has been fulfilled:',
|
|
1646
|
+
position,
|
|
1647
|
+
position < synthPos ? '<' : '>',
|
|
1648
|
+
synthPos
|
|
1600
1649
|
]; });
|
|
1601
1650
|
}
|
|
1602
1651
|
return false;
|
|
1603
1652
|
};
|
|
1604
1653
|
Scroll.onThrottle = function (scroller, position, done) {
|
|
1605
|
-
var
|
|
1654
|
+
var state = scroller.state, settings = scroller.settings, logger = scroller.logger;
|
|
1655
|
+
var scroll = state.scroll;
|
|
1606
1656
|
scroll.current = Scroll.getScrollEvent(position, scroll.previous);
|
|
1607
1657
|
var _a = scroll.current, direction = _a.direction, time = _a.time;
|
|
1608
1658
|
var timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;
|
|
1609
|
-
var delta = throttle - timeDiff;
|
|
1659
|
+
var delta = settings.throttle - timeDiff;
|
|
1610
1660
|
var shouldDelay = isFinite(delta) && delta > 0;
|
|
1611
1661
|
var alreadyDelayed = !!scroll.scrollTimer;
|
|
1612
1662
|
logger.log(function () { return [
|
|
1613
1663
|
direction === exports.Direction.backward ? '\u2934' : '\u2935',
|
|
1614
1664
|
position,
|
|
1615
|
-
shouldDelay ?
|
|
1665
|
+
shouldDelay ? timeDiff + 'ms' : '0ms',
|
|
1616
1666
|
shouldDelay ? (alreadyDelayed ? 'delayed' : "/ ".concat(delta, "ms delay")) : ''
|
|
1617
1667
|
]; });
|
|
1618
1668
|
if (!shouldDelay) {
|
|
@@ -1630,7 +1680,7 @@
|
|
|
1630
1680
|
return [
|
|
1631
1681
|
curr.direction === exports.Direction.backward ? '\u2934' : '\u2935',
|
|
1632
1682
|
curr.position,
|
|
1633
|
-
|
|
1683
|
+
curr.time - time + 'ms',
|
|
1634
1684
|
'triggered by timer set on',
|
|
1635
1685
|
position
|
|
1636
1686
|
];
|
|
@@ -1658,7 +1708,11 @@
|
|
|
1658
1708
|
scroll.previous = __assign({}, scroll.current);
|
|
1659
1709
|
scroll.current = null;
|
|
1660
1710
|
if (cycle.busy.get()) {
|
|
1661
|
-
scroller.logger.log(function () { return [
|
|
1711
|
+
scroller.logger.log(function () { return [
|
|
1712
|
+
'skipping scroll',
|
|
1713
|
+
scroll.previous.position,
|
|
1714
|
+
'[pending]'
|
|
1715
|
+
]; });
|
|
1662
1716
|
return;
|
|
1663
1717
|
}
|
|
1664
1718
|
workflow.call({
|
|
@@ -1675,7 +1729,7 @@
|
|
|
1675
1729
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1676
1730
|
}
|
|
1677
1731
|
Reset.run = function (scroller, options) {
|
|
1678
|
-
var datasource = scroller.datasource, buffer = scroller.buffer,
|
|
1732
|
+
var datasource = scroller.datasource, buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
|
|
1679
1733
|
if (options) {
|
|
1680
1734
|
var data_1 = Reset.parseInput(scroller, options).data;
|
|
1681
1735
|
if (!data_1.isValid) {
|
|
@@ -1691,12 +1745,12 @@
|
|
|
1691
1745
|
});
|
|
1692
1746
|
}
|
|
1693
1747
|
buffer.reset(true);
|
|
1694
|
-
paddings.backward.reset();
|
|
1695
|
-
paddings.forward.reset();
|
|
1748
|
+
viewport.paddings.backward.reset();
|
|
1749
|
+
viewport.paddings.forward.reset();
|
|
1696
1750
|
var payload = { datasource: datasource };
|
|
1697
|
-
if (cycle.busy.get()) {
|
|
1751
|
+
if (state.cycle.busy.get()) {
|
|
1698
1752
|
payload.finalize = true;
|
|
1699
|
-
cycle.interrupter = Reset.process;
|
|
1753
|
+
state.cycle.interrupter = Reset.process;
|
|
1700
1754
|
}
|
|
1701
1755
|
scroller.workflow.call({
|
|
1702
1756
|
process: Reset.process,
|
|
@@ -1824,7 +1878,7 @@
|
|
|
1824
1878
|
});
|
|
1825
1879
|
};
|
|
1826
1880
|
Update.doUpdate = function (scroller, params) {
|
|
1827
|
-
var buffer = scroller.buffer, viewport = scroller.viewport,
|
|
1881
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, routines = scroller.routines, logger = scroller.logger;
|
|
1828
1882
|
if (!buffer.items) {
|
|
1829
1883
|
logger.log(function () { return 'no items in Buffer'; });
|
|
1830
1884
|
return false;
|
|
@@ -1837,26 +1891,31 @@
|
|
|
1837
1891
|
delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;
|
|
1838
1892
|
}
|
|
1839
1893
|
toRemove.forEach(function (item) { return item.hide(); });
|
|
1840
|
-
logger.log(function () {
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1894
|
+
logger.log(function () {
|
|
1895
|
+
return toRemove.length
|
|
1896
|
+
? 'items to remove: [' + toRemove.map(function (_a) {
|
|
1897
|
+
var $index = _a.$index;
|
|
1898
|
+
return $index;
|
|
1899
|
+
}).join(',') + ']'
|
|
1900
|
+
: 'no items to remove';
|
|
1901
|
+
});
|
|
1902
|
+
if (toRemove.length) {
|
|
1903
|
+
// insertions will be processed on render
|
|
1847
1904
|
buffer.checkDefaultSize();
|
|
1848
1905
|
}
|
|
1849
1906
|
var toRender = buffer.items.filter(function (_a) {
|
|
1850
1907
|
var toInsert = _a.toInsert;
|
|
1851
1908
|
return toInsert;
|
|
1852
1909
|
});
|
|
1853
|
-
logger.log(function () {
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1910
|
+
logger.log(function () {
|
|
1911
|
+
return toRender.length
|
|
1912
|
+
? 'items to render: [' + toRender.map(function (_a) {
|
|
1913
|
+
var $index = _a.$index;
|
|
1914
|
+
return $index;
|
|
1915
|
+
}).join(',') + ']'
|
|
1916
|
+
: 'no items to render';
|
|
1917
|
+
});
|
|
1918
|
+
state.fetch.update(trackedIndex, delta, toRender, toRemove);
|
|
1860
1919
|
return !!toRemove.length || !!toRender.length;
|
|
1861
1920
|
};
|
|
1862
1921
|
return Update;
|
|
@@ -1889,7 +1948,7 @@
|
|
|
1889
1948
|
return true;
|
|
1890
1949
|
};
|
|
1891
1950
|
Insert.insertEmpty = function (scroller, params) {
|
|
1892
|
-
var buffer = scroller.buffer, routines = scroller.routines,
|
|
1951
|
+
var buffer = scroller.buffer, routines = scroller.routines, state = scroller.state;
|
|
1893
1952
|
if (buffer.size) {
|
|
1894
1953
|
return false;
|
|
1895
1954
|
}
|
|
@@ -1897,7 +1956,7 @@
|
|
|
1897
1956
|
if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
|
|
1898
1957
|
return false;
|
|
1899
1958
|
}
|
|
1900
|
-
fetch.fill(buffer.items, buffer.startIndex);
|
|
1959
|
+
state.fetch.fill(buffer.items, buffer.startIndex);
|
|
1901
1960
|
return true;
|
|
1902
1961
|
};
|
|
1903
1962
|
Insert.insertInBuffer = function (scroller, params) {
|
|
@@ -1921,12 +1980,13 @@
|
|
|
1921
1980
|
};
|
|
1922
1981
|
Insert.insertVirtually = function (scroller, params) {
|
|
1923
1982
|
var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1924
|
-
var buffer = scroller.buffer,
|
|
1983
|
+
var buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
|
|
1925
1984
|
var direction = Number.isInteger(beforeIndex) ? exports.Direction.backward : exports.Direction.forward;
|
|
1926
1985
|
var indexToInsert = (direction === exports.Direction.backward ? beforeIndex : afterIndex);
|
|
1927
1986
|
if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
|
|
1928
1987
|
return false;
|
|
1929
1988
|
}
|
|
1989
|
+
var fetch = state.fetch;
|
|
1930
1990
|
var _a = viewport.getEdgeVisibleItem(buffer.items, exports.Direction.backward), index = _a.index, diff = _a.diff;
|
|
1931
1991
|
fetch.firstVisible.index = index;
|
|
1932
1992
|
if (!isNaN(index)) {
|
|
@@ -1966,7 +2026,8 @@
|
|
|
1966
2026
|
items = __spreadArray([], __read(items), false).reverse();
|
|
1967
2027
|
}
|
|
1968
2028
|
else {
|
|
1969
|
-
afterIndex =
|
|
2029
|
+
afterIndex =
|
|
2030
|
+
(eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
|
|
1970
2031
|
}
|
|
1971
2032
|
return Insert.doInsert(scroller, {
|
|
1972
2033
|
items: items,
|
|
@@ -1985,7 +2046,7 @@
|
|
|
1985
2046
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1986
2047
|
}
|
|
1987
2048
|
Check.run = function (scroller) {
|
|
1988
|
-
var workflow = scroller.workflow, buffer = scroller.buffer,
|
|
2049
|
+
var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state, viewport = scroller.viewport;
|
|
1989
2050
|
var min = Infinity, max = -Infinity;
|
|
1990
2051
|
buffer.items.forEach(function (item) {
|
|
1991
2052
|
var size = item.size;
|
|
@@ -1997,14 +2058,15 @@
|
|
|
1997
2058
|
}
|
|
1998
2059
|
});
|
|
1999
2060
|
if (Number.isFinite(min)) {
|
|
2000
|
-
|
|
2001
|
-
|
|
2061
|
+
var fetch_1 = state.fetch;
|
|
2062
|
+
fetch_1.first.indexBuffer = buffer.firstIndex;
|
|
2063
|
+
fetch_1.last.indexBuffer = buffer.lastIndex;
|
|
2002
2064
|
var _a = viewport.getEdgeVisibleItem(buffer.items, exports.Direction.backward), firstIndex = _a.index, diff = _a.diff;
|
|
2003
|
-
|
|
2065
|
+
fetch_1.firstVisible.index = firstIndex;
|
|
2004
2066
|
if (!isNaN(firstIndex)) {
|
|
2005
|
-
|
|
2067
|
+
fetch_1.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;
|
|
2006
2068
|
}
|
|
2007
|
-
|
|
2069
|
+
fetch_1.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));
|
|
2008
2070
|
}
|
|
2009
2071
|
scroller.logger.stat('check');
|
|
2010
2072
|
workflow.call({
|
|
@@ -2045,9 +2107,7 @@
|
|
|
2045
2107
|
if (params.indexes && params.indexes.length) {
|
|
2046
2108
|
var diffLeft_1 = (params.increase ? 1 : 0) * removed.length;
|
|
2047
2109
|
var diffRight_1 = (params.increase ? 0 : -1) * removed.length;
|
|
2048
|
-
params.indexes = params.indexes.map(function (index) {
|
|
2049
|
-
return index + (index < removed[0] ? diffLeft_1 : diffRight_1);
|
|
2050
|
-
});
|
|
2110
|
+
params.indexes = params.indexes.map(function (index) { return index + (index < removed[0] ? diffLeft_1 : diffRight_1); });
|
|
2051
2111
|
}
|
|
2052
2112
|
}
|
|
2053
2113
|
var shouldVirtual = Remove.removeVirtualItems(scroller, params);
|
|
@@ -2063,12 +2123,9 @@
|
|
|
2063
2123
|
return [];
|
|
2064
2124
|
}
|
|
2065
2125
|
var newPredicate = function (item) {
|
|
2066
|
-
return (predicate && predicate(item)) ||
|
|
2067
|
-
(!!indexes && indexes.includes(item.$index));
|
|
2126
|
+
return (predicate && predicate(item)) || (!!indexes && indexes.includes(item.$index));
|
|
2068
2127
|
};
|
|
2069
|
-
var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) {
|
|
2070
|
-
return newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc;
|
|
2071
|
-
}, []);
|
|
2128
|
+
var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) { return (newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc); }, []);
|
|
2072
2129
|
var updateOptions = {
|
|
2073
2130
|
predicate: function (item) { return !newPredicate(item); },
|
|
2074
2131
|
fixRight: increase
|
|
@@ -2081,7 +2138,7 @@
|
|
|
2081
2138
|
if (!indexes || !indexes.length) {
|
|
2082
2139
|
return false;
|
|
2083
2140
|
}
|
|
2084
|
-
var buffer = scroller.buffer, viewport = scroller.viewport,
|
|
2141
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state;
|
|
2085
2142
|
// get items to remove
|
|
2086
2143
|
var finiteAbsMinIndex = buffer.finiteAbsMinIndex, firstIndex = buffer.firstIndex, finiteAbsMaxIndex = buffer.finiteAbsMaxIndex, lastIndex = buffer.lastIndex;
|
|
2087
2144
|
var toRemove = [];
|
|
@@ -2101,6 +2158,7 @@
|
|
|
2101
2158
|
return false;
|
|
2102
2159
|
}
|
|
2103
2160
|
// what should be shown after remove; Buffer removal has priority
|
|
2161
|
+
var fetch = state.fetch;
|
|
2104
2162
|
if (isNaN(fetch.firstVisible.index)) {
|
|
2105
2163
|
var _a = viewport.getEdgeVisibleItem(buffer.items, exports.Direction.backward), index = _a.index, diff = _a.diff;
|
|
2106
2164
|
fetch.firstVisible.index = index;
|
|
@@ -2120,7 +2178,12 @@
|
|
|
2120
2178
|
if (isNaN(firstVisible.index)) {
|
|
2121
2179
|
return;
|
|
2122
2180
|
}
|
|
2123
|
-
var shift = listToRemove.reduce(function (acc, index) {
|
|
2181
|
+
var shift = listToRemove.reduce(function (acc, index) {
|
|
2182
|
+
return acc +
|
|
2183
|
+
((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)
|
|
2184
|
+
? 1
|
|
2185
|
+
: 0);
|
|
2186
|
+
}, 0);
|
|
2124
2187
|
firstVisible.index = firstVisible.index + (increase ? shift : -shift);
|
|
2125
2188
|
};
|
|
2126
2189
|
return Remove;
|
|
@@ -2156,7 +2219,7 @@
|
|
|
2156
2219
|
var shouldReplace = Replace.doReplace(scroller, params);
|
|
2157
2220
|
scroller.workflow.call({
|
|
2158
2221
|
process: Replace.process,
|
|
2159
|
-
status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
|
|
2222
|
+
status: shouldReplace ? ProcessStatus.next : ProcessStatus.done
|
|
2160
2223
|
});
|
|
2161
2224
|
};
|
|
2162
2225
|
Replace.doReplace = function (scroller, params) {
|
|
@@ -2250,7 +2313,9 @@
|
|
|
2250
2313
|
case FixParams.scrollToItem:
|
|
2251
2314
|
if (methodData.params) {
|
|
2252
2315
|
var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];
|
|
2253
|
-
var options = scrollToItemOpt
|
|
2316
|
+
var options = scrollToItemOpt
|
|
2317
|
+
? scrollToItemOpt.value
|
|
2318
|
+
: void 0;
|
|
2254
2319
|
return Fix.scrollToItem(scroller, value, options);
|
|
2255
2320
|
}
|
|
2256
2321
|
return;
|
|
@@ -2282,7 +2347,7 @@
|
|
|
2282
2347
|
Fix.updateItems = function (_a, value) {
|
|
2283
2348
|
var buffer = _a.buffer, logger = _a.logger;
|
|
2284
2349
|
var updateReference = false;
|
|
2285
|
-
var updater = function () { return updateReference = true; };
|
|
2350
|
+
var updater = function () { return (updateReference = true); };
|
|
2286
2351
|
buffer.items.forEach(function (item) { return value(item.get(), updater); });
|
|
2287
2352
|
if (updateReference) {
|
|
2288
2353
|
logger.log(function () { return 'update Buffer.items reference'; });
|
|
@@ -2322,7 +2387,8 @@
|
|
|
2322
2387
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2323
2388
|
}
|
|
2324
2389
|
PreFetch.run = function (scroller) {
|
|
2325
|
-
var workflow = scroller.workflow, buffer = scroller.buffer,
|
|
2390
|
+
var workflow = scroller.workflow, buffer = scroller.buffer, state = scroller.state;
|
|
2391
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2326
2392
|
fetch.minIndex = buffer.minIndex;
|
|
2327
2393
|
// set first and last indexes of items to fetch
|
|
2328
2394
|
PreFetch.setPositionsAndIndexes(scroller);
|
|
@@ -2349,7 +2415,8 @@
|
|
|
2349
2415
|
scroller.logger.fetch();
|
|
2350
2416
|
};
|
|
2351
2417
|
PreFetch.setPositions = function (scroller) {
|
|
2352
|
-
var
|
|
2418
|
+
var state = scroller.state, viewport = scroller.viewport;
|
|
2419
|
+
var positions = state.fetch.positions;
|
|
2353
2420
|
var paddingDelta = viewport.getBufferPadding();
|
|
2354
2421
|
positions.before = viewport.scrollPosition;
|
|
2355
2422
|
positions.startDelta = PreFetch.getStartDelta(scroller);
|
|
@@ -2358,7 +2425,9 @@
|
|
|
2358
2425
|
positions.end = positions.relative + viewport.getSize() + paddingDelta;
|
|
2359
2426
|
};
|
|
2360
2427
|
PreFetch.getStartDelta = function (scroller) {
|
|
2361
|
-
|
|
2428
|
+
// calculate size before start index
|
|
2429
|
+
var buffer = scroller.buffer, viewport = scroller.viewport;
|
|
2430
|
+
var offset = viewport.offset;
|
|
2362
2431
|
var startDelta = 0;
|
|
2363
2432
|
if (offset) {
|
|
2364
2433
|
startDelta += offset;
|
|
@@ -2376,7 +2445,8 @@
|
|
|
2376
2445
|
};
|
|
2377
2446
|
PreFetch.setFirstIndex = function (scroller) {
|
|
2378
2447
|
var state = scroller.state, buffer = scroller.buffer;
|
|
2379
|
-
var _a = state.fetch,
|
|
2448
|
+
var _a = state.fetch, positions = _a.positions, first = _a.first;
|
|
2449
|
+
var start = positions.start;
|
|
2380
2450
|
var firstIndex = buffer.startIndex;
|
|
2381
2451
|
var firstIndexPosition = 0;
|
|
2382
2452
|
if (state.cycle.innerLoop.isInitial) {
|
|
@@ -2388,10 +2458,10 @@
|
|
|
2388
2458
|
else {
|
|
2389
2459
|
var position = firstIndexPosition;
|
|
2390
2460
|
var index = firstIndex;
|
|
2391
|
-
while (
|
|
2461
|
+
while (true) {
|
|
2392
2462
|
if (start >= 0) {
|
|
2393
2463
|
var size = buffer.getSizeByIndex(index);
|
|
2394
|
-
var diff =
|
|
2464
|
+
var diff = position + size - start;
|
|
2395
2465
|
if (diff > 0) {
|
|
2396
2466
|
firstIndex = index;
|
|
2397
2467
|
firstIndexPosition = position;
|
|
@@ -2422,8 +2492,10 @@
|
|
|
2422
2492
|
first.position = firstIndexPosition;
|
|
2423
2493
|
};
|
|
2424
2494
|
PreFetch.setLastIndex = function (scroller) {
|
|
2425
|
-
var
|
|
2426
|
-
var
|
|
2495
|
+
var state = scroller.state, buffer = scroller.buffer, settings = scroller.settings;
|
|
2496
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2497
|
+
var firstVisible = fetch.firstVisible, positions = fetch.positions, first = fetch.first, last = fetch.last;
|
|
2498
|
+
var relative = positions.relative, end = positions.end;
|
|
2427
2499
|
var lastIndex;
|
|
2428
2500
|
if (!buffer.defaultSize) {
|
|
2429
2501
|
// just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present
|
|
@@ -2434,7 +2506,7 @@
|
|
|
2434
2506
|
var index = first.indexBuffer;
|
|
2435
2507
|
var position = first.position;
|
|
2436
2508
|
lastIndex = index;
|
|
2437
|
-
while (
|
|
2509
|
+
while (true) {
|
|
2438
2510
|
lastIndex = index;
|
|
2439
2511
|
var size = buffer.getSizeByIndex(index);
|
|
2440
2512
|
position += size;
|
|
@@ -2488,7 +2560,8 @@
|
|
|
2488
2560
|
}
|
|
2489
2561
|
};
|
|
2490
2562
|
PreFetch.checkBufferGaps = function (scroller) {
|
|
2491
|
-
var buffer = scroller.buffer,
|
|
2563
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2564
|
+
var fetch = state.fetch;
|
|
2492
2565
|
if (!buffer.size) {
|
|
2493
2566
|
return;
|
|
2494
2567
|
}
|
|
@@ -2507,7 +2580,8 @@
|
|
|
2507
2580
|
}
|
|
2508
2581
|
};
|
|
2509
2582
|
PreFetch.checkFetchPackSize = function (scroller) {
|
|
2510
|
-
var buffer = scroller.buffer,
|
|
2583
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2584
|
+
var fetch = state.fetch;
|
|
2511
2585
|
if (!fetch.shouldFetch) {
|
|
2512
2586
|
return;
|
|
2513
2587
|
}
|
|
@@ -2517,7 +2591,8 @@
|
|
|
2517
2591
|
if (diff <= 0) {
|
|
2518
2592
|
return;
|
|
2519
2593
|
}
|
|
2520
|
-
if (!buffer.size || lastIndex > buffer.items[0].$index) {
|
|
2594
|
+
if (!buffer.size || lastIndex > buffer.items[0].$index) {
|
|
2595
|
+
// forward
|
|
2521
2596
|
var newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);
|
|
2522
2597
|
if (newLastIndex > lastIndex) {
|
|
2523
2598
|
fetch.last.index = fetch.last.indexBuffer = newLastIndex;
|
|
@@ -2535,11 +2610,13 @@
|
|
|
2535
2610
|
}
|
|
2536
2611
|
};
|
|
2537
2612
|
PreFetch.setFetchDirection = function (scroller) {
|
|
2538
|
-
var buffer = scroller.buffer,
|
|
2613
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2614
|
+
var fetch = state.fetch;
|
|
2539
2615
|
if (fetch.last.index) {
|
|
2540
2616
|
var direction_1 = exports.Direction.forward;
|
|
2541
2617
|
if (buffer.size) {
|
|
2542
|
-
direction_1 =
|
|
2618
|
+
direction_1 =
|
|
2619
|
+
fetch.last.index < buffer.items[0].$index ? exports.Direction.backward : exports.Direction.forward;
|
|
2543
2620
|
}
|
|
2544
2621
|
fetch.direction = direction_1;
|
|
2545
2622
|
scroller.logger.log(function () { return "fetch direction is \"".concat(direction_1, "\""); });
|
|
@@ -2601,7 +2678,8 @@
|
|
|
2601
2678
|
}
|
|
2602
2679
|
}
|
|
2603
2680
|
else {
|
|
2604
|
-
var
|
|
2681
|
+
var state = scroller.state, viewport = scroller.viewport;
|
|
2682
|
+
var scroll_1 = state.scroll, fetch_1 = state.fetch;
|
|
2605
2683
|
if (scroll_1.positionBeforeAsync === null) {
|
|
2606
2684
|
scroll_1.positionBeforeAsync = viewport.scrollPosition;
|
|
2607
2685
|
}
|
|
@@ -2645,9 +2723,10 @@
|
|
|
2645
2723
|
});
|
|
2646
2724
|
}
|
|
2647
2725
|
}
|
|
2648
|
-
if (immediateData || immediateError) {
|
|
2726
|
+
if (immediateData || immediateError) {
|
|
2727
|
+
// callback case or immediate observable
|
|
2649
2728
|
return {
|
|
2650
|
-
data: immediateError ? null :
|
|
2729
|
+
data: immediateError ? null : immediateData || [],
|
|
2651
2730
|
error: immediateError,
|
|
2652
2731
|
isError: !!immediateError
|
|
2653
2732
|
};
|
|
@@ -2671,44 +2750,45 @@
|
|
|
2671
2750
|
PostFetch.setBufferLimits(scroller);
|
|
2672
2751
|
workflow.call({
|
|
2673
2752
|
process: PostFetch.process,
|
|
2674
|
-
status: scroller.state.fetch.hasNewItems
|
|
2675
|
-
? ProcessStatus.next
|
|
2676
|
-
: ProcessStatus.done
|
|
2753
|
+
status: scroller.state.fetch.hasNewItems ? ProcessStatus.next : ProcessStatus.done
|
|
2677
2754
|
});
|
|
2678
2755
|
}
|
|
2679
2756
|
else {
|
|
2680
2757
|
workflow.call({
|
|
2681
2758
|
process: PostFetch.process,
|
|
2682
2759
|
status: ProcessStatus.error,
|
|
2683
|
-
payload: { error: 'Can
|
|
2760
|
+
payload: { error: 'Can not set buffer items' }
|
|
2684
2761
|
});
|
|
2685
2762
|
}
|
|
2686
2763
|
};
|
|
2687
2764
|
PostFetch.setBufferLimits = function (scroller) {
|
|
2688
|
-
var buffer = scroller.buffer,
|
|
2689
|
-
var
|
|
2765
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2766
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2767
|
+
var items = fetch.items, first = fetch.first, last = fetch.last;
|
|
2690
2768
|
if (!items.length) {
|
|
2691
|
-
if (last < buffer.minIndex || innerLoop.isInitial) {
|
|
2769
|
+
if (last.index < buffer.minIndex || cycle.innerLoop.isInitial) {
|
|
2692
2770
|
buffer.absMinIndex = buffer.minIndex;
|
|
2693
2771
|
}
|
|
2694
|
-
if (first > buffer.maxIndex || innerLoop.isInitial) {
|
|
2772
|
+
if (first.index > buffer.maxIndex || cycle.innerLoop.isInitial) {
|
|
2695
2773
|
buffer.absMaxIndex = buffer.maxIndex;
|
|
2696
2774
|
}
|
|
2697
2775
|
}
|
|
2698
2776
|
else {
|
|
2699
2777
|
var lastIndex = items.length - 1;
|
|
2700
|
-
if (first < items[0].$index) {
|
|
2778
|
+
if (first.index < items[0].$index) {
|
|
2701
2779
|
buffer.absMinIndex = items[0].$index;
|
|
2702
2780
|
}
|
|
2703
|
-
if (last > items[lastIndex].$index) {
|
|
2781
|
+
if (last.index > items[lastIndex].$index) {
|
|
2704
2782
|
buffer.absMaxIndex = items[lastIndex].$index;
|
|
2705
2783
|
}
|
|
2706
2784
|
}
|
|
2707
2785
|
};
|
|
2708
2786
|
PostFetch.setItems = function (scroller) {
|
|
2709
|
-
var buffer = scroller.buffer,
|
|
2787
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
2788
|
+
var fetch = state.fetch, cycle = state.cycle;
|
|
2710
2789
|
var items = fetch.newItemsData;
|
|
2711
|
-
if (!items || !items.length) {
|
|
2790
|
+
if (!items || !items.length) {
|
|
2791
|
+
// empty result
|
|
2712
2792
|
return true;
|
|
2713
2793
|
}
|
|
2714
2794
|
// eof/bof case, need to shift fetch index if bof
|
|
@@ -2723,9 +2803,7 @@
|
|
|
2723
2803
|
fetchIndex = buffer.firstIndex - items.length;
|
|
2724
2804
|
}
|
|
2725
2805
|
}
|
|
2726
|
-
fetch.items = items.map(function (item, index) {
|
|
2727
|
-
return new Item(fetchIndex + index, item, scroller.routines);
|
|
2728
|
-
});
|
|
2806
|
+
fetch.items = items.map(function (item, index) { return new Item(fetchIndex + index, item, scroller.routines); });
|
|
2729
2807
|
return buffer.setItems(fetch.items);
|
|
2730
2808
|
};
|
|
2731
2809
|
return PostFetch;
|
|
@@ -2737,7 +2815,8 @@
|
|
|
2737
2815
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2738
2816
|
}
|
|
2739
2817
|
Render.run = function (scroller) {
|
|
2740
|
-
var workflow = scroller.workflow,
|
|
2818
|
+
var workflow = scroller.workflow, state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
|
|
2819
|
+
var cycle = state.cycle, render = state.render, scroll = state.scroll, fetch = state.fetch;
|
|
2741
2820
|
scroller.logger.stat('before new items render');
|
|
2742
2821
|
if (scroll.positionBeforeAsync === null) {
|
|
2743
2822
|
scroll.positionBeforeAsync = viewport.scrollPosition;
|
|
@@ -2755,26 +2834,25 @@
|
|
|
2755
2834
|
workflow.call({
|
|
2756
2835
|
process: Render.process,
|
|
2757
2836
|
status: ProcessStatus.error,
|
|
2758
|
-
payload: { error: 'Can
|
|
2837
|
+
payload: { error: 'Can not associate item with element' }
|
|
2759
2838
|
});
|
|
2760
2839
|
}
|
|
2761
2840
|
}, { items: fetch.items.map(function (i) { return i.get(); }) });
|
|
2762
2841
|
};
|
|
2763
2842
|
Render.doRender = function (scroller) {
|
|
2764
|
-
var
|
|
2843
|
+
var state = scroller.state, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger;
|
|
2844
|
+
var fetch = state.fetch, render = state.render;
|
|
2765
2845
|
render.positionBefore = viewport.scrollPosition;
|
|
2766
2846
|
if (!fetch.isCheck) {
|
|
2767
2847
|
render.sizeBefore = viewport.getScrollableSize();
|
|
2768
|
-
if (!fetch.items.every(function (item) {
|
|
2769
|
-
return Render.processElement(scroller, item);
|
|
2770
|
-
})) {
|
|
2848
|
+
if (!fetch.items.every(function (item) { return Render.processElement(scroller, item); })) {
|
|
2771
2849
|
return false;
|
|
2772
2850
|
}
|
|
2773
2851
|
}
|
|
2774
2852
|
buffer.checkDefaultSize();
|
|
2775
2853
|
render.sizeAfter = viewport.getScrollableSize();
|
|
2776
2854
|
logger.stat('after new items render');
|
|
2777
|
-
logger.log(function () { return render.noSize ? 'viewport size has not been changed' : void 0; });
|
|
2855
|
+
logger.log(function () { return (render.noSize ? 'viewport size has not been changed' : void 0); });
|
|
2778
2856
|
return true;
|
|
2779
2857
|
};
|
|
2780
2858
|
Render.processElement = function (scroller, item) {
|
|
@@ -2803,7 +2881,8 @@
|
|
|
2803
2881
|
}
|
|
2804
2882
|
End.run = function (scroller, _a) {
|
|
2805
2883
|
var _b = _a === void 0 ? {} : _a, error = _b.error;
|
|
2806
|
-
var workflow = scroller.workflow,
|
|
2884
|
+
var workflow = scroller.workflow, state = scroller.state;
|
|
2885
|
+
var interrupter = state.cycle.interrupter;
|
|
2807
2886
|
if (!error && !interrupter) {
|
|
2808
2887
|
// set out params accessible via Adapter
|
|
2809
2888
|
End.calculateParams(scroller);
|
|
@@ -2859,10 +2938,10 @@
|
|
|
2859
2938
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2860
2939
|
}
|
|
2861
2940
|
Adjust.run = function (scroller) {
|
|
2862
|
-
var workflow = scroller.workflow, viewport = scroller.viewport,
|
|
2863
|
-
scroll.positionBeforeAdjust = viewport.scrollPosition;
|
|
2941
|
+
var workflow = scroller.workflow, viewport = scroller.viewport, state = scroller.state;
|
|
2942
|
+
state.scroll.positionBeforeAdjust = viewport.scrollPosition;
|
|
2864
2943
|
Adjust.setPaddings(scroller);
|
|
2865
|
-
scroll.positionAfterAdjust = viewport.scrollPosition;
|
|
2944
|
+
state.scroll.positionAfterAdjust = viewport.scrollPosition;
|
|
2866
2945
|
// scroll position adjustments
|
|
2867
2946
|
var position = Adjust.calculatePosition(scroller);
|
|
2868
2947
|
// additional adjustment if the position can't be reached during the initial cycle
|
|
@@ -2876,7 +2955,7 @@
|
|
|
2876
2955
|
});
|
|
2877
2956
|
};
|
|
2878
2957
|
Adjust.setPaddings = function (scroller) {
|
|
2879
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
2958
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, settings = scroller.settings, state = scroller.state;
|
|
2880
2959
|
var firstItem = buffer.getFirstVisibleItem();
|
|
2881
2960
|
var lastItem = buffer.getLastVisibleItem();
|
|
2882
2961
|
var first, last;
|
|
@@ -2885,7 +2964,8 @@
|
|
|
2885
2964
|
last = lastItem.$index;
|
|
2886
2965
|
}
|
|
2887
2966
|
else {
|
|
2888
|
-
|
|
2967
|
+
var fetch_1 = state.fetch;
|
|
2968
|
+
first = !isNaN(fetch_1.firstVisible.index) ? fetch_1.firstVisible.index : buffer.startIndex;
|
|
2889
2969
|
last = first - 1;
|
|
2890
2970
|
}
|
|
2891
2971
|
var _a = viewport.paddings, forward = _a.forward, backward = _a.backward;
|
|
@@ -2902,14 +2982,16 @@
|
|
|
2902
2982
|
var scrollSize = bwdSize + bufferSize + fwdSize;
|
|
2903
2983
|
var viewportSizeDiff = viewport.getSize() - scrollSize;
|
|
2904
2984
|
if (viewportSizeDiff > 0) {
|
|
2905
|
-
if (inverse) {
|
|
2985
|
+
if (settings.inverse) {
|
|
2906
2986
|
bwdSize += viewportSizeDiff;
|
|
2907
2987
|
}
|
|
2908
2988
|
else {
|
|
2909
2989
|
fwdSize += viewportSizeDiff;
|
|
2910
2990
|
}
|
|
2911
2991
|
scroller.logger.log(function () {
|
|
2912
|
-
return inverse
|
|
2992
|
+
return settings.inverse
|
|
2993
|
+
? 'backward'
|
|
2994
|
+
: 'forward' + " padding will be increased by ".concat(viewportSizeDiff, " to fill the viewport");
|
|
2913
2995
|
});
|
|
2914
2996
|
}
|
|
2915
2997
|
backward.size = bwdSize;
|
|
@@ -2917,7 +2999,8 @@
|
|
|
2917
2999
|
scroller.logger.stat('after paddings adjustments');
|
|
2918
3000
|
};
|
|
2919
3001
|
Adjust.calculatePosition = function (scroller) {
|
|
2920
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
3002
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
|
|
3003
|
+
var fetch = state.fetch, render = state.render, scroll = state.scroll;
|
|
2921
3004
|
var position = viewport.paddings.backward.size;
|
|
2922
3005
|
// increase the position to meet the expectation of the first visible item
|
|
2923
3006
|
if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {
|
|
@@ -2954,8 +3037,8 @@
|
|
|
2954
3037
|
return Math.round(position);
|
|
2955
3038
|
};
|
|
2956
3039
|
Adjust.setAdditionalForwardPadding = function (scroller, position) {
|
|
2957
|
-
var viewport = scroller.viewport, buffer = scroller.buffer,
|
|
2958
|
-
if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
|
|
3040
|
+
var viewport = scroller.viewport, buffer = scroller.buffer, state = scroller.state;
|
|
3041
|
+
if (!state.cycle.isInitial || !End.shouldContinueRun(scroller, null)) {
|
|
2959
3042
|
return;
|
|
2960
3043
|
}
|
|
2961
3044
|
var diff = position - viewport.getMaxScrollPosition();
|
|
@@ -2978,7 +3061,8 @@
|
|
|
2978
3061
|
}
|
|
2979
3062
|
};
|
|
2980
3063
|
Adjust.setPosition = function (scroller, position, done) {
|
|
2981
|
-
var
|
|
3064
|
+
var state = scroller.state, viewport = scroller.viewport, routines = scroller.routines;
|
|
3065
|
+
var scroll = state.scroll;
|
|
2982
3066
|
if (!scroll.hasPositionChanged(position)) {
|
|
2983
3067
|
return done();
|
|
2984
3068
|
}
|
|
@@ -3056,7 +3140,8 @@
|
|
|
3056
3140
|
return false;
|
|
3057
3141
|
};
|
|
3058
3142
|
PreClip.isBackward = function (scroller, firstIndex) {
|
|
3059
|
-
var buffer = scroller.buffer,
|
|
3143
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
3144
|
+
var clip = state.clip, fetch = state.fetch;
|
|
3060
3145
|
if (clip.force) {
|
|
3061
3146
|
return clip.forceBackward;
|
|
3062
3147
|
}
|
|
@@ -3068,7 +3153,8 @@
|
|
|
3068
3153
|
return false;
|
|
3069
3154
|
};
|
|
3070
3155
|
PreClip.isForward = function (scroller, lastIndex) {
|
|
3071
|
-
var buffer = scroller.buffer,
|
|
3156
|
+
var buffer = scroller.buffer, state = scroller.state;
|
|
3157
|
+
var clip = state.clip, fetch = state.fetch;
|
|
3072
3158
|
if (clip.force) {
|
|
3073
3159
|
return clip.forceForward;
|
|
3074
3160
|
}
|
|
@@ -3082,8 +3168,7 @@
|
|
|
3082
3168
|
PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {
|
|
3083
3169
|
var forward = direction === exports.Direction.forward;
|
|
3084
3170
|
scroller.buffer.items.forEach(function (item) {
|
|
3085
|
-
if ((!forward && item.$index < edgeIndex) ||
|
|
3086
|
-
(forward && item.$index > edgeIndex)) {
|
|
3171
|
+
if ((!forward && item.$index < edgeIndex) || (forward && item.$index > edgeIndex)) {
|
|
3087
3172
|
item.toRemove = true;
|
|
3088
3173
|
item.removeDirection = direction;
|
|
3089
3174
|
scroller.state.clip.doClip = true;
|
|
@@ -3108,9 +3193,9 @@
|
|
|
3108
3193
|
};
|
|
3109
3194
|
Clip.doClip = function (scroller) {
|
|
3110
3195
|
var _a;
|
|
3111
|
-
var buffer = scroller.buffer,
|
|
3196
|
+
var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, logger = scroller.logger;
|
|
3112
3197
|
var size = (_a = {}, _a[exports.Direction.backward] = 0, _a[exports.Direction.forward] = 0, _a);
|
|
3113
|
-
logger.stat("before clip (".concat(++clip.callCount, ")"));
|
|
3198
|
+
logger.stat("before clip (".concat(++state.clip.callCount, ")"));
|
|
3114
3199
|
var itemsToRemove = buffer.items.filter(function (item) {
|
|
3115
3200
|
if (!item.toRemove) {
|
|
3116
3201
|
return false;
|
|
@@ -3121,10 +3206,10 @@
|
|
|
3121
3206
|
});
|
|
3122
3207
|
if (itemsToRemove.length) {
|
|
3123
3208
|
if (size[exports.Direction.backward]) {
|
|
3124
|
-
paddings.byDirection(exports.Direction.backward).size += size[exports.Direction.backward];
|
|
3209
|
+
viewport.paddings.byDirection(exports.Direction.backward).size += size[exports.Direction.backward];
|
|
3125
3210
|
}
|
|
3126
3211
|
if (size[exports.Direction.forward]) {
|
|
3127
|
-
paddings.byDirection(exports.Direction.forward).size += size[exports.Direction.forward];
|
|
3212
|
+
viewport.paddings.byDirection(exports.Direction.forward).size += size[exports.Direction.forward];
|
|
3128
3213
|
}
|
|
3129
3214
|
if (scroller.settings.onBeforeClip) {
|
|
3130
3215
|
scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); }));
|
|
@@ -3158,7 +3243,7 @@
|
|
|
3158
3243
|
if (!_this.debug) {
|
|
3159
3244
|
return;
|
|
3160
3245
|
}
|
|
3161
|
-
var params = (args === void 0 ? [] :
|
|
3246
|
+
var params = (args === void 0 ? [] : Array.isArray(args) ? args : [args])
|
|
3162
3247
|
.map(function (arg) {
|
|
3163
3248
|
if (typeof arg === 'function') {
|
|
3164
3249
|
return 'func';
|
|
@@ -3178,26 +3263,36 @@
|
|
|
3178
3263
|
this.debug = settings.debug;
|
|
3179
3264
|
this.immediateLog = settings.immediateLog;
|
|
3180
3265
|
this.logTime = settings.logTime;
|
|
3181
|
-
this.
|
|
3182
|
-
|
|
3183
|
-
};
|
|
3266
|
+
this.logColor = settings.logColor;
|
|
3267
|
+
this.getTime = function () { return scroller.state && " // time: ".concat(scroller.state.time); };
|
|
3184
3268
|
this.getStat = function () {
|
|
3185
3269
|
var buffer = scroller.buffer, viewport = scroller.viewport;
|
|
3186
3270
|
var first = buffer.getFirstVisibleItem();
|
|
3187
3271
|
var last = buffer.getLastVisibleItem();
|
|
3188
|
-
return 'pos: ' +
|
|
3189
|
-
|
|
3190
|
-
'
|
|
3191
|
-
'
|
|
3192
|
-
|
|
3193
|
-
'
|
|
3194
|
-
'
|
|
3272
|
+
return ('pos: ' +
|
|
3273
|
+
viewport.scrollPosition +
|
|
3274
|
+
', ' +
|
|
3275
|
+
'size: ' +
|
|
3276
|
+
viewport.getScrollableSize() +
|
|
3277
|
+
', ' +
|
|
3278
|
+
'bwd_p: ' +
|
|
3279
|
+
viewport.paddings.backward.size +
|
|
3280
|
+
', ' +
|
|
3281
|
+
'fwd_p: ' +
|
|
3282
|
+
viewport.paddings.forward.size +
|
|
3283
|
+
', ' +
|
|
3284
|
+
'default: ' +
|
|
3285
|
+
(buffer.defaultSize || 'no') +
|
|
3286
|
+
', ' +
|
|
3287
|
+
'items: ' +
|
|
3288
|
+
buffer.getVisibleItemsCount() +
|
|
3289
|
+
', ' +
|
|
3290
|
+
'range: ' +
|
|
3291
|
+
(first && last ? "[".concat(first.$index, "..").concat(last.$index, "]") : 'no'));
|
|
3195
3292
|
};
|
|
3196
3293
|
this.getFetchRange = function () {
|
|
3197
3294
|
var _a = scroller.state.fetch, first = _a.first.index, last = _a.last.index;
|
|
3198
|
-
return !Number.isNaN(first) && !Number.isNaN(last)
|
|
3199
|
-
? "[".concat(first, "..").concat(last, "]")
|
|
3200
|
-
: 'no';
|
|
3295
|
+
return !Number.isNaN(first) && !Number.isNaN(last) ? "[".concat(first, "..").concat(last, "]") : 'no';
|
|
3201
3296
|
};
|
|
3202
3297
|
this.getLoopId = function () { return scroller.state.cycle.loopId; };
|
|
3203
3298
|
this.getLoopIdNext = function () { return scroller.state.cycle.loopIdNext; };
|
|
@@ -3217,7 +3312,7 @@
|
|
|
3217
3312
|
this.log(function () { return [
|
|
3218
3313
|
str,
|
|
3219
3314
|
stringify
|
|
3220
|
-
? JSON.stringify(obj, function (
|
|
3315
|
+
? JSON.stringify(obj, function (_, v) {
|
|
3221
3316
|
if (Number.isNaN(v)) {
|
|
3222
3317
|
return 'NaN';
|
|
3223
3318
|
}
|
|
@@ -3247,27 +3342,36 @@
|
|
|
3247
3342
|
Logger.prototype.stat = function (str) {
|
|
3248
3343
|
var _this = this;
|
|
3249
3344
|
if (this.debug) {
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3345
|
+
if (this.logColor) {
|
|
3346
|
+
var logStyles_1 = [
|
|
3347
|
+
'color: #888; border: dashed #888 0; border-bottom-width: 0px',
|
|
3348
|
+
'color: #000; border-width: 0'
|
|
3349
|
+
];
|
|
3350
|
+
this.log(function () { return __spreadArray(['%cstat' + (str ? " ".concat(str) : '') + ',%c ' + _this.getStat()], __read(logStyles_1), false); });
|
|
3351
|
+
}
|
|
3352
|
+
else {
|
|
3353
|
+
this.log(function () { return ['stat' + (str ? " ".concat(str) : '') + ', ' + _this.getStat()]; });
|
|
3354
|
+
}
|
|
3255
3355
|
}
|
|
3256
3356
|
};
|
|
3257
3357
|
Logger.prototype.fetch = function (str) {
|
|
3258
3358
|
var _this = this;
|
|
3259
3359
|
if (this.debug) {
|
|
3260
3360
|
var _text_1 = 'fetch interval' + (str ? " ".concat(str) : '');
|
|
3261
|
-
|
|
3262
|
-
|
|
3361
|
+
if (this.logColor) {
|
|
3362
|
+
var logStyles_2 = ['color: #888', 'color: #000'];
|
|
3363
|
+
this.log(function () { return __spreadArray(["%c".concat(_text_1, ": %c").concat(_this.getFetchRange())], __read(logStyles_2), false); });
|
|
3364
|
+
}
|
|
3365
|
+
else {
|
|
3366
|
+
this.log(function () { return ["".concat(_text_1, ": ").concat(_this.getFetchRange())]; });
|
|
3367
|
+
}
|
|
3263
3368
|
}
|
|
3264
3369
|
};
|
|
3265
3370
|
Logger.prototype.prepareForLog = function (data) {
|
|
3266
|
-
return data instanceof Event && data.target
|
|
3267
|
-
? this.getScrollPosition()
|
|
3268
|
-
: data;
|
|
3371
|
+
return data instanceof Event && data.target ? this.getScrollPosition() : data;
|
|
3269
3372
|
};
|
|
3270
3373
|
Logger.prototype.logProcess = function (data) {
|
|
3374
|
+
var _this = this;
|
|
3271
3375
|
if (!this.debug) {
|
|
3272
3376
|
return;
|
|
3273
3377
|
}
|
|
@@ -3275,31 +3379,50 @@
|
|
|
3275
3379
|
// inner loop start-end log
|
|
3276
3380
|
var loopLog = [];
|
|
3277
3381
|
if (process === CommonProcess.init && status === ProcessStatus.next) {
|
|
3278
|
-
|
|
3382
|
+
var loopStart = "---=== loop ".concat(this.getLoopIdNext(), " start");
|
|
3383
|
+
loopLog.push(this.logColor ? "%c".concat(loopStart) : loopStart);
|
|
3279
3384
|
}
|
|
3280
3385
|
else if (process === CommonProcess.end) {
|
|
3281
|
-
|
|
3386
|
+
var loopDone = "---=== loop ".concat(this.getLoopId(), " done");
|
|
3387
|
+
loopLog.push(this.logColor ? "%c".concat(loopDone) : loopDone);
|
|
3282
3388
|
var parent_1 = payload && payload.process;
|
|
3283
|
-
if (status === ProcessStatus.next &&
|
|
3389
|
+
if (status === ProcessStatus.next &&
|
|
3390
|
+
parent_1 !== AdapterProcess.reset &&
|
|
3391
|
+
parent_1 !== AdapterProcess.reload) {
|
|
3284
3392
|
loopLog[0] += ", loop ".concat(this.getLoopIdNext(), " start");
|
|
3285
3393
|
}
|
|
3286
3394
|
}
|
|
3287
3395
|
if (loopLog.length) {
|
|
3288
|
-
this.log(function () { return __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false); });
|
|
3396
|
+
this.log(function () { return (_this.logColor ? __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false) : loopLog); });
|
|
3289
3397
|
}
|
|
3290
3398
|
};
|
|
3291
3399
|
Logger.prototype.logCycle = function (start) {
|
|
3292
3400
|
if (start === void 0) { start = true; }
|
|
3293
3401
|
var logData = this.getWorkflowCycleData();
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3402
|
+
if (this.logColor) {
|
|
3403
|
+
var border = start ? '1px 0 0 1px' : '0 0 1px 1px';
|
|
3404
|
+
var logStyles_3 = "color: #0000aa; border: solid #555 1px; border-width: ".concat(border, "; margin-left: -2px");
|
|
3405
|
+
this.log(function () { return [
|
|
3406
|
+
"%c ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ "),
|
|
3407
|
+
logStyles_3
|
|
3408
|
+
]; });
|
|
3409
|
+
}
|
|
3410
|
+
else {
|
|
3411
|
+
this.log(function () { return [" ~~~ WF Cycle ".concat(logData, " ").concat(start ? 'STARTED' : 'FINALIZED', " ~~~ ")]; });
|
|
3412
|
+
}
|
|
3297
3413
|
};
|
|
3298
3414
|
Logger.prototype.logError = function (str) {
|
|
3299
3415
|
var _this = this;
|
|
3300
3416
|
if (this.debug) {
|
|
3301
|
-
|
|
3302
|
-
|
|
3417
|
+
if (this.logColor) {
|
|
3418
|
+
var logStyles_4 = ['color: #a00;', 'color: #000'];
|
|
3419
|
+
this.log(function () { return __spreadArray([
|
|
3420
|
+
'error:%c' + (str ? " ".concat(str) : '') + "%c (loop ".concat(_this.getLoopIdNext(), ")")
|
|
3421
|
+
], __read(logStyles_4), false); });
|
|
3422
|
+
}
|
|
3423
|
+
else {
|
|
3424
|
+
this.log(function () { return ['error:' + (str ? " ".concat(str) : '') + " (loop ".concat(_this.getLoopIdNext(), ")")]; });
|
|
3425
|
+
}
|
|
3303
3426
|
}
|
|
3304
3427
|
};
|
|
3305
3428
|
Logger.prototype.log = function () {
|
|
@@ -3355,6 +3478,9 @@
|
|
|
3355
3478
|
}
|
|
3356
3479
|
}
|
|
3357
3480
|
};
|
|
3481
|
+
Logger.prototype.getLogs = function () {
|
|
3482
|
+
return this.logs;
|
|
3483
|
+
};
|
|
3358
3484
|
return Logger;
|
|
3359
3485
|
}());
|
|
3360
3486
|
|
|
@@ -3434,17 +3560,18 @@
|
|
|
3434
3560
|
return element.getBoundingClientRect();
|
|
3435
3561
|
};
|
|
3436
3562
|
Routines.prototype.getWindowParams = function () {
|
|
3437
|
-
var
|
|
3563
|
+
var height = window.innerHeight;
|
|
3564
|
+
var width = window.innerWidth;
|
|
3438
3565
|
return {
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3566
|
+
height: height,
|
|
3567
|
+
width: width,
|
|
3568
|
+
top: 0,
|
|
3569
|
+
bottom: height,
|
|
3570
|
+
left: 0,
|
|
3571
|
+
right: width,
|
|
3572
|
+
x: 0,
|
|
3573
|
+
y: 0,
|
|
3574
|
+
toJSON: function () { return null; }
|
|
3448
3575
|
};
|
|
3449
3576
|
};
|
|
3450
3577
|
Routines.prototype.getSize = function (element) {
|
|
@@ -3473,14 +3600,14 @@
|
|
|
3473
3600
|
var horizontal = this.settings.horizontal;
|
|
3474
3601
|
var params = this.getElementParams(element);
|
|
3475
3602
|
var isFwd = direction === exports.Direction.forward;
|
|
3476
|
-
return params[isFwd ? (horizontal ? 'right' : 'bottom') :
|
|
3603
|
+
return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
|
|
3477
3604
|
};
|
|
3478
3605
|
Routines.prototype.getViewportEdge = function (direction) {
|
|
3479
3606
|
var _a = this.settings, window = _a.window, horizontal = _a.horizontal;
|
|
3480
3607
|
if (window) {
|
|
3481
3608
|
var params = this.getWindowParams();
|
|
3482
3609
|
var isFwd = direction === exports.Direction.forward;
|
|
3483
|
-
return params[isFwd ? (horizontal ? 'right' : 'bottom') :
|
|
3610
|
+
return params[isFwd ? (horizontal ? 'right' : 'bottom') : horizontal ? 'left' : 'top'];
|
|
3484
3611
|
}
|
|
3485
3612
|
return this.getEdge(this.viewport, direction);
|
|
3486
3613
|
};
|
|
@@ -3505,8 +3632,7 @@
|
|
|
3505
3632
|
this.checkElement(element);
|
|
3506
3633
|
element.scrollIntoView(argument);
|
|
3507
3634
|
};
|
|
3508
|
-
|
|
3509
|
-
Routines.prototype.render = function (cb, params) {
|
|
3635
|
+
Routines.prototype.render = function (cb, _params) {
|
|
3510
3636
|
var timeoutId = setTimeout(function () { return cb(); });
|
|
3511
3637
|
return function () { return clearTimeout(timeoutId); };
|
|
3512
3638
|
};
|
|
@@ -3553,8 +3679,12 @@
|
|
|
3553
3679
|
}
|
|
3554
3680
|
Paddings.prototype.byDirection = function (direction, opposite) {
|
|
3555
3681
|
return direction === exports.Direction.backward
|
|
3556
|
-
?
|
|
3557
|
-
|
|
3682
|
+
? opposite
|
|
3683
|
+
? this.forward
|
|
3684
|
+
: this.backward
|
|
3685
|
+
: opposite
|
|
3686
|
+
? this.backward
|
|
3687
|
+
: this.forward;
|
|
3558
3688
|
};
|
|
3559
3689
|
Paddings.prototype.reset = function (viewportSize, startIndex, offset) {
|
|
3560
3690
|
var positive = this.getPositiveSize(startIndex, viewportSize, offset);
|
|
@@ -3623,7 +3753,8 @@
|
|
|
3623
3753
|
this.routines.setScrollPosition(value);
|
|
3624
3754
|
var position = this.scrollPosition;
|
|
3625
3755
|
this.logger.log(function () { return __spreadArray([
|
|
3626
|
-
'setting scroll position at',
|
|
3756
|
+
'setting scroll position at',
|
|
3757
|
+
position
|
|
3627
3758
|
], __read((position !== value ? ["(".concat(value, ")")] : [])), false); });
|
|
3628
3759
|
return position;
|
|
3629
3760
|
};
|
|
@@ -3666,7 +3797,7 @@
|
|
|
3666
3797
|
for (var i = bwd ? 0 : items.length - 1; bwd ? i <= items.length - 1 : i >= 0; i += bwd ? 1 : -1) {
|
|
3667
3798
|
var itemEdge = this.routines.getEdge(items[i].element, opposite);
|
|
3668
3799
|
diff = itemEdge - viewportEdge;
|
|
3669
|
-
if (bwd && diff > 0 || !bwd && diff < 0) {
|
|
3800
|
+
if ((bwd && diff > 0) || (!bwd && diff < 0)) {
|
|
3670
3801
|
item = items[i];
|
|
3671
3802
|
break;
|
|
3672
3803
|
}
|
|
@@ -3730,7 +3861,8 @@
|
|
|
3730
3861
|
if (removed.length) {
|
|
3731
3862
|
var removedSize = removed.reduce(function (acc, item) { return acc + item.size; }, 0);
|
|
3732
3863
|
var averageSize = this.averageSizeFloat || 0;
|
|
3733
|
-
this.averageSizeFloat =
|
|
3864
|
+
this.averageSizeFloat =
|
|
3865
|
+
((cacheSize + removed.length) * averageSize - removedSize) / cacheSize;
|
|
3734
3866
|
}
|
|
3735
3867
|
this.averageSize = Math.round(this.averageSizeFloat);
|
|
3736
3868
|
};
|
|
@@ -3862,7 +3994,7 @@
|
|
|
3862
3994
|
};
|
|
3863
3995
|
Cache.prototype.getSizeByIndex = function (index) {
|
|
3864
3996
|
var item = this.get(index);
|
|
3865
|
-
return item && item.size || this.defaultSize.get();
|
|
3997
|
+
return (item && item.size) || this.defaultSize.get();
|
|
3866
3998
|
};
|
|
3867
3999
|
Cache.prototype.getDefaultSize = function () {
|
|
3868
4000
|
return this.defaultSize.get();
|
|
@@ -3880,12 +4012,12 @@
|
|
|
3880
4012
|
* Maintains min/max indexes and default item size.
|
|
3881
4013
|
*
|
|
3882
4014
|
* @param {Item<Data>} item A Buffer item to be cached, an objects with { $index, data, size } props.
|
|
3883
|
-
*
|
|
3884
4015
|
* @returns {ItemCache<Data>} Cached item.
|
|
3885
4016
|
*/
|
|
3886
4017
|
Cache.prototype.add = function (item) {
|
|
3887
4018
|
var itemCache = this.get(item.$index);
|
|
3888
|
-
if (itemCache) {
|
|
4019
|
+
if (itemCache) {
|
|
4020
|
+
// adding item is already cached
|
|
3889
4021
|
if (this.saveData) {
|
|
3890
4022
|
itemCache.data = item.data;
|
|
3891
4023
|
}
|
|
@@ -3957,7 +4089,8 @@
|
|
|
3957
4089
|
}
|
|
3958
4090
|
set(item);
|
|
3959
4091
|
});
|
|
3960
|
-
if (this.saveData) {
|
|
4092
|
+
if (this.saveData) {
|
|
4093
|
+
// persist data with no sizes
|
|
3961
4094
|
toInsert.forEach(function (data, i) {
|
|
3962
4095
|
var $index = index + i - (fixRight ? length : 0) + (direction === exports.Direction.forward ? 1 : 0);
|
|
3963
4096
|
var item = new ItemCache({ $index: $index, data: data }, _this.saveData);
|
|
@@ -4031,20 +4164,21 @@
|
|
|
4031
4164
|
}
|
|
4032
4165
|
var items = new Map();
|
|
4033
4166
|
this.items.forEach(function (item) {
|
|
4034
|
-
if (item.$index < minB) {
|
|
4167
|
+
if (item.$index < minB) {
|
|
4168
|
+
// items to the left of the subset
|
|
4035
4169
|
item.changeIndex(item.$index + leftDiff);
|
|
4036
4170
|
items.set(item.$index, item);
|
|
4037
4171
|
return;
|
|
4038
4172
|
}
|
|
4039
|
-
else if (item.$index > maxB) {
|
|
4173
|
+
else if (item.$index > maxB) {
|
|
4174
|
+
// items to the right of the subset
|
|
4040
4175
|
item.changeIndex(item.$index + rightDiff);
|
|
4041
4176
|
items.set(item.$index, item);
|
|
4042
4177
|
return;
|
|
4043
4178
|
}
|
|
4044
4179
|
});
|
|
4045
|
-
after.forEach(function (item
|
|
4046
|
-
|
|
4047
|
-
});
|
|
4180
|
+
after.forEach(function (item // subset items
|
|
4181
|
+
) { return items.set(item.$index, new ItemCache(item, _this.saveData)); });
|
|
4048
4182
|
before // to maintain default size on remove
|
|
4049
4183
|
.filter(function (item) { return item.toRemove; })
|
|
4050
4184
|
.forEach(function (item) { return _this.defaultSize.setRemoved(item.size); });
|
|
@@ -4093,13 +4227,12 @@
|
|
|
4093
4227
|
return true;
|
|
4094
4228
|
};
|
|
4095
4229
|
CheckBufferCall.prototype.insertInBuffer = function (predicate, before, after) {
|
|
4096
|
-
var index = Number.isInteger(before) ? before :
|
|
4230
|
+
var index = Number.isInteger(before) ? before : Number.isInteger(after) ? after : NaN;
|
|
4097
4231
|
var found = this.context.items.find(function (item) {
|
|
4098
|
-
return (predicate && predicate(item.get())) ||
|
|
4099
|
-
(Number.isInteger(index) && index === item.$index);
|
|
4232
|
+
return (predicate && predicate(item.get())) || (Number.isInteger(index) && index === item.$index);
|
|
4100
4233
|
});
|
|
4101
4234
|
if (!found) {
|
|
4102
|
-
this.logger.log('no items to insert in buffer; empty predicate
|
|
4235
|
+
this.logger.log('no items to insert in buffer; empty predicate result');
|
|
4103
4236
|
return NaN;
|
|
4104
4237
|
}
|
|
4105
4238
|
return found.$index;
|
|
@@ -4119,9 +4252,7 @@
|
|
|
4119
4252
|
}
|
|
4120
4253
|
var before = direction === exports.Direction.backward;
|
|
4121
4254
|
if (!(index < firstIndex + (before ? 1 : 0) || index > lastIndex - (before ? 0 : 1))) {
|
|
4122
|
-
this.logger.log(
|
|
4123
|
-
return "no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]");
|
|
4124
|
-
});
|
|
4255
|
+
this.logger.log("no items to insert virtually; selected index (".concat(index, ") belongs Buffer [").concat(firstIndex, "..").concat(lastIndex, "]"));
|
|
4125
4256
|
return false;
|
|
4126
4257
|
}
|
|
4127
4258
|
this.logger.log(function () { return "going to insert ".concat(items.length, " item(s) virtually"); });
|
|
@@ -4202,7 +4333,8 @@
|
|
|
4202
4333
|
},
|
|
4203
4334
|
set: function (value) {
|
|
4204
4335
|
if (this._absMinIndex !== value) {
|
|
4205
|
-
this._absMinIndex =
|
|
4336
|
+
this._absMinIndex =
|
|
4337
|
+
Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;
|
|
4206
4338
|
}
|
|
4207
4339
|
if (!this.pristine) {
|
|
4208
4340
|
this.checkBOF();
|
|
@@ -4217,7 +4349,8 @@
|
|
|
4217
4349
|
},
|
|
4218
4350
|
set: function (value) {
|
|
4219
4351
|
if (this._absMaxIndex !== value) {
|
|
4220
|
-
this._absMaxIndex =
|
|
4352
|
+
this._absMaxIndex =
|
|
4353
|
+
Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;
|
|
4221
4354
|
}
|
|
4222
4355
|
if (!this.pristine) {
|
|
4223
4356
|
this.checkEOF();
|
|
@@ -4229,14 +4362,14 @@
|
|
|
4229
4362
|
Buffer.prototype.checkBOF = function () {
|
|
4230
4363
|
// since bof has no setter, need to call checkBOF() on items and absMinIndex change
|
|
4231
4364
|
var bof = this.items.length
|
|
4232
|
-
?
|
|
4365
|
+
? this.items[0].$index === this.absMinIndex
|
|
4233
4366
|
: isFinite(this.absMinIndex);
|
|
4234
4367
|
this.bof.set(bof);
|
|
4235
4368
|
};
|
|
4236
4369
|
Buffer.prototype.checkEOF = function () {
|
|
4237
4370
|
// since eof has no setter, need to call checkEOF() on items and absMaxIndex change
|
|
4238
4371
|
var eof = this.items.length
|
|
4239
|
-
?
|
|
4372
|
+
? this.items[this.items.length - 1].$index === this.absMaxIndex
|
|
4240
4373
|
: isFinite(this.absMaxIndex);
|
|
4241
4374
|
this.eof.set(eof);
|
|
4242
4375
|
};
|
|
@@ -4369,9 +4502,9 @@
|
|
|
4369
4502
|
var shifted = false;
|
|
4370
4503
|
var _loop_1 = function (i) {
|
|
4371
4504
|
var item = this_1.items[i];
|
|
4372
|
-
var diff = indexes.reduce(function (acc, index) {
|
|
4373
|
-
? (item.$index < index ? 1 : 0)
|
|
4374
|
-
|
|
4505
|
+
var diff = indexes.reduce(function (acc, index) {
|
|
4506
|
+
return acc + (fixRight ? (item.$index < index ? 1 : 0) : item.$index > index ? -1 : 0);
|
|
4507
|
+
}, 0);
|
|
4375
4508
|
shifted = shifted || !!diff;
|
|
4376
4509
|
item.updateIndex(item.$index + diff);
|
|
4377
4510
|
};
|
|
@@ -4391,10 +4524,8 @@
|
|
|
4391
4524
|
}
|
|
4392
4525
|
var before = Number.isInteger(beforeIndex);
|
|
4393
4526
|
var index = (before ? beforeIndex : afterIndex);
|
|
4394
|
-
var shift =
|
|
4395
|
-
this.items = items.map(function (data, i) {
|
|
4396
|
-
return generator(index + i + (!before ? 1 : 0) - shift, data);
|
|
4397
|
-
});
|
|
4527
|
+
var shift = fixRight ? items.length : before ? 1 : 0;
|
|
4528
|
+
this.items = items.map(function (data, i) { return generator(index + i + (!before ? 1 : 0) - shift, data); });
|
|
4398
4529
|
this._absMinIndex = this.items[0].$index;
|
|
4399
4530
|
this._absMaxIndex = this.items[this.size - 1].$index;
|
|
4400
4531
|
if (this.startIndex <= this.absMinIndex) {
|
|
@@ -4423,7 +4554,7 @@
|
|
|
4423
4554
|
// if predicate result is falsy or empty array -> delete
|
|
4424
4555
|
if (!result || (Array.isArray(result) && !result.length)) {
|
|
4425
4556
|
item.toRemove = true;
|
|
4426
|
-
trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) :
|
|
4557
|
+
trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : fixRight ? 0 : -1;
|
|
4427
4558
|
this_2.shiftExtremum(-1, fixRight);
|
|
4428
4559
|
return "continue";
|
|
4429
4560
|
}
|
|
@@ -4519,8 +4650,9 @@
|
|
|
4519
4650
|
return index >= 0 ? this.items[index] : void 0;
|
|
4520
4651
|
};
|
|
4521
4652
|
Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {
|
|
4522
|
-
return direction === (!opposite ? exports.Direction.forward : exports.Direction.backward)
|
|
4523
|
-
this.getLastVisibleItem()
|
|
4653
|
+
return direction === (!opposite ? exports.Direction.forward : exports.Direction.backward)
|
|
4654
|
+
? this.getLastVisibleItem()
|
|
4655
|
+
: this.getFirstVisibleItem();
|
|
4524
4656
|
};
|
|
4525
4657
|
Buffer.prototype.getVisibleItemsCount = function () {
|
|
4526
4658
|
return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);
|
|
@@ -4695,7 +4827,7 @@
|
|
|
4695
4827
|
});
|
|
4696
4828
|
Object.defineProperty(FetchModel.prototype, "hasNewItems", {
|
|
4697
4829
|
get: function () {
|
|
4698
|
-
return !!(
|
|
4830
|
+
return !!(this._newItemsData && this._newItemsData.length);
|
|
4699
4831
|
},
|
|
4700
4832
|
enumerable: false,
|
|
4701
4833
|
configurable: true
|
|
@@ -4709,7 +4841,9 @@
|
|
|
4709
4841
|
});
|
|
4710
4842
|
Object.defineProperty(FetchModel.prototype, "count", {
|
|
4711
4843
|
get: function () {
|
|
4712
|
-
return !isNaN(this.first.index) && !isNaN(this.last.index)
|
|
4844
|
+
return !isNaN(this.first.index) && !isNaN(this.last.index)
|
|
4845
|
+
? this.last.index - this.first.index + 1
|
|
4846
|
+
: 0;
|
|
4713
4847
|
},
|
|
4714
4848
|
enumerable: false,
|
|
4715
4849
|
configurable: true
|
|
@@ -4863,10 +4997,12 @@
|
|
|
4863
4997
|
}
|
|
4864
4998
|
clip.reset(clip.force);
|
|
4865
4999
|
render.reset();
|
|
4866
|
-
return __assign({}, (cycle.innerLoop.first
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
5000
|
+
return __assign({}, (cycle.innerLoop.first
|
|
5001
|
+
? {
|
|
5002
|
+
process: cycle.initiator,
|
|
5003
|
+
doRender: fetch.simulate && fetch.items.length > 0
|
|
5004
|
+
}
|
|
5005
|
+
: {}));
|
|
4870
5006
|
};
|
|
4871
5007
|
State.prototype.endInnerLoop = function () {
|
|
4872
5008
|
var _a = this, fetch = _a.fetch, clip = _a.clip, render = _a.render, cycle = _a.cycle;
|
|
@@ -4917,7 +5053,6 @@
|
|
|
4917
5053
|
this.source = {}; // for Reactive props
|
|
4918
5054
|
this.box = {}; // for Scalars over Reactive props
|
|
4919
5055
|
this.demand = {}; // for Scalars on demand
|
|
4920
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4921
5056
|
this.setFirstOrLastVisible = function (_) { };
|
|
4922
5057
|
this.getWorkflow = getWorkflow;
|
|
4923
5058
|
this.logger = logger;
|
|
@@ -4926,7 +5061,7 @@
|
|
|
4926
5061
|
this.reloadCounter = 0;
|
|
4927
5062
|
var contextId = (context === null || context === void 0 ? void 0 : context.id) || -1;
|
|
4928
5063
|
// public context (if exists) should provide access to Reactive props config by id
|
|
4929
|
-
var reactivePropsStore = context && reactiveConfigStorage.get(context.id) || {};
|
|
5064
|
+
var reactivePropsStore = (context && reactiveConfigStorage.get(context.id)) || {};
|
|
4930
5065
|
// the Adapter initialization should not trigger "wanted" props setting;
|
|
4931
5066
|
// after the initialization is completed, "wanted" functionality must be unblocked
|
|
4932
5067
|
wantedUtils.setBlock(true, contextId);
|
|
@@ -4941,7 +5076,7 @@
|
|
|
4941
5076
|
value = reactiveProp.default; // boolean doesn't matter here
|
|
4942
5077
|
}
|
|
4943
5078
|
}
|
|
4944
|
-
return
|
|
5079
|
+
return __assign(__assign({}, prop), { value: value });
|
|
4945
5080
|
})
|
|
4946
5081
|
: getDefaultAdapterProps();
|
|
4947
5082
|
// restore default reactive props if they were configured
|
|
@@ -4984,10 +5119,12 @@
|
|
|
4984
5119
|
// so this method should be called when accessing the "wanted" props through one of the following getters
|
|
4985
5120
|
var processWanted = function (prop) {
|
|
4986
5121
|
if (wantedUtils.setBox(prop, contextId)) {
|
|
4987
|
-
|
|
5122
|
+
var firstPropList = [exports.AdapterPropName.firstVisible, exports.AdapterPropName.firstVisible$];
|
|
5123
|
+
var lastPropList = [exports.AdapterPropName.lastVisible, exports.AdapterPropName.lastVisible$];
|
|
5124
|
+
if (firstPropList.some(function (n) { return n === prop.name; })) {
|
|
4988
5125
|
_this.setFirstOrLastVisible({ first: true });
|
|
4989
5126
|
}
|
|
4990
|
-
else if (
|
|
5127
|
+
else if (lastPropList.some(function (n) { return n === prop.name; })) {
|
|
4991
5128
|
_this.setFirstOrLastVisible({ last: true });
|
|
4992
5129
|
}
|
|
4993
5130
|
}
|
|
@@ -5037,8 +5174,7 @@
|
|
|
5037
5174
|
return;
|
|
5038
5175
|
}
|
|
5039
5176
|
// Adapter public context augmentation
|
|
5040
|
-
adapterProps
|
|
5041
|
-
.forEach(function (prop) {
|
|
5177
|
+
adapterProps.forEach(function (prop) {
|
|
5042
5178
|
var name = prop.name, type = prop.type, permanent = prop.permanent;
|
|
5043
5179
|
var value = _this[name];
|
|
5044
5180
|
if (type === AdapterPropType.Function) {
|
|
@@ -5132,23 +5268,23 @@
|
|
|
5132
5268
|
maxIndex: buffer.maxIndex,
|
|
5133
5269
|
absMinIndex: buffer.absMinIndex,
|
|
5134
5270
|
absMaxIndex: buffer.absMaxIndex,
|
|
5135
|
-
defaultSize: buffer.defaultSize
|
|
5271
|
+
defaultSize: buffer.defaultSize
|
|
5136
5272
|
}); }
|
|
5137
5273
|
});
|
|
5138
5274
|
this.bof = buffer.bof.get();
|
|
5139
|
-
buffer.bof.on(function (bof) { return _this.bof = bof; });
|
|
5275
|
+
buffer.bof.on(function (bof) { return (_this.bof = bof); });
|
|
5140
5276
|
this.eof = buffer.eof.get();
|
|
5141
|
-
buffer.eof.on(function (eof) { return _this.eof = eof; });
|
|
5277
|
+
buffer.eof.on(function (eof) { return (_this.eof = eof); });
|
|
5142
5278
|
// state
|
|
5143
5279
|
Object.defineProperty(this.demand, exports.AdapterPropName.packageInfo, {
|
|
5144
5280
|
get: function () { return state.packageInfo; }
|
|
5145
5281
|
});
|
|
5146
5282
|
this.loopPending = state.cycle.innerLoop.busy.get();
|
|
5147
|
-
state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });
|
|
5283
|
+
state.cycle.innerLoop.busy.on(function (busy) { return (_this.loopPending = busy); });
|
|
5148
5284
|
this.isLoading = state.cycle.busy.get();
|
|
5149
|
-
state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });
|
|
5285
|
+
state.cycle.busy.on(function (busy) { return (_this.isLoading = busy); });
|
|
5150
5286
|
this.paused = state.paused.get();
|
|
5151
|
-
state.paused.on(function (paused) { return _this.paused = paused; });
|
|
5287
|
+
state.paused.on(function (paused) { return (_this.paused = paused); });
|
|
5152
5288
|
//viewport
|
|
5153
5289
|
this.setFirstOrLastVisible = function (_a) {
|
|
5154
5290
|
var _b, _c, _d;
|
|
@@ -5226,8 +5362,7 @@
|
|
|
5226
5362
|
var _this = this;
|
|
5227
5363
|
var _a;
|
|
5228
5364
|
var reactiveStore = reactiveConfigStorage.get((_a = this.externalContext) === null || _a === void 0 ? void 0 : _a.id);
|
|
5229
|
-
ADAPTER_PROPS_STUB
|
|
5230
|
-
.forEach(function (_a) {
|
|
5365
|
+
ADAPTER_PROPS_STUB.forEach(function (_a) {
|
|
5231
5366
|
var type = _a.type, permanent = _a.permanent, name = _a.name, value = _a.value;
|
|
5232
5367
|
// assign initial values to non-reactive non-permanent props
|
|
5233
5368
|
if (type !== AdapterPropType.Reactive && !permanent) {
|
|
@@ -5368,7 +5503,9 @@
|
|
|
5368
5503
|
};
|
|
5369
5504
|
Adapter.prototype.relaxUnchained = function (callback, reloadId) {
|
|
5370
5505
|
var _this = this;
|
|
5371
|
-
var runCallback = function () {
|
|
5506
|
+
var runCallback = function () {
|
|
5507
|
+
return typeof callback === 'function' && reloadId === _this.reloadId && callback();
|
|
5508
|
+
};
|
|
5372
5509
|
if (!this.isLoading) {
|
|
5373
5510
|
runCallback();
|
|
5374
5511
|
}
|
|
@@ -5391,7 +5528,9 @@
|
|
|
5391
5528
|
};
|
|
5392
5529
|
}
|
|
5393
5530
|
var success = reloadId === _this.reloadId;
|
|
5394
|
-
(_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
|
|
5531
|
+
(_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
|
|
5532
|
+
return !success ? "relax promise cancelled due to ".concat(reloadId, " != ").concat(_this.reloadId) : void 0;
|
|
5533
|
+
});
|
|
5395
5534
|
return {
|
|
5396
5535
|
immediate: immediate,
|
|
5397
5536
|
success: success,
|
|
@@ -5406,12 +5545,12 @@
|
|
|
5406
5545
|
if (!this.init) {
|
|
5407
5546
|
return Promise.resolve(methodPreResult);
|
|
5408
5547
|
}
|
|
5409
|
-
return this.relaxRun = this.relaxRun
|
|
5548
|
+
return (this.relaxRun = this.relaxRun
|
|
5410
5549
|
? this.relaxRun.then(function () { return _this.relaxUnchained(callback, reloadId); })
|
|
5411
5550
|
: this.relaxUnchained(callback, reloadId).then(function (result) {
|
|
5412
5551
|
_this.relaxRun = null;
|
|
5413
5552
|
return result;
|
|
5414
|
-
});
|
|
5553
|
+
}));
|
|
5415
5554
|
};
|
|
5416
5555
|
Adapter.prototype.showLog = function () {
|
|
5417
5556
|
this.logger.logAdapterMethod('showLog');
|
|
@@ -5445,7 +5584,8 @@
|
|
|
5445
5584
|
Object.getOwnPropertyNames(CustomRoutines.prototype)
|
|
5446
5585
|
.filter(function (method) { return method !== 'constructor'; })
|
|
5447
5586
|
.forEach(function (method) {
|
|
5448
|
-
return __Routines_1.prototype[method] =
|
|
5587
|
+
return (__Routines_1.prototype[method] =
|
|
5588
|
+
CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method]);
|
|
5449
5589
|
});
|
|
5450
5590
|
CustomRoutines = __Routines_1;
|
|
5451
5591
|
}
|
|
@@ -5461,7 +5601,8 @@
|
|
|
5461
5601
|
}
|
|
5462
5602
|
Scroller.prototype.initDatasource = function (datasource, scroller) {
|
|
5463
5603
|
var _this = this;
|
|
5464
|
-
if (scroller) {
|
|
5604
|
+
if (scroller) {
|
|
5605
|
+
// scroller re-instantiating case
|
|
5465
5606
|
this.datasource = datasource;
|
|
5466
5607
|
this.adapter = scroller.adapter;
|
|
5467
5608
|
// todo: what about (this.settings.adapter !== scroller.setting.adapter) case?
|
|
@@ -5470,10 +5611,12 @@
|
|
|
5470
5611
|
// scroller is being instantiated for the first time
|
|
5471
5612
|
var constructed = datasource instanceof DatasourceGeneric;
|
|
5472
5613
|
var mockAdapter = !constructed && !this.settings.adapter;
|
|
5473
|
-
if (constructed) {
|
|
5614
|
+
if (constructed) {
|
|
5615
|
+
// datasource is already instantiated
|
|
5474
5616
|
this.datasource = datasource;
|
|
5475
5617
|
}
|
|
5476
|
-
else {
|
|
5618
|
+
else {
|
|
5619
|
+
// datasource as POJO
|
|
5477
5620
|
var DS = makeDatasource(function () { return ({ mock: mockAdapter }); });
|
|
5478
5621
|
this.datasource = new DS(datasource);
|
|
5479
5622
|
if (this.settings.adapter) {
|
|
@@ -5498,14 +5641,14 @@
|
|
|
5498
5641
|
};
|
|
5499
5642
|
Scroller.prototype.dispose = function (forever) {
|
|
5500
5643
|
this.logger.log(function () { return 'disposing scroller' + (forever ? ' (forever)' : ''); });
|
|
5501
|
-
if (forever) {
|
|
5644
|
+
if (forever) {
|
|
5645
|
+
// Adapter is not re-instantiated on reset
|
|
5502
5646
|
this.adapter.dispose();
|
|
5503
5647
|
}
|
|
5504
5648
|
this.buffer.dispose();
|
|
5505
5649
|
this.state.dispose();
|
|
5506
5650
|
};
|
|
5507
|
-
Scroller.prototype.finalize = function () {
|
|
5508
|
-
};
|
|
5651
|
+
Scroller.prototype.finalize = function () { };
|
|
5509
5652
|
return Scroller;
|
|
5510
5653
|
}());
|
|
5511
5654
|
|
|
@@ -5521,7 +5664,8 @@
|
|
|
5521
5664
|
var options = payload.options;
|
|
5522
5665
|
switch (process) {
|
|
5523
5666
|
case CommonProcess.init:
|
|
5524
|
-
if (status === ProcessStatus.start) {
|
|
5667
|
+
if (status === ProcessStatus.start) {
|
|
5668
|
+
// App start
|
|
5525
5669
|
run(Init)(process);
|
|
5526
5670
|
}
|
|
5527
5671
|
if (status === ProcessStatus.next) {
|
|
@@ -5741,6 +5885,7 @@
|
|
|
5741
5885
|
this.initTimer = null;
|
|
5742
5886
|
this.adapterRun$ = new Reactive();
|
|
5743
5887
|
this.cyclesDone = 0;
|
|
5888
|
+
this.cyclesDone$ = new Reactive(0);
|
|
5744
5889
|
this.interruptionCount = 0;
|
|
5745
5890
|
this.errors = [];
|
|
5746
5891
|
this.offScroll = function () { return null; };
|
|
@@ -5773,11 +5918,13 @@
|
|
|
5773
5918
|
this.scroller.init(this.adapterRun$);
|
|
5774
5919
|
// set up scroll event listener
|
|
5775
5920
|
var routines = this.scroller.routines;
|
|
5776
|
-
var onScrollHandler = function (event) {
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5921
|
+
var onScrollHandler = function (event) {
|
|
5922
|
+
return _this.callWorkflow({
|
|
5923
|
+
process: CommonProcess.scroll,
|
|
5924
|
+
status: ProcessStatus.start,
|
|
5925
|
+
payload: { event: event }
|
|
5926
|
+
});
|
|
5927
|
+
};
|
|
5781
5928
|
this.offScroll = routines.onScroll(onScrollHandler);
|
|
5782
5929
|
// run the Workflow
|
|
5783
5930
|
this.isInitialized = true;
|
|
@@ -5809,18 +5956,19 @@
|
|
|
5809
5956
|
Workflow.prototype.getUpdater = function () {
|
|
5810
5957
|
return {
|
|
5811
5958
|
call: this.callWorkflow.bind(this),
|
|
5812
|
-
onDataChanged: this.changeItems.bind(this)
|
|
5959
|
+
onDataChanged: this.changeItems.bind(this)
|
|
5813
5960
|
};
|
|
5814
5961
|
};
|
|
5815
5962
|
Workflow.prototype.process = function (data) {
|
|
5963
|
+
var _this = this;
|
|
5816
5964
|
var status = data.status, process = data.process, payload = data.payload;
|
|
5817
5965
|
if (this.scroller.settings.logProcessRun) {
|
|
5818
|
-
this.scroller.logger.log(function () {
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
"\"".concat(status, "\"")
|
|
5823
|
-
|
|
5966
|
+
this.scroller.logger.log(function () {
|
|
5967
|
+
var _fire = _this.scroller.settings.logColor
|
|
5968
|
+
? ['%cfire%c', 'color: #cc7777;', 'color: #000000;']
|
|
5969
|
+
: ['fire'];
|
|
5970
|
+
return __spreadArray(__spreadArray(__spreadArray([], __read(_fire), false), [process, "\"".concat(status, "\"")], false), __read((payload !== void 0 ? [payload] : [])), false);
|
|
5971
|
+
});
|
|
5824
5972
|
}
|
|
5825
5973
|
this.scroller.logger.logProcess(data);
|
|
5826
5974
|
if (process === CommonProcess.end) {
|
|
@@ -5841,18 +5989,19 @@
|
|
|
5841
5989
|
args[_i] = arguments[_i];
|
|
5842
5990
|
}
|
|
5843
5991
|
if (_this.scroller.settings.logProcessRun) {
|
|
5844
|
-
_this.scroller.logger.log(function () {
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5992
|
+
_this.scroller.logger.log(function () {
|
|
5993
|
+
var _run = _this.scroller.settings.logColor
|
|
5994
|
+
? ['%crun%c', 'color: #333399;', 'color: #000000;']
|
|
5995
|
+
: ['run'];
|
|
5996
|
+
return __spreadArray(__spreadArray(__spreadArray([], __read(_run), false), [process || name], false), __read(args), false);
|
|
5997
|
+
});
|
|
5849
5998
|
}
|
|
5850
5999
|
run.apply(void 0, __spreadArray([_this.scroller], __read(args), false));
|
|
5851
6000
|
};
|
|
5852
6001
|
};
|
|
5853
6002
|
};
|
|
5854
6003
|
Workflow.prototype.onError = function (process, payload) {
|
|
5855
|
-
var message = payload && String(payload.error) || '';
|
|
6004
|
+
var message = (payload && String(payload.error)) || '';
|
|
5856
6005
|
var _a = this.scroller.state, time = _a.time, cycle = _a.cycle;
|
|
5857
6006
|
this.errors.push({
|
|
5858
6007
|
process: process,
|
|
@@ -5869,15 +6018,14 @@
|
|
|
5869
6018
|
var _b = this.scroller, workflow = _b.workflow, logger_1 = _b.logger;
|
|
5870
6019
|
// we are going to create a new reference for the scroller.workflow object
|
|
5871
6020
|
// calling the old version of the scroller.workflow by any outstanding async processes will be skipped
|
|
5872
|
-
workflow.call = function (_) {
|
|
5873
|
-
return logger_1.log('[skip wf call]');
|
|
5874
|
-
};
|
|
6021
|
+
workflow.call = function (_) { return logger_1.log('[skip wf call]'); };
|
|
5875
6022
|
workflow.call.interrupted = true;
|
|
5876
6023
|
this.scroller.workflow = this.getUpdater();
|
|
5877
6024
|
this.interruptionCount++;
|
|
5878
6025
|
logger_1.log(function () { return "workflow had been interrupted by the ".concat(process, " process (").concat(_this.interruptionCount, ")"); });
|
|
5879
6026
|
}
|
|
5880
|
-
if (datasource) {
|
|
6027
|
+
if (datasource) {
|
|
6028
|
+
// Scroller re-initialization case
|
|
5881
6029
|
var reInit = function () {
|
|
5882
6030
|
_this.scroller.logger.log('new Scroller instantiation');
|
|
5883
6031
|
var scroller = new Scroller({ datasource: datasource, scroller: _this.scroller });
|
|
@@ -5897,6 +6045,7 @@
|
|
|
5897
6045
|
Workflow.prototype.done = function () {
|
|
5898
6046
|
var _a = this.scroller, state = _a.state, logger = _a.logger;
|
|
5899
6047
|
this.cyclesDone++;
|
|
6048
|
+
this.cyclesDone$.set(this.cyclesDone);
|
|
5900
6049
|
logger.logCycle(false);
|
|
5901
6050
|
state.endWorkflowCycle(this.cyclesDone + 1);
|
|
5902
6051
|
this.finalize();
|
|
@@ -5909,14 +6058,15 @@
|
|
|
5909
6058
|
}
|
|
5910
6059
|
this.offScroll();
|
|
5911
6060
|
this.adapterRun$.dispose();
|
|
6061
|
+
this.cyclesDone$.dispose();
|
|
5912
6062
|
this.scroller.dispose(true);
|
|
5913
6063
|
Object.getOwnPropertyNames(this).forEach(function (prop) {
|
|
5914
6064
|
delete _this[prop];
|
|
5915
6065
|
});
|
|
6066
|
+
this.isInitialized = false;
|
|
5916
6067
|
this.disposed = true;
|
|
5917
6068
|
};
|
|
5918
|
-
Workflow.prototype.finalize = function () {
|
|
5919
|
-
};
|
|
6069
|
+
Workflow.prototype.finalize = function () { };
|
|
5920
6070
|
return Workflow;
|
|
5921
6071
|
}());
|
|
5922
6072
|
|