vscroll 1.4.0-beta.2 → 1.4.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 +89 -175
- 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 +80 -165
- 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 +90 -176
- 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/buffer.js +0 -16
- package/dist/esm2015/classes/buffer.js.map +1 -1
- package/dist/esm2015/classes/state/fetch.js +0 -12
- package/dist/esm2015/classes/state/fetch.js.map +1 -1
- package/dist/esm2015/processes/adapter/append.js +15 -74
- package/dist/esm2015/processes/adapter/append.js.map +1 -1
- package/dist/esm2015/version.js +1 -1
- package/dist/esm2015/version.js.map +1 -1
- package/dist/esm5/classes/buffer.js +0 -16
- package/dist/esm5/classes/buffer.js.map +1 -1
- package/dist/esm5/classes/state/fetch.js +0 -12
- package/dist/esm5/classes/state/fetch.js.map +1 -1
- package/dist/esm5/processes/adapter/append.js +15 -75
- package/dist/esm5/processes/adapter/append.js.map +1 -1
- package/dist/esm5/version.js +1 -1
- package/dist/esm5/version.js.map +1 -1
- package/dist/typings/classes/buffer.d.ts +0 -2
- package/dist/typings/classes/state/fetch.d.ts +0 -2
- package/dist/typings/processes/adapter/append.d.ts +1 -4
- package/package.json +1 -1
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { __extends, __read, __spreadArray } from "tslib";
|
|
2
|
-
import
|
|
3
|
-
import Update from './update';
|
|
2
|
+
import Insert from './insert';
|
|
4
3
|
import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
|
|
5
|
-
import { Direction } from '../../inputs/index';
|
|
6
4
|
var Append = /** @class */ (function (_super) {
|
|
7
5
|
__extends(Append, _super);
|
|
8
6
|
function Append() {
|
|
@@ -14,89 +12,31 @@ var Append = /** @class */ (function (_super) {
|
|
|
14
12
|
if (!params) {
|
|
15
13
|
return;
|
|
16
14
|
}
|
|
17
|
-
var shouldAppend = Append.doAppend(scroller,
|
|
15
|
+
var shouldAppend = Append.doAppend(scroller, process, params);
|
|
18
16
|
scroller.workflow.call({
|
|
19
17
|
process: Append.process,
|
|
20
18
|
status: shouldAppend ? ProcessStatus.next : ProcessStatus.done
|
|
21
19
|
});
|
|
22
20
|
};
|
|
23
|
-
Append.doAppend = function (scroller,
|
|
21
|
+
Append.doAppend = function (scroller, process, params) {
|
|
22
|
+
var bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;
|
|
24
23
|
var buffer = scroller.buffer;
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
if ((prepend && bof && !buffer.bof.get()) || (!prepend && eof && !buffer.eof.get())) {
|
|
29
|
-
result = Append.doVirtual(scroller, items, prepend, fixRight);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
if (!buffer.size) {
|
|
33
|
-
result = Append.doEmpty(scroller, items, prepend, fixRight);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
result = Append.doRegular(scroller, items, prepend, fixRight);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return result;
|
|
40
|
-
};
|
|
41
|
-
Append.doVirtual = function (scroller, items, prepend, fixRight) {
|
|
42
|
-
var buffer = scroller.buffer, logger = scroller.logger, viewport = scroller.viewport, fetch = scroller.state.fetch;
|
|
43
|
-
var absIndexToken = fixRight ? 'absMinIndex' : 'absMaxIndex';
|
|
44
|
-
if (!isFinite(buffer[absIndexToken])) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
24
|
+
var prepend = process === AdapterProcess.prepend;
|
|
25
|
+
var opposite = prepend ? !increase : decrease;
|
|
26
|
+
var beforeIndex, afterIndex, items = params.items;
|
|
47
27
|
if (prepend) {
|
|
48
|
-
buffer.
|
|
28
|
+
beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);
|
|
29
|
+
items = __spreadArray([], __read(items)).reverse();
|
|
49
30
|
}
|
|
50
31
|
else {
|
|
51
|
-
buffer.
|
|
32
|
+
afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
|
|
52
33
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
logger.log(function () { return "buffer." + [absIndexToken] + " value is set to " + buffer[absIndexToken]; });
|
|
60
|
-
logger.stat("after virtual " + (prepend ? 'prepend' : 'append'));
|
|
61
|
-
return true;
|
|
62
|
-
};
|
|
63
|
-
Append.doEmpty = function (scroller, items, prepend, fixRight) {
|
|
64
|
-
var buffer = scroller.buffer, fetch = scroller.state.fetch;
|
|
65
|
-
var absIndexToken = fixRight ? 'absMinIndex' : 'absMaxIndex';
|
|
66
|
-
var shift = prepend && !fixRight ? items.length - 1 : (!prepend && fixRight ? 1 - items.length : 0);
|
|
67
|
-
var bufferLimit = buffer[absIndexToken] + (fixRight ? -1 : 1) * (items.length - 1);
|
|
68
|
-
var newItems = [];
|
|
69
|
-
var startIndex = buffer[prepend ? 'minIndex' : 'maxIndex'];
|
|
70
|
-
var index = startIndex;
|
|
71
|
-
items.forEach(function (item) {
|
|
72
|
-
var newItem = new Item(index + shift, item, scroller.routines);
|
|
73
|
-
Array.prototype[prepend ? 'unshift' : 'push'].call(newItems, newItem);
|
|
74
|
-
index += (prepend ? -1 : 1);
|
|
34
|
+
return Insert.doInsert(scroller, {
|
|
35
|
+
items: items,
|
|
36
|
+
beforeIndex: beforeIndex,
|
|
37
|
+
afterIndex: afterIndex,
|
|
38
|
+
decrease: opposite
|
|
75
39
|
});
|
|
76
|
-
if (bufferLimit !== buffer[absIndexToken]) {
|
|
77
|
-
buffer[absIndexToken] = bufferLimit;
|
|
78
|
-
scroller.logger.log(function () { return "buffer." + absIndexToken + " value is set to " + buffer[absIndexToken]; });
|
|
79
|
-
}
|
|
80
|
-
(prepend ? fetch.prepend : fetch.append).call(fetch, newItems);
|
|
81
|
-
buffer.setItems(newItems);
|
|
82
|
-
fetch.first.indexBuffer = !isNaN(buffer.firstIndex) ? buffer.firstIndex : index;
|
|
83
|
-
fetch.last.indexBuffer = !isNaN(buffer.lastIndex) ? buffer.lastIndex : index;
|
|
84
|
-
fetch.firstVisible.index = startIndex;
|
|
85
|
-
return true;
|
|
86
|
-
};
|
|
87
|
-
Append.doRegular = function (scroller, items, prepend, fixRight) {
|
|
88
|
-
var index = scroller.buffer[prepend ? 'firstIndex' : 'lastIndex'];
|
|
89
|
-
var updateOptions = {
|
|
90
|
-
predicate: function (_a) {
|
|
91
|
-
var $index = _a.$index, data = _a.data;
|
|
92
|
-
if ($index === index) {
|
|
93
|
-
return prepend ? __spreadArray(__spreadArray([], __read(items.reverse())), [data]) : __spreadArray([data], __read(items));
|
|
94
|
-
}
|
|
95
|
-
return true;
|
|
96
|
-
},
|
|
97
|
-
fixRight: fixRight
|
|
98
|
-
};
|
|
99
|
-
return Update.doUpdate(scroller, updateOptions);
|
|
100
40
|
};
|
|
101
41
|
return Append;
|
|
102
42
|
}(BaseAdapterProcessFactory(AdapterProcess.append)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"append.js","sourceRoot":"","sources":["../../../../src/processes/adapter/append.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUzF;IAAoC,0BAAgD;IAApF;;IAoCA,CAAC;IAlCQ,UAAG,GAAV,UAAW,QAAkB,EAAE,EAAsC;YAApC,OAAO,aAAA,EAAE,OAAO,aAAA;QACvC,IAAA,MAAM,GAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAzD,CAA0D;QACxE,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAEM,eAAQ,GAAf,UAAgB,QAAkB,EAAE,OAAuB,EAAE,MAAmC;QACtF,IAAA,GAAG,GAA8B,MAAM,IAApC,EAAE,GAAG,GAAyB,MAAM,IAA/B,EAAE,QAAQ,GAAe,MAAM,SAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;QACxC,IAAA,MAAM,GAAK,QAAQ,OAAb,CAAc;QAC5B,IAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC;QACnD,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,IAAI,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE;YACX,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,GAAG,yBAAI,KAAK,GAAE,OAAO,EAAE,CAAC;SAC9B;aAAM;YACL,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC/B,KAAK,OAAA;YACL,WAAW,aAAA;YACX,UAAU,YAAA;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAEH,aAAC;AAAD,CAAC,AApCD,CAAoC,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,GAoCnF","sourcesContent":["import { Scroller } from '../../scroller';\nimport Insert from './insert';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { AdapterAppendOptions, AdapterPrependOptions } from '../../interfaces/index';\n\ntype AdapterAppendPrependOptions = AdapterAppendOptions & AdapterPrependOptions;\n\ninterface AppendRunOptions {\n process: AdapterProcess;\n options: AdapterAppendPrependOptions;\n}\n\nexport default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) {\n\n static run(scroller: Scroller, { process, options }: AppendRunOptions): void {\n const { params } = Append.parseInput(scroller, options, false, process);\n if (!params) {\n return;\n }\n\n const shouldAppend = Append.doAppend(scroller, process, params);\n\n scroller.workflow.call({\n process: Append.process,\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean {\n const { bof, eof, increase, decrease } = params;\n const { buffer } = scroller;\n const prepend = process === AdapterProcess.prepend;\n const opposite = prepend ? !increase : decrease;\n let beforeIndex, afterIndex, items = params.items;\n if (prepend) {\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\n items = [...items].reverse();\n } else {\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\n }\n return Insert.doInsert(scroller, {\n items,\n beforeIndex,\n afterIndex,\n decrease: opposite\n });\n }\n\n}\n"]}
|
package/dist/esm5/version.js
CHANGED
package/dist/esm5/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACjB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.4.0'\n};\n"]}
|
|
@@ -45,8 +45,6 @@ export declare class Buffer<Data> {
|
|
|
45
45
|
clip(): void;
|
|
46
46
|
getIndexToInsert(predicate?: ItemsPredicate, before?: number, after?: number): number;
|
|
47
47
|
private shiftExtremum;
|
|
48
|
-
appendVirtually(count: number, fixRight: boolean): void;
|
|
49
|
-
prependVirtually(count: number, fixRight: boolean): void;
|
|
50
48
|
insertVirtually(items: Data[], index: number, direction: Direction, fixRight: boolean): boolean;
|
|
51
49
|
removeVirtually(indexes: number[], fixRight: boolean): void;
|
|
52
50
|
fillEmpty(items: Data[], beforeIndex: number | undefined, afterIndex: number | undefined, fixRight: boolean, generator: (index: number, data: Data) => Item<Data>): boolean;
|
|
@@ -56,8 +56,6 @@ export declare class FetchModel {
|
|
|
56
56
|
startSimulate(items: Item[]): void;
|
|
57
57
|
stopSimulate(): void;
|
|
58
58
|
fill(items: Item[], start: number): void;
|
|
59
|
-
append(items: Item[]): void;
|
|
60
|
-
prepend(items: Item[]): void;
|
|
61
59
|
check(items: Item[]): void;
|
|
62
60
|
update(index: number, delta: number, items: Item[], itemsToRemove: Item[]): void;
|
|
63
61
|
}
|
|
@@ -9,9 +9,6 @@ interface AppendRunOptions {
|
|
|
9
9
|
declare const Append_base: import("../../interfaces/process").IBaseAdapterProcess;
|
|
10
10
|
export default class Append extends Append_base {
|
|
11
11
|
static run(scroller: Scroller, { process, options }: AppendRunOptions): void;
|
|
12
|
-
static doAppend(scroller: Scroller,
|
|
13
|
-
static doVirtual(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean;
|
|
14
|
-
static doEmpty(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean;
|
|
15
|
-
static doRegular(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean;
|
|
12
|
+
static doAppend(scroller: Scroller, process: AdapterProcess, params: AdapterAppendPrependOptions): boolean;
|
|
16
13
|
}
|
|
17
14
|
export {};
|