{"version":3,"file":"SimulatorClient.cjs","names":["ChannelEmitter","APIRequestType","ClientRequestType"],"sources":["../src/SimulatorClient.ts"],"sourcesContent":["import type {\n\tAllChannelEmitterOptions,\n\tTransactionMethod,\n\tTransactionsHandlers,\n\tTransactionsMethods,\n} from \"./channel\"\nimport { ChannelEmitter } from \"./channel\"\nimport type { SimulatorAPIOptions } from \"./SimulatorAPI\"\nimport type { APITransactions, ClientTransactions } from \"./types\"\nimport { APIRequestType, ClientRequestType } from \"./types\"\n\nexport const simulatorClientDefaultOptions: Partial<AllChannelEmitterOptions> = {\n\trequestIDPrefix: \"client-\",\n}\n\nexport class SimulatorClient\n\textends ChannelEmitter<APITransactions, Partial<AllChannelEmitterOptions>, SimulatorAPIOptions>\n\timplements TransactionsMethods<ClientTransactions>\n{\n\tconstructor(\n\t\ttarget: HTMLIFrameElement,\n\t\trequestHandlers?: Partial<TransactionsHandlers<APITransactions>>,\n\t\toptions?: Partial<AllChannelEmitterOptions>,\n\t) {\n\t\t// True if `options.debug` is true or `debug=true` is among query parameters\n\t\tconst debug =\n\t\t\toptions?.debug || /[?&]debug=true/i.test(decodeURIComponent(window.location.search))\n\n\t\tsuper(\n\t\t\ttarget,\n\t\t\t{\n\t\t\t\t[APIRequestType.SetActiveSlice]: (_req, res) => {\n\t\t\t\t\treturn res.success()\n\t\t\t\t},\n\t\t\t\t[APIRequestType.SetSliceZoneSize]: (_req, res) => {\n\t\t\t\t\treturn res.success()\n\t\t\t\t},\n\t\t\t\t...requestHandlers,\n\t\t\t},\n\t\t\t{\n\t\t\t\t...simulatorClientDefaultOptions,\n\t\t\t\t...options,\n\t\t\t\tdebug,\n\t\t\t},\n\t\t)\n\n\t\t// Append client to window object\n\t\tif (debug) {\n\t\t\twindow.prismic ||= {}\n\t\t\twindow.prismic.sliceSimulator ||= {}\n\t\t\twindow.prismic.sliceSimulator.client ||= []\n\t\t\twindow.prismic.sliceSimulator.client.push(this)\n\t\t}\n\t}\n\n\t[ClientRequestType.Ping]: TransactionMethod<ClientTransactions[ClientRequestType.Ping]> =\n\t\tasync () => {\n\t\t\treturn await this.postFormattedRequest(ClientRequestType.Ping)\n\t\t};\n\n\t[ClientRequestType.SetSliceZone]: TransactionMethod<\n\t\tClientTransactions[ClientRequestType.SetSliceZone]\n\t> = async (data) => {\n\t\treturn await this.postFormattedRequest(ClientRequestType.SetSliceZone, data)\n\t};\n\n\t[ClientRequestType.ScrollToSlice]: TransactionMethod<\n\t\tClientTransactions[ClientRequestType.ScrollToSlice]\n\t> = async (data) => {\n\t\treturn await this.postFormattedRequest(ClientRequestType.ScrollToSlice, data)\n\t}\n}\n"],"mappings":";;;AAWA,MAAa,gCAAmE,EAC/E,iBAAiB,WACjB;AAED,IAAa,kBAAb,cACSA,uBAAAA,eAET;CACC,YACC,QACA,iBACA,SACC;EAED,MAAM,QACL,SAAS,SAAS,kBAAkB,KAAK,mBAAmB,OAAO,SAAS,OAAO,CAAC;AAErF,QACC,QACA;IACEC,cAAAA,eAAe,kBAAkB,MAAM,QAAQ;AAC/C,WAAO,IAAI,SAAS;;IAEpBA,cAAAA,eAAe,oBAAoB,MAAM,QAAQ;AACjD,WAAO,IAAI,SAAS;;GAErB,GAAG;GACH,EACD;GACC,GAAG;GACH,GAAG;GACH;GACA,CACD;AAGD,MAAI,OAAO;AACV,UAAO,YAAY,EAAE;AACrB,UAAO,QAAQ,mBAAmB,EAAE;AACpC,UAAO,QAAQ,eAAe,WAAW,EAAE;AAC3C,UAAO,QAAQ,eAAe,OAAO,KAAK,KAAK;;;CAIjD,CAACC,cAAAA,kBAAkB,QAClB,YAAY;AACX,SAAO,MAAM,KAAK,qBAAqBA,cAAAA,kBAAkB,KAAK;;CAGhE,CAACA,cAAAA,kBAAkB,gBAEf,OAAO,SAAS;AACnB,SAAO,MAAM,KAAK,qBAAqBA,cAAAA,kBAAkB,cAAc,KAAK;;CAG7E,CAACA,cAAAA,kBAAkB,iBAEf,OAAO,SAAS;AACnB,SAAO,MAAM,KAAK,qBAAqBA,cAAAA,kBAAkB,eAAe,KAAK"}