{"version":3,"file":"StackState.cjs","names":["_react","_interopRequireDefault","require","useStackState","initial","state","setState","React","useState","reset","useCallback","value","peek","length","undefined","push","concat","pop","slice","exports"],"sources":["../../src/common/StackState.ts"],"sourcesContent":["import React from 'react';\r\n\r\n\r\nexport const useStackState = <T>(initial?: T) => {\r\n  const [state, setState] = React.useState<(T | undefined)[]>(initial ? [initial] : []);\r\n\r\n  const reset = React.useCallback((value?: T) => setState(!!value || !!initial ? [value ?? initial] : []), [initial]);\r\n  const peek = React.useCallback(() => !!state.length ? state[state.length - 1] : undefined, [state]);\r\n  const push = React.useCallback((value: T) => setState(state.concat(value)), [state]);\r\n  const pop = React.useCallback(() => setState(state.slice(0, -1)), [state]);\r\n  const length = state.length;\r\n\r\n  return {peek, push, pop, reset, length};\r\n};\r\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,MAAMC,aAAa,GAAOC,OAAW,IAAK;EAC/C,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAoBJ,OAAO,GAAG,CAACA,OAAO,CAAC,GAAG,EAAE,CAAC;EAErF,MAAMK,KAAK,GAAGF,cAAK,CAACG,WAAW,CAAEC,KAAS,IAAKL,QAAQ,CAAC,CAAC,CAACK,KAAK,IAAI,CAAC,CAACP,OAAO,GAAG,CAACO,KAAK,IAAIP,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EACnH,MAAMQ,IAAI,GAAGL,cAAK,CAACG,WAAW,CAAC,MAAM,CAAC,CAACL,KAAK,CAACQ,MAAM,GAAGR,KAAK,CAACA,KAAK,CAACQ,MAAM,GAAG,CAAC,CAAC,GAAGC,SAAS,EAAE,CAACT,KAAK,CAAC,CAAC;EACnG,MAAMU,IAAI,GAAGR,cAAK,CAACG,WAAW,CAAEC,KAAQ,IAAKL,QAAQ,CAACD,KAAK,CAACW,MAAM,CAACL,KAAK,CAAC,CAAC,EAAE,CAACN,KAAK,CAAC,CAAC;EACpF,MAAMY,GAAG,GAAGV,cAAK,CAACG,WAAW,CAAC,MAAMJ,QAAQ,CAACD,KAAK,CAACa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAACb,KAAK,CAAC,CAAC;EAC1E,MAAMQ,MAAM,GAAGR,KAAK,CAACQ,MAAM;EAE3B,OAAO;IAACD,IAAI;IAAEG,IAAI;IAAEE,GAAG;IAAER,KAAK;IAAEI;EAAM,CAAC;AACzC,CAAC;AAACM,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}