mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
Master's #1303 (keep sparse VOD details playable) landed in the same four files this branch restructured, so the merge is a real one rather than a fast-forward. What was reconciled: - The template: master extracted the actions and the inline player into named `ng-template`s reached through `ngTemplateOutlet`, so multi-source moved into those templates rather than staying inline — the sources chip, the "Playing from" caption, the pin-aware Restart, and the player's source wiring. - `downloadVod` and `similarItems`: master's sparse-source handling and its playlist-scoped catalog moved INTO the services this branch extracted them into, rather than back onto the component. - Resume keeps reading the ROUTE copy's position row while master's sparse-id fallback supplies the stream id, since those answer different questions. - The route spec: master's version is kept whole, including its four new fallback-action tests; this branch's download test moved to the spec that uses the shared harness. Three of master's tests needed the multi-source inputs added to their inline player stub, and one had to set the route-scoped position signal as `loadPosition` does — the Resume button reads that row, not the last position seen from any copy. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>