@tanstack/angular-virtual 3.10.6 → 3.10.8

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.
@@ -74,4 +74,4 @@ export function injectWindowVirtualizer(options) {
74
74
  });
75
75
  return createVirtualizerBase(resolvedOptions);
76
76
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixVQUFVLEVBR1YsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFdBQVcsRUFFWCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUcxQyxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsU0FBUyxDQUFBO0FBRXZCLFNBQVMscUJBQXFCLENBSTVCLE9BQWlFO0lBRWpFLElBQUksV0FBc0QsQ0FBQTtJQUMxRCxTQUFTLFFBQVE7UUFDZixXQUFXLEtBQUssSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMxQyxPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsV0FBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFFdEUsdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FDSixHQUFHLEVBQUU7UUFDSCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUMxQixRQUFRLEVBQUUsQ0FBQTtRQUNWLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNsQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3JCLEdBQUcsUUFBUTtZQUNYLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDM0Isa0VBQWtFO2dC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LENBQUE7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyUmVuZGVyUGhhc2UsXG4gIERlc3Ryb3lSZWYsXG4gIHR5cGUgRWxlbWVudFJlZixcbiAgdHlwZSBTaWduYWwsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIHR5cGUgUGFydGlhbEtleXMsXG4gIFZpcnR1YWxpemVyLFxuICB0eXBlIFZpcnR1YWxpemVyT3B0aW9ucyxcbiAgZWxlbWVudFNjcm9sbCxcbiAgb2JzZXJ2ZUVsZW1lbnRPZmZzZXQsXG4gIG9ic2VydmVFbGVtZW50UmVjdCxcbiAgb2JzZXJ2ZVdpbmRvd09mZnNldCxcbiAgb2JzZXJ2ZVdpbmRvd1JlY3QsXG4gIHdpbmRvd1Njcm9sbCxcbn0gZnJvbSAnQHRhbnN0YWNrL3ZpcnR1YWwtY29yZSdcbmltcG9ydCB7IHByb3h5VmlydHVhbGl6ZXIgfSBmcm9tICcuL3Byb3h5J1xuaW1wb3J0IHR5cGUgeyBBbmd1bGFyVmlydHVhbGl6ZXIgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICdAdGFuc3RhY2svdmlydHVhbC1jb3JlJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gY3JlYXRlVmlydHVhbGl6ZXJCYXNlPFxuICBUU2Nyb2xsRWxlbWVudCBleHRlbmRzIEVsZW1lbnQgfCBXaW5kb3csXG4gIFRJdGVtRWxlbWVudCBleHRlbmRzIEVsZW1lbnQsXG4+KFxuICBvcHRpb25zOiBTaWduYWw8VmlydHVhbGl6ZXJPcHRpb25zPFRTY3JvbGxFbGVtZW50LCBUSXRlbUVsZW1lbnQ+Pixcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxUU2Nyb2xsRWxlbWVudCwgVEl0ZW1FbGVtZW50PiB7XG4gIGxldCB2aXJ0dWFsaXplcjogVmlydHVhbGl6ZXI8VFNjcm9sbEVsZW1lbnQsIFRJdGVtRWxlbWVudD5cbiAgZnVuY3Rpb24gbGF6eUluaXQoKSB7XG4gICAgdmlydHVhbGl6ZXIgPz89IG5ldyBWaXJ0dWFsaXplcihvcHRpb25zKCkpXG4gICAgcmV0dXJuIHZpcnR1YWxpemVyXG4gIH1cblxuICBjb25zdCB2aXJ0dWFsaXplclNpZ25hbCA9IHNpZ25hbCh2aXJ0dWFsaXplciEsIHsgZXF1YWw6ICgpID0+IGZhbHNlIH0pXG5cbiAgLy8gdHdvLXdheSBzeW5jIG9wdGlvbnNcbiAgZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IF9vcHRpb25zID0gb3B0aW9ucygpXG4gICAgICBsYXp5SW5pdCgpXG4gICAgICB2aXJ0dWFsaXplclNpZ25hbC5zZXQodmlydHVhbGl6ZXIpXG4gICAgICB2aXJ0dWFsaXplci5zZXRPcHRpb25zKHtcbiAgICAgICAgLi4uX29wdGlvbnMsXG4gICAgICAgIG9uQ2hhbmdlOiAoaW5zdGFuY2UsIHN5bmMpID0+IHtcbiAgICAgICAgICAvLyB1cGRhdGUgdmlydHVhbGl6ZXJTaWduYWwgc28gdGhhdCBkZXBlbmRlbnQgY29tcHV0ZWRzIHJlY29tcHV0ZS5cbiAgICAgICAgICB2aXJ0dWFsaXplclNpZ25hbC5zZXQoaW5zdGFuY2UpXG4gICAgICAgICAgX29wdGlvbnMub25DaGFuZ2U/LihpbnN0YW5jZSwgc3luYylcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAvLyB1cGRhdGUgdmlydHVhbGl6ZXJTaWduYWwgc28gdGhhdCBkZXBlbmRlbnQgY29tcHV0ZWRzIHJlY29tcHV0ZS5cbiAgICAgIHZpcnR1YWxpemVyU2lnbmFsLnNldCh2aXJ0dWFsaXplcilcbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKVxuXG4gIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiBvcHRpb25zKCkuZ2V0U2Nyb2xsRWxlbWVudCgpKVxuICAvLyBsZXQgdGhlIHZpcnR1YWxpemVyIGtub3cgd2hlbiB0aGUgc2Nyb2xsIGVsZW1lbnQgaXMgY2hhbmdlZFxuICBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBzY3JvbGxFbGVtZW50KClcbiAgICAgIGlmIChlbCkge1xuICAgICAgICB1bnRyYWNrZWQodmlydHVhbGl6ZXJTaWduYWwpLl93aWxsVXBkYXRlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKVxuXG4gIGxldCBjbGVhbnVwOiAoKSA9PiB2b2lkIHwgdW5kZWZpbmVkXG4gIGFmdGVyTmV4dFJlbmRlcigoKSA9PiAodmlydHVhbGl6ZXIgPz8gbGF6eUluaXQoKSkuX2RpZE1vdW50KCksIHtcbiAgICBwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5SZWFkLFxuICB9KVxuXG4gIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gY2xlYW51cD8uKCkpXG5cbiAgcmV0dXJuIHByb3h5VmlydHVhbGl6ZXIodmlydHVhbGl6ZXJTaWduYWwsIGxhenlJbml0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VmlydHVhbGl6ZXI8XG4gIFRTY3JvbGxFbGVtZW50IGV4dGVuZHMgRWxlbWVudCxcbiAgVEl0ZW1FbGVtZW50IGV4dGVuZHMgRWxlbWVudCxcbj4oXG4gIG9wdGlvbnM6ICgpID0+IFBhcnRpYWxLZXlzPFxuICAgIE9taXQ8VmlydHVhbGl6ZXJPcHRpb25zPFRTY3JvbGxFbGVtZW50LCBUSXRlbUVsZW1lbnQ+LCAnZ2V0U2Nyb2xsRWxlbWVudCc+LFxuICAgICdvYnNlcnZlRWxlbWVudFJlY3QnIHwgJ29ic2VydmVFbGVtZW50T2Zmc2V0JyB8ICdzY3JvbGxUb0ZuJ1xuICA+ICYge1xuICAgIHNjcm9sbEVsZW1lbnQ6IEVsZW1lbnRSZWY8VFNjcm9sbEVsZW1lbnQ+IHwgVFNjcm9sbEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgfSxcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxUU2Nyb2xsRWxlbWVudCwgVEl0ZW1FbGVtZW50PiB7XG4gIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgb2JzZXJ2ZUVsZW1lbnRSZWN0OiBvYnNlcnZlRWxlbWVudFJlY3QsXG4gICAgICBvYnNlcnZlRWxlbWVudE9mZnNldDogb2JzZXJ2ZUVsZW1lbnRPZmZzZXQsXG4gICAgICBzY3JvbGxUb0ZuOiBlbGVtZW50U2Nyb2xsLFxuICAgICAgZ2V0U2Nyb2xsRWxlbWVudDogKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50T3JSZWYgPSBvcHRpb25zKCkuc2Nyb2xsRWxlbWVudFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChpc0VsZW1lbnRSZWYoZWxlbWVudE9yUmVmKVxuICAgICAgICAgICAgPyBlbGVtZW50T3JSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiBlbGVtZW50T3JSZWYpID8/IG51bGxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMoKSxcbiAgICB9XG4gIH0pXG4gIHJldHVybiBjcmVhdGVWaXJ0dWFsaXplckJhc2U8VFNjcm9sbEVsZW1lbnQsIFRJdGVtRWxlbWVudD4ocmVzb2x2ZWRPcHRpb25zKVxufVxuXG5mdW5jdGlvbiBpc0VsZW1lbnRSZWY8VCBleHRlbmRzIEVsZW1lbnQ+KFxuICBlbGVtZW50T3JSZWY6IEVsZW1lbnRSZWY8VD4gfCBUIHwgdW5kZWZpbmVkLFxuKTogZWxlbWVudE9yUmVmIGlzIEVsZW1lbnRSZWY8VD4ge1xuICByZXR1cm4gZWxlbWVudE9yUmVmICE9IG51bGwgJiYgJ25hdGl2ZUVsZW1lbnQnIGluIGVsZW1lbnRPclJlZlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0V2luZG93VmlydHVhbGl6ZXI8VEl0ZW1FbGVtZW50IGV4dGVuZHMgRWxlbWVudD4oXG4gIG9wdGlvbnM6ICgpID0+IFBhcnRpYWxLZXlzPFxuICAgIFZpcnR1YWxpemVyT3B0aW9uczxXaW5kb3csIFRJdGVtRWxlbWVudD4sXG4gICAgfCAnZ2V0U2Nyb2xsRWxlbWVudCdcbiAgICB8ICdvYnNlcnZlRWxlbWVudFJlY3QnXG4gICAgfCAnb2JzZXJ2ZUVsZW1lbnRPZmZzZXQnXG4gICAgfCAnc2Nyb2xsVG9GbidcbiAgPixcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxXaW5kb3csIFRJdGVtRWxlbWVudD4ge1xuICBjb25zdCByZXNvbHZlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFNjcm9sbEVsZW1lbnQ6ICgpID0+ICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogbnVsbCksXG4gICAgICBvYnNlcnZlRWxlbWVudFJlY3Q6IG9ic2VydmVXaW5kb3dSZWN0LFxuICAgICAgb2JzZXJ2ZUVsZW1lbnRPZmZzZXQ6IG9ic2VydmVXaW5kb3dPZmZzZXQsXG4gICAgICBzY3JvbGxUb0ZuOiB3aW5kb3dTY3JvbGwsXG4gICAgICBpbml0aWFsT2Zmc2V0OiAoKSA9PlxuICAgICAgICB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNjcm9sbFkgOiAwLFxuICAgICAgLi4ub3B0aW9ucygpLFxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGNyZWF0ZVZpcnR1YWxpemVyQmFzZTxXaW5kb3csIFRJdGVtRWxlbWVudD4ocmVzb2x2ZWRPcHRpb25zKVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUsxQyxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsU0FBUyxDQUFBO0FBRXZCLFNBQVMscUJBQXFCLENBSTVCLE9BQWlFO0lBRWpFLElBQUksV0FBc0QsQ0FBQTtJQUMxRCxTQUFTLFFBQVE7UUFDZixXQUFXLEtBQUssSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMxQyxPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsV0FBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFFdEUsdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FDSixHQUFHLEVBQUU7UUFDSCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUMxQixRQUFRLEVBQUUsQ0FBQTtRQUNWLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNsQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3JCLEdBQUcsUUFBUTtZQUNYLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDM0Isa0VBQWtFO2dC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LENBQUE7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyUmVuZGVyUGhhc2UsXG4gIERlc3Ryb3lSZWYsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIFZpcnR1YWxpemVyLFxuICBlbGVtZW50U2Nyb2xsLFxuICBvYnNlcnZlRWxlbWVudE9mZnNldCxcbiAgb2JzZXJ2ZUVsZW1lbnRSZWN0LFxuICBvYnNlcnZlV2luZG93T2Zmc2V0LFxuICBvYnNlcnZlV2luZG93UmVjdCxcbiAgd2luZG93U2Nyb2xsLFxufSBmcm9tICdAdGFuc3RhY2svdmlydHVhbC1jb3JlJ1xuaW1wb3J0IHsgcHJveHlWaXJ0dWFsaXplciB9IGZyb20gJy4vcHJveHknXG5pbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxLZXlzLCBWaXJ0dWFsaXplck9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svdmlydHVhbC1jb3JlJ1xuaW1wb3J0IHR5cGUgeyBBbmd1bGFyVmlydHVhbGl6ZXIgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICdAdGFuc3RhY2svdmlydHVhbC1jb3JlJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gY3JlYXRlVmlydHVhbGl6ZXJCYXNlPFxuICBUU2Nyb2xsRWxlbWVudCBleHRlbmRzIEVsZW1lbnQgfCBXaW5kb3csXG4gIFRJdGVtRWxlbWVudCBleHRlbmRzIEVsZW1lbnQsXG4+KFxuICBvcHRpb25zOiBTaWduYWw8VmlydHVhbGl6ZXJPcHRpb25zPFRTY3JvbGxFbGVtZW50LCBUSXRlbUVsZW1lbnQ+Pixcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxUU2Nyb2xsRWxlbWVudCwgVEl0ZW1FbGVtZW50PiB7XG4gIGxldCB2aXJ0dWFsaXplcjogVmlydHVhbGl6ZXI8VFNjcm9sbEVsZW1lbnQsIFRJdGVtRWxlbWVudD5cbiAgZnVuY3Rpb24gbGF6eUluaXQoKSB7XG4gICAgdmlydHVhbGl6ZXIgPz89IG5ldyBWaXJ0dWFsaXplcihvcHRpb25zKCkpXG4gICAgcmV0dXJuIHZpcnR1YWxpemVyXG4gIH1cblxuICBjb25zdCB2aXJ0dWFsaXplclNpZ25hbCA9IHNpZ25hbCh2aXJ0dWFsaXplciEsIHsgZXF1YWw6ICgpID0+IGZhbHNlIH0pXG5cbiAgLy8gdHdvLXdheSBzeW5jIG9wdGlvbnNcbiAgZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IF9vcHRpb25zID0gb3B0aW9ucygpXG4gICAgICBsYXp5SW5pdCgpXG4gICAgICB2aXJ0dWFsaXplclNpZ25hbC5zZXQodmlydHVhbGl6ZXIpXG4gICAgICB2aXJ0dWFsaXplci5zZXRPcHRpb25zKHtcbiAgICAgICAgLi4uX29wdGlvbnMsXG4gICAgICAgIG9uQ2hhbmdlOiAoaW5zdGFuY2UsIHN5bmMpID0+IHtcbiAgICAgICAgICAvLyB1cGRhdGUgdmlydHVhbGl6ZXJTaWduYWwgc28gdGhhdCBkZXBlbmRlbnQgY29tcHV0ZWRzIHJlY29tcHV0ZS5cbiAgICAgICAgICB2aXJ0dWFsaXplclNpZ25hbC5zZXQoaW5zdGFuY2UpXG4gICAgICAgICAgX29wdGlvbnMub25DaGFuZ2U/LihpbnN0YW5jZSwgc3luYylcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAvLyB1cGRhdGUgdmlydHVhbGl6ZXJTaWduYWwgc28gdGhhdCBkZXBlbmRlbnQgY29tcHV0ZWRzIHJlY29tcHV0ZS5cbiAgICAgIHZpcnR1YWxpemVyU2lnbmFsLnNldCh2aXJ0dWFsaXplcilcbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKVxuXG4gIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiBvcHRpb25zKCkuZ2V0U2Nyb2xsRWxlbWVudCgpKVxuICAvLyBsZXQgdGhlIHZpcnR1YWxpemVyIGtub3cgd2hlbiB0aGUgc2Nyb2xsIGVsZW1lbnQgaXMgY2hhbmdlZFxuICBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBzY3JvbGxFbGVtZW50KClcbiAgICAgIGlmIChlbCkge1xuICAgICAgICB1bnRyYWNrZWQodmlydHVhbGl6ZXJTaWduYWwpLl93aWxsVXBkYXRlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKVxuXG4gIGxldCBjbGVhbnVwOiAoKSA9PiB2b2lkIHwgdW5kZWZpbmVkXG4gIGFmdGVyTmV4dFJlbmRlcigoKSA9PiAodmlydHVhbGl6ZXIgPz8gbGF6eUluaXQoKSkuX2RpZE1vdW50KCksIHtcbiAgICBwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5SZWFkLFxuICB9KVxuXG4gIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gY2xlYW51cD8uKCkpXG5cbiAgcmV0dXJuIHByb3h5VmlydHVhbGl6ZXIodmlydHVhbGl6ZXJTaWduYWwsIGxhenlJbml0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VmlydHVhbGl6ZXI8XG4gIFRTY3JvbGxFbGVtZW50IGV4dGVuZHMgRWxlbWVudCxcbiAgVEl0ZW1FbGVtZW50IGV4dGVuZHMgRWxlbWVudCxcbj4oXG4gIG9wdGlvbnM6ICgpID0+IFBhcnRpYWxLZXlzPFxuICAgIE9taXQ8VmlydHVhbGl6ZXJPcHRpb25zPFRTY3JvbGxFbGVtZW50LCBUSXRlbUVsZW1lbnQ+LCAnZ2V0U2Nyb2xsRWxlbWVudCc+LFxuICAgICdvYnNlcnZlRWxlbWVudFJlY3QnIHwgJ29ic2VydmVFbGVtZW50T2Zmc2V0JyB8ICdzY3JvbGxUb0ZuJ1xuICA+ICYge1xuICAgIHNjcm9sbEVsZW1lbnQ6IEVsZW1lbnRSZWY8VFNjcm9sbEVsZW1lbnQ+IHwgVFNjcm9sbEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgfSxcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxUU2Nyb2xsRWxlbWVudCwgVEl0ZW1FbGVtZW50PiB7XG4gIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgb2JzZXJ2ZUVsZW1lbnRSZWN0OiBvYnNlcnZlRWxlbWVudFJlY3QsXG4gICAgICBvYnNlcnZlRWxlbWVudE9mZnNldDogb2JzZXJ2ZUVsZW1lbnRPZmZzZXQsXG4gICAgICBzY3JvbGxUb0ZuOiBlbGVtZW50U2Nyb2xsLFxuICAgICAgZ2V0U2Nyb2xsRWxlbWVudDogKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50T3JSZWYgPSBvcHRpb25zKCkuc2Nyb2xsRWxlbWVudFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChpc0VsZW1lbnRSZWYoZWxlbWVudE9yUmVmKVxuICAgICAgICAgICAgPyBlbGVtZW50T3JSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiBlbGVtZW50T3JSZWYpID8/IG51bGxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMoKSxcbiAgICB9XG4gIH0pXG4gIHJldHVybiBjcmVhdGVWaXJ0dWFsaXplckJhc2U8VFNjcm9sbEVsZW1lbnQsIFRJdGVtRWxlbWVudD4ocmVzb2x2ZWRPcHRpb25zKVxufVxuXG5mdW5jdGlvbiBpc0VsZW1lbnRSZWY8VCBleHRlbmRzIEVsZW1lbnQ+KFxuICBlbGVtZW50T3JSZWY6IEVsZW1lbnRSZWY8VD4gfCBUIHwgdW5kZWZpbmVkLFxuKTogZWxlbWVudE9yUmVmIGlzIEVsZW1lbnRSZWY8VD4ge1xuICByZXR1cm4gZWxlbWVudE9yUmVmICE9IG51bGwgJiYgJ25hdGl2ZUVsZW1lbnQnIGluIGVsZW1lbnRPclJlZlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0V2luZG93VmlydHVhbGl6ZXI8VEl0ZW1FbGVtZW50IGV4dGVuZHMgRWxlbWVudD4oXG4gIG9wdGlvbnM6ICgpID0+IFBhcnRpYWxLZXlzPFxuICAgIFZpcnR1YWxpemVyT3B0aW9uczxXaW5kb3csIFRJdGVtRWxlbWVudD4sXG4gICAgfCAnZ2V0U2Nyb2xsRWxlbWVudCdcbiAgICB8ICdvYnNlcnZlRWxlbWVudFJlY3QnXG4gICAgfCAnb2JzZXJ2ZUVsZW1lbnRPZmZzZXQnXG4gICAgfCAnc2Nyb2xsVG9GbidcbiAgPixcbik6IEFuZ3VsYXJWaXJ0dWFsaXplcjxXaW5kb3csIFRJdGVtRWxlbWVudD4ge1xuICBjb25zdCByZXNvbHZlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFNjcm9sbEVsZW1lbnQ6ICgpID0+ICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogbnVsbCksXG4gICAgICBvYnNlcnZlRWxlbWVudFJlY3Q6IG9ic2VydmVXaW5kb3dSZWN0LFxuICAgICAgb2JzZXJ2ZUVsZW1lbnRPZmZzZXQ6IG9ic2VydmVXaW5kb3dPZmZzZXQsXG4gICAgICBzY3JvbGxUb0ZuOiB3aW5kb3dTY3JvbGwsXG4gICAgICBpbml0aWFsT2Zmc2V0OiAoKSA9PlxuICAgICAgICB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNjcm9sbFkgOiAwLFxuICAgICAgLi4ub3B0aW9ucygpLFxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGNyZWF0ZVZpcnR1YWxpemVyQmFzZTxXaW5kb3csIFRJdGVtRWxlbWVudD4ocmVzb2x2ZWRPcHRpb25zKVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { computed, untracked, } from '@angular/core';
1
+ import { computed, untracked } from '@angular/core';
2
2
  export function proxyVirtualizer(virtualizerSignal, lazyInit) {
3
3
  return new Proxy(virtualizerSignal, {
4
4
  apply() {
@@ -88,4 +88,4 @@ function toComputed(signal, fn) {
88
88
  function serializeArgs(...args) {
89
89
  return JSON.stringify(args);
90
90
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFJdEIsTUFBTSxVQUFVLGdCQUFnQixDQUs5QixpQkFBb0MsRUFDcEMsUUFBaUI7SUFFakIsT0FBTyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtRQUNsQyxLQUFLO1lBQ0gsT0FBTyxpQkFBaUIsRUFBRSxDQUFBO1FBQzVCLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxhQUFhLEdBQUcsTUFBYSxDQUFBO1lBQ25DLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUMvQjtZQUNELElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1lBQzlDLElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtnQkFDdkIsV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFBO2dCQUN4QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7YUFDcEQ7WUFFRCw2RUFBNkU7WUFDN0UsSUFDRSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUM1QjtvQkFDRSxjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsYUFBYTtvQkFDYixTQUFTO29CQUNULE9BQU87b0JBQ1AsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLGNBQWM7b0JBQ2QsWUFBWTtvQkFDWixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtpQkFDcEIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQ3BCO2dCQUNBLE1BQU0sVUFBVSxHQUNkLE9BQU8sV0FBVyxDQUFDLFFBQW1CLENBQUMsS0FBSyxVQUFVLENBQUE7Z0JBQ3hELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRTtvQkFDN0MsS0FBSyxFQUFFLFVBQVU7d0JBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxNQUFNLEVBQUUsQ0FBQyxRQUFtQixDQUFjLEVBQUUsQ0FBQzt3QkFDL0QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFtQixDQUFDLENBQUM7b0JBQ2pELFlBQVksRUFBRSxJQUFJO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFBO2FBQ0g7WUFFRCxzRkFBc0Y7WUFDdEYsSUFDRSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUM1QjtvQkFDRSx1QkFBdUI7b0JBQ3ZCLG1CQUFtQjtvQkFDbkIseUJBQXlCO29CQUN6QixrQkFBa0I7aUJBQ25CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUNwQjtnQkFDQSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsUUFBbUIsQ0FBYSxDQUFBO2dCQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUU7b0JBQzdDLEtBQUssRUFBRSxVQUFVLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO29CQUN4QyxZQUFZLEVBQUUsSUFBSTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCLENBQUMsQ0FBQTthQUNIO1lBRUQsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLFFBQW1CLENBQUMsQ0FBQTtRQUNwRSxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFnQjtZQUNyQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFtQixDQUFDLENBQUE7UUFDNUQsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtRQUN0RCxDQUFDO1FBQ0Qsd0JBQXdCO1lBQ3RCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBd0MsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQ2pCLE1BQWlCLEVBQ2pCLEVBQVk7SUFFWixNQUFNLGFBQWEsR0FBb0MsRUFBRSxDQUFBO0lBRXpELE9BQU8sQ0FBQyxHQUFHLElBQWdCLEVBQUUsRUFBRTtRQUM3QixvRkFBb0Y7UUFDcEYsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDN0MsSUFBSSxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtTQUN6QztRQUNELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsS0FBSyxNQUFNLEVBQUUsQ0FBQTtZQUNiLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7UUFFRixhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYyxDQUFBO1FBRTlDLE9BQU8sY0FBYyxFQUFFLENBQUE7SUFDekIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEdBQUcsSUFBZ0I7SUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFNpZ25hbCxcbiAgdHlwZSBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHR5cGUgVmlydHVhbGl6ZXIgfSBmcm9tICdAdGFuc3RhY2svdmlydHVhbC1jb3JlJ1xuaW1wb3J0IHsgdHlwZSBBbmd1bGFyVmlydHVhbGl6ZXIgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gcHJveHlWaXJ0dWFsaXplcjxcbiAgViBleHRlbmRzIFZpcnR1YWxpemVyPGFueSwgYW55PixcbiAgUyBleHRlbmRzIEVsZW1lbnQgfCBXaW5kb3cgPSBWIGV4dGVuZHMgVmlydHVhbGl6ZXI8aW5mZXIgVSwgYW55PiA/IFUgOiBuZXZlcixcbiAgSSBleHRlbmRzIEVsZW1lbnQgPSBWIGV4dGVuZHMgVmlydHVhbGl6ZXI8YW55LCBpbmZlciBVPiA/IFUgOiBuZXZlcixcbj4oXG4gIHZpcnR1YWxpemVyU2lnbmFsOiBXcml0YWJsZVNpZ25hbDxWPixcbiAgbGF6eUluaXQ6ICgpID0+IFYsXG4pOiBBbmd1bGFyVmlydHVhbGl6ZXI8UywgST4ge1xuICByZXR1cm4gbmV3IFByb3h5KHZpcnR1YWxpemVyU2lnbmFsLCB7XG4gICAgYXBwbHkoKSB7XG4gICAgICByZXR1cm4gdmlydHVhbGl6ZXJTaWduYWwoKVxuICAgIH0sXG4gICAgZ2V0KHRhcmdldCwgcHJvcGVydHkpIHtcbiAgICAgIGNvbnN0IHVudHlwZWRUYXJnZXQgPSB0YXJnZXQgYXMgYW55XG4gICAgICBpZiAodW50eXBlZFRhcmdldFtwcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHVudHlwZWRUYXJnZXRbcHJvcGVydHldXG4gICAgICB9XG4gICAgICBsZXQgdmlydHVhbGl6ZXIgPSB1bnRyYWNrZWQodmlydHVhbGl6ZXJTaWduYWwpXG4gICAgICBpZiAodmlydHVhbGl6ZXIgPT0gbnVsbCkge1xuICAgICAgICB2aXJ0dWFsaXplciA9IGxhenlJbml0KClcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHZpcnR1YWxpemVyU2lnbmFsLnNldCh2aXJ0dWFsaXplcikpXG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBjb21wdXRlZCBzaWduYWxzIGZvciBlYWNoIHByb3BlcnR5IHRoYXQgcmVwcmVzZW50cyBhIHJlYWN0aXZlIHZhbHVlXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgW1xuICAgICAgICAgICdnZXRUb3RhbFNpemUnLFxuICAgICAgICAgICdnZXRWaXJ0dWFsSXRlbXMnLFxuICAgICAgICAgICdpc1Njcm9sbGluZycsXG4gICAgICAgICAgJ29wdGlvbnMnLFxuICAgICAgICAgICdyYW5nZScsXG4gICAgICAgICAgJ3Njcm9sbERpcmVjdGlvbicsXG4gICAgICAgICAgJ3Njcm9sbEVsZW1lbnQnLFxuICAgICAgICAgICdzY3JvbGxPZmZzZXQnLFxuICAgICAgICAgICdzY3JvbGxSZWN0JyxcbiAgICAgICAgICAnbWVhc3VyZUVsZW1lbnRDYWNoZScsXG4gICAgICAgICAgJ21lYXN1cmVtZW50c0NhY2hlJyxcbiAgICAgICAgXS5pbmNsdWRlcyhwcm9wZXJ0eSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpc0Z1bmN0aW9uID1cbiAgICAgICAgICB0eXBlb2YgdmlydHVhbGl6ZXJbcHJvcGVydHkgYXMga2V5b2YgVl0gPT09ICdmdW5jdGlvbidcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHVudHlwZWRUYXJnZXQsIHByb3BlcnR5LCB7XG4gICAgICAgICAgdmFsdWU6IGlzRnVuY3Rpb25cbiAgICAgICAgICAgID8gY29tcHV0ZWQoKCkgPT4gKHRhcmdldCgpW3Byb3BlcnR5IGFzIGtleW9mIFZdIGFzIEZ1bmN0aW9uKSgpKVxuICAgICAgICAgICAgOiBjb21wdXRlZCgoKSA9PiB0YXJnZXQoKVtwcm9wZXJ0eSBhcyBrZXlvZiBWXSksXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBwbGFpbiBzaWduYWxzIGZvciBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgYXJndW1lbnRzIGFuZCByZXR1cm4gcmVhY3RpdmUgdmFsdWVzXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgW1xuICAgICAgICAgICdnZXRPZmZzZXRGb3JBbGlnbm1lbnQnLFxuICAgICAgICAgICdnZXRPZmZzZXRGb3JJbmRleCcsXG4gICAgICAgICAgJ2dldFZpcnR1YWxJdGVtRm9yT2Zmc2V0JyxcbiAgICAgICAgICAnaW5kZXhGcm9tRWxlbWVudCcsXG4gICAgICAgIF0uaW5jbHVkZXMocHJvcGVydHkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgZm4gPSB2aXJ0dWFsaXplcltwcm9wZXJ0eSBhcyBrZXlvZiBWXSBhcyBGdW5jdGlvblxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodW50eXBlZFRhcmdldCwgcHJvcGVydHksIHtcbiAgICAgICAgICB2YWx1ZTogdG9Db21wdXRlZCh2aXJ0dWFsaXplclNpZ25hbCwgZm4pLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW50eXBlZFRhcmdldFtwcm9wZXJ0eV0gfHwgdmlydHVhbGl6ZXJbcHJvcGVydHkgYXMga2V5b2YgVl1cbiAgICB9LFxuICAgIGhhcyhfLCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gISF1bnRyYWNrZWQodmlydHVhbGl6ZXJTaWduYWwpW3Byb3BlcnR5IGFzIGtleW9mIFZdXG4gICAgfSxcbiAgICBvd25LZXlzKCkge1xuICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh1bnRyYWNrZWQodmlydHVhbGl6ZXJTaWduYWwpKVxuICAgIH0sXG4gICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgfVxuICAgIH0sXG4gIH0pIGFzIHVua25vd24gYXMgQW5ndWxhclZpcnR1YWxpemVyPFMsIEk+XG59XG5cbmZ1bmN0aW9uIHRvQ29tcHV0ZWQ8ViBleHRlbmRzIFZpcnR1YWxpemVyPGFueSwgYW55Pj4oXG4gIHNpZ25hbDogU2lnbmFsPFY+LFxuICBmbjogRnVuY3Rpb24sXG4pIHtcbiAgY29uc3QgY29tcHV0ZWRDYWNoZTogUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PiA9IHt9XG5cbiAgcmV0dXJuICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiB7XG4gICAgLy8gQ2FjaGUgY29tcHV0ZWRzIGJ5IHRoZWlyIGFyZ3VtZW50cyB0byBhdm9pZCByZS1jcmVhdGluZyB0aGUgY29tcHV0ZWQgb24gZWFjaCBjYWxsXG4gICAgY29uc3Qgc2VyaWFsaXplZEFyZ3MgPSBzZXJpYWxpemVBcmdzKC4uLmFyZ3MpXG4gICAgaWYgKGNvbXB1dGVkQ2FjaGUuaGFzT3duUHJvcGVydHkoc2VyaWFsaXplZEFyZ3MpKSB7XG4gICAgICByZXR1cm4gY29tcHV0ZWRDYWNoZVtzZXJpYWxpemVkQXJnc10/LigpXG4gICAgfVxuICAgIGNvbnN0IGNvbXB1dGVkU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgdm9pZCBzaWduYWwoKVxuICAgICAgcmV0dXJuIGZuKC4uLmFyZ3MpXG4gICAgfSlcblxuICAgIGNvbXB1dGVkQ2FjaGVbc2VyaWFsaXplZEFyZ3NdID0gY29tcHV0ZWRTaWduYWxcblxuICAgIHJldHVybiBjb21wdXRlZFNpZ25hbCgpXG4gIH1cbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplQXJncyguLi5hcmdzOiBBcnJheTxhbnk+KSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzKVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLbkQsTUFBTSxVQUFVLGdCQUFnQixDQUs5QixpQkFBb0MsRUFDcEMsUUFBaUI7SUFFakIsT0FBTyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtRQUNsQyxLQUFLO1lBQ0gsT0FBTyxpQkFBaUIsRUFBRSxDQUFBO1FBQzVCLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxhQUFhLEdBQUcsTUFBYSxDQUFBO1lBQ25DLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUMvQjtZQUNELElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1lBQzlDLElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtnQkFDdkIsV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFBO2dCQUN4QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7YUFDcEQ7WUFFRCw2RUFBNkU7WUFDN0UsSUFDRSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUM1QjtvQkFDRSxjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsYUFBYTtvQkFDYixTQUFTO29CQUNULE9BQU87b0JBQ1AsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLGNBQWM7b0JBQ2QsWUFBWTtvQkFDWixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtpQkFDcEIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQ3BCO2dCQUNBLE1BQU0sVUFBVSxHQUNkLE9BQU8sV0FBVyxDQUFDLFFBQW1CLENBQUMsS0FBSyxVQUFVLENBQUE7Z0JBQ3hELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRTtvQkFDN0MsS0FBSyxFQUFFLFVBQVU7d0JBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxNQUFNLEVBQUUsQ0FBQyxRQUFtQixDQUFjLEVBQUUsQ0FBQzt3QkFDL0QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFtQixDQUFDLENBQUM7b0JBQ2pELFlBQVksRUFBRSxJQUFJO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFBO2FBQ0g7WUFFRCxzRkFBc0Y7WUFDdEYsSUFDRSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUM1QjtvQkFDRSx1QkFBdUI7b0JBQ3ZCLG1CQUFtQjtvQkFDbkIseUJBQXlCO29CQUN6QixrQkFBa0I7aUJBQ25CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUNwQjtnQkFDQSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsUUFBbUIsQ0FBYSxDQUFBO2dCQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUU7b0JBQzdDLEtBQUssRUFBRSxVQUFVLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO29CQUN4QyxZQUFZLEVBQUUsSUFBSTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCLENBQUMsQ0FBQTthQUNIO1lBRUQsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLFFBQW1CLENBQUMsQ0FBQTtRQUNwRSxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFnQjtZQUNyQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFtQixDQUFDLENBQUE7UUFDNUQsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtRQUN0RCxDQUFDO1FBQ0Qsd0JBQXdCO1lBQ3RCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBd0MsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQ2pCLE1BQWlCLEVBQ2pCLEVBQVk7SUFFWixNQUFNLGFBQWEsR0FBb0MsRUFBRSxDQUFBO0lBRXpELE9BQU8sQ0FBQyxHQUFHLElBQWdCLEVBQUUsRUFBRTtRQUM3QixvRkFBb0Y7UUFDcEYsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDN0MsSUFBSSxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtTQUN6QztRQUNELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsS0FBSyxNQUFNLEVBQUUsQ0FBQTtZQUNiLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7UUFFRixhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYyxDQUFBO1FBRTlDLE9BQU8sY0FBYyxFQUFFLENBQUE7SUFDekIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEdBQUcsSUFBZ0I7SUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IFZpcnR1YWxpemVyIH0gZnJvbSAnQHRhbnN0YWNrL3ZpcnR1YWwtY29yZSdcbmltcG9ydCB0eXBlIHsgQW5ndWxhclZpcnR1YWxpemVyIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3h5VmlydHVhbGl6ZXI8XG4gIFYgZXh0ZW5kcyBWaXJ0dWFsaXplcjxhbnksIGFueT4sXG4gIFMgZXh0ZW5kcyBFbGVtZW50IHwgV2luZG93ID0gViBleHRlbmRzIFZpcnR1YWxpemVyPGluZmVyIFUsIGFueT4gPyBVIDogbmV2ZXIsXG4gIEkgZXh0ZW5kcyBFbGVtZW50ID0gViBleHRlbmRzIFZpcnR1YWxpemVyPGFueSwgaW5mZXIgVT4gPyBVIDogbmV2ZXIsXG4+KFxuICB2aXJ0dWFsaXplclNpZ25hbDogV3JpdGFibGVTaWduYWw8Vj4sXG4gIGxhenlJbml0OiAoKSA9PiBWLFxuKTogQW5ndWxhclZpcnR1YWxpemVyPFMsIEk+IHtcbiAgcmV0dXJuIG5ldyBQcm94eSh2aXJ0dWFsaXplclNpZ25hbCwge1xuICAgIGFwcGx5KCkge1xuICAgICAgcmV0dXJuIHZpcnR1YWxpemVyU2lnbmFsKClcbiAgICB9LFxuICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KSB7XG4gICAgICBjb25zdCB1bnR5cGVkVGFyZ2V0ID0gdGFyZ2V0IGFzIGFueVxuICAgICAgaWYgKHVudHlwZWRUYXJnZXRbcHJvcGVydHldKSB7XG4gICAgICAgIHJldHVybiB1bnR5cGVkVGFyZ2V0W3Byb3BlcnR5XVxuICAgICAgfVxuICAgICAgbGV0IHZpcnR1YWxpemVyID0gdW50cmFja2VkKHZpcnR1YWxpemVyU2lnbmFsKVxuICAgICAgaWYgKHZpcnR1YWxpemVyID09IG51bGwpIHtcbiAgICAgICAgdmlydHVhbGl6ZXIgPSBsYXp5SW5pdCgpXG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB2aXJ0dWFsaXplclNpZ25hbC5zZXQodmlydHVhbGl6ZXIpKVxuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgY29tcHV0ZWQgc2lnbmFscyBmb3IgZWFjaCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgYSByZWFjdGl2ZSB2YWx1ZVxuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgcHJvcGVydHkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIFtcbiAgICAgICAgICAnZ2V0VG90YWxTaXplJyxcbiAgICAgICAgICAnZ2V0VmlydHVhbEl0ZW1zJyxcbiAgICAgICAgICAnaXNTY3JvbGxpbmcnLFxuICAgICAgICAgICdvcHRpb25zJyxcbiAgICAgICAgICAncmFuZ2UnLFxuICAgICAgICAgICdzY3JvbGxEaXJlY3Rpb24nLFxuICAgICAgICAgICdzY3JvbGxFbGVtZW50JyxcbiAgICAgICAgICAnc2Nyb2xsT2Zmc2V0JyxcbiAgICAgICAgICAnc2Nyb2xsUmVjdCcsXG4gICAgICAgICAgJ21lYXN1cmVFbGVtZW50Q2FjaGUnLFxuICAgICAgICAgICdtZWFzdXJlbWVudHNDYWNoZScsXG4gICAgICAgIF0uaW5jbHVkZXMocHJvcGVydHkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaXNGdW5jdGlvbiA9XG4gICAgICAgICAgdHlwZW9mIHZpcnR1YWxpemVyW3Byb3BlcnR5IGFzIGtleW9mIFZdID09PSAnZnVuY3Rpb24nXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1bnR5cGVkVGFyZ2V0LCBwcm9wZXJ0eSwge1xuICAgICAgICAgIHZhbHVlOiBpc0Z1bmN0aW9uXG4gICAgICAgICAgICA/IGNvbXB1dGVkKCgpID0+ICh0YXJnZXQoKVtwcm9wZXJ0eSBhcyBrZXlvZiBWXSBhcyBGdW5jdGlvbikoKSlcbiAgICAgICAgICAgIDogY29tcHV0ZWQoKCkgPT4gdGFyZ2V0KClbcHJvcGVydHkgYXMga2V5b2YgVl0pLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgcGxhaW4gc2lnbmFscyBmb3IgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGFyZ3VtZW50cyBhbmQgcmV0dXJuIHJlYWN0aXZlIHZhbHVlc1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgcHJvcGVydHkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIFtcbiAgICAgICAgICAnZ2V0T2Zmc2V0Rm9yQWxpZ25tZW50JyxcbiAgICAgICAgICAnZ2V0T2Zmc2V0Rm9ySW5kZXgnLFxuICAgICAgICAgICdnZXRWaXJ0dWFsSXRlbUZvck9mZnNldCcsXG4gICAgICAgICAgJ2luZGV4RnJvbUVsZW1lbnQnLFxuICAgICAgICBdLmluY2x1ZGVzKHByb3BlcnR5KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGZuID0gdmlydHVhbGl6ZXJbcHJvcGVydHkgYXMga2V5b2YgVl0gYXMgRnVuY3Rpb25cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHVudHlwZWRUYXJnZXQsIHByb3BlcnR5LCB7XG4gICAgICAgICAgdmFsdWU6IHRvQ29tcHV0ZWQodmlydHVhbGl6ZXJTaWduYWwsIGZuKSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVudHlwZWRUYXJnZXRbcHJvcGVydHldIHx8IHZpcnR1YWxpemVyW3Byb3BlcnR5IGFzIGtleW9mIFZdXG4gICAgfSxcbiAgICBoYXMoXywgcHJvcGVydHk6IHN0cmluZykge1xuICAgICAgcmV0dXJuICEhdW50cmFja2VkKHZpcnR1YWxpemVyU2lnbmFsKVtwcm9wZXJ0eSBhcyBrZXlvZiBWXVxuICAgIH0sXG4gICAgb3duS2V5cygpIHtcbiAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModW50cmFja2VkKHZpcnR1YWxpemVyU2lnbmFsKSlcbiAgICB9LFxuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIH1cbiAgICB9LFxuICB9KSBhcyB1bmtub3duIGFzIEFuZ3VsYXJWaXJ0dWFsaXplcjxTLCBJPlxufVxuXG5mdW5jdGlvbiB0b0NvbXB1dGVkPFYgZXh0ZW5kcyBWaXJ0dWFsaXplcjxhbnksIGFueT4+KFxuICBzaWduYWw6IFNpZ25hbDxWPixcbiAgZm46IEZ1bmN0aW9uLFxuKSB7XG4gIGNvbnN0IGNvbXB1dGVkQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj4gPSB7fVxuXG4gIHJldHVybiAoLi4uYXJnczogQXJyYXk8YW55PikgPT4ge1xuICAgIC8vIENhY2hlIGNvbXB1dGVkcyBieSB0aGVpciBhcmd1bWVudHMgdG8gYXZvaWQgcmUtY3JlYXRpbmcgdGhlIGNvbXB1dGVkIG9uIGVhY2ggY2FsbFxuICAgIGNvbnN0IHNlcmlhbGl6ZWRBcmdzID0gc2VyaWFsaXplQXJncyguLi5hcmdzKVxuICAgIGlmIChjb21wdXRlZENhY2hlLmhhc093blByb3BlcnR5KHNlcmlhbGl6ZWRBcmdzKSkge1xuICAgICAgcmV0dXJuIGNvbXB1dGVkQ2FjaGVbc2VyaWFsaXplZEFyZ3NdPy4oKVxuICAgIH1cbiAgICBjb25zdCBjb21wdXRlZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHZvaWQgc2lnbmFsKClcbiAgICAgIHJldHVybiBmbiguLi5hcmdzKVxuICAgIH0pXG5cbiAgICBjb21wdXRlZENhY2hlW3NlcmlhbGl6ZWRBcmdzXSA9IGNvbXB1dGVkU2lnbmFsXG5cbiAgICByZXR1cm4gY29tcHV0ZWRTaWduYWwoKVxuICB9XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUFyZ3MoLi4uYXJnczogQXJyYXk8YW55Pikge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJncylcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-angular-virtual.mjs","sources":["../../src/proxy.ts","../../src/index.ts","../../src/tanstack-angular-virtual.ts"],"sourcesContent":["import {\n type Signal,\n type WritableSignal,\n computed,\n untracked,\n} from '@angular/core'\nimport { type Virtualizer } from '@tanstack/virtual-core'\nimport { type AngularVirtualizer } from './types'\n\nexport function proxyVirtualizer<\n V extends Virtualizer<any, any>,\n S extends Element | Window = V extends Virtualizer<infer U, any> ? U : never,\n I extends Element = V extends Virtualizer<any, infer U> ? U : never,\n>(\n virtualizerSignal: WritableSignal<V>,\n lazyInit: () => V,\n): AngularVirtualizer<S, I> {\n return new Proxy(virtualizerSignal, {\n apply() {\n return virtualizerSignal()\n },\n get(target, property) {\n const untypedTarget = target as any\n if (untypedTarget[property]) {\n return untypedTarget[property]\n }\n let virtualizer = untracked(virtualizerSignal)\n if (virtualizer == null) {\n virtualizer = lazyInit()\n untracked(() => virtualizerSignal.set(virtualizer))\n }\n\n // Create computed signals for each property that represents a reactive value\n if (\n typeof property === 'string' &&\n [\n 'getTotalSize',\n 'getVirtualItems',\n 'isScrolling',\n 'options',\n 'range',\n 'scrollDirection',\n 'scrollElement',\n 'scrollOffset',\n 'scrollRect',\n 'measureElementCache',\n 'measurementsCache',\n ].includes(property)\n ) {\n const isFunction =\n typeof virtualizer[property as keyof V] === 'function'\n Object.defineProperty(untypedTarget, property, {\n value: isFunction\n ? computed(() => (target()[property as keyof V] as Function)())\n : computed(() => target()[property as keyof V]),\n configurable: true,\n enumerable: true,\n })\n }\n\n // Create plain signals for functions that accept arguments and return reactive values\n if (\n typeof property === 'string' &&\n [\n 'getOffsetForAlignment',\n 'getOffsetForIndex',\n 'getVirtualItemForOffset',\n 'indexFromElement',\n ].includes(property)\n ) {\n const fn = virtualizer[property as keyof V] as Function\n Object.defineProperty(untypedTarget, property, {\n value: toComputed(virtualizerSignal, fn),\n configurable: true,\n enumerable: true,\n })\n }\n\n return untypedTarget[property] || virtualizer[property as keyof V]\n },\n has(_, property: string) {\n return !!untracked(virtualizerSignal)[property as keyof V]\n },\n ownKeys() {\n return Reflect.ownKeys(untracked(virtualizerSignal))\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n }) as unknown as AngularVirtualizer<S, I>\n}\n\nfunction toComputed<V extends Virtualizer<any, any>>(\n signal: Signal<V>,\n fn: Function,\n) {\n const computedCache: Record<string, Signal<unknown>> = {}\n\n return (...args: Array<any>) => {\n // Cache computeds by their arguments to avoid re-creating the computed on each call\n const serializedArgs = serializeArgs(...args)\n if (computedCache.hasOwnProperty(serializedArgs)) {\n return computedCache[serializedArgs]?.()\n }\n const computedSignal = computed(() => {\n void signal()\n return fn(...args)\n })\n\n computedCache[serializedArgs] = computedSignal\n\n return computedSignal()\n }\n}\n\nfunction serializeArgs(...args: Array<any>) {\n return JSON.stringify(args)\n}\n","import {\n AfterRenderPhase,\n DestroyRef,\n type ElementRef,\n type Signal,\n afterNextRender,\n computed,\n effect,\n inject,\n signal,\n untracked,\n} from '@angular/core'\nimport {\n type PartialKeys,\n Virtualizer,\n type VirtualizerOptions,\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport { proxyVirtualizer } from './proxy'\nimport type { AngularVirtualizer } from './types'\n\nexport * from '@tanstack/virtual-core'\nexport * from './types'\n\nfunction createVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: Signal<VirtualizerOptions<TScrollElement, TItemElement>>,\n): AngularVirtualizer<TScrollElement, TItemElement> {\n let virtualizer: Virtualizer<TScrollElement, TItemElement>\n function lazyInit() {\n virtualizer ??= new Virtualizer(options())\n return virtualizer\n }\n\n const virtualizerSignal = signal(virtualizer!, { equal: () => false })\n\n // two-way sync options\n effect(\n () => {\n const _options = options()\n lazyInit()\n virtualizerSignal.set(virtualizer)\n virtualizer.setOptions({\n ..._options,\n onChange: (instance, sync) => {\n // update virtualizerSignal so that dependent computeds recompute.\n virtualizerSignal.set(instance)\n _options.onChange?.(instance, sync)\n },\n })\n // update virtualizerSignal so that dependent computeds recompute.\n virtualizerSignal.set(virtualizer)\n },\n { allowSignalWrites: true },\n )\n\n const scrollElement = computed(() => options().getScrollElement())\n // let the virtualizer know when the scroll element is changed\n effect(\n () => {\n const el = scrollElement()\n if (el) {\n untracked(virtualizerSignal)._willUpdate()\n }\n },\n { allowSignalWrites: true },\n )\n\n let cleanup: () => void | undefined\n afterNextRender(() => (virtualizer ?? lazyInit())._didMount(), {\n phase: AfterRenderPhase.Read,\n })\n\n inject(DestroyRef).onDestroy(() => cleanup?.())\n\n return proxyVirtualizer(virtualizerSignal, lazyInit)\n}\n\nexport function injectVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: () => PartialKeys<\n Omit<VirtualizerOptions<TScrollElement, TItemElement>, 'getScrollElement'>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n > & {\n scrollElement: ElementRef<TScrollElement> | TScrollElement | undefined\n },\n): AngularVirtualizer<TScrollElement, TItemElement> {\n const resolvedOptions = computed(() => {\n return {\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n getScrollElement: () => {\n const elementOrRef = options().scrollElement\n return (\n (isElementRef(elementOrRef)\n ? elementOrRef.nativeElement\n : elementOrRef) ?? null\n )\n },\n ...options(),\n }\n })\n return createVirtualizerBase<TScrollElement, TItemElement>(resolvedOptions)\n}\n\nfunction isElementRef<T extends Element>(\n elementOrRef: ElementRef<T> | T | undefined,\n): elementOrRef is ElementRef<T> {\n return elementOrRef != null && 'nativeElement' in elementOrRef\n}\n\nexport function injectWindowVirtualizer<TItemElement extends Element>(\n options: () => PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'getScrollElement'\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n >,\n): AngularVirtualizer<Window, TItemElement> {\n const resolvedOptions = computed(() => {\n return {\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () =>\n typeof document !== 'undefined' ? window.scrollY : 0,\n ...options(),\n }\n })\n return createVirtualizerBase<Window, TItemElement>(resolvedOptions)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tanstack-angular-virtual.mjs","sources":["../../src/proxy.ts","../../src/index.ts","../../src/tanstack-angular-virtual.ts"],"sourcesContent":["import { computed, untracked } from '@angular/core'\nimport type { Signal, WritableSignal } from '@angular/core'\nimport type { Virtualizer } from '@tanstack/virtual-core'\nimport type { AngularVirtualizer } from './types'\n\nexport function proxyVirtualizer<\n V extends Virtualizer<any, any>,\n S extends Element | Window = V extends Virtualizer<infer U, any> ? U : never,\n I extends Element = V extends Virtualizer<any, infer U> ? U : never,\n>(\n virtualizerSignal: WritableSignal<V>,\n lazyInit: () => V,\n): AngularVirtualizer<S, I> {\n return new Proxy(virtualizerSignal, {\n apply() {\n return virtualizerSignal()\n },\n get(target, property) {\n const untypedTarget = target as any\n if (untypedTarget[property]) {\n return untypedTarget[property]\n }\n let virtualizer = untracked(virtualizerSignal)\n if (virtualizer == null) {\n virtualizer = lazyInit()\n untracked(() => virtualizerSignal.set(virtualizer))\n }\n\n // Create computed signals for each property that represents a reactive value\n if (\n typeof property === 'string' &&\n [\n 'getTotalSize',\n 'getVirtualItems',\n 'isScrolling',\n 'options',\n 'range',\n 'scrollDirection',\n 'scrollElement',\n 'scrollOffset',\n 'scrollRect',\n 'measureElementCache',\n 'measurementsCache',\n ].includes(property)\n ) {\n const isFunction =\n typeof virtualizer[property as keyof V] === 'function'\n Object.defineProperty(untypedTarget, property, {\n value: isFunction\n ? computed(() => (target()[property as keyof V] as Function)())\n : computed(() => target()[property as keyof V]),\n configurable: true,\n enumerable: true,\n })\n }\n\n // Create plain signals for functions that accept arguments and return reactive values\n if (\n typeof property === 'string' &&\n [\n 'getOffsetForAlignment',\n 'getOffsetForIndex',\n 'getVirtualItemForOffset',\n 'indexFromElement',\n ].includes(property)\n ) {\n const fn = virtualizer[property as keyof V] as Function\n Object.defineProperty(untypedTarget, property, {\n value: toComputed(virtualizerSignal, fn),\n configurable: true,\n enumerable: true,\n })\n }\n\n return untypedTarget[property] || virtualizer[property as keyof V]\n },\n has(_, property: string) {\n return !!untracked(virtualizerSignal)[property as keyof V]\n },\n ownKeys() {\n return Reflect.ownKeys(untracked(virtualizerSignal))\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n }) as unknown as AngularVirtualizer<S, I>\n}\n\nfunction toComputed<V extends Virtualizer<any, any>>(\n signal: Signal<V>,\n fn: Function,\n) {\n const computedCache: Record<string, Signal<unknown>> = {}\n\n return (...args: Array<any>) => {\n // Cache computeds by their arguments to avoid re-creating the computed on each call\n const serializedArgs = serializeArgs(...args)\n if (computedCache.hasOwnProperty(serializedArgs)) {\n return computedCache[serializedArgs]?.()\n }\n const computedSignal = computed(() => {\n void signal()\n return fn(...args)\n })\n\n computedCache[serializedArgs] = computedSignal\n\n return computedSignal()\n }\n}\n\nfunction serializeArgs(...args: Array<any>) {\n return JSON.stringify(args)\n}\n","import {\n AfterRenderPhase,\n DestroyRef,\n afterNextRender,\n computed,\n effect,\n inject,\n signal,\n untracked,\n} from '@angular/core'\nimport {\n Virtualizer,\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport { proxyVirtualizer } from './proxy'\nimport type { ElementRef, Signal } from '@angular/core'\nimport type { PartialKeys, VirtualizerOptions } from '@tanstack/virtual-core'\nimport type { AngularVirtualizer } from './types'\n\nexport * from '@tanstack/virtual-core'\nexport * from './types'\n\nfunction createVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: Signal<VirtualizerOptions<TScrollElement, TItemElement>>,\n): AngularVirtualizer<TScrollElement, TItemElement> {\n let virtualizer: Virtualizer<TScrollElement, TItemElement>\n function lazyInit() {\n virtualizer ??= new Virtualizer(options())\n return virtualizer\n }\n\n const virtualizerSignal = signal(virtualizer!, { equal: () => false })\n\n // two-way sync options\n effect(\n () => {\n const _options = options()\n lazyInit()\n virtualizerSignal.set(virtualizer)\n virtualizer.setOptions({\n ..._options,\n onChange: (instance, sync) => {\n // update virtualizerSignal so that dependent computeds recompute.\n virtualizerSignal.set(instance)\n _options.onChange?.(instance, sync)\n },\n })\n // update virtualizerSignal so that dependent computeds recompute.\n virtualizerSignal.set(virtualizer)\n },\n { allowSignalWrites: true },\n )\n\n const scrollElement = computed(() => options().getScrollElement())\n // let the virtualizer know when the scroll element is changed\n effect(\n () => {\n const el = scrollElement()\n if (el) {\n untracked(virtualizerSignal)._willUpdate()\n }\n },\n { allowSignalWrites: true },\n )\n\n let cleanup: () => void | undefined\n afterNextRender(() => (virtualizer ?? lazyInit())._didMount(), {\n phase: AfterRenderPhase.Read,\n })\n\n inject(DestroyRef).onDestroy(() => cleanup?.())\n\n return proxyVirtualizer(virtualizerSignal, lazyInit)\n}\n\nexport function injectVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: () => PartialKeys<\n Omit<VirtualizerOptions<TScrollElement, TItemElement>, 'getScrollElement'>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n > & {\n scrollElement: ElementRef<TScrollElement> | TScrollElement | undefined\n },\n): AngularVirtualizer<TScrollElement, TItemElement> {\n const resolvedOptions = computed(() => {\n return {\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n getScrollElement: () => {\n const elementOrRef = options().scrollElement\n return (\n (isElementRef(elementOrRef)\n ? elementOrRef.nativeElement\n : elementOrRef) ?? null\n )\n },\n ...options(),\n }\n })\n return createVirtualizerBase<TScrollElement, TItemElement>(resolvedOptions)\n}\n\nfunction isElementRef<T extends Element>(\n elementOrRef: ElementRef<T> | T | undefined,\n): elementOrRef is ElementRef<T> {\n return elementOrRef != null && 'nativeElement' in elementOrRef\n}\n\nexport function injectWindowVirtualizer<TItemElement extends Element>(\n options: () => PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'getScrollElement'\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n >,\n): AngularVirtualizer<Window, TItemElement> {\n const resolvedOptions = computed(() => {\n return {\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () =>\n typeof document !== 'undefined' ? window.scrollY : 0,\n ...options(),\n }\n })\n return createVirtualizerBase<Window, TItemElement>(resolvedOptions)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { type ElementRef } from '@angular/core';
2
- import { type PartialKeys, type VirtualizerOptions } from '@tanstack/virtual-core';
1
+ import type { ElementRef } from '@angular/core';
2
+ import type { PartialKeys, VirtualizerOptions } from '@tanstack/virtual-core';
3
3
  import type { AngularVirtualizer } from './types';
4
4
  export * from '@tanstack/virtual-core';
5
5
  export * from './types';
package/build/proxy.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type WritableSignal } from '@angular/core';
2
- import { type Virtualizer } from '@tanstack/virtual-core';
3
- import { type AngularVirtualizer } from './types';
1
+ import type { WritableSignal } from '@angular/core';
2
+ import type { Virtualizer } from '@tanstack/virtual-core';
3
+ import type { AngularVirtualizer } from './types';
4
4
  export declare function proxyVirtualizer<V extends Virtualizer<any, any>, S extends Element | Window = V extends Virtualizer<infer U, any> ? U : never, I extends Element = V extends Virtualizer<any, infer U> ? U : never>(virtualizerSignal: WritableSignal<V>, lazyInit: () => V): AngularVirtualizer<S, I>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/angular-virtual",
3
- "version": "3.10.6",
3
+ "version": "3.10.8",
4
4
  "description": "Headless UI for virtualizing scrollable elements in Angular",
5
5
  "author": "Garrett Darnell",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  ],
42
42
  "dependencies": {
43
43
  "tslib": "^2.7.0",
44
- "@tanstack/virtual-core": "3.10.6"
44
+ "@tanstack/virtual-core": "3.10.8"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@angular/core": "^17.3.12",