@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 667 B
JavaScript
export function flattenBreadcrumbs(i){const r=[i];let t=i;for(;null!==t.child;){const i=t.child;null!==i&&(r.push(i),t=i)}return r}export class Breadcrumbs{#i;#r;constructor(i){this.#i={window:i,child:null},this.#r=this.#i}add(i){if(!this.isTraceWindowWithinTraceWindow(i,this.#r.window))throw new Error("Can not add a breadcrumb that is equal to or is outside of the parent breadcrumb TimeWindow");{const r={window:i,child:null};this.#r.child=r,this.#r=r}}isTraceWindowWithinTraceWindow(i,r){return i.min>=r.min&&i.max<=r.max&&!(i.min===r.min&&i.max===r.max)}makeBreadcrumbActive(i){let r=this.#i;for(;r.window!==i&&null!==r.child;)r=r.child;r.child=null,this.#r=r}}