vscroll 1.4.0-alpha → 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 +152 -184
- 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 +140 -173
- 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 +153 -185
- 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/checkCall.js +23 -1
- package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm2015/classes/buffer.js +22 -17
- package/dist/esm2015/classes/buffer.js.map +1 -1
- package/dist/esm2015/classes/state/fetch.js +4 -11
- package/dist/esm2015/classes/state/fetch.js.map +1 -1
- package/dist/esm2015/processes/adapter/append.js +20 -71
- package/dist/esm2015/processes/adapter/append.js.map +1 -1
- package/dist/esm2015/processes/adapter/insert.js +28 -29
- package/dist/esm2015/processes/adapter/insert.js.map +1 -1
- package/dist/esm2015/processes/postFetch.js +0 -1
- package/dist/esm2015/processes/postFetch.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 +6 -6
- package/dist/esm2015/workflow-transducer.js.map +1 -1
- package/dist/esm5/classes/buffer/checkCall.js +25 -1
- package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm5/classes/buffer.js +24 -17
- package/dist/esm5/classes/buffer.js.map +1 -1
- package/dist/esm5/classes/state/fetch.js +4 -11
- package/dist/esm5/classes/state/fetch.js.map +1 -1
- package/dist/esm5/processes/adapter/append.js +20 -72
- package/dist/esm5/processes/adapter/append.js.map +1 -1
- package/dist/esm5/processes/adapter/insert.js +28 -31
- package/dist/esm5/processes/adapter/insert.js.map +1 -1
- package/dist/esm5/processes/postFetch.js +0 -1
- package/dist/esm5/processes/postFetch.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 +6 -6
- package/dist/esm5/workflow-transducer.js.map +1 -1
- package/dist/typings/classes/buffer/checkCall.d.ts +4 -1
- package/dist/typings/classes/buffer.d.ts +3 -3
- package/dist/typings/classes/state/fetch.d.ts +1 -3
- package/dist/typings/processes/adapter/append.d.ts +1 -3
- package/dist/typings/processes/adapter/insert.d.ts +1 -0
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vscroll (https://github.com/dhilt/vscroll) FESM5
|
|
3
|
-
* Version: 1.4.0
|
|
3
|
+
* Version: 1.4.0 (2021-10-01T22:35:14.215Z)
|
|
4
4
|
* Author: Denis Hilt
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -343,7 +343,7 @@ var reactiveConfigStorage = new Map();
|
|
|
343
343
|
|
|
344
344
|
var core = {
|
|
345
345
|
name: 'vscroll',
|
|
346
|
-
version: '1.4.0
|
|
346
|
+
version: '1.4.0'
|
|
347
347
|
};
|
|
348
348
|
|
|
349
349
|
var instanceCount$1 = 0;
|
|
@@ -1656,94 +1656,119 @@ var Update = /** @class */ (function (_super) {
|
|
|
1656
1656
|
return Update;
|
|
1657
1657
|
}(BaseAdapterProcessFactory(AdapterProcess.update)));
|
|
1658
1658
|
|
|
1659
|
-
var
|
|
1660
|
-
__extends(
|
|
1661
|
-
function
|
|
1659
|
+
var Insert = /** @class */ (function (_super) {
|
|
1660
|
+
__extends(Insert, _super);
|
|
1661
|
+
function Insert() {
|
|
1662
1662
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
1663
1663
|
}
|
|
1664
|
-
|
|
1665
|
-
var
|
|
1666
|
-
var params = Append.parseInput(scroller, options, false, process).params;
|
|
1664
|
+
Insert.run = function (scroller, options) {
|
|
1665
|
+
var params = Insert.parseInput(scroller, options).params;
|
|
1667
1666
|
if (!params) {
|
|
1668
1667
|
return;
|
|
1669
1668
|
}
|
|
1670
|
-
var
|
|
1671
|
-
var items = params.items, bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;
|
|
1672
|
-
var prepend = process !== AdapterProcess.append;
|
|
1673
|
-
var fixRight = (prepend && !increase) || (!prepend && !!decrease);
|
|
1674
|
-
var next = false;
|
|
1675
|
-
if ((prepend && bof && !buffer.bof.get()) || (!prepend && eof && !buffer.eof.get())) {
|
|
1676
|
-
Append.doVirtual(scroller, items, prepend, fixRight);
|
|
1677
|
-
}
|
|
1678
|
-
else {
|
|
1679
|
-
if (!buffer.size) {
|
|
1680
|
-
next = Append.doEmpty(scroller, items, prepend, fixRight);
|
|
1681
|
-
}
|
|
1682
|
-
else {
|
|
1683
|
-
next = Append.doRegular(scroller, items, prepend, fixRight);
|
|
1684
|
-
}
|
|
1685
|
-
}
|
|
1669
|
+
var shouldInsert = Insert.doInsert(scroller, params);
|
|
1686
1670
|
scroller.workflow.call({
|
|
1687
|
-
process:
|
|
1688
|
-
status:
|
|
1671
|
+
process: Insert.process,
|
|
1672
|
+
status: shouldInsert ? ProcessStatus.next : ProcessStatus.done
|
|
1689
1673
|
});
|
|
1690
1674
|
};
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
padding.size += size;
|
|
1698
|
-
if (prepend) {
|
|
1699
|
-
buffer.prependVirtually(items.length, fixRight);
|
|
1700
|
-
scroller.viewport.scrollPosition += size;
|
|
1701
|
-
}
|
|
1702
|
-
else {
|
|
1703
|
-
buffer.appendVirtually(items.length, fixRight);
|
|
1675
|
+
Insert.doInsert = function (scroller, params) {
|
|
1676
|
+
if (!Insert.insertEmpty(scroller, params)) {
|
|
1677
|
+
if (!Insert.insertInBuffer(scroller, params)) {
|
|
1678
|
+
if (!Insert.insertVirtually(scroller, params)) {
|
|
1679
|
+
return false;
|
|
1680
|
+
}
|
|
1704
1681
|
}
|
|
1705
|
-
scroller.logger.log(function () { return "buffer." + [absIndexToken] + " value is set to " + buffer[absIndexToken]; });
|
|
1706
|
-
scroller.logger.stat("after virtual " + (prepend ? 'prepend' : 'append'));
|
|
1707
1682
|
}
|
|
1683
|
+
return true;
|
|
1708
1684
|
};
|
|
1709
|
-
|
|
1710
|
-
var buffer = scroller.buffer, fetch = scroller.state.fetch;
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
var
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
Array.prototype[prepend ? 'unshift' : 'push'].call(newItems, newItem);
|
|
1720
|
-
index += (prepend ? -1 : 1);
|
|
1721
|
-
});
|
|
1722
|
-
if (bufferLimit !== buffer[absIndexToken]) {
|
|
1723
|
-
buffer[absIndexToken] = bufferLimit;
|
|
1724
|
-
scroller.logger.log(function () { return "buffer." + absIndexToken + " value is set to " + buffer[absIndexToken]; });
|
|
1725
|
-
}
|
|
1726
|
-
(prepend ? fetch.prepend : fetch.append).call(fetch, newItems);
|
|
1727
|
-
buffer.setItems(newItems);
|
|
1728
|
-
fetch.first.indexBuffer = !isNaN(buffer.firstIndex) ? buffer.firstIndex : index;
|
|
1729
|
-
fetch.last.indexBuffer = !isNaN(buffer.lastIndex) ? buffer.lastIndex : index;
|
|
1730
|
-
fetch.firstVisible.index = startIndex;
|
|
1685
|
+
Insert.insertEmpty = function (scroller, params) {
|
|
1686
|
+
var buffer = scroller.buffer, routines = scroller.routines, fetch = scroller.state.fetch;
|
|
1687
|
+
if (buffer.size) {
|
|
1688
|
+
return false;
|
|
1689
|
+
}
|
|
1690
|
+
var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1691
|
+
if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {
|
|
1692
|
+
return false;
|
|
1693
|
+
}
|
|
1694
|
+
fetch.fill(buffer.items, buffer.startIndex);
|
|
1731
1695
|
return true;
|
|
1732
1696
|
};
|
|
1733
|
-
|
|
1734
|
-
var
|
|
1697
|
+
Insert.insertInBuffer = function (scroller, params) {
|
|
1698
|
+
var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1699
|
+
var indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);
|
|
1700
|
+
if (isNaN(indexToInsert)) {
|
|
1701
|
+
return false;
|
|
1702
|
+
}
|
|
1703
|
+
var isBackward = Number.isInteger(beforeIndex) || before;
|
|
1735
1704
|
var updateOptions = {
|
|
1736
1705
|
predicate: function (_a) {
|
|
1737
1706
|
var $index = _a.$index, data = _a.data;
|
|
1738
|
-
if (
|
|
1739
|
-
return
|
|
1707
|
+
if (indexToInsert === $index) {
|
|
1708
|
+
return isBackward ? __spreadArray(__spreadArray([], __read(items)), [data]) : __spreadArray([data], __read(items));
|
|
1740
1709
|
}
|
|
1741
1710
|
return true;
|
|
1742
1711
|
},
|
|
1743
|
-
fixRight:
|
|
1712
|
+
fixRight: decrease
|
|
1744
1713
|
};
|
|
1745
1714
|
return Update.doUpdate(scroller, updateOptions);
|
|
1746
1715
|
};
|
|
1716
|
+
Insert.insertVirtually = function (scroller, params) {
|
|
1717
|
+
var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1718
|
+
var buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
|
|
1719
|
+
var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
|
|
1720
|
+
var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);
|
|
1721
|
+
if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {
|
|
1722
|
+
return false;
|
|
1723
|
+
}
|
|
1724
|
+
var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;
|
|
1725
|
+
fetch.firstVisible.index = index;
|
|
1726
|
+
if (!isNaN(index)) {
|
|
1727
|
+
fetch.simulate = true;
|
|
1728
|
+
fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;
|
|
1729
|
+
}
|
|
1730
|
+
return true;
|
|
1731
|
+
};
|
|
1732
|
+
return Insert;
|
|
1733
|
+
}(BaseAdapterProcessFactory(AdapterProcess.insert)));
|
|
1734
|
+
|
|
1735
|
+
var Append = /** @class */ (function (_super) {
|
|
1736
|
+
__extends(Append, _super);
|
|
1737
|
+
function Append() {
|
|
1738
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
1739
|
+
}
|
|
1740
|
+
Append.run = function (scroller, _a) {
|
|
1741
|
+
var process = _a.process, options = _a.options;
|
|
1742
|
+
var params = Append.parseInput(scroller, options, false, process).params;
|
|
1743
|
+
if (!params) {
|
|
1744
|
+
return;
|
|
1745
|
+
}
|
|
1746
|
+
var shouldAppend = Append.doAppend(scroller, process, params);
|
|
1747
|
+
scroller.workflow.call({
|
|
1748
|
+
process: Append.process,
|
|
1749
|
+
status: shouldAppend ? ProcessStatus.next : ProcessStatus.done
|
|
1750
|
+
});
|
|
1751
|
+
};
|
|
1752
|
+
Append.doAppend = function (scroller, process, params) {
|
|
1753
|
+
var bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;
|
|
1754
|
+
var buffer = scroller.buffer;
|
|
1755
|
+
var prepend = process === AdapterProcess.prepend;
|
|
1756
|
+
var opposite = prepend ? !increase : decrease;
|
|
1757
|
+
var beforeIndex, afterIndex, items = params.items;
|
|
1758
|
+
if (prepend) {
|
|
1759
|
+
beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);
|
|
1760
|
+
items = __spreadArray([], __read(items)).reverse();
|
|
1761
|
+
}
|
|
1762
|
+
else {
|
|
1763
|
+
afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
|
|
1764
|
+
}
|
|
1765
|
+
return Insert.doInsert(scroller, {
|
|
1766
|
+
items: items,
|
|
1767
|
+
beforeIndex: beforeIndex,
|
|
1768
|
+
afterIndex: afterIndex,
|
|
1769
|
+
decrease: opposite
|
|
1770
|
+
});
|
|
1771
|
+
};
|
|
1747
1772
|
return Append;
|
|
1748
1773
|
}(BaseAdapterProcessFactory(AdapterProcess.append)));
|
|
1749
1774
|
|
|
@@ -1911,86 +1936,6 @@ var UserClip = /** @class */ (function (_super) {
|
|
|
1911
1936
|
return UserClip;
|
|
1912
1937
|
}(BaseAdapterProcessFactory(AdapterProcess.clip)));
|
|
1913
1938
|
|
|
1914
|
-
var Insert = /** @class */ (function (_super) {
|
|
1915
|
-
__extends(Insert, _super);
|
|
1916
|
-
function Insert() {
|
|
1917
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
1918
|
-
}
|
|
1919
|
-
Insert.run = function (scroller, options) {
|
|
1920
|
-
var params = Insert.parseInput(scroller, options).params;
|
|
1921
|
-
if (!params) {
|
|
1922
|
-
return;
|
|
1923
|
-
}
|
|
1924
|
-
var shouldInsert = Insert.doInsert(scroller, params);
|
|
1925
|
-
scroller.workflow.call({
|
|
1926
|
-
process: Insert.process,
|
|
1927
|
-
status: shouldInsert ? ProcessStatus.next : ProcessStatus.done
|
|
1928
|
-
});
|
|
1929
|
-
};
|
|
1930
|
-
Insert.doInsert = function (scroller, params) {
|
|
1931
|
-
if (!Insert.insertInBuffer(scroller, params)) {
|
|
1932
|
-
if (!Insert.insertVirtually(scroller, params)) {
|
|
1933
|
-
return false;
|
|
1934
|
-
}
|
|
1935
|
-
}
|
|
1936
|
-
return true;
|
|
1937
|
-
};
|
|
1938
|
-
Insert.insertInBuffer = function (scroller, params) {
|
|
1939
|
-
var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1940
|
-
var index = Number.isInteger(beforeIndex) ? beforeIndex : (Number.isInteger(afterIndex) ? afterIndex : NaN);
|
|
1941
|
-
var isBackward = Number.isInteger(beforeIndex) || before;
|
|
1942
|
-
var method = before || after;
|
|
1943
|
-
var found = scroller.buffer.items.find(function (item) {
|
|
1944
|
-
return (method && method(item.get())) || (Number.isInteger(index) && index === item.$index);
|
|
1945
|
-
});
|
|
1946
|
-
if (!found) {
|
|
1947
|
-
scroller.logger.log('no item to insert in buffer');
|
|
1948
|
-
return false;
|
|
1949
|
-
}
|
|
1950
|
-
var indexToInsert = found.$index;
|
|
1951
|
-
var updateOptions = {
|
|
1952
|
-
predicate: function (_a) {
|
|
1953
|
-
var $index = _a.$index, data = _a.data;
|
|
1954
|
-
if (indexToInsert === $index) {
|
|
1955
|
-
return isBackward ? __spreadArray(__spreadArray([], __read(items)), [data]) : __spreadArray([data], __read(items));
|
|
1956
|
-
}
|
|
1957
|
-
return true;
|
|
1958
|
-
},
|
|
1959
|
-
fixRight: decrease
|
|
1960
|
-
};
|
|
1961
|
-
return Update.doUpdate(scroller, updateOptions);
|
|
1962
|
-
};
|
|
1963
|
-
Insert.insertVirtually = function (scroller, params) {
|
|
1964
|
-
var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;
|
|
1965
|
-
var buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;
|
|
1966
|
-
var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;
|
|
1967
|
-
var index = (direction === Direction.backward ? beforeIndex : afterIndex);
|
|
1968
|
-
if (isNaN(fetch.firstVisible.index)) { // if in-buffer insertion did not set firstVisible
|
|
1969
|
-
var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index_1 = _a.index, diff = _a.diff;
|
|
1970
|
-
fetch.firstVisible.index = index_1;
|
|
1971
|
-
if (!isNaN(index_1)) {
|
|
1972
|
-
fetch.firstVisible.delta = -buffer.getSizeByIndex(index_1) + diff;
|
|
1973
|
-
}
|
|
1974
|
-
}
|
|
1975
|
-
if (!buffer.insertVirtually(items, index, direction, !!decrease)) {
|
|
1976
|
-
return false;
|
|
1977
|
-
}
|
|
1978
|
-
var firstVisible = scroller.state.fetch.firstVisible;
|
|
1979
|
-
if (!isNaN(firstVisible.index)) {
|
|
1980
|
-
var shift = 0;
|
|
1981
|
-
if (index < firstVisible.index && !decrease) {
|
|
1982
|
-
shift = items.length;
|
|
1983
|
-
}
|
|
1984
|
-
else if (index > firstVisible.index && decrease) {
|
|
1985
|
-
shift = -items.length;
|
|
1986
|
-
}
|
|
1987
|
-
firstVisible.index += shift;
|
|
1988
|
-
}
|
|
1989
|
-
return true;
|
|
1990
|
-
};
|
|
1991
|
-
return Insert;
|
|
1992
|
-
}(BaseAdapterProcessFactory(AdapterProcess.insert)));
|
|
1993
|
-
|
|
1994
1939
|
var Replace = /** @class */ (function (_super) {
|
|
1995
1940
|
__extends(Replace, _super);
|
|
1996
1941
|
function Replace() {
|
|
@@ -2545,7 +2490,6 @@ var PostFetch = /** @class */ (function (_super) {
|
|
|
2545
2490
|
fetch.items = items.map(function (item, index) {
|
|
2546
2491
|
return new Item(fetchIndex + index, item, scroller.routines);
|
|
2547
2492
|
});
|
|
2548
|
-
fetch.isPrepend = !!buffer.items.length && buffer.items[0].$index > fetch.items[fetch.items.length - 1].$index;
|
|
2549
2493
|
return buffer.setItems(fetch.items);
|
|
2550
2494
|
};
|
|
2551
2495
|
return PostFetch;
|
|
@@ -3835,7 +3779,31 @@ var CheckBufferCall = /** @class */ (function () {
|
|
|
3835
3779
|
this.context = context;
|
|
3836
3780
|
this.logger = logger;
|
|
3837
3781
|
}
|
|
3838
|
-
CheckBufferCall.prototype.
|
|
3782
|
+
CheckBufferCall.prototype.fillEmpty = function (items, before, after) {
|
|
3783
|
+
if (!items.length) {
|
|
3784
|
+
this.logger.log('no items to fill the buffer; empty list');
|
|
3785
|
+
return false;
|
|
3786
|
+
}
|
|
3787
|
+
if (!Number.isInteger(before) && !Number.isInteger(after)) {
|
|
3788
|
+
this.logger.log('no items to fill the buffer; wrong indexes');
|
|
3789
|
+
return false;
|
|
3790
|
+
}
|
|
3791
|
+
this.logger.log(function () { return "going to fill the buffer with " + items.length + " item(s)"; });
|
|
3792
|
+
return true;
|
|
3793
|
+
};
|
|
3794
|
+
CheckBufferCall.prototype.insertInBuffer = function (predicate, before, after) {
|
|
3795
|
+
var index = Number.isInteger(before) ? before : (Number.isInteger(after) ? after : NaN);
|
|
3796
|
+
var found = this.context.items.find(function (item) {
|
|
3797
|
+
return (predicate && predicate(item.get())) ||
|
|
3798
|
+
(Number.isInteger(index) && index === item.$index);
|
|
3799
|
+
});
|
|
3800
|
+
if (!found) {
|
|
3801
|
+
this.logger.log('no items to insert in buffer; empty predicate\'s result');
|
|
3802
|
+
return NaN;
|
|
3803
|
+
}
|
|
3804
|
+
return found.$index;
|
|
3805
|
+
};
|
|
3806
|
+
CheckBufferCall.prototype.insertVirtual = function (items, index, direction) {
|
|
3839
3807
|
if (!items.length) {
|
|
3840
3808
|
this.logger.log('no items to insert virtually; empty list');
|
|
3841
3809
|
return false;
|
|
@@ -4058,6 +4026,9 @@ var Buffer = /** @class */ (function () {
|
|
|
4058
4026
|
return !toRemove;
|
|
4059
4027
|
});
|
|
4060
4028
|
};
|
|
4029
|
+
Buffer.prototype.getIndexToInsert = function (predicate, before, after) {
|
|
4030
|
+
return this.checkCall.insertInBuffer(predicate, before, after);
|
|
4031
|
+
};
|
|
4061
4032
|
Buffer.prototype.shiftExtremum = function (amount, fixRight) {
|
|
4062
4033
|
if (!fixRight) {
|
|
4063
4034
|
this.absMaxIndex += amount;
|
|
@@ -4073,24 +4044,8 @@ var Buffer = /** @class */ (function () {
|
|
|
4073
4044
|
this.startIndex = this.absMinIndex;
|
|
4074
4045
|
}
|
|
4075
4046
|
};
|
|
4076
|
-
Buffer.prototype.appendVirtually = function (count, fixRight) {
|
|
4077
|
-
if (fixRight) {
|
|
4078
|
-
this.items.forEach(function (item) { return item.updateIndex(item.$index - count); });
|
|
4079
|
-
this.cache.shiftIndexes(-count);
|
|
4080
|
-
this.items = __spreadArray([], __read(this.items));
|
|
4081
|
-
}
|
|
4082
|
-
this.shiftExtremum(count, fixRight);
|
|
4083
|
-
};
|
|
4084
|
-
Buffer.prototype.prependVirtually = function (count, fixRight) {
|
|
4085
|
-
if (!fixRight) {
|
|
4086
|
-
this.items.forEach(function (item) { return item.updateIndex(item.$index + count); });
|
|
4087
|
-
this.cache.shiftIndexes(count);
|
|
4088
|
-
this.items = __spreadArray([], __read(this.items));
|
|
4089
|
-
}
|
|
4090
|
-
this.shiftExtremum(count, fixRight);
|
|
4091
|
-
};
|
|
4092
4047
|
Buffer.prototype.insertVirtually = function (items, index, direction, fixRight) {
|
|
4093
|
-
if (!this.checkCall.
|
|
4048
|
+
if (!this.checkCall.insertVirtual(items, index, direction)) {
|
|
4094
4049
|
return false;
|
|
4095
4050
|
}
|
|
4096
4051
|
var shift = 0;
|
|
@@ -4129,6 +4084,26 @@ var Buffer = /** @class */ (function () {
|
|
|
4129
4084
|
}
|
|
4130
4085
|
this.cache.removeItems(indexes, fixRight);
|
|
4131
4086
|
};
|
|
4087
|
+
Buffer.prototype.fillEmpty = function (items, beforeIndex, afterIndex, fixRight, generator) {
|
|
4088
|
+
if (!this.checkCall.fillEmpty(items, beforeIndex, afterIndex)) {
|
|
4089
|
+
return false;
|
|
4090
|
+
}
|
|
4091
|
+
var before = Number.isInteger(beforeIndex);
|
|
4092
|
+
var index = (before ? beforeIndex : afterIndex);
|
|
4093
|
+
var shift = (fixRight ? items.length : (before ? 1 : 0));
|
|
4094
|
+
this.items = items.map(function (data, i) {
|
|
4095
|
+
return generator(index + i + (!before ? 1 : 0) - shift, data);
|
|
4096
|
+
});
|
|
4097
|
+
this._absMinIndex = this.items[0].$index;
|
|
4098
|
+
this._absMaxIndex = this.items[this.size - 1].$index;
|
|
4099
|
+
if (this.startIndex <= this.absMinIndex) {
|
|
4100
|
+
this.startIndex = this.absMinIndex;
|
|
4101
|
+
}
|
|
4102
|
+
else if (this.startIndex > this.absMaxIndex) {
|
|
4103
|
+
this.startIndex = this.absMaxIndex;
|
|
4104
|
+
}
|
|
4105
|
+
return true;
|
|
4106
|
+
};
|
|
4132
4107
|
Buffer.prototype.updateItems = function (predicate, generator, indexToTrack, fixRight) {
|
|
4133
4108
|
if (!this.size || Number.isNaN(this.firstIndex)) {
|
|
4134
4109
|
return { trackedIndex: NaN, toRemove: [] };
|
|
@@ -4397,7 +4372,6 @@ var FetchModel = /** @class */ (function () {
|
|
|
4397
4372
|
this.direction = null;
|
|
4398
4373
|
this.cancel = null;
|
|
4399
4374
|
this.simulate = false;
|
|
4400
|
-
this.isPrepend = false;
|
|
4401
4375
|
this.isCheck = false;
|
|
4402
4376
|
this.doRemove = false;
|
|
4403
4377
|
};
|
|
@@ -4457,22 +4431,16 @@ var FetchModel = /** @class */ (function () {
|
|
|
4457
4431
|
};
|
|
4458
4432
|
FetchModel.prototype.stopSimulate = function () {
|
|
4459
4433
|
this.simulate = false;
|
|
4460
|
-
this.isPrepend = false;
|
|
4461
4434
|
this.isCheck = false;
|
|
4462
4435
|
this.doRemove = false;
|
|
4463
4436
|
};
|
|
4464
|
-
FetchModel.prototype.
|
|
4437
|
+
FetchModel.prototype.fill = function (items, start) {
|
|
4465
4438
|
this.startSimulate(items);
|
|
4466
|
-
this.last.index = items[items.length - 1].$index;
|
|
4467
4439
|
this.first.index = items[0].$index;
|
|
4440
|
+
this.last.index = items[items.length - 1].$index;
|
|
4468
4441
|
this.direction = Direction.forward;
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
this.startSimulate(items);
|
|
4472
|
-
this.last.index = items[0].$index;
|
|
4473
|
-
this.first.index = items[items.length - 1].$index;
|
|
4474
|
-
this.direction = Direction.backward;
|
|
4475
|
-
this.isPrepend = true;
|
|
4442
|
+
this.firstVisible.index = start;
|
|
4443
|
+
this.firstVisible.delta = 0;
|
|
4476
4444
|
};
|
|
4477
4445
|
FetchModel.prototype.check = function (items) {
|
|
4478
4446
|
this.startSimulate(items);
|
|
@@ -5244,13 +5212,7 @@ var runStateMachine = function (_a) {
|
|
|
5244
5212
|
case CommonProcess.start:
|
|
5245
5213
|
switch (payload.process) {
|
|
5246
5214
|
case AdapterProcess.append:
|
|
5247
|
-
case AdapterProcess.check:
|
|
5248
5215
|
case AdapterProcess.insert:
|
|
5249
|
-
run(Render)();
|
|
5250
|
-
break;
|
|
5251
|
-
case AdapterProcess.remove:
|
|
5252
|
-
run(Adjust)();
|
|
5253
|
-
break;
|
|
5254
5216
|
case AdapterProcess.replace:
|
|
5255
5217
|
case AdapterProcess.update:
|
|
5256
5218
|
if (payload.doRender) {
|
|
@@ -5260,6 +5222,12 @@ var runStateMachine = function (_a) {
|
|
|
5260
5222
|
run(Adjust)();
|
|
5261
5223
|
}
|
|
5262
5224
|
break;
|
|
5225
|
+
case AdapterProcess.check:
|
|
5226
|
+
run(Render)();
|
|
5227
|
+
break;
|
|
5228
|
+
case AdapterProcess.remove:
|
|
5229
|
+
run(Adjust)();
|
|
5230
|
+
break;
|
|
5263
5231
|
default:
|
|
5264
5232
|
run(PreFetch)();
|
|
5265
5233
|
}
|