@vue_devtools-api.js 116 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819
  1. // node_modules/@vue/devtools-shared/dist/index.js
  2. var __create = Object.create;
  3. var __defProp = Object.defineProperty;
  4. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  5. var __getOwnPropNames = Object.getOwnPropertyNames;
  6. var __getProtoOf = Object.getPrototypeOf;
  7. var __hasOwnProp = Object.prototype.hasOwnProperty;
  8. var __commonJS = (cb, mod) => function() {
  9. return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  10. };
  11. var __copyProps = (to, from, except, desc) => {
  12. if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
  13. key = keys[i];
  14. if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
  15. get: ((k) => from[k]).bind(null, key),
  16. enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
  17. });
  18. }
  19. return to;
  20. };
  21. var __toESM = (mod, isNodeMode, target$1) => (target$1 = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target$1, "default", {
  22. value: mod,
  23. enumerable: true
  24. }) : target$1, mod));
  25. var isBrowser = typeof navigator !== "undefined";
  26. var target = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : {};
  27. var isInChromePanel = typeof target.chrome !== "undefined" && !!target.chrome.devtools;
  28. var isInIframe = isBrowser && target.self !== target.top;
  29. var isInElectron = typeof navigator !== "undefined" && navigator.userAgent?.toLowerCase().includes("electron");
  30. var isNuxtApp = typeof window !== "undefined" && !!window.__NUXT__;
  31. var require_rfdc = __commonJS({ "../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js": ((exports, module) => {
  32. module.exports = rfdc$1;
  33. function copyBuffer(cur) {
  34. if (cur instanceof Buffer) return Buffer.from(cur);
  35. return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);
  36. }
  37. function rfdc$1(opts) {
  38. opts = opts || {};
  39. if (opts.circles) return rfdcCircles(opts);
  40. const constructorHandlers = /* @__PURE__ */ new Map();
  41. constructorHandlers.set(Date, (o) => new Date(o));
  42. constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
  43. constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
  44. if (opts.constructorHandlers) for (const handler$1 of opts.constructorHandlers) constructorHandlers.set(handler$1[0], handler$1[1]);
  45. let handler = null;
  46. return opts.proto ? cloneProto : clone;
  47. function cloneArray(a, fn) {
  48. const keys = Object.keys(a);
  49. const a2 = new Array(keys.length);
  50. for (let i = 0; i < keys.length; i++) {
  51. const k = keys[i];
  52. const cur = a[k];
  53. if (typeof cur !== "object" || cur === null) a2[k] = cur;
  54. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
  55. else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
  56. else a2[k] = fn(cur);
  57. }
  58. return a2;
  59. }
  60. function clone(o) {
  61. if (typeof o !== "object" || o === null) return o;
  62. if (Array.isArray(o)) return cloneArray(o, clone);
  63. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
  64. const o2 = {};
  65. for (const k in o) {
  66. if (Object.hasOwnProperty.call(o, k) === false) continue;
  67. const cur = o[k];
  68. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  69. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
  70. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  71. else o2[k] = clone(cur);
  72. }
  73. return o2;
  74. }
  75. function cloneProto(o) {
  76. if (typeof o !== "object" || o === null) return o;
  77. if (Array.isArray(o)) return cloneArray(o, cloneProto);
  78. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
  79. const o2 = {};
  80. for (const k in o) {
  81. const cur = o[k];
  82. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  83. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
  84. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  85. else o2[k] = cloneProto(cur);
  86. }
  87. return o2;
  88. }
  89. }
  90. function rfdcCircles(opts) {
  91. const refs = [];
  92. const refsNew = [];
  93. const constructorHandlers = /* @__PURE__ */ new Map();
  94. constructorHandlers.set(Date, (o) => new Date(o));
  95. constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
  96. constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
  97. if (opts.constructorHandlers) for (const handler$1 of opts.constructorHandlers) constructorHandlers.set(handler$1[0], handler$1[1]);
  98. let handler = null;
  99. return opts.proto ? cloneProto : clone;
  100. function cloneArray(a, fn) {
  101. const keys = Object.keys(a);
  102. const a2 = new Array(keys.length);
  103. for (let i = 0; i < keys.length; i++) {
  104. const k = keys[i];
  105. const cur = a[k];
  106. if (typeof cur !== "object" || cur === null) a2[k] = cur;
  107. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
  108. else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
  109. else {
  110. const index = refs.indexOf(cur);
  111. if (index !== -1) a2[k] = refsNew[index];
  112. else a2[k] = fn(cur);
  113. }
  114. }
  115. return a2;
  116. }
  117. function clone(o) {
  118. if (typeof o !== "object" || o === null) return o;
  119. if (Array.isArray(o)) return cloneArray(o, clone);
  120. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
  121. const o2 = {};
  122. refs.push(o);
  123. refsNew.push(o2);
  124. for (const k in o) {
  125. if (Object.hasOwnProperty.call(o, k) === false) continue;
  126. const cur = o[k];
  127. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  128. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
  129. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  130. else {
  131. const i = refs.indexOf(cur);
  132. if (i !== -1) o2[k] = refsNew[i];
  133. else o2[k] = clone(cur);
  134. }
  135. }
  136. refs.pop();
  137. refsNew.pop();
  138. return o2;
  139. }
  140. function cloneProto(o) {
  141. if (typeof o !== "object" || o === null) return o;
  142. if (Array.isArray(o)) return cloneArray(o, cloneProto);
  143. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
  144. const o2 = {};
  145. refs.push(o);
  146. refsNew.push(o2);
  147. for (const k in o) {
  148. const cur = o[k];
  149. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  150. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
  151. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  152. else {
  153. const i = refs.indexOf(cur);
  154. if (i !== -1) o2[k] = refsNew[i];
  155. else o2[k] = cloneProto(cur);
  156. }
  157. }
  158. refs.pop();
  159. refsNew.pop();
  160. return o2;
  161. }
  162. }
  163. }) });
  164. var import_rfdc = __toESM(require_rfdc(), 1);
  165. var classifyRE = /(?:^|[-_/])(\w)/g;
  166. function toUpper(_, c) {
  167. return c ? c.toUpperCase() : "";
  168. }
  169. function classify(str) {
  170. return str && `${str}`.replace(classifyRE, toUpper);
  171. }
  172. function basename(filename, ext) {
  173. let normalizedFilename = filename.replace(/^[a-z]:/i, "").replace(/\\/g, "/");
  174. if (normalizedFilename.endsWith(`index${ext}`)) normalizedFilename = normalizedFilename.replace(`/index${ext}`, ext);
  175. const lastSlashIndex = normalizedFilename.lastIndexOf("/");
  176. const baseNameWithExt = normalizedFilename.substring(lastSlashIndex + 1);
  177. if (ext) {
  178. const extIndex = baseNameWithExt.lastIndexOf(ext);
  179. return baseNameWithExt.substring(0, extIndex);
  180. }
  181. return "";
  182. }
  183. var HTTP_URL_RE = /^https?:\/\//;
  184. function isUrlString(str) {
  185. return str.startsWith("/") || HTTP_URL_RE.test(str);
  186. }
  187. var deepClone = (0, import_rfdc.default)({ circles: true });
  188. // node_modules/perfect-debounce/dist/index.mjs
  189. var DEBOUNCE_DEFAULTS = { trailing: true };
  190. function debounce(fn, wait = 25, options = {}) {
  191. options = {
  192. ...DEBOUNCE_DEFAULTS,
  193. ...options
  194. };
  195. if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number");
  196. let leadingValue;
  197. let timeout;
  198. let resolveList = [];
  199. let currentPromise;
  200. let trailingArgs;
  201. const applyFn = (_this, args) => {
  202. currentPromise = _applyPromised(fn, _this, args);
  203. currentPromise.finally(() => {
  204. currentPromise = null;
  205. if (options.trailing && trailingArgs && !timeout) {
  206. const promise = applyFn(_this, trailingArgs);
  207. trailingArgs = null;
  208. return promise;
  209. }
  210. });
  211. return currentPromise;
  212. };
  213. const debounced = function(...args) {
  214. if (options.trailing) trailingArgs = args;
  215. if (currentPromise) return currentPromise;
  216. return new Promise((resolve) => {
  217. const shouldCallNow = !timeout && options.leading;
  218. clearTimeout(timeout);
  219. timeout = setTimeout(() => {
  220. timeout = null;
  221. const promise = options.leading ? leadingValue : applyFn(this, args);
  222. trailingArgs = null;
  223. for (const _resolve of resolveList) _resolve(promise);
  224. resolveList = [];
  225. }, wait);
  226. if (shouldCallNow) {
  227. leadingValue = applyFn(this, args);
  228. resolve(leadingValue);
  229. } else resolveList.push(resolve);
  230. });
  231. };
  232. const _clearTimeout = (timer) => {
  233. if (timer) {
  234. clearTimeout(timer);
  235. timeout = null;
  236. }
  237. };
  238. debounced.isPending = () => !!timeout;
  239. debounced.cancel = () => {
  240. _clearTimeout(timeout);
  241. resolveList = [];
  242. trailingArgs = null;
  243. };
  244. debounced.flush = () => {
  245. _clearTimeout(timeout);
  246. if (!trailingArgs || currentPromise) return;
  247. const args = trailingArgs;
  248. trailingArgs = null;
  249. return applyFn(this, args);
  250. };
  251. return debounced;
  252. }
  253. async function _applyPromised(fn, _this, args) {
  254. return await fn.apply(_this, args);
  255. }
  256. // node_modules/hookable/dist/index.mjs
  257. function flatHooks(configHooks, hooks2 = {}, parentName) {
  258. for (const key in configHooks) {
  259. const subHook = configHooks[key];
  260. const name = parentName ? `${parentName}:${key}` : key;
  261. if (typeof subHook === "object" && subHook !== null) {
  262. flatHooks(subHook, hooks2, name);
  263. } else if (typeof subHook === "function") {
  264. hooks2[name] = subHook;
  265. }
  266. }
  267. return hooks2;
  268. }
  269. var defaultTask = { run: (function_) => function_() };
  270. var _createTask = () => defaultTask;
  271. var createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask;
  272. function serialTaskCaller(hooks2, args) {
  273. const name = args.shift();
  274. const task = createTask(name);
  275. return hooks2.reduce(
  276. (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))),
  277. Promise.resolve()
  278. );
  279. }
  280. function parallelTaskCaller(hooks2, args) {
  281. const name = args.shift();
  282. const task = createTask(name);
  283. return Promise.all(hooks2.map((hook2) => task.run(() => hook2(...args))));
  284. }
  285. function callEachWith(callbacks, arg0) {
  286. for (const callback of [...callbacks]) {
  287. callback(arg0);
  288. }
  289. }
  290. var Hookable = class {
  291. constructor() {
  292. this._hooks = {};
  293. this._before = void 0;
  294. this._after = void 0;
  295. this._deprecatedMessages = void 0;
  296. this._deprecatedHooks = {};
  297. this.hook = this.hook.bind(this);
  298. this.callHook = this.callHook.bind(this);
  299. this.callHookWith = this.callHookWith.bind(this);
  300. }
  301. hook(name, function_, options = {}) {
  302. if (!name || typeof function_ !== "function") {
  303. return () => {
  304. };
  305. }
  306. const originalName = name;
  307. let dep;
  308. while (this._deprecatedHooks[name]) {
  309. dep = this._deprecatedHooks[name];
  310. name = dep.to;
  311. }
  312. if (dep && !options.allowDeprecated) {
  313. let message = dep.message;
  314. if (!message) {
  315. message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
  316. }
  317. if (!this._deprecatedMessages) {
  318. this._deprecatedMessages = /* @__PURE__ */ new Set();
  319. }
  320. if (!this._deprecatedMessages.has(message)) {
  321. console.warn(message);
  322. this._deprecatedMessages.add(message);
  323. }
  324. }
  325. if (!function_.name) {
  326. try {
  327. Object.defineProperty(function_, "name", {
  328. get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
  329. configurable: true
  330. });
  331. } catch {
  332. }
  333. }
  334. this._hooks[name] = this._hooks[name] || [];
  335. this._hooks[name].push(function_);
  336. return () => {
  337. if (function_) {
  338. this.removeHook(name, function_);
  339. function_ = void 0;
  340. }
  341. };
  342. }
  343. hookOnce(name, function_) {
  344. let _unreg;
  345. let _function = (...arguments_) => {
  346. if (typeof _unreg === "function") {
  347. _unreg();
  348. }
  349. _unreg = void 0;
  350. _function = void 0;
  351. return function_(...arguments_);
  352. };
  353. _unreg = this.hook(name, _function);
  354. return _unreg;
  355. }
  356. removeHook(name, function_) {
  357. if (this._hooks[name]) {
  358. const index = this._hooks[name].indexOf(function_);
  359. if (index !== -1) {
  360. this._hooks[name].splice(index, 1);
  361. }
  362. if (this._hooks[name].length === 0) {
  363. delete this._hooks[name];
  364. }
  365. }
  366. }
  367. deprecateHook(name, deprecated) {
  368. this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
  369. const _hooks = this._hooks[name] || [];
  370. delete this._hooks[name];
  371. for (const hook2 of _hooks) {
  372. this.hook(name, hook2);
  373. }
  374. }
  375. deprecateHooks(deprecatedHooks) {
  376. Object.assign(this._deprecatedHooks, deprecatedHooks);
  377. for (const name in deprecatedHooks) {
  378. this.deprecateHook(name, deprecatedHooks[name]);
  379. }
  380. }
  381. addHooks(configHooks) {
  382. const hooks2 = flatHooks(configHooks);
  383. const removeFns = Object.keys(hooks2).map(
  384. (key) => this.hook(key, hooks2[key])
  385. );
  386. return () => {
  387. for (const unreg of removeFns.splice(0, removeFns.length)) {
  388. unreg();
  389. }
  390. };
  391. }
  392. removeHooks(configHooks) {
  393. const hooks2 = flatHooks(configHooks);
  394. for (const key in hooks2) {
  395. this.removeHook(key, hooks2[key]);
  396. }
  397. }
  398. removeAllHooks() {
  399. for (const key in this._hooks) {
  400. delete this._hooks[key];
  401. }
  402. }
  403. callHook(name, ...arguments_) {
  404. arguments_.unshift(name);
  405. return this.callHookWith(serialTaskCaller, name, ...arguments_);
  406. }
  407. callHookParallel(name, ...arguments_) {
  408. arguments_.unshift(name);
  409. return this.callHookWith(parallelTaskCaller, name, ...arguments_);
  410. }
  411. callHookWith(caller, name, ...arguments_) {
  412. const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0;
  413. if (this._before) {
  414. callEachWith(this._before, event);
  415. }
  416. const result = caller(
  417. name in this._hooks ? [...this._hooks[name]] : [],
  418. arguments_
  419. );
  420. if (result instanceof Promise) {
  421. return result.finally(() => {
  422. if (this._after && event) {
  423. callEachWith(this._after, event);
  424. }
  425. });
  426. }
  427. if (this._after && event) {
  428. callEachWith(this._after, event);
  429. }
  430. return result;
  431. }
  432. beforeEach(function_) {
  433. this._before = this._before || [];
  434. this._before.push(function_);
  435. return () => {
  436. if (this._before !== void 0) {
  437. const index = this._before.indexOf(function_);
  438. if (index !== -1) {
  439. this._before.splice(index, 1);
  440. }
  441. }
  442. };
  443. }
  444. afterEach(function_) {
  445. this._after = this._after || [];
  446. this._after.push(function_);
  447. return () => {
  448. if (this._after !== void 0) {
  449. const index = this._after.indexOf(function_);
  450. if (index !== -1) {
  451. this._after.splice(index, 1);
  452. }
  453. }
  454. };
  455. }
  456. };
  457. function createHooks() {
  458. return new Hookable();
  459. }
  460. // node_modules/birpc/dist/index.mjs
  461. var { clearTimeout: clearTimeout2, setTimeout: setTimeout2 } = globalThis;
  462. var random = Math.random.bind(Math);
  463. // node_modules/@vue/devtools-kit/dist/index.js
  464. var __create2 = Object.create;
  465. var __defProp2 = Object.defineProperty;
  466. var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
  467. var __getOwnPropNames2 = Object.getOwnPropertyNames;
  468. var __getProtoOf2 = Object.getPrototypeOf;
  469. var __hasOwnProp2 = Object.prototype.hasOwnProperty;
  470. var __commonJS2 = (cb, mod) => function() {
  471. return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  472. };
  473. var __copyProps2 = (to, from, except, desc) => {
  474. if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames2(from), i = 0, n = keys.length, key; i < n; i++) {
  475. key = keys[i];
  476. if (!__hasOwnProp2.call(to, key) && key !== except) __defProp2(to, key, {
  477. get: ((k) => from[k]).bind(null, key),
  478. enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable
  479. });
  480. }
  481. return to;
  482. };
  483. var __toESM2 = (mod, isNodeMode, target$1) => (target$1 = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(isNodeMode || !mod || !mod.__esModule ? __defProp2(target$1, "default", {
  484. value: mod,
  485. enumerable: true
  486. }) : target$1, mod));
  487. function getComponentTypeName(options) {
  488. const name = options.name || options._componentTag || options.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ || options.__name;
  489. if (name === "index" && options.__file?.endsWith("index.vue")) return "";
  490. return name;
  491. }
  492. function getComponentFileName(options) {
  493. const file = options.__file;
  494. if (file) return classify(basename(file, ".vue"));
  495. }
  496. function saveComponentGussedName(instance, name) {
  497. instance.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ = name;
  498. return name;
  499. }
  500. function getAppRecord(instance) {
  501. if (instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__) return instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
  502. else if (instance.root) return instance.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
  503. }
  504. function isFragment(instance) {
  505. const subTreeType = instance.subTree?.type;
  506. const appRecord = getAppRecord(instance);
  507. if (appRecord) return appRecord?.types?.Fragment === subTreeType;
  508. return false;
  509. }
  510. function getInstanceName(instance) {
  511. const name = getComponentTypeName(instance?.type || {});
  512. if (name) return name;
  513. if (instance?.root === instance) return "Root";
  514. for (const key in instance.parent?.type?.components) if (instance.parent.type.components[key] === instance?.type) return saveComponentGussedName(instance, key);
  515. for (const key in instance.appContext?.components) if (instance.appContext.components[key] === instance?.type) return saveComponentGussedName(instance, key);
  516. const fileName = getComponentFileName(instance?.type || {});
  517. if (fileName) return fileName;
  518. return "Anonymous Component";
  519. }
  520. function getUniqueComponentId(instance) {
  521. return `${instance?.appContext?.app?.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__ ?? 0}:${instance === instance?.root ? "root" : instance.uid}`;
  522. }
  523. function getComponentInstance(appRecord, instanceId) {
  524. instanceId = instanceId || `${appRecord.id}:root`;
  525. return appRecord.instanceMap.get(instanceId) || appRecord.instanceMap.get(":root");
  526. }
  527. function createRect() {
  528. const rect = {
  529. top: 0,
  530. bottom: 0,
  531. left: 0,
  532. right: 0,
  533. get width() {
  534. return rect.right - rect.left;
  535. },
  536. get height() {
  537. return rect.bottom - rect.top;
  538. }
  539. };
  540. return rect;
  541. }
  542. var range;
  543. function getTextRect(node) {
  544. if (!range) range = document.createRange();
  545. range.selectNode(node);
  546. return range.getBoundingClientRect();
  547. }
  548. function getFragmentRect(vnode) {
  549. const rect = createRect();
  550. if (!vnode.children) return rect;
  551. for (let i = 0, l = vnode.children.length; i < l; i++) {
  552. const childVnode = vnode.children[i];
  553. let childRect;
  554. if (childVnode.component) childRect = getComponentBoundingRect(childVnode.component);
  555. else if (childVnode.el) {
  556. const el = childVnode.el;
  557. if (el.nodeType === 1 || el.getBoundingClientRect) childRect = el.getBoundingClientRect();
  558. else if (el.nodeType === 3 && el.data.trim()) childRect = getTextRect(el);
  559. }
  560. if (childRect) mergeRects(rect, childRect);
  561. }
  562. return rect;
  563. }
  564. function mergeRects(a, b) {
  565. if (!a.top || b.top < a.top) a.top = b.top;
  566. if (!a.bottom || b.bottom > a.bottom) a.bottom = b.bottom;
  567. if (!a.left || b.left < a.left) a.left = b.left;
  568. if (!a.right || b.right > a.right) a.right = b.right;
  569. return a;
  570. }
  571. var DEFAULT_RECT = {
  572. top: 0,
  573. left: 0,
  574. right: 0,
  575. bottom: 0,
  576. width: 0,
  577. height: 0
  578. };
  579. function getComponentBoundingRect(instance) {
  580. const el = instance.subTree.el;
  581. if (typeof window === "undefined") return DEFAULT_RECT;
  582. if (isFragment(instance)) return getFragmentRect(instance.subTree);
  583. else if (el?.nodeType === 1) return el?.getBoundingClientRect();
  584. else if (instance.subTree.component) return getComponentBoundingRect(instance.subTree.component);
  585. else return DEFAULT_RECT;
  586. }
  587. function getRootElementsFromComponentInstance(instance) {
  588. if (isFragment(instance)) return getFragmentRootElements(instance.subTree);
  589. if (!instance.subTree) return [];
  590. return [instance.subTree.el];
  591. }
  592. function getFragmentRootElements(vnode) {
  593. if (!vnode.children) return [];
  594. const list = [];
  595. vnode.children.forEach((childVnode) => {
  596. if (childVnode.component) list.push(...getRootElementsFromComponentInstance(childVnode.component));
  597. else if (childVnode?.el) list.push(childVnode.el);
  598. });
  599. return list;
  600. }
  601. var CONTAINER_ELEMENT_ID = "__vue-devtools-component-inspector__";
  602. var CARD_ELEMENT_ID = "__vue-devtools-component-inspector__card__";
  603. var COMPONENT_NAME_ELEMENT_ID = "__vue-devtools-component-inspector__name__";
  604. var INDICATOR_ELEMENT_ID = "__vue-devtools-component-inspector__indicator__";
  605. var containerStyles = {
  606. display: "block",
  607. zIndex: 2147483640,
  608. position: "fixed",
  609. backgroundColor: "#42b88325",
  610. border: "1px solid #42b88350",
  611. borderRadius: "5px",
  612. transition: "all 0.1s ease-in",
  613. pointerEvents: "none"
  614. };
  615. var cardStyles = {
  616. fontFamily: "Arial, Helvetica, sans-serif",
  617. padding: "5px 8px",
  618. borderRadius: "4px",
  619. textAlign: "left",
  620. position: "absolute",
  621. left: 0,
  622. color: "#e9e9e9",
  623. fontSize: "14px",
  624. fontWeight: 600,
  625. lineHeight: "24px",
  626. backgroundColor: "#42b883",
  627. boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)"
  628. };
  629. var indicatorStyles = {
  630. display: "inline-block",
  631. fontWeight: 400,
  632. fontStyle: "normal",
  633. fontSize: "12px",
  634. opacity: 0.7
  635. };
  636. function getContainerElement() {
  637. return document.getElementById(CONTAINER_ELEMENT_ID);
  638. }
  639. function getCardElement() {
  640. return document.getElementById(CARD_ELEMENT_ID);
  641. }
  642. function getIndicatorElement() {
  643. return document.getElementById(INDICATOR_ELEMENT_ID);
  644. }
  645. function getNameElement() {
  646. return document.getElementById(COMPONENT_NAME_ELEMENT_ID);
  647. }
  648. function getStyles(bounds) {
  649. return {
  650. left: `${Math.round(bounds.left * 100) / 100}px`,
  651. top: `${Math.round(bounds.top * 100) / 100}px`,
  652. width: `${Math.round(bounds.width * 100) / 100}px`,
  653. height: `${Math.round(bounds.height * 100) / 100}px`
  654. };
  655. }
  656. function create(options) {
  657. const containerEl = document.createElement("div");
  658. containerEl.id = options.elementId ?? CONTAINER_ELEMENT_ID;
  659. Object.assign(containerEl.style, {
  660. ...containerStyles,
  661. ...getStyles(options.bounds),
  662. ...options.style
  663. });
  664. const cardEl = document.createElement("span");
  665. cardEl.id = CARD_ELEMENT_ID;
  666. Object.assign(cardEl.style, {
  667. ...cardStyles,
  668. top: options.bounds.top < 35 ? 0 : "-35px"
  669. });
  670. const nameEl = document.createElement("span");
  671. nameEl.id = COMPONENT_NAME_ELEMENT_ID;
  672. nameEl.innerHTML = `&lt;${options.name}&gt;&nbsp;&nbsp;`;
  673. const indicatorEl = document.createElement("i");
  674. indicatorEl.id = INDICATOR_ELEMENT_ID;
  675. indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`;
  676. Object.assign(indicatorEl.style, indicatorStyles);
  677. cardEl.appendChild(nameEl);
  678. cardEl.appendChild(indicatorEl);
  679. containerEl.appendChild(cardEl);
  680. document.body.appendChild(containerEl);
  681. return containerEl;
  682. }
  683. function update(options) {
  684. const containerEl = getContainerElement();
  685. const cardEl = getCardElement();
  686. const nameEl = getNameElement();
  687. const indicatorEl = getIndicatorElement();
  688. if (containerEl) {
  689. Object.assign(containerEl.style, {
  690. ...containerStyles,
  691. ...getStyles(options.bounds)
  692. });
  693. Object.assign(cardEl.style, { top: options.bounds.top < 35 ? 0 : "-35px" });
  694. nameEl.innerHTML = `&lt;${options.name}&gt;&nbsp;&nbsp;`;
  695. indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`;
  696. }
  697. }
  698. function highlight(instance) {
  699. const bounds = getComponentBoundingRect(instance);
  700. if (!bounds.width && !bounds.height) return;
  701. const name = getInstanceName(instance);
  702. getContainerElement() ? update({
  703. bounds,
  704. name
  705. }) : create({
  706. bounds,
  707. name
  708. });
  709. }
  710. function unhighlight() {
  711. const el = getContainerElement();
  712. if (el) el.style.display = "none";
  713. }
  714. var inspectInstance = null;
  715. function inspectFn(e) {
  716. const target$1 = e.target;
  717. if (target$1) {
  718. const instance = target$1.__vueParentComponent;
  719. if (instance) {
  720. inspectInstance = instance;
  721. if (instance.vnode.el) {
  722. const bounds = getComponentBoundingRect(instance);
  723. const name = getInstanceName(instance);
  724. getContainerElement() ? update({
  725. bounds,
  726. name
  727. }) : create({
  728. bounds,
  729. name
  730. });
  731. }
  732. }
  733. }
  734. }
  735. function selectComponentFn(e, cb) {
  736. e.preventDefault();
  737. e.stopPropagation();
  738. if (inspectInstance) cb(getUniqueComponentId(inspectInstance));
  739. }
  740. var inspectComponentHighLighterSelectFn = null;
  741. function cancelInspectComponentHighLighter() {
  742. unhighlight();
  743. window.removeEventListener("mouseover", inspectFn);
  744. window.removeEventListener("click", inspectComponentHighLighterSelectFn, true);
  745. inspectComponentHighLighterSelectFn = null;
  746. }
  747. function inspectComponentHighLighter() {
  748. window.addEventListener("mouseover", inspectFn);
  749. return new Promise((resolve) => {
  750. function onSelect(e) {
  751. e.preventDefault();
  752. e.stopPropagation();
  753. selectComponentFn(e, (id) => {
  754. window.removeEventListener("click", onSelect, true);
  755. inspectComponentHighLighterSelectFn = null;
  756. window.removeEventListener("mouseover", inspectFn);
  757. const el = getContainerElement();
  758. if (el) el.style.display = "none";
  759. resolve(JSON.stringify({ id }));
  760. });
  761. }
  762. inspectComponentHighLighterSelectFn = onSelect;
  763. window.addEventListener("click", onSelect, true);
  764. });
  765. }
  766. function scrollToComponent(options) {
  767. const instance = getComponentInstance(activeAppRecord.value, options.id);
  768. if (instance) {
  769. const [el] = getRootElementsFromComponentInstance(instance);
  770. if (typeof el.scrollIntoView === "function") el.scrollIntoView({ behavior: "smooth" });
  771. else {
  772. const bounds = getComponentBoundingRect(instance);
  773. const scrollTarget = document.createElement("div");
  774. const styles = {
  775. ...getStyles(bounds),
  776. position: "absolute"
  777. };
  778. Object.assign(scrollTarget.style, styles);
  779. document.body.appendChild(scrollTarget);
  780. scrollTarget.scrollIntoView({ behavior: "smooth" });
  781. setTimeout(() => {
  782. document.body.removeChild(scrollTarget);
  783. }, 2e3);
  784. }
  785. setTimeout(() => {
  786. const bounds = getComponentBoundingRect(instance);
  787. if (bounds.width || bounds.height) {
  788. const name = getInstanceName(instance);
  789. const el$1 = getContainerElement();
  790. el$1 ? update({
  791. ...options,
  792. name,
  793. bounds
  794. }) : create({
  795. ...options,
  796. name,
  797. bounds
  798. });
  799. setTimeout(() => {
  800. if (el$1) el$1.style.display = "none";
  801. }, 1500);
  802. }
  803. }, 1200);
  804. }
  805. }
  806. target.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__ ??= true;
  807. function waitForInspectorInit(cb) {
  808. let total = 0;
  809. const timer = setInterval(() => {
  810. if (target.__VUE_INSPECTOR__) {
  811. clearInterval(timer);
  812. total += 30;
  813. cb();
  814. }
  815. if (total >= 5e3) clearInterval(timer);
  816. }, 30);
  817. }
  818. function setupInspector() {
  819. const inspector = target.__VUE_INSPECTOR__;
  820. const _openInEditor = inspector.openInEditor;
  821. inspector.openInEditor = async (...params) => {
  822. inspector.disable();
  823. _openInEditor(...params);
  824. };
  825. }
  826. function getComponentInspector() {
  827. return new Promise((resolve) => {
  828. function setup() {
  829. setupInspector();
  830. resolve(target.__VUE_INSPECTOR__);
  831. }
  832. if (!target.__VUE_INSPECTOR__) waitForInspectorInit(() => {
  833. setup();
  834. });
  835. else setup();
  836. });
  837. }
  838. var ReactiveFlags = (function(ReactiveFlags$1) {
  839. ReactiveFlags$1["SKIP"] = "__v_skip";
  840. ReactiveFlags$1["IS_REACTIVE"] = "__v_isReactive";
  841. ReactiveFlags$1["IS_READONLY"] = "__v_isReadonly";
  842. ReactiveFlags$1["IS_SHALLOW"] = "__v_isShallow";
  843. ReactiveFlags$1["RAW"] = "__v_raw";
  844. return ReactiveFlags$1;
  845. })({});
  846. function isReadonly(value) {
  847. return !!(value && value[ReactiveFlags.IS_READONLY]);
  848. }
  849. function isReactive$1(value) {
  850. if (isReadonly(value)) return isReactive$1(value[ReactiveFlags.RAW]);
  851. return !!(value && value[ReactiveFlags.IS_REACTIVE]);
  852. }
  853. function isRef$1(r) {
  854. return !!(r && r.__v_isRef === true);
  855. }
  856. function toRaw$1(observed) {
  857. const raw = observed && observed[ReactiveFlags.RAW];
  858. return raw ? toRaw$1(raw) : observed;
  859. }
  860. var Fragment = Symbol.for("v-fgt");
  861. var StateEditor = class {
  862. constructor() {
  863. this.refEditor = new RefStateEditor();
  864. }
  865. set(object, path, value, cb) {
  866. const sections = Array.isArray(path) ? path : path.split(".");
  867. while (sections.length > 1) {
  868. const section = sections.shift();
  869. if (object instanceof Map) object = object.get(section);
  870. else if (object instanceof Set) object = Array.from(object.values())[section];
  871. else object = object[section];
  872. if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
  873. }
  874. const field = sections[0];
  875. const item = this.refEditor.get(object)[field];
  876. if (cb) cb(object, field, value);
  877. else if (this.refEditor.isRef(item)) this.refEditor.set(item, value);
  878. else object[field] = value;
  879. }
  880. get(object, path) {
  881. const sections = Array.isArray(path) ? path : path.split(".");
  882. for (let i = 0; i < sections.length; i++) {
  883. if (object instanceof Map) object = object.get(sections[i]);
  884. else object = object[sections[i]];
  885. if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
  886. if (!object) return void 0;
  887. }
  888. return object;
  889. }
  890. has(object, path, parent = false) {
  891. if (typeof object === "undefined") return false;
  892. const sections = Array.isArray(path) ? path.slice() : path.split(".");
  893. const size = !parent ? 1 : 2;
  894. while (object && sections.length > size) {
  895. const section = sections.shift();
  896. object = object[section];
  897. if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
  898. }
  899. return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]);
  900. }
  901. createDefaultSetCallback(state) {
  902. return (object, field, value) => {
  903. if (state.remove || state.newKey) if (Array.isArray(object)) object.splice(field, 1);
  904. else if (toRaw$1(object) instanceof Map) object.delete(field);
  905. else if (toRaw$1(object) instanceof Set) object.delete(Array.from(object.values())[field]);
  906. else Reflect.deleteProperty(object, field);
  907. if (!state.remove) {
  908. const target$1 = object[state.newKey || field];
  909. if (this.refEditor.isRef(target$1)) this.refEditor.set(target$1, value);
  910. else if (toRaw$1(object) instanceof Map) object.set(state.newKey || field, value);
  911. else if (toRaw$1(object) instanceof Set) object.add(value);
  912. else object[state.newKey || field] = value;
  913. }
  914. };
  915. }
  916. };
  917. var RefStateEditor = class {
  918. set(ref, value) {
  919. if (isRef$1(ref)) ref.value = value;
  920. else {
  921. if (ref instanceof Set && Array.isArray(value)) {
  922. ref.clear();
  923. value.forEach((v) => ref.add(v));
  924. return;
  925. }
  926. const currentKeys = Object.keys(value);
  927. if (ref instanceof Map) {
  928. const previousKeysSet$1 = new Set(ref.keys());
  929. currentKeys.forEach((key) => {
  930. ref.set(key, Reflect.get(value, key));
  931. previousKeysSet$1.delete(key);
  932. });
  933. previousKeysSet$1.forEach((key) => ref.delete(key));
  934. return;
  935. }
  936. const previousKeysSet = new Set(Object.keys(ref));
  937. currentKeys.forEach((key) => {
  938. Reflect.set(ref, key, Reflect.get(value, key));
  939. previousKeysSet.delete(key);
  940. });
  941. previousKeysSet.forEach((key) => Reflect.deleteProperty(ref, key));
  942. }
  943. }
  944. get(ref) {
  945. return isRef$1(ref) ? ref.value : ref;
  946. }
  947. isRef(ref) {
  948. return isRef$1(ref) || isReactive$1(ref);
  949. }
  950. };
  951. var stateEditor = new StateEditor();
  952. var TIMELINE_LAYERS_STATE_STORAGE_ID = "__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__";
  953. function getTimelineLayersStateFromStorage() {
  954. if (typeof window === "undefined" || !isBrowser || typeof localStorage === "undefined" || localStorage === null) return {
  955. recordingState: false,
  956. mouseEventEnabled: false,
  957. keyboardEventEnabled: false,
  958. componentEventEnabled: false,
  959. performanceEventEnabled: false,
  960. selected: ""
  961. };
  962. const state = typeof localStorage.getItem !== "undefined" ? localStorage.getItem(TIMELINE_LAYERS_STATE_STORAGE_ID) : null;
  963. return state ? JSON.parse(state) : {
  964. recordingState: false,
  965. mouseEventEnabled: false,
  966. keyboardEventEnabled: false,
  967. componentEventEnabled: false,
  968. performanceEventEnabled: false,
  969. selected: ""
  970. };
  971. }
  972. target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS ??= [];
  973. var devtoolsTimelineLayers = new Proxy(target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS, { get(target$1, prop, receiver) {
  974. return Reflect.get(target$1, prop, receiver);
  975. } });
  976. function addTimelineLayer(options, descriptor) {
  977. devtoolsState.timelineLayersState[descriptor.id] = false;
  978. devtoolsTimelineLayers.push({
  979. ...options,
  980. descriptorId: descriptor.id,
  981. appRecord: getAppRecord(descriptor.app)
  982. });
  983. }
  984. target.__VUE_DEVTOOLS_KIT_INSPECTOR__ ??= [];
  985. var devtoolsInspector = new Proxy(target.__VUE_DEVTOOLS_KIT_INSPECTOR__, { get(target$1, prop, receiver) {
  986. return Reflect.get(target$1, prop, receiver);
  987. } });
  988. var callInspectorUpdatedHook = debounce(() => {
  989. devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT, getActiveInspectors());
  990. });
  991. function addInspector(inspector, descriptor) {
  992. devtoolsInspector.push({
  993. options: inspector,
  994. descriptor,
  995. treeFilterPlaceholder: inspector.treeFilterPlaceholder ?? "Search tree...",
  996. stateFilterPlaceholder: inspector.stateFilterPlaceholder ?? "Search state...",
  997. treeFilter: "",
  998. selectedNodeId: "",
  999. appRecord: getAppRecord(descriptor.app)
  1000. });
  1001. callInspectorUpdatedHook();
  1002. }
  1003. function getActiveInspectors() {
  1004. return devtoolsInspector.filter((inspector) => inspector.descriptor.app === activeAppRecord.value.app).filter((inspector) => inspector.descriptor.id !== "components").map((inspector) => {
  1005. const descriptor = inspector.descriptor;
  1006. const options = inspector.options;
  1007. return {
  1008. id: options.id,
  1009. label: options.label,
  1010. logo: descriptor.logo,
  1011. icon: `custom-ic-baseline-${options?.icon?.replace(/_/g, "-")}`,
  1012. packageName: descriptor.packageName,
  1013. homepage: descriptor.homepage,
  1014. pluginId: descriptor.id
  1015. };
  1016. });
  1017. }
  1018. function getInspector(id, app) {
  1019. return devtoolsInspector.find((inspector) => inspector.options.id === id && (app ? inspector.descriptor.app === app : true));
  1020. }
  1021. var DevToolsV6PluginAPIHookKeys = (function(DevToolsV6PluginAPIHookKeys$1) {
  1022. DevToolsV6PluginAPIHookKeys$1["VISIT_COMPONENT_TREE"] = "visitComponentTree";
  1023. DevToolsV6PluginAPIHookKeys$1["INSPECT_COMPONENT"] = "inspectComponent";
  1024. DevToolsV6PluginAPIHookKeys$1["EDIT_COMPONENT_STATE"] = "editComponentState";
  1025. DevToolsV6PluginAPIHookKeys$1["GET_INSPECTOR_TREE"] = "getInspectorTree";
  1026. DevToolsV6PluginAPIHookKeys$1["GET_INSPECTOR_STATE"] = "getInspectorState";
  1027. DevToolsV6PluginAPIHookKeys$1["EDIT_INSPECTOR_STATE"] = "editInspectorState";
  1028. DevToolsV6PluginAPIHookKeys$1["INSPECT_TIMELINE_EVENT"] = "inspectTimelineEvent";
  1029. DevToolsV6PluginAPIHookKeys$1["TIMELINE_CLEARED"] = "timelineCleared";
  1030. DevToolsV6PluginAPIHookKeys$1["SET_PLUGIN_SETTINGS"] = "setPluginSettings";
  1031. return DevToolsV6PluginAPIHookKeys$1;
  1032. })({});
  1033. var DevToolsContextHookKeys = (function(DevToolsContextHookKeys$1) {
  1034. DevToolsContextHookKeys$1["ADD_INSPECTOR"] = "addInspector";
  1035. DevToolsContextHookKeys$1["SEND_INSPECTOR_TREE"] = "sendInspectorTree";
  1036. DevToolsContextHookKeys$1["SEND_INSPECTOR_STATE"] = "sendInspectorState";
  1037. DevToolsContextHookKeys$1["CUSTOM_INSPECTOR_SELECT_NODE"] = "customInspectorSelectNode";
  1038. DevToolsContextHookKeys$1["TIMELINE_LAYER_ADDED"] = "timelineLayerAdded";
  1039. DevToolsContextHookKeys$1["TIMELINE_EVENT_ADDED"] = "timelineEventAdded";
  1040. DevToolsContextHookKeys$1["GET_COMPONENT_INSTANCES"] = "getComponentInstances";
  1041. DevToolsContextHookKeys$1["GET_COMPONENT_BOUNDS"] = "getComponentBounds";
  1042. DevToolsContextHookKeys$1["GET_COMPONENT_NAME"] = "getComponentName";
  1043. DevToolsContextHookKeys$1["COMPONENT_HIGHLIGHT"] = "componentHighlight";
  1044. DevToolsContextHookKeys$1["COMPONENT_UNHIGHLIGHT"] = "componentUnhighlight";
  1045. return DevToolsContextHookKeys$1;
  1046. })({});
  1047. var DevToolsMessagingHookKeys = (function(DevToolsMessagingHookKeys$1) {
  1048. DevToolsMessagingHookKeys$1["SEND_INSPECTOR_TREE_TO_CLIENT"] = "sendInspectorTreeToClient";
  1049. DevToolsMessagingHookKeys$1["SEND_INSPECTOR_STATE_TO_CLIENT"] = "sendInspectorStateToClient";
  1050. DevToolsMessagingHookKeys$1["SEND_TIMELINE_EVENT_TO_CLIENT"] = "sendTimelineEventToClient";
  1051. DevToolsMessagingHookKeys$1["SEND_INSPECTOR_TO_CLIENT"] = "sendInspectorToClient";
  1052. DevToolsMessagingHookKeys$1["SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT"] = "sendActiveAppUpdatedToClient";
  1053. DevToolsMessagingHookKeys$1["DEVTOOLS_STATE_UPDATED"] = "devtoolsStateUpdated";
  1054. DevToolsMessagingHookKeys$1["DEVTOOLS_CONNECTED_UPDATED"] = "devtoolsConnectedUpdated";
  1055. DevToolsMessagingHookKeys$1["ROUTER_INFO_UPDATED"] = "routerInfoUpdated";
  1056. return DevToolsMessagingHookKeys$1;
  1057. })({});
  1058. function createDevToolsCtxHooks() {
  1059. const hooks$1 = createHooks();
  1060. hooks$1.hook(DevToolsContextHookKeys.ADD_INSPECTOR, ({ inspector, plugin }) => {
  1061. addInspector(inspector, plugin.descriptor);
  1062. });
  1063. const debounceSendInspectorTree = debounce(async ({ inspectorId, plugin }) => {
  1064. if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return;
  1065. const inspector = getInspector(inspectorId, plugin.descriptor.app);
  1066. const _payload = {
  1067. app: plugin.descriptor.app,
  1068. inspectorId,
  1069. filter: inspector?.treeFilter || "",
  1070. rootNodes: []
  1071. };
  1072. await new Promise((resolve) => {
  1073. hooks$1.callHookWith(async (callbacks) => {
  1074. await Promise.all(callbacks.map((cb) => cb(_payload)));
  1075. resolve();
  1076. }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE);
  1077. });
  1078. hooks$1.callHookWith(async (callbacks) => {
  1079. await Promise.all(callbacks.map((cb) => cb({
  1080. inspectorId,
  1081. rootNodes: _payload.rootNodes
  1082. })));
  1083. }, DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT);
  1084. }, 120);
  1085. hooks$1.hook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, debounceSendInspectorTree);
  1086. const debounceSendInspectorState = debounce(async ({ inspectorId, plugin }) => {
  1087. if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return;
  1088. const inspector = getInspector(inspectorId, plugin.descriptor.app);
  1089. const _payload = {
  1090. app: plugin.descriptor.app,
  1091. inspectorId,
  1092. nodeId: inspector?.selectedNodeId || "",
  1093. state: null
  1094. };
  1095. const ctx = { currentTab: `custom-inspector:${inspectorId}` };
  1096. if (_payload.nodeId) await new Promise((resolve) => {
  1097. hooks$1.callHookWith(async (callbacks) => {
  1098. await Promise.all(callbacks.map((cb) => cb(_payload, ctx)));
  1099. resolve();
  1100. }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE);
  1101. });
  1102. hooks$1.callHookWith(async (callbacks) => {
  1103. await Promise.all(callbacks.map((cb) => cb({
  1104. inspectorId,
  1105. nodeId: _payload.nodeId,
  1106. state: _payload.state
  1107. })));
  1108. }, DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT);
  1109. }, 120);
  1110. hooks$1.hook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, debounceSendInspectorState);
  1111. hooks$1.hook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, ({ inspectorId, nodeId, plugin }) => {
  1112. const inspector = getInspector(inspectorId, plugin.descriptor.app);
  1113. if (!inspector) return;
  1114. inspector.selectedNodeId = nodeId;
  1115. });
  1116. hooks$1.hook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, ({ options, plugin }) => {
  1117. addTimelineLayer(options, plugin.descriptor);
  1118. });
  1119. hooks$1.hook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, ({ options, plugin }) => {
  1120. if (devtoolsState.highPerfModeEnabled || !devtoolsState.timelineLayersState?.[plugin.descriptor.id] && ![
  1121. "performance",
  1122. "component-event",
  1123. "keyboard",
  1124. "mouse"
  1125. ].includes(options.layerId)) return;
  1126. hooks$1.callHookWith(async (callbacks) => {
  1127. await Promise.all(callbacks.map((cb) => cb(options)));
  1128. }, DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT);
  1129. });
  1130. hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, async ({ app }) => {
  1131. const appRecord = app.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
  1132. if (!appRecord) return null;
  1133. const appId = appRecord.id.toString();
  1134. return [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance);
  1135. });
  1136. hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, async ({ instance }) => {
  1137. return getComponentBoundingRect(instance);
  1138. });
  1139. hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_NAME, ({ instance }) => {
  1140. return getInstanceName(instance);
  1141. });
  1142. hooks$1.hook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, ({ uid }) => {
  1143. const instance = activeAppRecord.value.instanceMap.get(uid);
  1144. if (instance) highlight(instance);
  1145. });
  1146. hooks$1.hook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT, () => {
  1147. unhighlight();
  1148. });
  1149. return hooks$1;
  1150. }
  1151. target.__VUE_DEVTOOLS_KIT_APP_RECORDS__ ??= [];
  1152. target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ ??= {};
  1153. target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ ??= "";
  1154. target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__ ??= [];
  1155. target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ ??= [];
  1156. var STATE_KEY = "__VUE_DEVTOOLS_KIT_GLOBAL_STATE__";
  1157. function initStateFactory() {
  1158. return {
  1159. connected: false,
  1160. clientConnected: false,
  1161. vitePluginDetected: true,
  1162. appRecords: [],
  1163. activeAppRecordId: "",
  1164. tabs: [],
  1165. commands: [],
  1166. highPerfModeEnabled: true,
  1167. devtoolsClientDetected: {},
  1168. perfUniqueGroupId: 0,
  1169. timelineLayersState: getTimelineLayersStateFromStorage()
  1170. };
  1171. }
  1172. target[STATE_KEY] ??= initStateFactory();
  1173. var callStateUpdatedHook = debounce((state) => {
  1174. devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED, { state });
  1175. });
  1176. var callConnectedUpdatedHook = debounce((state, oldState) => {
  1177. devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, {
  1178. state,
  1179. oldState
  1180. });
  1181. });
  1182. var devtoolsAppRecords = new Proxy(target.__VUE_DEVTOOLS_KIT_APP_RECORDS__, { get(_target, prop, receiver) {
  1183. if (prop === "value") return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__;
  1184. return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__[prop];
  1185. } });
  1186. var activeAppRecord = new Proxy(target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__, { get(_target, prop, receiver) {
  1187. if (prop === "value") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__;
  1188. else if (prop === "id") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__;
  1189. return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[prop];
  1190. } });
  1191. function updateAllStates() {
  1192. callStateUpdatedHook({
  1193. ...target[STATE_KEY],
  1194. appRecords: devtoolsAppRecords.value,
  1195. activeAppRecordId: activeAppRecord.id,
  1196. tabs: target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__,
  1197. commands: target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__
  1198. });
  1199. }
  1200. function setActiveAppRecord(app) {
  1201. target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ = app;
  1202. updateAllStates();
  1203. }
  1204. function setActiveAppRecordId(id) {
  1205. target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ = id;
  1206. updateAllStates();
  1207. }
  1208. var devtoolsState = new Proxy(target[STATE_KEY], {
  1209. get(target$1, property) {
  1210. if (property === "appRecords") return devtoolsAppRecords;
  1211. else if (property === "activeAppRecordId") return activeAppRecord.id;
  1212. else if (property === "tabs") return target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__;
  1213. else if (property === "commands") return target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__;
  1214. return target[STATE_KEY][property];
  1215. },
  1216. deleteProperty(target$1, property) {
  1217. delete target$1[property];
  1218. return true;
  1219. },
  1220. set(target$1, property, value) {
  1221. ({ ...target[STATE_KEY] });
  1222. target$1[property] = value;
  1223. target[STATE_KEY][property] = value;
  1224. return true;
  1225. }
  1226. });
  1227. function onDevToolsConnected(fn) {
  1228. return new Promise((resolve) => {
  1229. if (devtoolsState.connected) {
  1230. fn();
  1231. resolve();
  1232. }
  1233. devtoolsContext.hooks.hook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, ({ state }) => {
  1234. if (state.connected) {
  1235. fn();
  1236. resolve();
  1237. }
  1238. });
  1239. });
  1240. }
  1241. var resolveIcon = (icon) => {
  1242. if (!icon) return;
  1243. if (icon.startsWith("baseline-")) return `custom-ic-${icon}`;
  1244. if (icon.startsWith("i-") || isUrlString(icon)) return icon;
  1245. return `custom-ic-baseline-${icon}`;
  1246. };
  1247. function addCustomTab(tab) {
  1248. const tabs = target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__;
  1249. if (tabs.some((t) => t.name === tab.name)) return;
  1250. tabs.push({
  1251. ...tab,
  1252. icon: resolveIcon(tab.icon)
  1253. });
  1254. updateAllStates();
  1255. }
  1256. function addCustomCommand(action) {
  1257. const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__;
  1258. if (commands.some((t) => t.id === action.id)) return;
  1259. commands.push({
  1260. ...action,
  1261. icon: resolveIcon(action.icon),
  1262. children: action.children ? action.children.map((child) => ({
  1263. ...child,
  1264. icon: resolveIcon(child.icon)
  1265. })) : void 0
  1266. });
  1267. updateAllStates();
  1268. }
  1269. function removeCustomCommand(actionId) {
  1270. const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__;
  1271. const index = commands.findIndex((t) => t.id === actionId);
  1272. if (index === -1) return;
  1273. commands.splice(index, 1);
  1274. updateAllStates();
  1275. }
  1276. function openInEditor(options = {}) {
  1277. const { file, host, baseUrl = window.location.origin, line = 0, column = 0 } = options;
  1278. if (file) {
  1279. if (host === "chrome-extension") {
  1280. const fileName = file.replace(/\\/g, "\\\\");
  1281. const _baseUrl = window.VUE_DEVTOOLS_CONFIG?.openInEditorHost ?? "/";
  1282. fetch(`${_baseUrl}__open-in-editor?file=${encodeURI(file)}`).then((response) => {
  1283. if (!response.ok) {
  1284. const msg = `Opening component ${fileName} failed`;
  1285. console.log(`%c${msg}`, "color:red");
  1286. }
  1287. });
  1288. } else if (devtoolsState.vitePluginDetected) {
  1289. const _baseUrl = target.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__ ?? baseUrl;
  1290. target.__VUE_INSPECTOR__.openInEditor(_baseUrl, file, line, column);
  1291. }
  1292. }
  1293. }
  1294. target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__ ??= [];
  1295. var devtoolsPluginBuffer = new Proxy(target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__, { get(target$1, prop, receiver) {
  1296. return Reflect.get(target$1, prop, receiver);
  1297. } });
  1298. function _getSettings(settings) {
  1299. const _settings = {};
  1300. Object.keys(settings).forEach((key) => {
  1301. _settings[key] = settings[key].defaultValue;
  1302. });
  1303. return _settings;
  1304. }
  1305. function getPluginLocalKey(pluginId) {
  1306. return `__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${pluginId}__`;
  1307. }
  1308. function getPluginSettingsOptions(pluginId) {
  1309. return (devtoolsPluginBuffer.find((item) => item[0].id === pluginId && !!item[0]?.settings)?.[0] ?? null)?.settings ?? null;
  1310. }
  1311. function getPluginSettings(pluginId, fallbackValue) {
  1312. const localKey = getPluginLocalKey(pluginId);
  1313. if (localKey) {
  1314. const localSettings = localStorage.getItem(localKey);
  1315. if (localSettings) return JSON.parse(localSettings);
  1316. }
  1317. if (pluginId) return _getSettings((devtoolsPluginBuffer.find((item) => item[0].id === pluginId)?.[0] ?? null)?.settings ?? {});
  1318. return _getSettings(fallbackValue);
  1319. }
  1320. function initPluginSettings(pluginId, settings) {
  1321. const localKey = getPluginLocalKey(pluginId);
  1322. if (!localStorage.getItem(localKey)) localStorage.setItem(localKey, JSON.stringify(_getSettings(settings)));
  1323. }
  1324. function setPluginSettings(pluginId, key, value) {
  1325. const localKey = getPluginLocalKey(pluginId);
  1326. const localSettings = localStorage.getItem(localKey);
  1327. const parsedLocalSettings = JSON.parse(localSettings || "{}");
  1328. const updated = {
  1329. ...parsedLocalSettings,
  1330. [key]: value
  1331. };
  1332. localStorage.setItem(localKey, JSON.stringify(updated));
  1333. devtoolsContext.hooks.callHookWith((callbacks) => {
  1334. callbacks.forEach((cb) => cb({
  1335. pluginId,
  1336. key,
  1337. oldValue: parsedLocalSettings[key],
  1338. newValue: value,
  1339. settings: updated
  1340. }));
  1341. }, DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS);
  1342. }
  1343. var DevToolsHooks = (function(DevToolsHooks$1) {
  1344. DevToolsHooks$1["APP_INIT"] = "app:init";
  1345. DevToolsHooks$1["APP_UNMOUNT"] = "app:unmount";
  1346. DevToolsHooks$1["COMPONENT_UPDATED"] = "component:updated";
  1347. DevToolsHooks$1["COMPONENT_ADDED"] = "component:added";
  1348. DevToolsHooks$1["COMPONENT_REMOVED"] = "component:removed";
  1349. DevToolsHooks$1["COMPONENT_EMIT"] = "component:emit";
  1350. DevToolsHooks$1["PERFORMANCE_START"] = "perf:start";
  1351. DevToolsHooks$1["PERFORMANCE_END"] = "perf:end";
  1352. DevToolsHooks$1["ADD_ROUTE"] = "router:add-route";
  1353. DevToolsHooks$1["REMOVE_ROUTE"] = "router:remove-route";
  1354. DevToolsHooks$1["RENDER_TRACKED"] = "render:tracked";
  1355. DevToolsHooks$1["RENDER_TRIGGERED"] = "render:triggered";
  1356. DevToolsHooks$1["APP_CONNECTED"] = "app:connected";
  1357. DevToolsHooks$1["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup";
  1358. return DevToolsHooks$1;
  1359. })({});
  1360. var devtoolsHooks = target.__VUE_DEVTOOLS_HOOK ??= createHooks();
  1361. var on = {
  1362. vueAppInit(fn) {
  1363. devtoolsHooks.hook(DevToolsHooks.APP_INIT, fn);
  1364. },
  1365. vueAppUnmount(fn) {
  1366. devtoolsHooks.hook(DevToolsHooks.APP_UNMOUNT, fn);
  1367. },
  1368. vueAppConnected(fn) {
  1369. devtoolsHooks.hook(DevToolsHooks.APP_CONNECTED, fn);
  1370. },
  1371. componentAdded(fn) {
  1372. return devtoolsHooks.hook(DevToolsHooks.COMPONENT_ADDED, fn);
  1373. },
  1374. componentEmit(fn) {
  1375. return devtoolsHooks.hook(DevToolsHooks.COMPONENT_EMIT, fn);
  1376. },
  1377. componentUpdated(fn) {
  1378. return devtoolsHooks.hook(DevToolsHooks.COMPONENT_UPDATED, fn);
  1379. },
  1380. componentRemoved(fn) {
  1381. return devtoolsHooks.hook(DevToolsHooks.COMPONENT_REMOVED, fn);
  1382. },
  1383. setupDevtoolsPlugin(fn) {
  1384. devtoolsHooks.hook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, fn);
  1385. },
  1386. perfStart(fn) {
  1387. return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_START, fn);
  1388. },
  1389. perfEnd(fn) {
  1390. return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_END, fn);
  1391. }
  1392. };
  1393. var hook = {
  1394. on,
  1395. setupDevToolsPlugin(pluginDescriptor, setupFn) {
  1396. return devtoolsHooks.callHook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, pluginDescriptor, setupFn);
  1397. }
  1398. };
  1399. var DevToolsV6PluginAPI = class {
  1400. constructor({ plugin, ctx }) {
  1401. this.hooks = ctx.hooks;
  1402. this.plugin = plugin;
  1403. }
  1404. get on() {
  1405. return {
  1406. visitComponentTree: (handler) => {
  1407. this.hooks.hook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, handler);
  1408. },
  1409. inspectComponent: (handler) => {
  1410. this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT, handler);
  1411. },
  1412. editComponentState: (handler) => {
  1413. this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE, handler);
  1414. },
  1415. getInspectorTree: (handler) => {
  1416. this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE, handler);
  1417. },
  1418. getInspectorState: (handler) => {
  1419. this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE, handler);
  1420. },
  1421. editInspectorState: (handler) => {
  1422. this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE, handler);
  1423. },
  1424. inspectTimelineEvent: (handler) => {
  1425. this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT, handler);
  1426. },
  1427. timelineCleared: (handler) => {
  1428. this.hooks.hook(DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED, handler);
  1429. },
  1430. setPluginSettings: (handler) => {
  1431. this.hooks.hook(DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS, handler);
  1432. }
  1433. };
  1434. }
  1435. notifyComponentUpdate(instance) {
  1436. if (devtoolsState.highPerfModeEnabled) return;
  1437. const inspector = getActiveInspectors().find((i) => i.packageName === this.plugin.descriptor.packageName);
  1438. if (inspector?.id) {
  1439. if (instance) {
  1440. const args = [
  1441. instance.appContext.app,
  1442. instance.uid,
  1443. instance.parent?.uid,
  1444. instance
  1445. ];
  1446. devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED, ...args);
  1447. } else devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED);
  1448. this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
  1449. inspectorId: inspector.id,
  1450. plugin: this.plugin
  1451. });
  1452. }
  1453. }
  1454. addInspector(options) {
  1455. this.hooks.callHook(DevToolsContextHookKeys.ADD_INSPECTOR, {
  1456. inspector: options,
  1457. plugin: this.plugin
  1458. });
  1459. if (this.plugin.descriptor.settings) initPluginSettings(options.id, this.plugin.descriptor.settings);
  1460. }
  1461. sendInspectorTree(inspectorId) {
  1462. if (devtoolsState.highPerfModeEnabled) return;
  1463. this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, {
  1464. inspectorId,
  1465. plugin: this.plugin
  1466. });
  1467. }
  1468. sendInspectorState(inspectorId) {
  1469. if (devtoolsState.highPerfModeEnabled) return;
  1470. this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
  1471. inspectorId,
  1472. plugin: this.plugin
  1473. });
  1474. }
  1475. selectInspectorNode(inspectorId, nodeId) {
  1476. this.hooks.callHook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, {
  1477. inspectorId,
  1478. nodeId,
  1479. plugin: this.plugin
  1480. });
  1481. }
  1482. visitComponentTree(payload) {
  1483. return this.hooks.callHook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, payload);
  1484. }
  1485. now() {
  1486. if (devtoolsState.highPerfModeEnabled) return 0;
  1487. return Date.now();
  1488. }
  1489. addTimelineLayer(options) {
  1490. this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, {
  1491. options,
  1492. plugin: this.plugin
  1493. });
  1494. }
  1495. addTimelineEvent(options) {
  1496. if (devtoolsState.highPerfModeEnabled) return;
  1497. this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, {
  1498. options,
  1499. plugin: this.plugin
  1500. });
  1501. }
  1502. getSettings(pluginId) {
  1503. return getPluginSettings(pluginId ?? this.plugin.descriptor.id, this.plugin.descriptor.settings);
  1504. }
  1505. getComponentInstances(app) {
  1506. return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, { app });
  1507. }
  1508. getComponentBounds(instance) {
  1509. return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, { instance });
  1510. }
  1511. getComponentName(instance) {
  1512. return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_NAME, { instance });
  1513. }
  1514. highlightElement(instance) {
  1515. const uid = instance.__VUE_DEVTOOLS_NEXT_UID__;
  1516. return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, { uid });
  1517. }
  1518. unhighlightElement() {
  1519. return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT);
  1520. }
  1521. };
  1522. var DevToolsPluginAPI = DevToolsV6PluginAPI;
  1523. var UNDEFINED = "__vue_devtool_undefined__";
  1524. var INFINITY = "__vue_devtool_infinity__";
  1525. var NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__";
  1526. var NAN = "__vue_devtool_nan__";
  1527. var tokenMap = {
  1528. [UNDEFINED]: "undefined",
  1529. [NAN]: "NaN",
  1530. [INFINITY]: "Infinity",
  1531. [NEGATIVE_INFINITY]: "-Infinity"
  1532. };
  1533. var reversedTokenMap = Object.entries(tokenMap).reduce((acc, [key, value]) => {
  1534. acc[value] = key;
  1535. return acc;
  1536. }, {});
  1537. target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__ ??= /* @__PURE__ */ new Set();
  1538. function setupDevToolsPlugin(pluginDescriptor, setupFn) {
  1539. return hook.setupDevToolsPlugin(pluginDescriptor, setupFn);
  1540. }
  1541. function callDevToolsPluginSetupFn(plugin, app) {
  1542. const [pluginDescriptor, setupFn] = plugin;
  1543. if (pluginDescriptor.app !== app) return;
  1544. const api = new DevToolsPluginAPI({
  1545. plugin: {
  1546. setupFn,
  1547. descriptor: pluginDescriptor
  1548. },
  1549. ctx: devtoolsContext
  1550. });
  1551. if (pluginDescriptor.packageName === "vuex") api.on.editInspectorState((payload) => {
  1552. api.sendInspectorState(payload.inspectorId);
  1553. });
  1554. setupFn(api);
  1555. }
  1556. function registerDevToolsPlugin(app, options) {
  1557. if (target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(app)) return;
  1558. if (devtoolsState.highPerfModeEnabled && !options?.inspectingComponent) return;
  1559. target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(app);
  1560. devtoolsPluginBuffer.forEach((plugin) => {
  1561. callDevToolsPluginSetupFn(plugin, app);
  1562. });
  1563. }
  1564. var ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__";
  1565. var ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__";
  1566. target[ROUTER_INFO_KEY] ??= {
  1567. currentRoute: null,
  1568. routes: []
  1569. };
  1570. target[ROUTER_KEY] ??= {};
  1571. var devtoolsRouterInfo = new Proxy(target[ROUTER_INFO_KEY], { get(target$1, property) {
  1572. return target[ROUTER_INFO_KEY][property];
  1573. } });
  1574. var devtoolsRouter = new Proxy(target[ROUTER_KEY], { get(target$1, property) {
  1575. if (property === "value") return target[ROUTER_KEY];
  1576. } });
  1577. function getRoutes(router) {
  1578. const routesMap = /* @__PURE__ */ new Map();
  1579. return (router?.getRoutes() || []).filter((i) => !routesMap.has(i.path) && routesMap.set(i.path, 1));
  1580. }
  1581. function filterRoutes(routes) {
  1582. return routes.map((item) => {
  1583. let { path, name, children, meta } = item;
  1584. if (children?.length) children = filterRoutes(children);
  1585. return {
  1586. path,
  1587. name,
  1588. children,
  1589. meta
  1590. };
  1591. });
  1592. }
  1593. function filterCurrentRoute(route) {
  1594. if (route) {
  1595. const { fullPath, hash, href, path, name, matched, params, query } = route;
  1596. return {
  1597. fullPath,
  1598. hash,
  1599. href,
  1600. path,
  1601. name,
  1602. params,
  1603. query,
  1604. matched: filterRoutes(matched)
  1605. };
  1606. }
  1607. return route;
  1608. }
  1609. function normalizeRouterInfo(appRecord, activeAppRecord$1) {
  1610. function init() {
  1611. const router = appRecord.app?.config.globalProperties.$router;
  1612. const currentRoute = filterCurrentRoute(router?.currentRoute.value);
  1613. const routes = filterRoutes(getRoutes(router));
  1614. const c = console.warn;
  1615. console.warn = () => {
  1616. };
  1617. target[ROUTER_INFO_KEY] = {
  1618. currentRoute: currentRoute ? deepClone(currentRoute) : {},
  1619. routes: deepClone(routes)
  1620. };
  1621. target[ROUTER_KEY] = router;
  1622. console.warn = c;
  1623. }
  1624. init();
  1625. hook.on.componentUpdated(debounce(() => {
  1626. if (activeAppRecord$1.value?.app !== appRecord.app) return;
  1627. init();
  1628. if (devtoolsState.highPerfModeEnabled) return;
  1629. devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED, { state: target[ROUTER_INFO_KEY] });
  1630. }, 200));
  1631. }
  1632. function createDevToolsApi(hooks$1) {
  1633. return {
  1634. async getInspectorTree(payload) {
  1635. const _payload = {
  1636. ...payload,
  1637. app: activeAppRecord.value.app,
  1638. rootNodes: []
  1639. };
  1640. await new Promise((resolve) => {
  1641. hooks$1.callHookWith(async (callbacks) => {
  1642. await Promise.all(callbacks.map((cb) => cb(_payload)));
  1643. resolve();
  1644. }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE);
  1645. });
  1646. return _payload.rootNodes;
  1647. },
  1648. async getInspectorState(payload) {
  1649. const _payload = {
  1650. ...payload,
  1651. app: activeAppRecord.value.app,
  1652. state: null
  1653. };
  1654. const ctx = { currentTab: `custom-inspector:${payload.inspectorId}` };
  1655. await new Promise((resolve) => {
  1656. hooks$1.callHookWith(async (callbacks) => {
  1657. await Promise.all(callbacks.map((cb) => cb(_payload, ctx)));
  1658. resolve();
  1659. }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE);
  1660. });
  1661. return _payload.state;
  1662. },
  1663. editInspectorState(payload) {
  1664. const stateEditor$1 = new StateEditor();
  1665. const _payload = {
  1666. ...payload,
  1667. app: activeAppRecord.value.app,
  1668. set: (obj, path = payload.path, value = payload.state.value, cb) => {
  1669. stateEditor$1.set(obj, path, value, cb || stateEditor$1.createDefaultSetCallback(payload.state));
  1670. }
  1671. };
  1672. hooks$1.callHookWith((callbacks) => {
  1673. callbacks.forEach((cb) => cb(_payload));
  1674. }, DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE);
  1675. },
  1676. sendInspectorState(inspectorId) {
  1677. const inspector = getInspector(inspectorId);
  1678. hooks$1.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
  1679. inspectorId,
  1680. plugin: {
  1681. descriptor: inspector.descriptor,
  1682. setupFn: () => ({})
  1683. }
  1684. });
  1685. },
  1686. inspectComponentInspector() {
  1687. return inspectComponentHighLighter();
  1688. },
  1689. cancelInspectComponentInspector() {
  1690. return cancelInspectComponentHighLighter();
  1691. },
  1692. getComponentRenderCode(id) {
  1693. const instance = getComponentInstance(activeAppRecord.value, id);
  1694. if (instance) return !(typeof instance?.type === "function") ? instance.render.toString() : instance.type.toString();
  1695. },
  1696. scrollToComponent(id) {
  1697. return scrollToComponent({ id });
  1698. },
  1699. openInEditor,
  1700. getVueInspector: getComponentInspector,
  1701. toggleApp(id, options) {
  1702. const appRecord = devtoolsAppRecords.value.find((record) => record.id === id);
  1703. if (appRecord) {
  1704. setActiveAppRecordId(id);
  1705. setActiveAppRecord(appRecord);
  1706. normalizeRouterInfo(appRecord, activeAppRecord);
  1707. callInspectorUpdatedHook();
  1708. registerDevToolsPlugin(appRecord.app, options);
  1709. }
  1710. },
  1711. inspectDOM(instanceId) {
  1712. const instance = getComponentInstance(activeAppRecord.value, instanceId);
  1713. if (instance) {
  1714. const [el] = getRootElementsFromComponentInstance(instance);
  1715. if (el) target.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__ = el;
  1716. }
  1717. },
  1718. updatePluginSettings(pluginId, key, value) {
  1719. setPluginSettings(pluginId, key, value);
  1720. },
  1721. getPluginSettings(pluginId) {
  1722. return {
  1723. options: getPluginSettingsOptions(pluginId),
  1724. values: getPluginSettings(pluginId)
  1725. };
  1726. }
  1727. };
  1728. }
  1729. target.__VUE_DEVTOOLS_ENV__ ??= { vitePluginDetected: false };
  1730. var hooks = createDevToolsCtxHooks();
  1731. target.__VUE_DEVTOOLS_KIT_CONTEXT__ ??= {
  1732. hooks,
  1733. get state() {
  1734. return {
  1735. ...devtoolsState,
  1736. activeAppRecordId: activeAppRecord.id,
  1737. activeAppRecord: activeAppRecord.value,
  1738. appRecords: devtoolsAppRecords.value
  1739. };
  1740. },
  1741. api: createDevToolsApi(hooks)
  1742. };
  1743. var devtoolsContext = target.__VUE_DEVTOOLS_KIT_CONTEXT__;
  1744. var require_speakingurl$1 = __commonJS2({ "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js": ((exports, module) => {
  1745. (function(root) {
  1746. var charMap = {
  1747. "À": "A",
  1748. "Á": "A",
  1749. "Â": "A",
  1750. "Ã": "A",
  1751. "Ä": "Ae",
  1752. "Å": "A",
  1753. "Æ": "AE",
  1754. "Ç": "C",
  1755. "È": "E",
  1756. "É": "E",
  1757. "Ê": "E",
  1758. "Ë": "E",
  1759. "Ì": "I",
  1760. "Í": "I",
  1761. "Î": "I",
  1762. "Ï": "I",
  1763. "Ð": "D",
  1764. "Ñ": "N",
  1765. "Ò": "O",
  1766. "Ó": "O",
  1767. "Ô": "O",
  1768. "Õ": "O",
  1769. "Ö": "Oe",
  1770. "Ő": "O",
  1771. "Ø": "O",
  1772. "Ù": "U",
  1773. "Ú": "U",
  1774. "Û": "U",
  1775. "Ü": "Ue",
  1776. "Ű": "U",
  1777. "Ý": "Y",
  1778. "Þ": "TH",
  1779. "ß": "ss",
  1780. "à": "a",
  1781. "á": "a",
  1782. "â": "a",
  1783. "ã": "a",
  1784. "ä": "ae",
  1785. "å": "a",
  1786. "æ": "ae",
  1787. "ç": "c",
  1788. "è": "e",
  1789. "é": "e",
  1790. "ê": "e",
  1791. "ë": "e",
  1792. "ì": "i",
  1793. "í": "i",
  1794. "î": "i",
  1795. "ï": "i",
  1796. "ð": "d",
  1797. "ñ": "n",
  1798. "ò": "o",
  1799. "ó": "o",
  1800. "ô": "o",
  1801. "õ": "o",
  1802. "ö": "oe",
  1803. "ő": "o",
  1804. "ø": "o",
  1805. "ù": "u",
  1806. "ú": "u",
  1807. "û": "u",
  1808. "ü": "ue",
  1809. "ű": "u",
  1810. "ý": "y",
  1811. "þ": "th",
  1812. "ÿ": "y",
  1813. "ẞ": "SS",
  1814. "ا": "a",
  1815. "أ": "a",
  1816. "إ": "i",
  1817. "آ": "aa",
  1818. "ؤ": "u",
  1819. "ئ": "e",
  1820. "ء": "a",
  1821. "ب": "b",
  1822. "ت": "t",
  1823. "ث": "th",
  1824. "ج": "j",
  1825. "ح": "h",
  1826. "خ": "kh",
  1827. "د": "d",
  1828. "ذ": "th",
  1829. "ر": "r",
  1830. "ز": "z",
  1831. "س": "s",
  1832. "ش": "sh",
  1833. "ص": "s",
  1834. "ض": "dh",
  1835. "ط": "t",
  1836. "ظ": "z",
  1837. "ع": "a",
  1838. "غ": "gh",
  1839. "ف": "f",
  1840. "ق": "q",
  1841. "ك": "k",
  1842. "ل": "l",
  1843. "م": "m",
  1844. "ن": "n",
  1845. "ه": "h",
  1846. "و": "w",
  1847. "ي": "y",
  1848. "ى": "a",
  1849. "ة": "h",
  1850. "ﻻ": "la",
  1851. "ﻷ": "laa",
  1852. "ﻹ": "lai",
  1853. "ﻵ": "laa",
  1854. "گ": "g",
  1855. "چ": "ch",
  1856. "پ": "p",
  1857. "ژ": "zh",
  1858. "ک": "k",
  1859. "ی": "y",
  1860. "َ": "a",
  1861. "ً": "an",
  1862. "ِ": "e",
  1863. "ٍ": "en",
  1864. "ُ": "u",
  1865. "ٌ": "on",
  1866. "ْ": "",
  1867. "٠": "0",
  1868. "١": "1",
  1869. "٢": "2",
  1870. "٣": "3",
  1871. "٤": "4",
  1872. "٥": "5",
  1873. "٦": "6",
  1874. "٧": "7",
  1875. "٨": "8",
  1876. "٩": "9",
  1877. "۰": "0",
  1878. "۱": "1",
  1879. "۲": "2",
  1880. "۳": "3",
  1881. "۴": "4",
  1882. "۵": "5",
  1883. "۶": "6",
  1884. "۷": "7",
  1885. "۸": "8",
  1886. "۹": "9",
  1887. "က": "k",
  1888. "ခ": "kh",
  1889. "ဂ": "g",
  1890. "ဃ": "ga",
  1891. "င": "ng",
  1892. "စ": "s",
  1893. "ဆ": "sa",
  1894. "ဇ": "z",
  1895. "စျ": "za",
  1896. "ည": "ny",
  1897. "ဋ": "t",
  1898. "ဌ": "ta",
  1899. "ဍ": "d",
  1900. "ဎ": "da",
  1901. "ဏ": "na",
  1902. "တ": "t",
  1903. "ထ": "ta",
  1904. "ဒ": "d",
  1905. "ဓ": "da",
  1906. "န": "n",
  1907. "ပ": "p",
  1908. "ဖ": "pa",
  1909. "ဗ": "b",
  1910. "ဘ": "ba",
  1911. "မ": "m",
  1912. "ယ": "y",
  1913. "ရ": "ya",
  1914. "လ": "l",
  1915. "ဝ": "w",
  1916. "သ": "th",
  1917. "ဟ": "h",
  1918. "ဠ": "la",
  1919. "အ": "a",
  1920. "ြ": "y",
  1921. "ျ": "ya",
  1922. "ွ": "w",
  1923. "ြွ": "yw",
  1924. "ျွ": "ywa",
  1925. "ှ": "h",
  1926. "ဧ": "e",
  1927. "၏": "-e",
  1928. "ဣ": "i",
  1929. "ဤ": "-i",
  1930. "ဉ": "u",
  1931. "ဦ": "-u",
  1932. "ဩ": "aw",
  1933. "သြော": "aw",
  1934. "ဪ": "aw",
  1935. "၀": "0",
  1936. "၁": "1",
  1937. "၂": "2",
  1938. "၃": "3",
  1939. "၄": "4",
  1940. "၅": "5",
  1941. "၆": "6",
  1942. "၇": "7",
  1943. "၈": "8",
  1944. "၉": "9",
  1945. "္": "",
  1946. "့": "",
  1947. "း": "",
  1948. "č": "c",
  1949. "ď": "d",
  1950. "ě": "e",
  1951. "ň": "n",
  1952. "ř": "r",
  1953. "š": "s",
  1954. "ť": "t",
  1955. "ů": "u",
  1956. "ž": "z",
  1957. "Č": "C",
  1958. "Ď": "D",
  1959. "Ě": "E",
  1960. "Ň": "N",
  1961. "Ř": "R",
  1962. "Š": "S",
  1963. "Ť": "T",
  1964. "Ů": "U",
  1965. "Ž": "Z",
  1966. "ހ": "h",
  1967. "ށ": "sh",
  1968. "ނ": "n",
  1969. "ރ": "r",
  1970. "ބ": "b",
  1971. "ޅ": "lh",
  1972. "ކ": "k",
  1973. "އ": "a",
  1974. "ވ": "v",
  1975. "މ": "m",
  1976. "ފ": "f",
  1977. "ދ": "dh",
  1978. "ތ": "th",
  1979. "ލ": "l",
  1980. "ގ": "g",
  1981. "ޏ": "gn",
  1982. "ސ": "s",
  1983. "ޑ": "d",
  1984. "ޒ": "z",
  1985. "ޓ": "t",
  1986. "ޔ": "y",
  1987. "ޕ": "p",
  1988. "ޖ": "j",
  1989. "ޗ": "ch",
  1990. "ޘ": "tt",
  1991. "ޙ": "hh",
  1992. "ޚ": "kh",
  1993. "ޛ": "th",
  1994. "ޜ": "z",
  1995. "ޝ": "sh",
  1996. "ޞ": "s",
  1997. "ޟ": "d",
  1998. "ޠ": "t",
  1999. "ޡ": "z",
  2000. "ޢ": "a",
  2001. "ޣ": "gh",
  2002. "ޤ": "q",
  2003. "ޥ": "w",
  2004. "ަ": "a",
  2005. "ާ": "aa",
  2006. "ި": "i",
  2007. "ީ": "ee",
  2008. "ު": "u",
  2009. "ޫ": "oo",
  2010. "ެ": "e",
  2011. "ޭ": "ey",
  2012. "ޮ": "o",
  2013. "ޯ": "oa",
  2014. "ް": "",
  2015. "ა": "a",
  2016. "ბ": "b",
  2017. "გ": "g",
  2018. "დ": "d",
  2019. "ე": "e",
  2020. "ვ": "v",
  2021. "ზ": "z",
  2022. "თ": "t",
  2023. "ი": "i",
  2024. "კ": "k",
  2025. "ლ": "l",
  2026. "მ": "m",
  2027. "ნ": "n",
  2028. "ო": "o",
  2029. "პ": "p",
  2030. "ჟ": "zh",
  2031. "რ": "r",
  2032. "ს": "s",
  2033. "ტ": "t",
  2034. "უ": "u",
  2035. "ფ": "p",
  2036. "ქ": "k",
  2037. "ღ": "gh",
  2038. "ყ": "q",
  2039. "შ": "sh",
  2040. "ჩ": "ch",
  2041. "ც": "ts",
  2042. "ძ": "dz",
  2043. "წ": "ts",
  2044. "ჭ": "ch",
  2045. "ხ": "kh",
  2046. "ჯ": "j",
  2047. "ჰ": "h",
  2048. "α": "a",
  2049. "β": "v",
  2050. "γ": "g",
  2051. "δ": "d",
  2052. "ε": "e",
  2053. "ζ": "z",
  2054. "η": "i",
  2055. "θ": "th",
  2056. "ι": "i",
  2057. "κ": "k",
  2058. "λ": "l",
  2059. "μ": "m",
  2060. "ν": "n",
  2061. "ξ": "ks",
  2062. "ο": "o",
  2063. "π": "p",
  2064. "ρ": "r",
  2065. "σ": "s",
  2066. "τ": "t",
  2067. "υ": "y",
  2068. "φ": "f",
  2069. "χ": "x",
  2070. "ψ": "ps",
  2071. "ω": "o",
  2072. "ά": "a",
  2073. "έ": "e",
  2074. "ί": "i",
  2075. "ό": "o",
  2076. "ύ": "y",
  2077. "ή": "i",
  2078. "ώ": "o",
  2079. "ς": "s",
  2080. "ϊ": "i",
  2081. "ΰ": "y",
  2082. "ϋ": "y",
  2083. "ΐ": "i",
  2084. "Α": "A",
  2085. "Β": "B",
  2086. "Γ": "G",
  2087. "Δ": "D",
  2088. "Ε": "E",
  2089. "Ζ": "Z",
  2090. "Η": "I",
  2091. "Θ": "TH",
  2092. "Ι": "I",
  2093. "Κ": "K",
  2094. "Λ": "L",
  2095. "Μ": "M",
  2096. "Ν": "N",
  2097. "Ξ": "KS",
  2098. "Ο": "O",
  2099. "Π": "P",
  2100. "Ρ": "R",
  2101. "Σ": "S",
  2102. "Τ": "T",
  2103. "Υ": "Y",
  2104. "Φ": "F",
  2105. "Χ": "X",
  2106. "Ψ": "PS",
  2107. "Ω": "O",
  2108. "Ά": "A",
  2109. "Έ": "E",
  2110. "Ί": "I",
  2111. "Ό": "O",
  2112. "Ύ": "Y",
  2113. "Ή": "I",
  2114. "Ώ": "O",
  2115. "Ϊ": "I",
  2116. "Ϋ": "Y",
  2117. "ā": "a",
  2118. "ē": "e",
  2119. "ģ": "g",
  2120. "ī": "i",
  2121. "ķ": "k",
  2122. "ļ": "l",
  2123. "ņ": "n",
  2124. "ū": "u",
  2125. "Ā": "A",
  2126. "Ē": "E",
  2127. "Ģ": "G",
  2128. "Ī": "I",
  2129. "Ķ": "k",
  2130. "Ļ": "L",
  2131. "Ņ": "N",
  2132. "Ū": "U",
  2133. "Ќ": "Kj",
  2134. "ќ": "kj",
  2135. "Љ": "Lj",
  2136. "љ": "lj",
  2137. "Њ": "Nj",
  2138. "њ": "nj",
  2139. "Тс": "Ts",
  2140. "тс": "ts",
  2141. "ą": "a",
  2142. "ć": "c",
  2143. "ę": "e",
  2144. "ł": "l",
  2145. "ń": "n",
  2146. "ś": "s",
  2147. "ź": "z",
  2148. "ż": "z",
  2149. "Ą": "A",
  2150. "Ć": "C",
  2151. "Ę": "E",
  2152. "Ł": "L",
  2153. "Ń": "N",
  2154. "Ś": "S",
  2155. "Ź": "Z",
  2156. "Ż": "Z",
  2157. "Є": "Ye",
  2158. "І": "I",
  2159. "Ї": "Yi",
  2160. "Ґ": "G",
  2161. "є": "ye",
  2162. "і": "i",
  2163. "ї": "yi",
  2164. "ґ": "g",
  2165. "ă": "a",
  2166. "Ă": "A",
  2167. "ș": "s",
  2168. "Ș": "S",
  2169. "ț": "t",
  2170. "Ț": "T",
  2171. "ţ": "t",
  2172. "Ţ": "T",
  2173. "а": "a",
  2174. "б": "b",
  2175. "в": "v",
  2176. "г": "g",
  2177. "д": "d",
  2178. "е": "e",
  2179. "ё": "yo",
  2180. "ж": "zh",
  2181. "з": "z",
  2182. "и": "i",
  2183. "й": "i",
  2184. "к": "k",
  2185. "л": "l",
  2186. "м": "m",
  2187. "н": "n",
  2188. "о": "o",
  2189. "п": "p",
  2190. "р": "r",
  2191. "с": "s",
  2192. "т": "t",
  2193. "у": "u",
  2194. "ф": "f",
  2195. "х": "kh",
  2196. "ц": "c",
  2197. "ч": "ch",
  2198. "ш": "sh",
  2199. "щ": "sh",
  2200. "ъ": "",
  2201. "ы": "y",
  2202. "ь": "",
  2203. "э": "e",
  2204. "ю": "yu",
  2205. "я": "ya",
  2206. "А": "A",
  2207. "Б": "B",
  2208. "В": "V",
  2209. "Г": "G",
  2210. "Д": "D",
  2211. "Е": "E",
  2212. "Ё": "Yo",
  2213. "Ж": "Zh",
  2214. "З": "Z",
  2215. "И": "I",
  2216. "Й": "I",
  2217. "К": "K",
  2218. "Л": "L",
  2219. "М": "M",
  2220. "Н": "N",
  2221. "О": "O",
  2222. "П": "P",
  2223. "Р": "R",
  2224. "С": "S",
  2225. "Т": "T",
  2226. "У": "U",
  2227. "Ф": "F",
  2228. "Х": "Kh",
  2229. "Ц": "C",
  2230. "Ч": "Ch",
  2231. "Ш": "Sh",
  2232. "Щ": "Sh",
  2233. "Ъ": "",
  2234. "Ы": "Y",
  2235. "Ь": "",
  2236. "Э": "E",
  2237. "Ю": "Yu",
  2238. "Я": "Ya",
  2239. "ђ": "dj",
  2240. "ј": "j",
  2241. "ћ": "c",
  2242. "џ": "dz",
  2243. "Ђ": "Dj",
  2244. "Ј": "j",
  2245. "Ћ": "C",
  2246. "Џ": "Dz",
  2247. "ľ": "l",
  2248. "ĺ": "l",
  2249. "ŕ": "r",
  2250. "Ľ": "L",
  2251. "Ĺ": "L",
  2252. "Ŕ": "R",
  2253. "ş": "s",
  2254. "Ş": "S",
  2255. "ı": "i",
  2256. "İ": "I",
  2257. "ğ": "g",
  2258. "Ğ": "G",
  2259. "ả": "a",
  2260. "Ả": "A",
  2261. "ẳ": "a",
  2262. "Ẳ": "A",
  2263. "ẩ": "a",
  2264. "Ẩ": "A",
  2265. "đ": "d",
  2266. "Đ": "D",
  2267. "ẹ": "e",
  2268. "Ẹ": "E",
  2269. "ẽ": "e",
  2270. "Ẽ": "E",
  2271. "ẻ": "e",
  2272. "Ẻ": "E",
  2273. "ế": "e",
  2274. "Ế": "E",
  2275. "ề": "e",
  2276. "Ề": "E",
  2277. "ệ": "e",
  2278. "Ệ": "E",
  2279. "ễ": "e",
  2280. "Ễ": "E",
  2281. "ể": "e",
  2282. "Ể": "E",
  2283. "ỏ": "o",
  2284. "ọ": "o",
  2285. "Ọ": "o",
  2286. "ố": "o",
  2287. "Ố": "O",
  2288. "ồ": "o",
  2289. "Ồ": "O",
  2290. "ổ": "o",
  2291. "Ổ": "O",
  2292. "ộ": "o",
  2293. "Ộ": "O",
  2294. "ỗ": "o",
  2295. "Ỗ": "O",
  2296. "ơ": "o",
  2297. "Ơ": "O",
  2298. "ớ": "o",
  2299. "Ớ": "O",
  2300. "ờ": "o",
  2301. "Ờ": "O",
  2302. "ợ": "o",
  2303. "Ợ": "O",
  2304. "ỡ": "o",
  2305. "Ỡ": "O",
  2306. "Ở": "o",
  2307. "ở": "o",
  2308. "ị": "i",
  2309. "Ị": "I",
  2310. "ĩ": "i",
  2311. "Ĩ": "I",
  2312. "ỉ": "i",
  2313. "Ỉ": "i",
  2314. "ủ": "u",
  2315. "Ủ": "U",
  2316. "ụ": "u",
  2317. "Ụ": "U",
  2318. "ũ": "u",
  2319. "Ũ": "U",
  2320. "ư": "u",
  2321. "Ư": "U",
  2322. "ứ": "u",
  2323. "Ứ": "U",
  2324. "ừ": "u",
  2325. "Ừ": "U",
  2326. "ự": "u",
  2327. "Ự": "U",
  2328. "ữ": "u",
  2329. "Ữ": "U",
  2330. "ử": "u",
  2331. "Ử": "ư",
  2332. "ỷ": "y",
  2333. "Ỷ": "y",
  2334. "ỳ": "y",
  2335. "Ỳ": "Y",
  2336. "ỵ": "y",
  2337. "Ỵ": "Y",
  2338. "ỹ": "y",
  2339. "Ỹ": "Y",
  2340. "ạ": "a",
  2341. "Ạ": "A",
  2342. "ấ": "a",
  2343. "Ấ": "A",
  2344. "ầ": "a",
  2345. "Ầ": "A",
  2346. "ậ": "a",
  2347. "Ậ": "A",
  2348. "ẫ": "a",
  2349. "Ẫ": "A",
  2350. "ắ": "a",
  2351. "Ắ": "A",
  2352. "ằ": "a",
  2353. "Ằ": "A",
  2354. "ặ": "a",
  2355. "Ặ": "A",
  2356. "ẵ": "a",
  2357. "Ẵ": "A",
  2358. "⓪": "0",
  2359. "①": "1",
  2360. "②": "2",
  2361. "③": "3",
  2362. "④": "4",
  2363. "⑤": "5",
  2364. "⑥": "6",
  2365. "⑦": "7",
  2366. "⑧": "8",
  2367. "⑨": "9",
  2368. "⑩": "10",
  2369. "⑪": "11",
  2370. "⑫": "12",
  2371. "⑬": "13",
  2372. "⑭": "14",
  2373. "⑮": "15",
  2374. "⑯": "16",
  2375. "⑰": "17",
  2376. "⑱": "18",
  2377. "⑲": "18",
  2378. "⑳": "18",
  2379. "⓵": "1",
  2380. "⓶": "2",
  2381. "⓷": "3",
  2382. "⓸": "4",
  2383. "⓹": "5",
  2384. "⓺": "6",
  2385. "⓻": "7",
  2386. "⓼": "8",
  2387. "⓽": "9",
  2388. "⓾": "10",
  2389. "⓿": "0",
  2390. "⓫": "11",
  2391. "⓬": "12",
  2392. "⓭": "13",
  2393. "⓮": "14",
  2394. "⓯": "15",
  2395. "⓰": "16",
  2396. "⓱": "17",
  2397. "⓲": "18",
  2398. "⓳": "19",
  2399. "⓴": "20",
  2400. "Ⓐ": "A",
  2401. "Ⓑ": "B",
  2402. "Ⓒ": "C",
  2403. "Ⓓ": "D",
  2404. "Ⓔ": "E",
  2405. "Ⓕ": "F",
  2406. "Ⓖ": "G",
  2407. "Ⓗ": "H",
  2408. "Ⓘ": "I",
  2409. "Ⓙ": "J",
  2410. "Ⓚ": "K",
  2411. "Ⓛ": "L",
  2412. "Ⓜ": "M",
  2413. "Ⓝ": "N",
  2414. "Ⓞ": "O",
  2415. "Ⓟ": "P",
  2416. "Ⓠ": "Q",
  2417. "Ⓡ": "R",
  2418. "Ⓢ": "S",
  2419. "Ⓣ": "T",
  2420. "Ⓤ": "U",
  2421. "Ⓥ": "V",
  2422. "Ⓦ": "W",
  2423. "Ⓧ": "X",
  2424. "Ⓨ": "Y",
  2425. "Ⓩ": "Z",
  2426. "ⓐ": "a",
  2427. "ⓑ": "b",
  2428. "ⓒ": "c",
  2429. "ⓓ": "d",
  2430. "ⓔ": "e",
  2431. "ⓕ": "f",
  2432. "ⓖ": "g",
  2433. "ⓗ": "h",
  2434. "ⓘ": "i",
  2435. "ⓙ": "j",
  2436. "ⓚ": "k",
  2437. "ⓛ": "l",
  2438. "ⓜ": "m",
  2439. "ⓝ": "n",
  2440. "ⓞ": "o",
  2441. "ⓟ": "p",
  2442. "ⓠ": "q",
  2443. "ⓡ": "r",
  2444. "ⓢ": "s",
  2445. "ⓣ": "t",
  2446. "ⓤ": "u",
  2447. "ⓦ": "v",
  2448. "ⓥ": "w",
  2449. "ⓧ": "x",
  2450. "ⓨ": "y",
  2451. "ⓩ": "z",
  2452. "“": '"',
  2453. "”": '"',
  2454. "‘": "'",
  2455. "’": "'",
  2456. "∂": "d",
  2457. "ƒ": "f",
  2458. "™": "(TM)",
  2459. "©": "(C)",
  2460. "œ": "oe",
  2461. "Œ": "OE",
  2462. "®": "(R)",
  2463. "†": "+",
  2464. "℠": "(SM)",
  2465. "…": "...",
  2466. "˚": "o",
  2467. "º": "o",
  2468. "ª": "a",
  2469. "•": "*",
  2470. "၊": ",",
  2471. "။": ".",
  2472. "$": "USD",
  2473. "€": "EUR",
  2474. "₢": "BRN",
  2475. "₣": "FRF",
  2476. "£": "GBP",
  2477. "₤": "ITL",
  2478. "₦": "NGN",
  2479. "₧": "ESP",
  2480. "₩": "KRW",
  2481. "₪": "ILS",
  2482. "₫": "VND",
  2483. "₭": "LAK",
  2484. "₮": "MNT",
  2485. "₯": "GRD",
  2486. "₱": "ARS",
  2487. "₲": "PYG",
  2488. "₳": "ARA",
  2489. "₴": "UAH",
  2490. "₵": "GHS",
  2491. "¢": "cent",
  2492. "¥": "CNY",
  2493. "元": "CNY",
  2494. "円": "YEN",
  2495. "﷼": "IRR",
  2496. "₠": "EWE",
  2497. "฿": "THB",
  2498. "₨": "INR",
  2499. "₹": "INR",
  2500. "₰": "PF",
  2501. "₺": "TRY",
  2502. "؋": "AFN",
  2503. "₼": "AZN",
  2504. "лв": "BGN",
  2505. "៛": "KHR",
  2506. "₡": "CRC",
  2507. "₸": "KZT",
  2508. "ден": "MKD",
  2509. "zł": "PLN",
  2510. "₽": "RUB",
  2511. "₾": "GEL"
  2512. };
  2513. var lookAheadCharArray = ["်", "ް"];
  2514. var diatricMap = {
  2515. "ာ": "a",
  2516. "ါ": "a",
  2517. "ေ": "e",
  2518. "ဲ": "e",
  2519. "ိ": "i",
  2520. "ီ": "i",
  2521. "ို": "o",
  2522. "ု": "u",
  2523. "ူ": "u",
  2524. "ေါင်": "aung",
  2525. "ော": "aw",
  2526. "ော်": "aw",
  2527. "ေါ": "aw",
  2528. "ေါ်": "aw",
  2529. "်": "်",
  2530. "က်": "et",
  2531. "ိုက်": "aik",
  2532. "ောက်": "auk",
  2533. "င်": "in",
  2534. "ိုင်": "aing",
  2535. "ောင်": "aung",
  2536. "စ်": "it",
  2537. "ည်": "i",
  2538. "တ်": "at",
  2539. "ိတ်": "eik",
  2540. "ုတ်": "ok",
  2541. "ွတ်": "ut",
  2542. "ေတ်": "it",
  2543. "ဒ်": "d",
  2544. "ိုဒ်": "ok",
  2545. "ုဒ်": "ait",
  2546. "န်": "an",
  2547. "ာန်": "an",
  2548. "ိန်": "ein",
  2549. "ုန်": "on",
  2550. "ွန်": "un",
  2551. "ပ်": "at",
  2552. "ိပ်": "eik",
  2553. "ုပ်": "ok",
  2554. "ွပ်": "ut",
  2555. "န်ုပ်": "nub",
  2556. "မ်": "an",
  2557. "ိမ်": "ein",
  2558. "ုမ်": "on",
  2559. "ွမ်": "un",
  2560. "ယ်": "e",
  2561. "ိုလ်": "ol",
  2562. "ဉ်": "in",
  2563. "ံ": "an",
  2564. "ိံ": "ein",
  2565. "ုံ": "on",
  2566. "ައް": "ah",
  2567. "ަށް": "ah"
  2568. };
  2569. var langCharMap = {
  2570. "en": {},
  2571. "az": {
  2572. "ç": "c",
  2573. "ə": "e",
  2574. "ğ": "g",
  2575. "ı": "i",
  2576. "ö": "o",
  2577. "ş": "s",
  2578. "ü": "u",
  2579. "Ç": "C",
  2580. "Ə": "E",
  2581. "Ğ": "G",
  2582. "İ": "I",
  2583. "Ö": "O",
  2584. "Ş": "S",
  2585. "Ü": "U"
  2586. },
  2587. "cs": {
  2588. "č": "c",
  2589. "ď": "d",
  2590. "ě": "e",
  2591. "ň": "n",
  2592. "ř": "r",
  2593. "š": "s",
  2594. "ť": "t",
  2595. "ů": "u",
  2596. "ž": "z",
  2597. "Č": "C",
  2598. "Ď": "D",
  2599. "Ě": "E",
  2600. "Ň": "N",
  2601. "Ř": "R",
  2602. "Š": "S",
  2603. "Ť": "T",
  2604. "Ů": "U",
  2605. "Ž": "Z"
  2606. },
  2607. "fi": {
  2608. "ä": "a",
  2609. "Ä": "A",
  2610. "ö": "o",
  2611. "Ö": "O"
  2612. },
  2613. "hu": {
  2614. "ä": "a",
  2615. "Ä": "A",
  2616. "ö": "o",
  2617. "Ö": "O",
  2618. "ü": "u",
  2619. "Ü": "U",
  2620. "ű": "u",
  2621. "Ű": "U"
  2622. },
  2623. "lt": {
  2624. "ą": "a",
  2625. "č": "c",
  2626. "ę": "e",
  2627. "ė": "e",
  2628. "į": "i",
  2629. "š": "s",
  2630. "ų": "u",
  2631. "ū": "u",
  2632. "ž": "z",
  2633. "Ą": "A",
  2634. "Č": "C",
  2635. "Ę": "E",
  2636. "Ė": "E",
  2637. "Į": "I",
  2638. "Š": "S",
  2639. "Ų": "U",
  2640. "Ū": "U"
  2641. },
  2642. "lv": {
  2643. "ā": "a",
  2644. "č": "c",
  2645. "ē": "e",
  2646. "ģ": "g",
  2647. "ī": "i",
  2648. "ķ": "k",
  2649. "ļ": "l",
  2650. "ņ": "n",
  2651. "š": "s",
  2652. "ū": "u",
  2653. "ž": "z",
  2654. "Ā": "A",
  2655. "Č": "C",
  2656. "Ē": "E",
  2657. "Ģ": "G",
  2658. "Ī": "i",
  2659. "Ķ": "k",
  2660. "Ļ": "L",
  2661. "Ņ": "N",
  2662. "Š": "S",
  2663. "Ū": "u",
  2664. "Ž": "Z"
  2665. },
  2666. "pl": {
  2667. "ą": "a",
  2668. "ć": "c",
  2669. "ę": "e",
  2670. "ł": "l",
  2671. "ń": "n",
  2672. "ó": "o",
  2673. "ś": "s",
  2674. "ź": "z",
  2675. "ż": "z",
  2676. "Ą": "A",
  2677. "Ć": "C",
  2678. "Ę": "e",
  2679. "Ł": "L",
  2680. "Ń": "N",
  2681. "Ó": "O",
  2682. "Ś": "S",
  2683. "Ź": "Z",
  2684. "Ż": "Z"
  2685. },
  2686. "sv": {
  2687. "ä": "a",
  2688. "Ä": "A",
  2689. "ö": "o",
  2690. "Ö": "O"
  2691. },
  2692. "sk": {
  2693. "ä": "a",
  2694. "Ä": "A"
  2695. },
  2696. "sr": {
  2697. "љ": "lj",
  2698. "њ": "nj",
  2699. "Љ": "Lj",
  2700. "Њ": "Nj",
  2701. "đ": "dj",
  2702. "Đ": "Dj"
  2703. },
  2704. "tr": {
  2705. "Ü": "U",
  2706. "Ö": "O",
  2707. "ü": "u",
  2708. "ö": "o"
  2709. }
  2710. };
  2711. var symbolMap = {
  2712. "ar": {
  2713. "∆": "delta",
  2714. "∞": "la-nihaya",
  2715. "♥": "hob",
  2716. "&": "wa",
  2717. "|": "aw",
  2718. "<": "aqal-men",
  2719. ">": "akbar-men",
  2720. "∑": "majmou",
  2721. "¤": "omla"
  2722. },
  2723. "az": {},
  2724. "ca": {
  2725. "∆": "delta",
  2726. "∞": "infinit",
  2727. "♥": "amor",
  2728. "&": "i",
  2729. "|": "o",
  2730. "<": "menys que",
  2731. ">": "mes que",
  2732. "∑": "suma dels",
  2733. "¤": "moneda"
  2734. },
  2735. "cs": {
  2736. "∆": "delta",
  2737. "∞": "nekonecno",
  2738. "♥": "laska",
  2739. "&": "a",
  2740. "|": "nebo",
  2741. "<": "mensi nez",
  2742. ">": "vetsi nez",
  2743. "∑": "soucet",
  2744. "¤": "mena"
  2745. },
  2746. "de": {
  2747. "∆": "delta",
  2748. "∞": "unendlich",
  2749. "♥": "Liebe",
  2750. "&": "und",
  2751. "|": "oder",
  2752. "<": "kleiner als",
  2753. ">": "groesser als",
  2754. "∑": "Summe von",
  2755. "¤": "Waehrung"
  2756. },
  2757. "dv": {
  2758. "∆": "delta",
  2759. "∞": "kolunulaa",
  2760. "♥": "loabi",
  2761. "&": "aai",
  2762. "|": "noonee",
  2763. "<": "ah vure kuda",
  2764. ">": "ah vure bodu",
  2765. "∑": "jumula",
  2766. "¤": "faisaa"
  2767. },
  2768. "en": {
  2769. "∆": "delta",
  2770. "∞": "infinity",
  2771. "♥": "love",
  2772. "&": "and",
  2773. "|": "or",
  2774. "<": "less than",
  2775. ">": "greater than",
  2776. "∑": "sum",
  2777. "¤": "currency"
  2778. },
  2779. "es": {
  2780. "∆": "delta",
  2781. "∞": "infinito",
  2782. "♥": "amor",
  2783. "&": "y",
  2784. "|": "u",
  2785. "<": "menos que",
  2786. ">": "mas que",
  2787. "∑": "suma de los",
  2788. "¤": "moneda"
  2789. },
  2790. "fa": {
  2791. "∆": "delta",
  2792. "∞": "bi-nahayat",
  2793. "♥": "eshgh",
  2794. "&": "va",
  2795. "|": "ya",
  2796. "<": "kamtar-az",
  2797. ">": "bishtar-az",
  2798. "∑": "majmooe",
  2799. "¤": "vahed"
  2800. },
  2801. "fi": {
  2802. "∆": "delta",
  2803. "∞": "aarettomyys",
  2804. "♥": "rakkaus",
  2805. "&": "ja",
  2806. "|": "tai",
  2807. "<": "pienempi kuin",
  2808. ">": "suurempi kuin",
  2809. "∑": "summa",
  2810. "¤": "valuutta"
  2811. },
  2812. "fr": {
  2813. "∆": "delta",
  2814. "∞": "infiniment",
  2815. "♥": "Amour",
  2816. "&": "et",
  2817. "|": "ou",
  2818. "<": "moins que",
  2819. ">": "superieure a",
  2820. "∑": "somme des",
  2821. "¤": "monnaie"
  2822. },
  2823. "ge": {
  2824. "∆": "delta",
  2825. "∞": "usasruloba",
  2826. "♥": "siqvaruli",
  2827. "&": "da",
  2828. "|": "an",
  2829. "<": "naklebi",
  2830. ">": "meti",
  2831. "∑": "jami",
  2832. "¤": "valuta"
  2833. },
  2834. "gr": {},
  2835. "hu": {
  2836. "∆": "delta",
  2837. "∞": "vegtelen",
  2838. "♥": "szerelem",
  2839. "&": "es",
  2840. "|": "vagy",
  2841. "<": "kisebb mint",
  2842. ">": "nagyobb mint",
  2843. "∑": "szumma",
  2844. "¤": "penznem"
  2845. },
  2846. "it": {
  2847. "∆": "delta",
  2848. "∞": "infinito",
  2849. "♥": "amore",
  2850. "&": "e",
  2851. "|": "o",
  2852. "<": "minore di",
  2853. ">": "maggiore di",
  2854. "∑": "somma",
  2855. "¤": "moneta"
  2856. },
  2857. "lt": {
  2858. "∆": "delta",
  2859. "∞": "begalybe",
  2860. "♥": "meile",
  2861. "&": "ir",
  2862. "|": "ar",
  2863. "<": "maziau nei",
  2864. ">": "daugiau nei",
  2865. "∑": "suma",
  2866. "¤": "valiuta"
  2867. },
  2868. "lv": {
  2869. "∆": "delta",
  2870. "∞": "bezgaliba",
  2871. "♥": "milestiba",
  2872. "&": "un",
  2873. "|": "vai",
  2874. "<": "mazak neka",
  2875. ">": "lielaks neka",
  2876. "∑": "summa",
  2877. "¤": "valuta"
  2878. },
  2879. "my": {
  2880. "∆": "kwahkhyaet",
  2881. "∞": "asaonasme",
  2882. "♥": "akhyait",
  2883. "&": "nhin",
  2884. "|": "tho",
  2885. "<": "ngethaw",
  2886. ">": "kyithaw",
  2887. "∑": "paungld",
  2888. "¤": "ngwekye"
  2889. },
  2890. "mk": {},
  2891. "nl": {
  2892. "∆": "delta",
  2893. "∞": "oneindig",
  2894. "♥": "liefde",
  2895. "&": "en",
  2896. "|": "of",
  2897. "<": "kleiner dan",
  2898. ">": "groter dan",
  2899. "∑": "som",
  2900. "¤": "valuta"
  2901. },
  2902. "pl": {
  2903. "∆": "delta",
  2904. "∞": "nieskonczonosc",
  2905. "♥": "milosc",
  2906. "&": "i",
  2907. "|": "lub",
  2908. "<": "mniejsze niz",
  2909. ">": "wieksze niz",
  2910. "∑": "suma",
  2911. "¤": "waluta"
  2912. },
  2913. "pt": {
  2914. "∆": "delta",
  2915. "∞": "infinito",
  2916. "♥": "amor",
  2917. "&": "e",
  2918. "|": "ou",
  2919. "<": "menor que",
  2920. ">": "maior que",
  2921. "∑": "soma",
  2922. "¤": "moeda"
  2923. },
  2924. "ro": {
  2925. "∆": "delta",
  2926. "∞": "infinit",
  2927. "♥": "dragoste",
  2928. "&": "si",
  2929. "|": "sau",
  2930. "<": "mai mic ca",
  2931. ">": "mai mare ca",
  2932. "∑": "suma",
  2933. "¤": "valuta"
  2934. },
  2935. "ru": {
  2936. "∆": "delta",
  2937. "∞": "beskonechno",
  2938. "♥": "lubov",
  2939. "&": "i",
  2940. "|": "ili",
  2941. "<": "menshe",
  2942. ">": "bolshe",
  2943. "∑": "summa",
  2944. "¤": "valjuta"
  2945. },
  2946. "sk": {
  2947. "∆": "delta",
  2948. "∞": "nekonecno",
  2949. "♥": "laska",
  2950. "&": "a",
  2951. "|": "alebo",
  2952. "<": "menej ako",
  2953. ">": "viac ako",
  2954. "∑": "sucet",
  2955. "¤": "mena"
  2956. },
  2957. "sr": {},
  2958. "tr": {
  2959. "∆": "delta",
  2960. "∞": "sonsuzluk",
  2961. "♥": "ask",
  2962. "&": "ve",
  2963. "|": "veya",
  2964. "<": "kucuktur",
  2965. ">": "buyuktur",
  2966. "∑": "toplam",
  2967. "¤": "para birimi"
  2968. },
  2969. "uk": {
  2970. "∆": "delta",
  2971. "∞": "bezkinechnist",
  2972. "♥": "lubov",
  2973. "&": "i",
  2974. "|": "abo",
  2975. "<": "menshe",
  2976. ">": "bilshe",
  2977. "∑": "suma",
  2978. "¤": "valjuta"
  2979. },
  2980. "vn": {
  2981. "∆": "delta",
  2982. "∞": "vo cuc",
  2983. "♥": "yeu",
  2984. "&": "va",
  2985. "|": "hoac",
  2986. "<": "nho hon",
  2987. ">": "lon hon",
  2988. "∑": "tong",
  2989. "¤": "tien te"
  2990. }
  2991. };
  2992. var uricChars = [
  2993. ";",
  2994. "?",
  2995. ":",
  2996. "@",
  2997. "&",
  2998. "=",
  2999. "+",
  3000. "$",
  3001. ",",
  3002. "/"
  3003. ].join("");
  3004. var uricNoSlashChars = [
  3005. ";",
  3006. "?",
  3007. ":",
  3008. "@",
  3009. "&",
  3010. "=",
  3011. "+",
  3012. "$",
  3013. ","
  3014. ].join("");
  3015. var markChars = [
  3016. ".",
  3017. "!",
  3018. "~",
  3019. "*",
  3020. "'",
  3021. "(",
  3022. ")"
  3023. ].join("");
  3024. var getSlug = function getSlug$1(input, opts) {
  3025. var separator = "-";
  3026. var result = "";
  3027. var diatricString = "";
  3028. var convertSymbols = true;
  3029. var customReplacements = {};
  3030. var maintainCase;
  3031. var titleCase;
  3032. var truncate;
  3033. var uricFlag;
  3034. var uricNoSlashFlag;
  3035. var markFlag;
  3036. var symbol;
  3037. var langChar;
  3038. var lucky;
  3039. var i;
  3040. var ch;
  3041. var l;
  3042. var lastCharWasSymbol;
  3043. var lastCharWasDiatric;
  3044. var allowedChars = "";
  3045. if (typeof input !== "string") return "";
  3046. if (typeof opts === "string") separator = opts;
  3047. symbol = symbolMap.en;
  3048. langChar = langCharMap.en;
  3049. if (typeof opts === "object") {
  3050. maintainCase = opts.maintainCase || false;
  3051. customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements;
  3052. truncate = +opts.truncate > 1 && opts.truncate || false;
  3053. uricFlag = opts.uric || false;
  3054. uricNoSlashFlag = opts.uricNoSlash || false;
  3055. markFlag = opts.mark || false;
  3056. convertSymbols = opts.symbols === false || opts.lang === false ? false : true;
  3057. separator = opts.separator || separator;
  3058. if (uricFlag) allowedChars += uricChars;
  3059. if (uricNoSlashFlag) allowedChars += uricNoSlashChars;
  3060. if (markFlag) allowedChars += markChars;
  3061. symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {};
  3062. langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en;
  3063. if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) {
  3064. opts.titleCase.forEach(function(v) {
  3065. customReplacements[v + ""] = v + "";
  3066. });
  3067. titleCase = true;
  3068. } else titleCase = !!opts.titleCase;
  3069. if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) opts.custom.forEach(function(v) {
  3070. customReplacements[v + ""] = v + "";
  3071. });
  3072. Object.keys(customReplacements).forEach(function(v) {
  3073. var r;
  3074. if (v.length > 1) r = new RegExp("\\b" + escapeChars(v) + "\\b", "gi");
  3075. else r = new RegExp(escapeChars(v), "gi");
  3076. input = input.replace(r, customReplacements[v]);
  3077. });
  3078. for (ch in customReplacements) allowedChars += ch;
  3079. }
  3080. allowedChars += separator;
  3081. allowedChars = escapeChars(allowedChars);
  3082. input = input.replace(/(^\s+|\s+$)/g, "");
  3083. lastCharWasSymbol = false;
  3084. lastCharWasDiatric = false;
  3085. for (i = 0, l = input.length; i < l; i++) {
  3086. ch = input[i];
  3087. if (isReplacedCustomChar(ch, customReplacements)) lastCharWasSymbol = false;
  3088. else if (langChar[ch]) {
  3089. ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch];
  3090. lastCharWasSymbol = false;
  3091. } else if (ch in charMap) {
  3092. if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) {
  3093. diatricString += ch;
  3094. ch = "";
  3095. } else if (lastCharWasDiatric === true) {
  3096. ch = diatricMap[diatricString] + charMap[ch];
  3097. diatricString = "";
  3098. } else ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch];
  3099. lastCharWasSymbol = false;
  3100. lastCharWasDiatric = false;
  3101. } else if (ch in diatricMap) {
  3102. diatricString += ch;
  3103. ch = "";
  3104. if (i === l - 1) ch = diatricMap[diatricString];
  3105. lastCharWasDiatric = true;
  3106. } else if (symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1)) {
  3107. ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch];
  3108. ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : "";
  3109. lastCharWasSymbol = true;
  3110. } else {
  3111. if (lastCharWasDiatric === true) {
  3112. ch = diatricMap[diatricString] + ch;
  3113. diatricString = "";
  3114. lastCharWasDiatric = false;
  3115. } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) ch = " " + ch;
  3116. lastCharWasSymbol = false;
  3117. }
  3118. result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator);
  3119. }
  3120. if (titleCase) result = result.replace(/(\w)(\S*)/g, function(_, i$1, r) {
  3121. var j = i$1.toUpperCase() + (r !== null ? r : "");
  3122. return Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0 ? j : j.toLowerCase();
  3123. });
  3124. result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), "");
  3125. if (truncate && result.length > truncate) {
  3126. lucky = result.charAt(truncate) === separator;
  3127. result = result.slice(0, truncate);
  3128. if (!lucky) result = result.slice(0, result.lastIndexOf(separator));
  3129. }
  3130. if (!maintainCase && !titleCase) result = result.toLowerCase();
  3131. return result;
  3132. };
  3133. var createSlug = function createSlug$1(opts) {
  3134. return function getSlugWithConfig(input) {
  3135. return getSlug(input, opts);
  3136. };
  3137. };
  3138. var escapeChars = function escapeChars$1(input) {
  3139. return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&");
  3140. };
  3141. var isReplacedCustomChar = function(ch, customReplacements) {
  3142. for (var c in customReplacements) if (customReplacements[c] === ch) return true;
  3143. };
  3144. if (typeof module !== "undefined" && module.exports) {
  3145. module.exports = getSlug;
  3146. module.exports.createSlug = createSlug;
  3147. } else if (typeof define !== "undefined" && define.amd) define([], function() {
  3148. return getSlug;
  3149. });
  3150. else try {
  3151. if (root.getSlug || root.createSlug) throw "speakingurl: globals exists /(getSlug|createSlug)/";
  3152. else {
  3153. root.getSlug = getSlug;
  3154. root.createSlug = createSlug;
  3155. }
  3156. } catch (e) {
  3157. }
  3158. })(exports);
  3159. }) });
  3160. var require_speakingurl = __commonJS2({ "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js": ((exports, module) => {
  3161. module.exports = require_speakingurl$1();
  3162. }) });
  3163. var import_speakingurl = __toESM2(require_speakingurl(), 1);
  3164. var appRecordInfo = target.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__ ??= {
  3165. id: 0,
  3166. appIds: /* @__PURE__ */ new Set()
  3167. };
  3168. function onDevToolsClientConnected(fn) {
  3169. return new Promise((resolve) => {
  3170. if (devtoolsState.connected && devtoolsState.clientConnected) {
  3171. fn();
  3172. resolve();
  3173. return;
  3174. }
  3175. devtoolsContext.hooks.hook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, ({ state }) => {
  3176. if (state.connected && state.clientConnected) {
  3177. fn();
  3178. resolve();
  3179. }
  3180. });
  3181. });
  3182. }
  3183. function toggleHighPerfMode(state) {
  3184. devtoolsState.highPerfModeEnabled = state ?? !devtoolsState.highPerfModeEnabled;
  3185. if (!state && activeAppRecord.value) registerDevToolsPlugin(activeAppRecord.value.app);
  3186. }
  3187. function updateDevToolsClientDetected(params) {
  3188. devtoolsState.devtoolsClientDetected = {
  3189. ...devtoolsState.devtoolsClientDetected,
  3190. ...params
  3191. };
  3192. toggleHighPerfMode(!Object.values(devtoolsState.devtoolsClientDetected).some(Boolean));
  3193. }
  3194. target.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__ ??= updateDevToolsClientDetected;
  3195. var DoubleIndexedKV = class {
  3196. constructor() {
  3197. this.keyToValue = /* @__PURE__ */ new Map();
  3198. this.valueToKey = /* @__PURE__ */ new Map();
  3199. }
  3200. set(key, value) {
  3201. this.keyToValue.set(key, value);
  3202. this.valueToKey.set(value, key);
  3203. }
  3204. getByKey(key) {
  3205. return this.keyToValue.get(key);
  3206. }
  3207. getByValue(value) {
  3208. return this.valueToKey.get(value);
  3209. }
  3210. clear() {
  3211. this.keyToValue.clear();
  3212. this.valueToKey.clear();
  3213. }
  3214. };
  3215. var Registry = class {
  3216. constructor(generateIdentifier) {
  3217. this.generateIdentifier = generateIdentifier;
  3218. this.kv = new DoubleIndexedKV();
  3219. }
  3220. register(value, identifier) {
  3221. if (this.kv.getByValue(value)) return;
  3222. if (!identifier) identifier = this.generateIdentifier(value);
  3223. this.kv.set(identifier, value);
  3224. }
  3225. clear() {
  3226. this.kv.clear();
  3227. }
  3228. getIdentifier(value) {
  3229. return this.kv.getByValue(value);
  3230. }
  3231. getValue(identifier) {
  3232. return this.kv.getByKey(identifier);
  3233. }
  3234. };
  3235. var ClassRegistry = class extends Registry {
  3236. constructor() {
  3237. super((c) => c.name);
  3238. this.classToAllowedProps = /* @__PURE__ */ new Map();
  3239. }
  3240. register(value, options) {
  3241. if (typeof options === "object") {
  3242. if (options.allowProps) this.classToAllowedProps.set(value, options.allowProps);
  3243. super.register(value, options.identifier);
  3244. } else super.register(value, options);
  3245. }
  3246. getAllowedProps(value) {
  3247. return this.classToAllowedProps.get(value);
  3248. }
  3249. };
  3250. function valuesOfObj(record) {
  3251. if ("values" in Object) return Object.values(record);
  3252. const values = [];
  3253. for (const key in record) if (record.hasOwnProperty(key)) values.push(record[key]);
  3254. return values;
  3255. }
  3256. function find(record, predicate) {
  3257. const values = valuesOfObj(record);
  3258. if ("find" in values) return values.find(predicate);
  3259. const valuesNotNever = values;
  3260. for (let i = 0; i < valuesNotNever.length; i++) {
  3261. const value = valuesNotNever[i];
  3262. if (predicate(value)) return value;
  3263. }
  3264. }
  3265. function forEach(record, run) {
  3266. Object.entries(record).forEach(([key, value]) => run(value, key));
  3267. }
  3268. function includes(arr, value) {
  3269. return arr.indexOf(value) !== -1;
  3270. }
  3271. function findArr(record, predicate) {
  3272. for (let i = 0; i < record.length; i++) {
  3273. const value = record[i];
  3274. if (predicate(value)) return value;
  3275. }
  3276. }
  3277. var CustomTransformerRegistry = class {
  3278. constructor() {
  3279. this.transfomers = {};
  3280. }
  3281. register(transformer) {
  3282. this.transfomers[transformer.name] = transformer;
  3283. }
  3284. findApplicable(v) {
  3285. return find(this.transfomers, (transformer) => transformer.isApplicable(v));
  3286. }
  3287. findByName(name) {
  3288. return this.transfomers[name];
  3289. }
  3290. };
  3291. var getType$1 = (payload) => Object.prototype.toString.call(payload).slice(8, -1);
  3292. var isUndefined$1 = (payload) => typeof payload === "undefined";
  3293. var isNull$1 = (payload) => payload === null;
  3294. var isPlainObject$2 = (payload) => {
  3295. if (typeof payload !== "object" || payload === null) return false;
  3296. if (payload === Object.prototype) return false;
  3297. if (Object.getPrototypeOf(payload) === null) return true;
  3298. return Object.getPrototypeOf(payload) === Object.prototype;
  3299. };
  3300. var isEmptyObject = (payload) => isPlainObject$2(payload) && Object.keys(payload).length === 0;
  3301. var isArray$2 = (payload) => Array.isArray(payload);
  3302. var isString = (payload) => typeof payload === "string";
  3303. var isNumber = (payload) => typeof payload === "number" && !isNaN(payload);
  3304. var isBoolean = (payload) => typeof payload === "boolean";
  3305. var isRegExp = (payload) => payload instanceof RegExp;
  3306. var isMap = (payload) => payload instanceof Map;
  3307. var isSet = (payload) => payload instanceof Set;
  3308. var isSymbol = (payload) => getType$1(payload) === "Symbol";
  3309. var isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());
  3310. var isError = (payload) => payload instanceof Error;
  3311. var isNaNValue = (payload) => typeof payload === "number" && isNaN(payload);
  3312. var isPrimitive = (payload) => isBoolean(payload) || isNull$1(payload) || isUndefined$1(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);
  3313. var isBigint = (payload) => typeof payload === "bigint";
  3314. var isInfinite = (payload) => payload === Infinity || payload === -Infinity;
  3315. var isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
  3316. var isURL = (payload) => payload instanceof URL;
  3317. var escapeKey = (key) => key.replace(/\./g, "\\.");
  3318. var stringifyPath = (path) => path.map(String).map(escapeKey).join(".");
  3319. var parsePath = (string) => {
  3320. const result = [];
  3321. let segment = "";
  3322. for (let i = 0; i < string.length; i++) {
  3323. let char = string.charAt(i);
  3324. if (char === "\\" && string.charAt(i + 1) === ".") {
  3325. segment += ".";
  3326. i++;
  3327. continue;
  3328. }
  3329. if (char === ".") {
  3330. result.push(segment);
  3331. segment = "";
  3332. continue;
  3333. }
  3334. segment += char;
  3335. }
  3336. const lastSegment = segment;
  3337. result.push(lastSegment);
  3338. return result;
  3339. };
  3340. function simpleTransformation(isApplicable, annotation, transform, untransform) {
  3341. return {
  3342. isApplicable,
  3343. annotation,
  3344. transform,
  3345. untransform
  3346. };
  3347. }
  3348. var simpleRules = [
  3349. simpleTransformation(isUndefined$1, "undefined", () => null, () => void 0),
  3350. simpleTransformation(isBigint, "bigint", (v) => v.toString(), (v) => {
  3351. if (typeof BigInt !== "undefined") return BigInt(v);
  3352. console.error("Please add a BigInt polyfill.");
  3353. return v;
  3354. }),
  3355. simpleTransformation(isDate, "Date", (v) => v.toISOString(), (v) => new Date(v)),
  3356. simpleTransformation(isError, "Error", (v, superJson) => {
  3357. const baseError = {
  3358. name: v.name,
  3359. message: v.message
  3360. };
  3361. superJson.allowedErrorProps.forEach((prop) => {
  3362. baseError[prop] = v[prop];
  3363. });
  3364. return baseError;
  3365. }, (v, superJson) => {
  3366. const e = new Error(v.message);
  3367. e.name = v.name;
  3368. e.stack = v.stack;
  3369. superJson.allowedErrorProps.forEach((prop) => {
  3370. e[prop] = v[prop];
  3371. });
  3372. return e;
  3373. }),
  3374. simpleTransformation(isRegExp, "regexp", (v) => "" + v, (regex) => {
  3375. const body = regex.slice(1, regex.lastIndexOf("/"));
  3376. const flags = regex.slice(regex.lastIndexOf("/") + 1);
  3377. return new RegExp(body, flags);
  3378. }),
  3379. simpleTransformation(isSet, "set", (v) => [...v.values()], (v) => new Set(v)),
  3380. simpleTransformation(isMap, "map", (v) => [...v.entries()], (v) => new Map(v)),
  3381. simpleTransformation((v) => isNaNValue(v) || isInfinite(v), "number", (v) => {
  3382. if (isNaNValue(v)) return "NaN";
  3383. if (v > 0) return "Infinity";
  3384. else return "-Infinity";
  3385. }, Number),
  3386. simpleTransformation((v) => v === 0 && 1 / v === -Infinity, "number", () => {
  3387. return "-0";
  3388. }, Number),
  3389. simpleTransformation(isURL, "URL", (v) => v.toString(), (v) => new URL(v))
  3390. ];
  3391. function compositeTransformation(isApplicable, annotation, transform, untransform) {
  3392. return {
  3393. isApplicable,
  3394. annotation,
  3395. transform,
  3396. untransform
  3397. };
  3398. }
  3399. var symbolRule = compositeTransformation((s, superJson) => {
  3400. if (isSymbol(s)) return !!superJson.symbolRegistry.getIdentifier(s);
  3401. return false;
  3402. }, (s, superJson) => {
  3403. return ["symbol", superJson.symbolRegistry.getIdentifier(s)];
  3404. }, (v) => v.description, (_, a, superJson) => {
  3405. const value = superJson.symbolRegistry.getValue(a[1]);
  3406. if (!value) throw new Error("Trying to deserialize unknown symbol");
  3407. return value;
  3408. });
  3409. var constructorToName = [
  3410. Int8Array,
  3411. Uint8Array,
  3412. Int16Array,
  3413. Uint16Array,
  3414. Int32Array,
  3415. Uint32Array,
  3416. Float32Array,
  3417. Float64Array,
  3418. Uint8ClampedArray
  3419. ].reduce((obj, ctor) => {
  3420. obj[ctor.name] = ctor;
  3421. return obj;
  3422. }, {});
  3423. var typedArrayRule = compositeTransformation(isTypedArray, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => {
  3424. const ctor = constructorToName[a[1]];
  3425. if (!ctor) throw new Error("Trying to deserialize unknown typed array");
  3426. return new ctor(v);
  3427. });
  3428. function isInstanceOfRegisteredClass(potentialClass, superJson) {
  3429. if (potentialClass?.constructor) return !!superJson.classRegistry.getIdentifier(potentialClass.constructor);
  3430. return false;
  3431. }
  3432. var classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {
  3433. return ["class", superJson.classRegistry.getIdentifier(clazz.constructor)];
  3434. }, (clazz, superJson) => {
  3435. const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);
  3436. if (!allowedProps) return { ...clazz };
  3437. const result = {};
  3438. allowedProps.forEach((prop) => {
  3439. result[prop] = clazz[prop];
  3440. });
  3441. return result;
  3442. }, (v, a, superJson) => {
  3443. const clazz = superJson.classRegistry.getValue(a[1]);
  3444. if (!clazz) throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);
  3445. return Object.assign(Object.create(clazz.prototype), v);
  3446. });
  3447. var customRule = compositeTransformation((value, superJson) => {
  3448. return !!superJson.customTransformerRegistry.findApplicable(value);
  3449. }, (value, superJson) => {
  3450. return ["custom", superJson.customTransformerRegistry.findApplicable(value).name];
  3451. }, (value, superJson) => {
  3452. return superJson.customTransformerRegistry.findApplicable(value).serialize(value);
  3453. }, (v, a, superJson) => {
  3454. const transformer = superJson.customTransformerRegistry.findByName(a[1]);
  3455. if (!transformer) throw new Error("Trying to deserialize unknown custom value");
  3456. return transformer.deserialize(v);
  3457. });
  3458. var compositeRules = [
  3459. classRule,
  3460. symbolRule,
  3461. customRule,
  3462. typedArrayRule
  3463. ];
  3464. var transformValue = (value, superJson) => {
  3465. const applicableCompositeRule = findArr(compositeRules, (rule) => rule.isApplicable(value, superJson));
  3466. if (applicableCompositeRule) return {
  3467. value: applicableCompositeRule.transform(value, superJson),
  3468. type: applicableCompositeRule.annotation(value, superJson)
  3469. };
  3470. const applicableSimpleRule = findArr(simpleRules, (rule) => rule.isApplicable(value, superJson));
  3471. if (applicableSimpleRule) return {
  3472. value: applicableSimpleRule.transform(value, superJson),
  3473. type: applicableSimpleRule.annotation
  3474. };
  3475. };
  3476. var simpleRulesByAnnotation = {};
  3477. simpleRules.forEach((rule) => {
  3478. simpleRulesByAnnotation[rule.annotation] = rule;
  3479. });
  3480. var untransformValue = (json, type, superJson) => {
  3481. if (isArray$2(type)) switch (type[0]) {
  3482. case "symbol":
  3483. return symbolRule.untransform(json, type, superJson);
  3484. case "class":
  3485. return classRule.untransform(json, type, superJson);
  3486. case "custom":
  3487. return customRule.untransform(json, type, superJson);
  3488. case "typed-array":
  3489. return typedArrayRule.untransform(json, type, superJson);
  3490. default:
  3491. throw new Error("Unknown transformation: " + type);
  3492. }
  3493. else {
  3494. const transformation = simpleRulesByAnnotation[type];
  3495. if (!transformation) throw new Error("Unknown transformation: " + type);
  3496. return transformation.untransform(json, superJson);
  3497. }
  3498. };
  3499. var getNthKey = (value, n) => {
  3500. if (n > value.size) throw new Error("index out of bounds");
  3501. const keys = value.keys();
  3502. while (n > 0) {
  3503. keys.next();
  3504. n--;
  3505. }
  3506. return keys.next().value;
  3507. };
  3508. function validatePath(path) {
  3509. if (includes(path, "__proto__")) throw new Error("__proto__ is not allowed as a property");
  3510. if (includes(path, "prototype")) throw new Error("prototype is not allowed as a property");
  3511. if (includes(path, "constructor")) throw new Error("constructor is not allowed as a property");
  3512. }
  3513. var getDeep = (object, path) => {
  3514. validatePath(path);
  3515. for (let i = 0; i < path.length; i++) {
  3516. const key = path[i];
  3517. if (isSet(object)) object = getNthKey(object, +key);
  3518. else if (isMap(object)) {
  3519. const row = +key;
  3520. const type = +path[++i] === 0 ? "key" : "value";
  3521. const keyOfRow = getNthKey(object, row);
  3522. switch (type) {
  3523. case "key":
  3524. object = keyOfRow;
  3525. break;
  3526. case "value":
  3527. object = object.get(keyOfRow);
  3528. break;
  3529. }
  3530. } else object = object[key];
  3531. }
  3532. return object;
  3533. };
  3534. var setDeep = (object, path, mapper) => {
  3535. validatePath(path);
  3536. if (path.length === 0) return mapper(object);
  3537. let parent = object;
  3538. for (let i = 0; i < path.length - 1; i++) {
  3539. const key = path[i];
  3540. if (isArray$2(parent)) {
  3541. const index = +key;
  3542. parent = parent[index];
  3543. } else if (isPlainObject$2(parent)) parent = parent[key];
  3544. else if (isSet(parent)) {
  3545. const row = +key;
  3546. parent = getNthKey(parent, row);
  3547. } else if (isMap(parent)) {
  3548. if (i === path.length - 2) break;
  3549. const row = +key;
  3550. const type = +path[++i] === 0 ? "key" : "value";
  3551. const keyOfRow = getNthKey(parent, row);
  3552. switch (type) {
  3553. case "key":
  3554. parent = keyOfRow;
  3555. break;
  3556. case "value":
  3557. parent = parent.get(keyOfRow);
  3558. break;
  3559. }
  3560. }
  3561. }
  3562. const lastKey = path[path.length - 1];
  3563. if (isArray$2(parent)) parent[+lastKey] = mapper(parent[+lastKey]);
  3564. else if (isPlainObject$2(parent)) parent[lastKey] = mapper(parent[lastKey]);
  3565. if (isSet(parent)) {
  3566. const oldValue = getNthKey(parent, +lastKey);
  3567. const newValue = mapper(oldValue);
  3568. if (oldValue !== newValue) {
  3569. parent.delete(oldValue);
  3570. parent.add(newValue);
  3571. }
  3572. }
  3573. if (isMap(parent)) {
  3574. const row = +path[path.length - 2];
  3575. const keyToRow = getNthKey(parent, row);
  3576. switch (+lastKey === 0 ? "key" : "value") {
  3577. case "key": {
  3578. const newKey = mapper(keyToRow);
  3579. parent.set(newKey, parent.get(keyToRow));
  3580. if (newKey !== keyToRow) parent.delete(keyToRow);
  3581. break;
  3582. }
  3583. case "value":
  3584. parent.set(keyToRow, mapper(parent.get(keyToRow)));
  3585. break;
  3586. }
  3587. }
  3588. return object;
  3589. };
  3590. function traverse(tree, walker$1, origin = []) {
  3591. if (!tree) return;
  3592. if (!isArray$2(tree)) {
  3593. forEach(tree, (subtree, key) => traverse(subtree, walker$1, [...origin, ...parsePath(key)]));
  3594. return;
  3595. }
  3596. const [nodeValue, children] = tree;
  3597. if (children) forEach(children, (child, key) => {
  3598. traverse(child, walker$1, [...origin, ...parsePath(key)]);
  3599. });
  3600. walker$1(nodeValue, origin);
  3601. }
  3602. function applyValueAnnotations(plain, annotations, superJson) {
  3603. traverse(annotations, (type, path) => {
  3604. plain = setDeep(plain, path, (v) => untransformValue(v, type, superJson));
  3605. });
  3606. return plain;
  3607. }
  3608. function applyReferentialEqualityAnnotations(plain, annotations) {
  3609. function apply(identicalPaths, path) {
  3610. const object = getDeep(plain, parsePath(path));
  3611. identicalPaths.map(parsePath).forEach((identicalObjectPath) => {
  3612. plain = setDeep(plain, identicalObjectPath, () => object);
  3613. });
  3614. }
  3615. if (isArray$2(annotations)) {
  3616. const [root, other] = annotations;
  3617. root.forEach((identicalPath) => {
  3618. plain = setDeep(plain, parsePath(identicalPath), () => plain);
  3619. });
  3620. if (other) forEach(other, apply);
  3621. } else forEach(annotations, apply);
  3622. return plain;
  3623. }
  3624. var isDeep = (object, superJson) => isPlainObject$2(object) || isArray$2(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson);
  3625. function addIdentity(object, path, identities) {
  3626. const existingSet = identities.get(object);
  3627. if (existingSet) existingSet.push(path);
  3628. else identities.set(object, [path]);
  3629. }
  3630. function generateReferentialEqualityAnnotations(identitites, dedupe) {
  3631. const result = {};
  3632. let rootEqualityPaths = void 0;
  3633. identitites.forEach((paths) => {
  3634. if (paths.length <= 1) return;
  3635. if (!dedupe) paths = paths.map((path) => path.map(String)).sort((a, b) => a.length - b.length);
  3636. const [representativePath, ...identicalPaths] = paths;
  3637. if (representativePath.length === 0) rootEqualityPaths = identicalPaths.map(stringifyPath);
  3638. else result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);
  3639. });
  3640. if (rootEqualityPaths) if (isEmptyObject(result)) return [rootEqualityPaths];
  3641. else return [rootEqualityPaths, result];
  3642. else return isEmptyObject(result) ? void 0 : result;
  3643. }
  3644. var walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = /* @__PURE__ */ new Map()) => {
  3645. const primitive = isPrimitive(object);
  3646. if (!primitive) {
  3647. addIdentity(object, path, identities);
  3648. const seen = seenObjects.get(object);
  3649. if (seen) return dedupe ? { transformedValue: null } : seen;
  3650. }
  3651. if (!isDeep(object, superJson)) {
  3652. const transformed$1 = transformValue(object, superJson);
  3653. const result$1 = transformed$1 ? {
  3654. transformedValue: transformed$1.value,
  3655. annotations: [transformed$1.type]
  3656. } : { transformedValue: object };
  3657. if (!primitive) seenObjects.set(object, result$1);
  3658. return result$1;
  3659. }
  3660. if (includes(objectsInThisPath, object)) return { transformedValue: null };
  3661. const transformationResult = transformValue(object, superJson);
  3662. const transformed = transformationResult?.value ?? object;
  3663. const transformedValue = isArray$2(transformed) ? [] : {};
  3664. const innerAnnotations = {};
  3665. forEach(transformed, (value, index) => {
  3666. if (index === "__proto__" || index === "constructor" || index === "prototype") throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);
  3667. const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);
  3668. transformedValue[index] = recursiveResult.transformedValue;
  3669. if (isArray$2(recursiveResult.annotations)) innerAnnotations[index] = recursiveResult.annotations;
  3670. else if (isPlainObject$2(recursiveResult.annotations)) forEach(recursiveResult.annotations, (tree, key) => {
  3671. innerAnnotations[escapeKey(index) + "." + key] = tree;
  3672. });
  3673. });
  3674. const result = isEmptyObject(innerAnnotations) ? {
  3675. transformedValue,
  3676. annotations: !!transformationResult ? [transformationResult.type] : void 0
  3677. } : {
  3678. transformedValue,
  3679. annotations: !!transformationResult ? [transformationResult.type, innerAnnotations] : innerAnnotations
  3680. };
  3681. if (!primitive) seenObjects.set(object, result);
  3682. return result;
  3683. };
  3684. function getType(payload) {
  3685. return Object.prototype.toString.call(payload).slice(8, -1);
  3686. }
  3687. function isArray$1(payload) {
  3688. return getType(payload) === "Array";
  3689. }
  3690. function isPlainObject$1(payload) {
  3691. if (getType(payload) !== "Object") return false;
  3692. const prototype = Object.getPrototypeOf(payload);
  3693. return !!prototype && prototype.constructor === Object && prototype === Object.prototype;
  3694. }
  3695. function isNull(payload) {
  3696. return getType(payload) === "Null";
  3697. }
  3698. function isOneOf(a, b, c, d, e) {
  3699. return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);
  3700. }
  3701. function isUndefined(payload) {
  3702. return getType(payload) === "Undefined";
  3703. }
  3704. var isNullOrUndefined = isOneOf(isNull, isUndefined);
  3705. function assignProp(carry, key, newVal, originalObject, includeNonenumerable) {
  3706. const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable";
  3707. if (propType === "enumerable") carry[key] = newVal;
  3708. if (includeNonenumerable && propType === "nonenumerable") Object.defineProperty(carry, key, {
  3709. value: newVal,
  3710. enumerable: false,
  3711. writable: true,
  3712. configurable: true
  3713. });
  3714. }
  3715. function copy(target$1, options = {}) {
  3716. if (isArray$1(target$1)) return target$1.map((item) => copy(item, options));
  3717. if (!isPlainObject$1(target$1)) return target$1;
  3718. const props = Object.getOwnPropertyNames(target$1);
  3719. const symbols = Object.getOwnPropertySymbols(target$1);
  3720. return [...props, ...symbols].reduce((carry, key) => {
  3721. if (isArray$1(options.props) && !options.props.includes(key)) return carry;
  3722. const val = target$1[key];
  3723. assignProp(carry, key, copy(val, options), target$1, options.nonenumerable);
  3724. return carry;
  3725. }, {});
  3726. }
  3727. var SuperJSON = class {
  3728. /**
  3729. * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.
  3730. */
  3731. constructor({ dedupe = false } = {}) {
  3732. this.classRegistry = new ClassRegistry();
  3733. this.symbolRegistry = new Registry((s) => s.description ?? "");
  3734. this.customTransformerRegistry = new CustomTransformerRegistry();
  3735. this.allowedErrorProps = [];
  3736. this.dedupe = dedupe;
  3737. }
  3738. serialize(object) {
  3739. const identities = /* @__PURE__ */ new Map();
  3740. const output = walker(object, identities, this, this.dedupe);
  3741. const res = { json: output.transformedValue };
  3742. if (output.annotations) res.meta = {
  3743. ...res.meta,
  3744. values: output.annotations
  3745. };
  3746. const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);
  3747. if (equalityAnnotations) res.meta = {
  3748. ...res.meta,
  3749. referentialEqualities: equalityAnnotations
  3750. };
  3751. return res;
  3752. }
  3753. deserialize(payload) {
  3754. const { json, meta } = payload;
  3755. let result = copy(json);
  3756. if (meta?.values) result = applyValueAnnotations(result, meta.values, this);
  3757. if (meta?.referentialEqualities) result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);
  3758. return result;
  3759. }
  3760. stringify(object) {
  3761. return JSON.stringify(this.serialize(object));
  3762. }
  3763. parse(string) {
  3764. return this.deserialize(JSON.parse(string));
  3765. }
  3766. registerClass(v, options) {
  3767. this.classRegistry.register(v, options);
  3768. }
  3769. registerSymbol(v, identifier) {
  3770. this.symbolRegistry.register(v, identifier);
  3771. }
  3772. registerCustom(transformer, name) {
  3773. this.customTransformerRegistry.register({
  3774. name,
  3775. ...transformer
  3776. });
  3777. }
  3778. allowErrorProps(...props) {
  3779. this.allowedErrorProps.push(...props);
  3780. }
  3781. };
  3782. SuperJSON.defaultInstance = new SuperJSON();
  3783. SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);
  3784. SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);
  3785. SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);
  3786. SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);
  3787. SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);
  3788. SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);
  3789. SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);
  3790. SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);
  3791. var serialize = SuperJSON.serialize;
  3792. var deserialize = SuperJSON.deserialize;
  3793. var stringify$1 = SuperJSON.stringify;
  3794. var parse$1 = SuperJSON.parse;
  3795. var registerClass = SuperJSON.registerClass;
  3796. var registerCustom = SuperJSON.registerCustom;
  3797. var registerSymbol = SuperJSON.registerSymbol;
  3798. var allowErrorProps = SuperJSON.allowErrorProps;
  3799. target.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__ ??= [];
  3800. target.__VUE_DEVTOOLS_KIT_RPC_CLIENT__ ??= null;
  3801. target.__VUE_DEVTOOLS_KIT_RPC_SERVER__ ??= null;
  3802. target.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__ ??= null;
  3803. target.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__ ??= null;
  3804. target.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__ ??= null;
  3805. var MAX_SERIALIZED_SIZE = 2 * 1024 * 1024;
  3806. export {
  3807. addCustomCommand,
  3808. addCustomTab,
  3809. onDevToolsClientConnected,
  3810. onDevToolsConnected,
  3811. removeCustomCommand,
  3812. setupDevToolsPlugin,
  3813. setupDevToolsPlugin as setupDevtoolsPlugin
  3814. };
  3815. //# sourceMappingURL=@vue_devtools-api.js.map