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.
Files changed (32) hide show
  1. package/dist/bundles/vscroll.esm5.js +89 -175
  2. package/dist/bundles/vscroll.esm5.js.map +1 -1
  3. package/dist/bundles/vscroll.esm5.min.js +2 -2
  4. package/dist/bundles/vscroll.esm5.min.js.map +1 -1
  5. package/dist/bundles/vscroll.esm6.js +80 -165
  6. package/dist/bundles/vscroll.esm6.js.map +1 -1
  7. package/dist/bundles/vscroll.esm6.min.js +2 -2
  8. package/dist/bundles/vscroll.esm6.min.js.map +1 -1
  9. package/dist/bundles/vscroll.umd.js +90 -176
  10. package/dist/bundles/vscroll.umd.js.map +1 -1
  11. package/dist/bundles/vscroll.umd.min.js +2 -2
  12. package/dist/bundles/vscroll.umd.min.js.map +1 -1
  13. package/dist/esm2015/classes/buffer.js +0 -16
  14. package/dist/esm2015/classes/buffer.js.map +1 -1
  15. package/dist/esm2015/classes/state/fetch.js +0 -12
  16. package/dist/esm2015/classes/state/fetch.js.map +1 -1
  17. package/dist/esm2015/processes/adapter/append.js +15 -74
  18. package/dist/esm2015/processes/adapter/append.js.map +1 -1
  19. package/dist/esm2015/version.js +1 -1
  20. package/dist/esm2015/version.js.map +1 -1
  21. package/dist/esm5/classes/buffer.js +0 -16
  22. package/dist/esm5/classes/buffer.js.map +1 -1
  23. package/dist/esm5/classes/state/fetch.js +0 -12
  24. package/dist/esm5/classes/state/fetch.js.map +1 -1
  25. package/dist/esm5/processes/adapter/append.js +15 -75
  26. package/dist/esm5/processes/adapter/append.js.map +1 -1
  27. package/dist/esm5/version.js +1 -1
  28. package/dist/esm5/version.js.map +1 -1
  29. package/dist/typings/classes/buffer.d.ts +0 -2
  30. package/dist/typings/classes/state/fetch.d.ts +0 -2
  31. package/dist/typings/processes/adapter/append.d.ts +1 -4
  32. package/package.json +1 -1
@@ -1,8 +1,6 @@
1
1
  import { __extends, __read, __spreadArray } from "tslib";
2
- import { Item } from '../../classes/item';
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, params, process !== AdapterProcess.append);
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, params, prepend) {
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 items = params.items, bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;
26
- var fixRight = (prepend && !increase) || (!prepend && !!decrease);
27
- var result = false;
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.prependVirtually(items.length, fixRight);
28
+ beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);
29
+ items = __spreadArray([], __read(items)).reverse();
49
30
  }
50
31
  else {
51
- buffer.appendVirtually(items.length, fixRight);
32
+ afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
52
33
  }
53
- var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
54
- fetch.firstVisible.index = index;
55
- if (!isNaN(index)) {
56
- fetch.simulate = true;
57
- fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;
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":"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","sourcesContent":["import { Scroller } from '../../scroller';\nimport { Item } from '../../classes/item';\nimport Update from './update';\nimport { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';\nimport { Direction } from '../../inputs/index';\nimport { AdapterAppendOptions, AdapterPrependOptions, AdapterUpdateOptions } 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 const shouldAppend = Append.doAppend(scroller, params, process !== AdapterProcess.append);\n\n scroller.workflow.call({\n process: Append.process,\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\n });\n }\n\n static doAppend(scroller: Scroller, params: AdapterAppendPrependOptions, prepend: boolean): boolean {\n const { buffer } = scroller;\n const { items, bof, eof, increase, decrease } = params;\n const fixRight = (prepend && !increase) || (!prepend && !!decrease);\n let result = false;\n if ((prepend && bof && !buffer.bof.get()) || (!prepend && eof && !buffer.eof.get())) {\n result = Append.doVirtual(scroller, items, prepend, fixRight);\n } else {\n if (!buffer.size) {\n result = Append.doEmpty(scroller, items, prepend, fixRight);\n } else {\n result = Append.doRegular(scroller, items, prepend, fixRight);\n }\n }\n return result;\n }\n\n static doVirtual(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean {\n const { buffer, logger, viewport, state: { fetch } } = scroller;\n const absIndexToken = fixRight ? 'absMinIndex' : 'absMaxIndex';\n if (!isFinite(buffer[absIndexToken])) {\n return false;\n }\n if (prepend) {\n buffer.prependVirtually(items.length, fixRight);\n } else {\n buffer.appendVirtually(items.length, fixRight);\n }\n const { index, diff } = viewport.getEdgeVisibleItem(buffer.items, Direction.backward);\n fetch.firstVisible.index = index;\n if (!isNaN(index)) {\n fetch.simulate = true;\n fetch.firstVisible.delta = - buffer.getSizeByIndex(index) + diff;\n }\n logger.log(() => `buffer.${[absIndexToken]} value is set to ${buffer[absIndexToken]}`);\n logger.stat(`after virtual ${prepend ? 'prepend' : 'append'}`);\n return true;\n }\n\n static doEmpty(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean {\n const { buffer, state: { fetch } } = scroller;\n const absIndexToken = fixRight ? 'absMinIndex' : 'absMaxIndex';\n const shift = prepend && !fixRight ? items.length - 1 : (!prepend && fixRight ? 1 - items.length : 0);\n const bufferLimit = buffer[absIndexToken] + (fixRight ? -1 : 1) * (items.length - 1);\n const newItems: Item[] = [];\n const startIndex = buffer[prepend ? 'minIndex' : 'maxIndex'];\n let index = startIndex;\n\n items.forEach(item => {\n const newItem = new Item(index + shift, item, scroller.routines);\n Array.prototype[prepend ? 'unshift' : 'push'].call(newItems, newItem);\n index += (prepend ? -1 : 1);\n });\n\n if (bufferLimit !== buffer[absIndexToken]) {\n buffer[absIndexToken] = bufferLimit;\n scroller.logger.log(() => `buffer.${absIndexToken} value is set to ${buffer[absIndexToken]}`);\n }\n\n (prepend ? fetch.prepend : fetch.append).call(fetch, newItems);\n buffer.setItems(newItems);\n fetch.first.indexBuffer = !isNaN(buffer.firstIndex) ? buffer.firstIndex : index;\n fetch.last.indexBuffer = !isNaN(buffer.lastIndex) ? buffer.lastIndex : index;\n fetch.firstVisible.index = startIndex;\n return true;\n }\n\n static doRegular(scroller: Scroller, items: unknown[], prepend: boolean, fixRight: boolean): boolean {\n const index = scroller.buffer[prepend ? 'firstIndex' : 'lastIndex'];\n const updateOptions: AdapterUpdateOptions = {\n predicate: ({ $index, data }) => {\n if ($index === index) {\n return prepend ? [...items.reverse(), data] : [data, ...items];\n }\n return true;\n },\n fixRight\n };\n return Update.doUpdate(scroller, updateOptions);\n }\n\n}\n"]}
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"]}
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  name: 'vscroll',
3
- version: '1.4.0-beta.2'
3
+ version: '1.4.0'
4
4
  };
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,cAAc;CACxB,CAAC","sourcesContent":["export default {\n name: 'vscroll',\n version: '1.4.0-beta.2'\n};\n"]}
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, params: AdapterAppendPrependOptions, prepend: boolean): boolean;
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 {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vscroll",
3
- "version": "1.4.0-beta.2",
3
+ "version": "1.4.0",
4
4
  "description": "Virtual scroll engine",
5
5
  "main": "dist/bundles/vscroll.umd.js",
6
6
  "module": "dist/bundles/vscroll.esm5.js",