{"version":3,"sources":["../../src/SKELETON_STATE/index.ts"],"names":["_fakeSuspense","_promise","_slowLoading","_callbacks","noop","_value","alwaysNoop_default","alwaysFalse_default","_onValueChange","_root","_valueToggler","_subscribeWithError"],"mappings":";;;;;;;;;;AAgBA,IAAM,uBAA8C,GAAA;AAAA,EAClD,KAAQ,GAAA;AACN,IAAO,OAAA,IAAA;AAAA;AAEX,CAAA;AAiBA,IAAM,cAAiB,GAAA;AAAA,EACrBA,CAAAA,CAAc,aAAa,gBAAkB,EAAA;AAC3C,IAAA,IAAI,WAAa,EAAA;AACf,MAAO,OAAA,IAAI,OAAc,CAAA,CAAC,GAAQ,KAAA;AAChC,QAAY,WAAA,CAAA,GAAA,CAAI,EAAC,EAAU,GAAG,CAAA;AAE9B,QAAA,IAAI,gBAAkB,EAAA;AACpB,UAAA,gBAAA,CAAiB,IAAI,GAAG,CAAA;AAAA;AAC1B,OACD,CAAA;AAAA;AAGH,IAAM,MAAA,IAAI,MAAM,qBAAqB,CAAA;AAAA,GACvC;AAAA,EACAC,CAAU,EAAA;AAAA,IACRA,CAAU,EAAA,MAAA,CAAO,MAAO,CAAA,OAAA,CAAQ,SAAW,EAAA;AAAA,MACzC,IAAM,EAAA,uBAAA;AAAA,MACN,KAAO,EAAA,uBAAA;AAAA,MACP,OAAS,EAAA;AAAA,KACV;AAAA,GACH;AAAA,EACAC,CAAc,EAAA;AAAA,IACZC,CAAY,EAAA,EAAE,GAAK,EAAAC,qBAAA,EAAM,QAAQA,qBAAK;AAAA,GACxC;AAAA,EACAC,CAAQ,EAAA,KAAA,CAAA;AAAA,EACR,IAAM,EAAAC,oCAAA;AAAA,EACN,SAAS,IAAI,KAAA;AAAA,IACX,EAAC;AAAA,IACD;AAAA,MACE,GAAA,CAAI,CAAG,EAAA,EAAA,EAAI,KAAO,EAAA;AAChB,QAAO,OAAA,KAAA;AAAA,OACT;AAAA,MACA,GAAK,EAAAC;AAAA;AACP,GACF;AAAA,EACAC,CAAgB,EAAAF,oCAAA;AAAA,EAChB,GAAK,EAAAF,qBAAA;AAAA,EACL,GAAK,EAAAA,qBAAA;AAAA,EACLK,CAAO,EAAA,KAAA,CAAA;AAAA,EACP,KAAO,EAAA;AAAA,IACL,GAAK,EAAAL,qBAAA;AAAA,IACL,GAAK,EAAAA,qBAAA;AAAA,IACLI,CAAgB,EAAAF,oCAAA;AAAA,IAChBD,CAAQ,EAAA,KAAA,CAAA;AAAA,IACRK,CAAe,EAAA;AAAA,GACjB;AAAA,EACA,QAAU,EAAA;AAAA,IACR,GAAK,EAAAH,qCAAA;AAAA,IACL,GAAK,EAAAH,qBAAA;AAAA,IACLI,CAAgB,EAAAF,oCAAA;AAAA,IAChBD,CAAQ,EAAA,KAAA;AAAA,IACRK,CAAe,EAAA;AAAA,GACjB;AAAA,EACAC,CAAqB,EAAAL,oCAAA;AAAA,EACrBI,CAAe,EAAA;AACjB,CAAA;AAEC,cAAA,CAAkDD,CAAQ,GAAA,cAAA;AAE3D,IAAO,sBAAQ,GAAA","file":"chunk-YDQDG7IG.cjs","sourcesContent":["import noop from 'lodash.noop';\nimport type { LoadableState, Mutable } from '../types';\nimport alwaysFalse from '../utils/alwaysFalse';\nimport type { ContextType } from 'react';\nimport type SuspenseContext from '../utils/SuspenseContext';\nimport type ErrorBoundaryContext from '../utils/ErrorBoundaryContext';\nimport alwaysNoop from '../utils/alwaysNoop';\n\nexport type SkeletonState = {\n  /** @internal */\n  _fakeSuspense(\n    suspenseCtx: ContextType<typeof SuspenseContext>,\n    errorBoundaryCtx: ContextType<typeof ErrorBoundaryContext>\n  ): Promise<any>;\n} & LoadableState<any, any, any>;\n\nconst NOOP_PROMISE_DESCRIPTOR: PropertyDescriptor = {\n  value() {\n    return this;\n  },\n};\n\n/**\n * A special state that remains permanently in a pending state.\n * This state never resolves, its {@link SkeletonState.isLoaded isLoaded} is always `false`, and it triggers Suspense indefinitely.\n *\n * @example\n * ```jsx\n * const Card = ({ asyncState }) => (\n *    <SuspenseController\n *      state={asyncState || SKELETON_STATE}\n *      fallback='Loading...' // if no asyncState was provided fallback always be shown\n *      render={(value) => <Content value={value} />}\n *    />\n * );\n * ```\n */\nconst SKELETON_STATE = {\n  _fakeSuspense(suspenseCtx, errorBoundaryCtx) {\n    if (suspenseCtx) {\n      return new Promise<void>((res) => {\n        suspenseCtx.set({} as any, res);\n\n        if (errorBoundaryCtx) {\n          errorBoundaryCtx.add(res);\n        }\n      });\n    }\n\n    throw new Error('No Suspense Wrapper');\n  },\n  _promise: {\n    _promise: Object.create(Promise.prototype, {\n      then: NOOP_PROMISE_DESCRIPTOR,\n      catch: NOOP_PROMISE_DESCRIPTOR,\n      finally: NOOP_PROMISE_DESCRIPTOR,\n    }),\n  } as LoadableState['_promise'],\n  _slowLoading: {\n    _callbacks: { add: noop, delete: noop },\n  } as LoadableState['_slowLoading'],\n  _value: undefined,\n  load: alwaysNoop,\n  control: new Proxy(\n    {},\n    {\n      get(_, __, proxy) {\n        return proxy;\n      },\n      has: alwaysFalse,\n    }\n  ),\n  _onValueChange: alwaysNoop,\n  get: noop,\n  set: noop,\n  _root: undefined!,\n  error: {\n    get: noop,\n    set: noop,\n    _onValueChange: alwaysNoop,\n    _value: undefined,\n    _valueToggler: 0,\n  } as Partial<LoadableState['error']> as LoadableState['error'],\n  isLoaded: {\n    get: alwaysFalse,\n    set: noop,\n    _onValueChange: alwaysNoop,\n    _value: false,\n    _valueToggler: 0,\n  } as Partial<LoadableState['isLoaded']> as LoadableState['isLoaded'],\n  _subscribeWithError: alwaysNoop,\n  _valueToggler: 0,\n} as Partial<SkeletonState> as SkeletonState;\n\n(SKELETON_STATE as Mutable<typeof SKELETON_STATE>)._root = SKELETON_STATE;\n\nexport default SKELETON_STATE;\n"]}