vitepress___@vue_devtools-api.js 116 KB

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