vscroll 1.6.0-beta.4 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles/vscroll.esm5.js +69 -33
- 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 +68 -33
- 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 +70 -34
- 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/props.js +22 -2
- package/dist/esm2015/classes/adapter/props.js.map +1 -1
- package/dist/esm2015/classes/adapter.js +29 -12
- package/dist/esm2015/classes/adapter.js.map +1 -1
- package/dist/esm2015/interfaces/adapter.js.map +1 -1
- package/dist/esm2015/interfaces/state.js.map +1 -1
- package/dist/esm2015/processes/adapter/pause.js +10 -14
- package/dist/esm2015/processes/adapter/pause.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 +1 -1
- package/dist/esm2015/workflow-transducer.js.map +1 -1
- package/dist/esm2015/workflow.js +5 -3
- package/dist/esm2015/workflow.js.map +1 -1
- package/dist/esm5/classes/adapter/props.js +22 -2
- package/dist/esm5/classes/adapter/props.js.map +1 -1
- package/dist/esm5/classes/adapter.js +30 -12
- package/dist/esm5/classes/adapter.js.map +1 -1
- package/dist/esm5/interfaces/adapter.js.map +1 -1
- package/dist/esm5/interfaces/state.js.map +1 -1
- package/dist/esm5/processes/adapter/pause.js +10 -14
- package/dist/esm5/processes/adapter/pause.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 +1 -1
- package/dist/esm5/workflow-transducer.js.map +1 -1
- package/dist/esm5/workflow.js +5 -3
- package/dist/esm5/workflow.js.map +1 -1
- package/dist/typings/classes/adapter/props.d.ts +3 -0
- package/dist/typings/classes/adapter.d.ts +5 -0
- package/dist/typings/interfaces/adapter.d.ts +3 -0
- package/dist/typings/interfaces/state.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vscroll (https://github.com/dhilt/vscroll) FESM5
|
|
3
|
-
* Version: 1.6.0
|
|
3
|
+
* Version: 1.6.0 (2024-03-02T23:06:15.231Z)
|
|
4
4
|
* Author: Denis Hilt
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -98,6 +98,8 @@ var AdapterPropName;
|
|
|
98
98
|
AdapterPropName["bof$"] = "bof$";
|
|
99
99
|
AdapterPropName["eof"] = "eof";
|
|
100
100
|
AdapterPropName["eof$"] = "eof$";
|
|
101
|
+
AdapterPropName["paused"] = "paused";
|
|
102
|
+
AdapterPropName["paused$"] = "paused$";
|
|
101
103
|
AdapterPropName["reset"] = "reset";
|
|
102
104
|
AdapterPropName["reload"] = "reload";
|
|
103
105
|
AdapterPropName["append"] = "append";
|
|
@@ -129,6 +131,11 @@ var methodPreResult = {
|
|
|
129
131
|
success: true,
|
|
130
132
|
details: 'Adapter is not initialized'
|
|
131
133
|
};
|
|
134
|
+
var methodPausedResult = {
|
|
135
|
+
immediate: true,
|
|
136
|
+
success: true,
|
|
137
|
+
details: 'Scroller is paused'
|
|
138
|
+
};
|
|
132
139
|
var noopWF = function () { return Promise.resolve(methodPreResult); };
|
|
133
140
|
var emptyPackageInfo = {
|
|
134
141
|
core: {
|
|
@@ -240,10 +247,17 @@ var getDefaultAdapterProps = function () { return [
|
|
|
240
247
|
value: false,
|
|
241
248
|
reactive: Name.eof$
|
|
242
249
|
},
|
|
250
|
+
{
|
|
251
|
+
type: Type.Scalar,
|
|
252
|
+
name: Name.paused,
|
|
253
|
+
value: false,
|
|
254
|
+
reactive: Name.paused$
|
|
255
|
+
},
|
|
243
256
|
{
|
|
244
257
|
type: Type.WorkflowRunner,
|
|
245
258
|
name: Name.reset,
|
|
246
|
-
value: noopWF
|
|
259
|
+
value: noopWF,
|
|
260
|
+
allowedWhenPaused: true
|
|
247
261
|
},
|
|
248
262
|
{
|
|
249
263
|
type: Type.WorkflowRunner,
|
|
@@ -298,7 +312,8 @@ var getDefaultAdapterProps = function () { return [
|
|
|
298
312
|
{
|
|
299
313
|
type: Type.WorkflowRunner,
|
|
300
314
|
name: Name.resume,
|
|
301
|
-
value: noopWF
|
|
315
|
+
value: noopWF,
|
|
316
|
+
allowedWhenPaused: true
|
|
302
317
|
},
|
|
303
318
|
{
|
|
304
319
|
type: Type.WorkflowRunner,
|
|
@@ -351,13 +366,18 @@ var getDefaultAdapterProps = function () { return [
|
|
|
351
366
|
type: Type.Reactive,
|
|
352
367
|
name: Name.eof$,
|
|
353
368
|
value: new Reactive()
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
type: Type.Reactive,
|
|
372
|
+
name: Name.paused$,
|
|
373
|
+
value: new Reactive()
|
|
354
374
|
}
|
|
355
375
|
]; };
|
|
356
376
|
var reactiveConfigStorage = new Map();
|
|
357
377
|
|
|
358
378
|
var core = {
|
|
359
379
|
name: 'vscroll',
|
|
360
|
-
version: '1.6.0
|
|
380
|
+
version: '1.6.0'
|
|
361
381
|
};
|
|
362
382
|
|
|
363
383
|
var getBox = function (id) {
|
|
@@ -2066,25 +2086,21 @@ var Pause = /** @class */ (function (_super) {
|
|
|
2066
2086
|
}
|
|
2067
2087
|
Pause.run = function (scroller, options) {
|
|
2068
2088
|
var resume = !!(options === null || options === void 0 ? void 0 : options.resume);
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
}
|
|
2077
|
-
return;
|
|
2078
|
-
}
|
|
2079
|
-
if (!scroller.state.paused.get()) {
|
|
2080
|
-
scroller.logger.log('resume scroller (cancelled)');
|
|
2089
|
+
// pause branch
|
|
2090
|
+
if (!resume && !scroller.state.paused.get()) {
|
|
2091
|
+
scroller.logger.log('pause scroller');
|
|
2092
|
+
scroller.state.paused.set(true);
|
|
2093
|
+
scroller.workflow.call({
|
|
2094
|
+
process: AdapterProcess.pause,
|
|
2095
|
+
status: ProcessStatus.done
|
|
2096
|
+
});
|
|
2081
2097
|
return;
|
|
2082
2098
|
}
|
|
2083
|
-
scroller.state.paused.set(false);
|
|
2084
2099
|
scroller.logger.log('resume scroller');
|
|
2100
|
+
scroller.state.paused.set(false);
|
|
2085
2101
|
scroller.workflow.call({
|
|
2086
2102
|
process: AdapterProcess.pause,
|
|
2087
|
-
status: ProcessStatus.
|
|
2103
|
+
status: ProcessStatus.next
|
|
2088
2104
|
});
|
|
2089
2105
|
};
|
|
2090
2106
|
return Pause;
|
|
@@ -4768,8 +4784,9 @@ var State = /** @class */ (function () {
|
|
|
4768
4784
|
}());
|
|
4769
4785
|
|
|
4770
4786
|
var ADAPTER_PROPS_STUB = getDefaultAdapterProps();
|
|
4787
|
+
var ALLOWED_METHODS_WHEN_PAUSED = ADAPTER_PROPS_STUB.filter(function (v) { return !!v.allowedWhenPaused; }).map(function (v) { return v.name; });
|
|
4771
4788
|
var _has = function (obj, prop) {
|
|
4772
|
-
return typeof obj === 'object' &&
|
|
4789
|
+
return !!obj && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, prop);
|
|
4773
4790
|
};
|
|
4774
4791
|
var convertAppendArgs = function (prepend, options, eof) {
|
|
4775
4792
|
var result = options;
|
|
@@ -4920,7 +4937,7 @@ var Adapter = /** @class */ (function () {
|
|
|
4920
4937
|
value = value.bind(_this);
|
|
4921
4938
|
}
|
|
4922
4939
|
else if (type === AdapterPropType.WorkflowRunner) {
|
|
4923
|
-
value = _this.
|
|
4940
|
+
value = _this.getWorkflowRunnerMethod(value, defaultValue);
|
|
4924
4941
|
}
|
|
4925
4942
|
else if (type === AdapterPropType.Reactive && reactivePropsStore[name]) {
|
|
4926
4943
|
value = context[name];
|
|
@@ -4964,21 +4981,36 @@ var Adapter = /** @class */ (function () {
|
|
|
4964
4981
|
enumerable: false,
|
|
4965
4982
|
configurable: true
|
|
4966
4983
|
});
|
|
4967
|
-
Adapter.prototype.
|
|
4984
|
+
Adapter.prototype.shouldIgnorePausedMethod = function (method) {
|
|
4985
|
+
var methodName = method.name;
|
|
4986
|
+
return this.paused && !ALLOWED_METHODS_WHEN_PAUSED.includes(methodName);
|
|
4987
|
+
};
|
|
4988
|
+
Adapter.prototype.getPausedMethodResult = function (method) {
|
|
4989
|
+
var _a, _b;
|
|
4990
|
+
(_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () { return 'scroller is paused: ' + method.name + ' method is ignored'; });
|
|
4991
|
+
return Promise.resolve(methodPausedResult);
|
|
4992
|
+
};
|
|
4993
|
+
Adapter.prototype.getPromisifiedMethod = function (method, args) {
|
|
4994
|
+
var _this = this;
|
|
4995
|
+
return new Promise(function (resolve) {
|
|
4996
|
+
if (_this.relax$) {
|
|
4997
|
+
_this.relax$.once(function (value) { return resolve(value); });
|
|
4998
|
+
}
|
|
4999
|
+
method.apply(_this, args);
|
|
5000
|
+
});
|
|
5001
|
+
};
|
|
5002
|
+
Adapter.prototype.getWorkflowRunnerMethod = function (method, defaultMethod) {
|
|
4968
5003
|
var _this = this;
|
|
4969
5004
|
return function () {
|
|
4970
5005
|
var args = [];
|
|
4971
5006
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
4972
5007
|
args[_i] = arguments[_i];
|
|
4973
5008
|
}
|
|
4974
|
-
return _this.relax$
|
|
4975
|
-
?
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
method.apply(_this, args);
|
|
4980
|
-
})
|
|
4981
|
-
: defaultMethod.apply(_this, args);
|
|
5009
|
+
return !_this.relax$
|
|
5010
|
+
? defaultMethod.apply(_this, args)
|
|
5011
|
+
: _this.shouldIgnorePausedMethod(method)
|
|
5012
|
+
? _this.getPausedMethodResult(method)
|
|
5013
|
+
: _this.getPromisifiedMethod(method, args);
|
|
4982
5014
|
};
|
|
4983
5015
|
};
|
|
4984
5016
|
Adapter.prototype.initialize = function (_a) {
|
|
@@ -5011,6 +5043,8 @@ var Adapter = /** @class */ (function () {
|
|
|
5011
5043
|
state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });
|
|
5012
5044
|
this.isLoading = state.cycle.busy.get();
|
|
5013
5045
|
state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });
|
|
5046
|
+
this.paused = state.paused.get();
|
|
5047
|
+
state.paused.on(function (paused) { return _this.paused = paused; });
|
|
5014
5048
|
//viewport
|
|
5015
5049
|
this.setFirstOrLastVisible = function (_a) {
|
|
5016
5050
|
var _b, _c, _d;
|
|
@@ -5479,7 +5513,7 @@ var runStateMachine = function (_a) {
|
|
|
5479
5513
|
if (status === ProcessStatus.start) {
|
|
5480
5514
|
run(Pause)(options);
|
|
5481
5515
|
}
|
|
5482
|
-
if (status === ProcessStatus.
|
|
5516
|
+
if (status === ProcessStatus.next) {
|
|
5483
5517
|
run(Init)(process);
|
|
5484
5518
|
}
|
|
5485
5519
|
break;
|
|
@@ -5657,9 +5691,11 @@ var Workflow = /** @class */ (function () {
|
|
|
5657
5691
|
}
|
|
5658
5692
|
var process = processSubject.process, status = processSubject.status;
|
|
5659
5693
|
// if the scroller is paused, any process other than "pause" and "reset" should be blocked
|
|
5660
|
-
if (this.scroller.state.paused.get()
|
|
5661
|
-
|
|
5662
|
-
|
|
5694
|
+
if (this.scroller.state.paused.get()) {
|
|
5695
|
+
if (![AdapterProcess.pause, AdapterProcess.reset].includes(process)) {
|
|
5696
|
+
this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');
|
|
5697
|
+
return;
|
|
5698
|
+
}
|
|
5663
5699
|
}
|
|
5664
5700
|
if (process && process.startsWith('adapter') && status !== ProcessStatus.next) {
|
|
5665
5701
|
this.adapterRun$.set(processSubject);
|