{
  "version": 3,
  "sources": ["../../../src/components/collaborators-overlay/resolve-start-position.ts"],
  "sourcesContent": ["import {\n\tprivateApis as coreDataPrivateApis,\n\ttype CoreDataPrivateApis,\n\ttype ResolvedSelection,\n\ttype SelectionState,\n} from '@wordpress/core-data';\nimport { unlock } from '../../lock-unlock';\n\nconst { SelectionType } = unlock( coreDataPrivateApis ) as Pick<\n\tCoreDataPrivateApis,\n\t'SelectionType'\n>;\n\n/**\n * Reduce any awareness selection shape down to a single resolvable\n * position — whichever end best represents \"where this collaborator is.\"\n * For range selections (SelectionInOneBlock, SelectionInMultipleBlocks) this\n * is the start; a Cursor or WholeBlock selection has only one position.\n *\n * @param selection        - The collaborator's current selection state.\n * @param resolveSelection - Resolver from useResolvedSelection().\n * @return The resolved position, or null if there's nothing to resolve.\n */\nexport function resolveStartPosition(\n\tselection: SelectionState | undefined,\n\tresolveSelection: ( selection: SelectionState ) => ResolvedSelection\n): ResolvedSelection | null {\n\tif ( ! selection ) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tswitch ( selection.type ) {\n\t\t\tcase SelectionType.Cursor:\n\t\t\tcase SelectionType.WholeBlock:\n\t\t\t\treturn resolveSelection( selection );\n\t\t\tcase SelectionType.SelectionInOneBlock:\n\t\t\t\treturn resolveSelection( {\n\t\t\t\t\ttype: SelectionType.Cursor,\n\t\t\t\t\tcursorPosition: selection.cursorStartPosition,\n\t\t\t\t} );\n\t\t\tcase SelectionType.SelectionInMultipleBlocks:\n\t\t\t\treturn resolveSelection( selection.startEndpoint );\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t} catch {\n\t\t// Selection may reference a stale Yjs position.\n\t\treturn null;\n\t}\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKO;AACP,yBAAuB;AAEvB,IAAM,EAAE,cAAc,QAAI,2BAAQ,iBAAAA,WAAoB;AAe/C,SAAS,qBACf,WACA,kBAC2B;AAC3B,MAAK,CAAE,WAAY;AAClB,WAAO;AAAA,EACR;AAEA,MAAI;AACH,YAAS,UAAU,MAAO;AAAA,MACzB,KAAK,cAAc;AAAA,MACnB,KAAK,cAAc;AAClB,eAAO,iBAAkB,SAAU;AAAA,MACpC,KAAK,cAAc;AAClB,eAAO,iBAAkB;AAAA,UACxB,MAAM,cAAc;AAAA,UACpB,gBAAgB,UAAU;AAAA,QAC3B,CAAE;AAAA,MACH,KAAK,cAAc;AAClB,eAAO,iBAAkB,UAAU,aAAc;AAAA,MAClD;AACC,eAAO;AAAA,IACT;AAAA,EACD,QAAQ;AAEP,WAAO;AAAA,EACR;AACD;",
  "names": ["coreDataPrivateApis"]
}
