123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539 |
- import {
- setupDevtoolsPlugin
- } from "/node_modules/.vite/deps/chunk-5OBJFL24.js?v=9548b9c3";
- import {
- computed,
- effectScope,
- getCurrentInstance,
- getCurrentScope,
- hasInjectionContext,
- inject,
- isReactive,
- isRef,
- markRaw,
- nextTick,
- onScopeDispose,
- reactive,
- ref,
- toRaw,
- toRef,
- toRefs,
- unref,
- watch
- } from "/node_modules/.vite/deps/chunk-LJEY6MVM.js?v=9548b9c3";
- import "/node_modules/.vite/deps/chunk-WQG2LZMB.js?v=9548b9c3";
- // node_modules/vue-demi/lib/index.mjs
- var isVue2 = false;
- function set(target, key, val) {
- if (Array.isArray(target)) {
- target.length = Math.max(target.length, key);
- target.splice(key, 1, val);
- return val;
- }
- target[key] = val;
- return val;
- }
- function del(target, key) {
- if (Array.isArray(target)) {
- target.splice(key, 1);
- return;
- }
- delete target[key];
- }
- // node_modules/pinia/dist/pinia.mjs
- var activePinia;
- var setActivePinia = (pinia) => activePinia = pinia;
- var getActivePinia = () => hasInjectionContext() && inject(piniaSymbol) || activePinia;
- var piniaSymbol = true ? Symbol("pinia") : (
- /* istanbul ignore next */
- Symbol()
- );
- function isPlainObject(o) {
- return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function";
- }
- var MutationType;
- (function(MutationType2) {
- MutationType2["direct"] = "direct";
- MutationType2["patchObject"] = "patch object";
- MutationType2["patchFunction"] = "patch function";
- })(MutationType || (MutationType = {}));
- var IS_CLIENT = typeof window !== "undefined";
- var USE_DEVTOOLS = IS_CLIENT;
- var _global = (() => typeof window === "object" && window.window === window ? window : typeof self === "object" && self.self === self ? self : typeof global === "object" && global.global === global ? global : typeof globalThis === "object" ? globalThis : { HTMLElement: null })();
- function bom(blob, { autoBom = false } = {}) {
- if (autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
- return new Blob([String.fromCharCode(65279), blob], { type: blob.type });
- }
- return blob;
- }
- function download(url, name, opts) {
- const xhr = new XMLHttpRequest();
- xhr.open("GET", url);
- xhr.responseType = "blob";
- xhr.onload = function() {
- saveAs(xhr.response, name, opts);
- };
- xhr.onerror = function() {
- console.error("could not download file");
- };
- xhr.send();
- }
- function corsEnabled(url) {
- const xhr = new XMLHttpRequest();
- xhr.open("HEAD", url, false);
- try {
- xhr.send();
- } catch (e) {
- }
- return xhr.status >= 200 && xhr.status <= 299;
- }
- function click(node) {
- try {
- node.dispatchEvent(new MouseEvent("click"));
- } catch (e) {
- const evt = document.createEvent("MouseEvents");
- evt.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
- node.dispatchEvent(evt);
- }
- }
- var _navigator = typeof navigator === "object" ? navigator : { userAgent: "" };
- var isMacOSWebView = (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))();
- var saveAs = !IS_CLIENT ? () => {
- } : (
- // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program
- typeof HTMLAnchorElement !== "undefined" && "download" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : (
- // Use msSaveOrOpenBlob as a second approach
- "msSaveOrOpenBlob" in _navigator ? msSaveAs : (
- // Fallback to using FileReader and a popup
- fileSaverSaveAs
- )
- )
- );
- function downloadSaveAs(blob, name = "download", opts) {
- const a = document.createElement("a");
- a.download = name;
- a.rel = "noopener";
- if (typeof blob === "string") {
- a.href = blob;
- if (a.origin !== location.origin) {
- if (corsEnabled(a.href)) {
- download(blob, name, opts);
- } else {
- a.target = "_blank";
- click(a);
- }
- } else {
- click(a);
- }
- } else {
- a.href = URL.createObjectURL(blob);
- setTimeout(function() {
- URL.revokeObjectURL(a.href);
- }, 4e4);
- setTimeout(function() {
- click(a);
- }, 0);
- }
- }
- function msSaveAs(blob, name = "download", opts) {
- if (typeof blob === "string") {
- if (corsEnabled(blob)) {
- download(blob, name, opts);
- } else {
- const a = document.createElement("a");
- a.href = blob;
- a.target = "_blank";
- setTimeout(function() {
- click(a);
- });
- }
- } else {
- navigator.msSaveOrOpenBlob(bom(blob, opts), name);
- }
- }
- function fileSaverSaveAs(blob, name, opts, popup) {
- popup = popup || open("", "_blank");
- if (popup) {
- popup.document.title = popup.document.body.innerText = "downloading...";
- }
- if (typeof blob === "string")
- return download(blob, name, opts);
- const force = blob.type === "application/octet-stream";
- const isSafari = /constructor/i.test(String(_global.HTMLElement)) || "safari" in _global;
- const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
- if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== "undefined") {
- const reader = new FileReader();
- reader.onloadend = function() {
- let url = reader.result;
- if (typeof url !== "string") {
- popup = null;
- throw new Error("Wrong reader.result type");
- }
- url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, "data:attachment/file;");
- if (popup) {
- popup.location.href = url;
- } else {
- location.assign(url);
- }
- popup = null;
- };
- reader.readAsDataURL(blob);
- } else {
- const url = URL.createObjectURL(blob);
- if (popup)
- popup.location.assign(url);
- else
- location.href = url;
- popup = null;
- setTimeout(function() {
- URL.revokeObjectURL(url);
- }, 4e4);
- }
- }
- function toastMessage(message, type) {
- const piniaMessage = "🍍 " + message;
- if (typeof __VUE_DEVTOOLS_TOAST__ === "function") {
- __VUE_DEVTOOLS_TOAST__(piniaMessage, type);
- } else if (type === "error") {
- console.error(piniaMessage);
- } else if (type === "warn") {
- console.warn(piniaMessage);
- } else {
- console.log(piniaMessage);
- }
- }
- function isPinia(o) {
- return "_a" in o && "install" in o;
- }
- function checkClipboardAccess() {
- if (!("clipboard" in navigator)) {
- toastMessage(`Your browser doesn't support the Clipboard API`, "error");
- return true;
- }
- }
- function checkNotFocusedError(error) {
- if (error instanceof Error && error.message.toLowerCase().includes("document is not focused")) {
- toastMessage('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', "warn");
- return true;
- }
- return false;
- }
- async function actionGlobalCopyState(pinia) {
- if (checkClipboardAccess())
- return;
- try {
- await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));
- toastMessage("Global state copied to clipboard.");
- } catch (error) {
- if (checkNotFocusedError(error))
- return;
- toastMessage(`Failed to serialize the state. Check the console for more details.`, "error");
- console.error(error);
- }
- }
- async function actionGlobalPasteState(pinia) {
- if (checkClipboardAccess())
- return;
- try {
- loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));
- toastMessage("Global state pasted from clipboard.");
- } catch (error) {
- if (checkNotFocusedError(error))
- return;
- toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, "error");
- console.error(error);
- }
- }
- async function actionGlobalSaveState(pinia) {
- try {
- saveAs(new Blob([JSON.stringify(pinia.state.value)], {
- type: "text/plain;charset=utf-8"
- }), "pinia-state.json");
- } catch (error) {
- toastMessage(`Failed to export the state as JSON. Check the console for more details.`, "error");
- console.error(error);
- }
- }
- var fileInput;
- function getFileOpener() {
- if (!fileInput) {
- fileInput = document.createElement("input");
- fileInput.type = "file";
- fileInput.accept = ".json";
- }
- function openFile() {
- return new Promise((resolve, reject) => {
- fileInput.onchange = async () => {
- const files = fileInput.files;
- if (!files)
- return resolve(null);
- const file = files.item(0);
- if (!file)
- return resolve(null);
- return resolve({ text: await file.text(), file });
- };
- fileInput.oncancel = () => resolve(null);
- fileInput.onerror = reject;
- fileInput.click();
- });
- }
- return openFile;
- }
- async function actionGlobalOpenStateFile(pinia) {
- try {
- const open2 = getFileOpener();
- const result = await open2();
- if (!result)
- return;
- const { text, file } = result;
- loadStoresState(pinia, JSON.parse(text));
- toastMessage(`Global state imported from "${file.name}".`);
- } catch (error) {
- toastMessage(`Failed to import the state from JSON. Check the console for more details.`, "error");
- console.error(error);
- }
- }
- function loadStoresState(pinia, state) {
- for (const key in state) {
- const storeState = pinia.state.value[key];
- if (storeState) {
- Object.assign(storeState, state[key]);
- } else {
- pinia.state.value[key] = state[key];
- }
- }
- }
- function formatDisplay(display) {
- return {
- _custom: {
- display
- }
- };
- }
- var PINIA_ROOT_LABEL = "🍍 Pinia (root)";
- var PINIA_ROOT_ID = "_root";
- function formatStoreForInspectorTree(store) {
- return isPinia(store) ? {
- id: PINIA_ROOT_ID,
- label: PINIA_ROOT_LABEL
- } : {
- id: store.$id,
- label: store.$id
- };
- }
- function formatStoreForInspectorState(store) {
- if (isPinia(store)) {
- const storeNames = Array.from(store._s.keys());
- const storeMap = store._s;
- const state2 = {
- state: storeNames.map((storeId) => ({
- editable: true,
- key: storeId,
- value: store.state.value[storeId]
- })),
- getters: storeNames.filter((id) => storeMap.get(id)._getters).map((id) => {
- const store2 = storeMap.get(id);
- return {
- editable: false,
- key: id,
- value: store2._getters.reduce((getters, key) => {
- getters[key] = store2[key];
- return getters;
- }, {})
- };
- })
- };
- return state2;
- }
- const state = {
- state: Object.keys(store.$state).map((key) => ({
- editable: true,
- key,
- value: store.$state[key]
- }))
- };
- if (store._getters && store._getters.length) {
- state.getters = store._getters.map((getterName) => ({
- editable: false,
- key: getterName,
- value: store[getterName]
- }));
- }
- if (store._customProperties.size) {
- state.customProperties = Array.from(store._customProperties).map((key) => ({
- editable: true,
- key,
- value: store[key]
- }));
- }
- return state;
- }
- function formatEventData(events) {
- if (!events)
- return {};
- if (Array.isArray(events)) {
- return events.reduce((data, event) => {
- data.keys.push(event.key);
- data.operations.push(event.type);
- data.oldValue[event.key] = event.oldValue;
- data.newValue[event.key] = event.newValue;
- return data;
- }, {
- oldValue: {},
- keys: [],
- operations: [],
- newValue: {}
- });
- } else {
- return {
- operation: formatDisplay(events.type),
- key: formatDisplay(events.key),
- oldValue: events.oldValue,
- newValue: events.newValue
- };
- }
- }
- function formatMutationType(type) {
- switch (type) {
- case MutationType.direct:
- return "mutation";
- case MutationType.patchFunction:
- return "$patch";
- case MutationType.patchObject:
- return "$patch";
- default:
- return "unknown";
- }
- }
- var isTimelineActive = true;
- var componentStateTypes = [];
- var MUTATIONS_LAYER_ID = "pinia:mutations";
- var INSPECTOR_ID = "pinia";
- var { assign: assign$1 } = Object;
- var getStoreType = (id) => "🍍 " + id;
- function registerPiniaDevtools(app, pinia) {
- setupDevtoolsPlugin({
- id: "dev.esm.pinia",
- label: "Pinia 🍍",
- logo: "https://pinia.vuejs.org/logo.svg",
- packageName: "pinia",
- homepage: "https://pinia.vuejs.org",
- componentStateTypes,
- app
- }, (api) => {
- if (typeof api.now !== "function") {
- toastMessage("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.");
- }
- api.addTimelineLayer({
- id: MUTATIONS_LAYER_ID,
- label: `Pinia 🍍`,
- color: 15064968
- });
- api.addInspector({
- id: INSPECTOR_ID,
- label: "Pinia 🍍",
- icon: "storage",
- treeFilterPlaceholder: "Search stores",
- actions: [
- {
- icon: "content_copy",
- action: () => {
- actionGlobalCopyState(pinia);
- },
- tooltip: "Serialize and copy the state"
- },
- {
- icon: "content_paste",
- action: async () => {
- await actionGlobalPasteState(pinia);
- api.sendInspectorTree(INSPECTOR_ID);
- api.sendInspectorState(INSPECTOR_ID);
- },
- tooltip: "Replace the state with the content of your clipboard"
- },
- {
- icon: "save",
- action: () => {
- actionGlobalSaveState(pinia);
- },
- tooltip: "Save the state as a JSON file"
- },
- {
- icon: "folder_open",
- action: async () => {
- await actionGlobalOpenStateFile(pinia);
- api.sendInspectorTree(INSPECTOR_ID);
- api.sendInspectorState(INSPECTOR_ID);
- },
- tooltip: "Import the state from a JSON file"
- }
- ],
- nodeActions: [
- {
- icon: "restore",
- tooltip: 'Reset the state (with "$reset")',
- action: (nodeId) => {
- const store = pinia._s.get(nodeId);
- if (!store) {
- toastMessage(`Cannot reset "${nodeId}" store because it wasn't found.`, "warn");
- } else if (typeof store.$reset !== "function") {
- toastMessage(`Cannot reset "${nodeId}" store because it doesn't have a "$reset" method implemented.`, "warn");
- } else {
- store.$reset();
- toastMessage(`Store "${nodeId}" reset.`);
- }
- }
- }
- ]
- });
- api.on.inspectComponent((payload, ctx) => {
- const proxy = payload.componentInstance && payload.componentInstance.proxy;
- if (proxy && proxy._pStores) {
- const piniaStores = payload.componentInstance.proxy._pStores;
- Object.values(piniaStores).forEach((store) => {
- payload.instanceData.state.push({
- type: getStoreType(store.$id),
- key: "state",
- editable: true,
- value: store._isOptionsAPI ? {
- _custom: {
- value: toRaw(store.$state),
- actions: [
- {
- icon: "restore",
- tooltip: "Reset the state of this store",
- action: () => store.$reset()
- }
- ]
- }
- } : (
- // NOTE: workaround to unwrap transferred refs
- Object.keys(store.$state).reduce((state, key) => {
- state[key] = store.$state[key];
- return state;
- }, {})
- )
- });
- if (store._getters && store._getters.length) {
- payload.instanceData.state.push({
- type: getStoreType(store.$id),
- key: "getters",
- editable: false,
- value: store._getters.reduce((getters, key) => {
- try {
- getters[key] = store[key];
- } catch (error) {
- getters[key] = error;
- }
- return getters;
- }, {})
- });
- }
- });
- }
- });
- api.on.getInspectorTree((payload) => {
- if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
- let stores = [pinia];
- stores = stores.concat(Array.from(pinia._s.values()));
- payload.rootNodes = (payload.filter ? stores.filter((store) => "$id" in store ? store.$id.toLowerCase().includes(payload.filter.toLowerCase()) : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase())) : stores).map(formatStoreForInspectorTree);
- }
- });
- api.on.getInspectorState((payload) => {
- if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
- const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia : pinia._s.get(payload.nodeId);
- if (!inspectedStore) {
- return;
- }
- if (inspectedStore) {
- payload.state = formatStoreForInspectorState(inspectedStore);
- }
- }
- });
- api.on.editInspectorState((payload, ctx) => {
- if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
- const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia : pinia._s.get(payload.nodeId);
- if (!inspectedStore) {
- return toastMessage(`store "${payload.nodeId}" not found`, "error");
- }
- const { path } = payload;
- if (!isPinia(inspectedStore)) {
- if (path.length !== 1 || !inspectedStore._customProperties.has(path[0]) || path[0] in inspectedStore.$state) {
- path.unshift("$state");
- }
- } else {
- path.unshift("state");
- }
- isTimelineActive = false;
- payload.set(inspectedStore, path, payload.state.value);
- isTimelineActive = true;
- }
- });
- api.on.editComponentState((payload) => {
- if (payload.type.startsWith("🍍")) {
- const storeId = payload.type.replace(/^🍍\s*/, "");
- const store = pinia._s.get(storeId);
- if (!store) {
- return toastMessage(`store "${storeId}" not found`, "error");
- }
- const { path } = payload;
- if (path[0] !== "state") {
- return toastMessage(`Invalid path for store "${storeId}":
- ${path}
- Only state can be modified.`);
- }
- path[0] = "$state";
- isTimelineActive = false;
- payload.set(store, path, payload.state.value);
- isTimelineActive = true;
- }
- });
- });
- }
- function addStoreToDevtools(app, store) {
- if (!componentStateTypes.includes(getStoreType(store.$id))) {
- componentStateTypes.push(getStoreType(store.$id));
- }
- setupDevtoolsPlugin({
- id: "dev.esm.pinia",
- label: "Pinia 🍍",
- logo: "https://pinia.vuejs.org/logo.svg",
- packageName: "pinia",
- homepage: "https://pinia.vuejs.org",
- componentStateTypes,
- app,
- settings: {
- logStoreChanges: {
- label: "Notify about new/deleted stores",
- type: "boolean",
- defaultValue: true
- }
- // useEmojis: {
- // label: 'Use emojis in messages ⚡️',
- // type: 'boolean',
- // defaultValue: true,
- // },
- }
- }, (api) => {
- const now = typeof api.now === "function" ? api.now.bind(api) : Date.now;
- store.$onAction(({ after, onError, name, args }) => {
- const groupId = runningActionId++;
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: {
- time: now(),
- title: "🛫 " + name,
- subtitle: "start",
- data: {
- store: formatDisplay(store.$id),
- action: formatDisplay(name),
- args
- },
- groupId
- }
- });
- after((result) => {
- activeAction = void 0;
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: {
- time: now(),
- title: "🛬 " + name,
- subtitle: "end",
- data: {
- store: formatDisplay(store.$id),
- action: formatDisplay(name),
- args,
- result
- },
- groupId
- }
- });
- });
- onError((error) => {
- activeAction = void 0;
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: {
- time: now(),
- logType: "error",
- title: "💥 " + name,
- subtitle: "end",
- data: {
- store: formatDisplay(store.$id),
- action: formatDisplay(name),
- args,
- error
- },
- groupId
- }
- });
- });
- }, true);
- store._customProperties.forEach((name) => {
- watch(() => unref(store[name]), (newValue, oldValue) => {
- api.notifyComponentUpdate();
- api.sendInspectorState(INSPECTOR_ID);
- if (isTimelineActive) {
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: {
- time: now(),
- title: "Change",
- subtitle: name,
- data: {
- newValue,
- oldValue
- },
- groupId: activeAction
- }
- });
- }
- }, { deep: true });
- });
- store.$subscribe(({ events, type }, state) => {
- api.notifyComponentUpdate();
- api.sendInspectorState(INSPECTOR_ID);
- if (!isTimelineActive)
- return;
- const eventData = {
- time: now(),
- title: formatMutationType(type),
- data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),
- groupId: activeAction
- };
- if (type === MutationType.patchFunction) {
- eventData.subtitle = "⤵️";
- } else if (type === MutationType.patchObject) {
- eventData.subtitle = "🧩";
- } else if (events && !Array.isArray(events)) {
- eventData.subtitle = events.type;
- }
- if (events) {
- eventData.data["rawEvent(s)"] = {
- _custom: {
- display: "DebuggerEvent",
- type: "object",
- tooltip: "raw DebuggerEvent[]",
- value: events
- }
- };
- }
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: eventData
- });
- }, { detached: true, flush: "sync" });
- const hotUpdate = store._hotUpdate;
- store._hotUpdate = markRaw((newStore) => {
- hotUpdate(newStore);
- api.addTimelineEvent({
- layerId: MUTATIONS_LAYER_ID,
- event: {
- time: now(),
- title: "🔥 " + store.$id,
- subtitle: "HMR update",
- data: {
- store: formatDisplay(store.$id),
- info: formatDisplay(`HMR update`)
- }
- }
- });
- api.notifyComponentUpdate();
- api.sendInspectorTree(INSPECTOR_ID);
- api.sendInspectorState(INSPECTOR_ID);
- });
- const { $dispose } = store;
- store.$dispose = () => {
- $dispose();
- api.notifyComponentUpdate();
- api.sendInspectorTree(INSPECTOR_ID);
- api.sendInspectorState(INSPECTOR_ID);
- api.getSettings().logStoreChanges && toastMessage(`Disposed "${store.$id}" store 🗑`);
- };
- api.notifyComponentUpdate();
- api.sendInspectorTree(INSPECTOR_ID);
- api.sendInspectorState(INSPECTOR_ID);
- api.getSettings().logStoreChanges && toastMessage(`"${store.$id}" store installed 🆕`);
- });
- }
- var runningActionId = 0;
- var activeAction;
- function patchActionForGrouping(store, actionNames, wrapWithProxy) {
- const actions = actionNames.reduce((storeActions, actionName) => {
- storeActions[actionName] = toRaw(store)[actionName];
- return storeActions;
- }, {});
- for (const actionName in actions) {
- store[actionName] = function() {
- const _actionId = runningActionId;
- const trackedStore = wrapWithProxy ? new Proxy(store, {
- get(...args) {
- activeAction = _actionId;
- return Reflect.get(...args);
- },
- set(...args) {
- activeAction = _actionId;
- return Reflect.set(...args);
- }
- }) : store;
- activeAction = _actionId;
- const retValue = actions[actionName].apply(trackedStore, arguments);
- activeAction = void 0;
- return retValue;
- };
- }
- }
- function devtoolsPlugin({ app, store, options }) {
- if (store.$id.startsWith("__hot:")) {
- return;
- }
- store._isOptionsAPI = !!options.state;
- patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);
- const originalHotUpdate = store._hotUpdate;
- toRaw(store)._hotUpdate = function(newStore) {
- originalHotUpdate.apply(this, arguments);
- patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);
- };
- addStoreToDevtools(
- app,
- // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?
- store
- );
- }
- function createPinia() {
- const scope = effectScope(true);
- const state = scope.run(() => ref({}));
- let _p = [];
- let toBeInstalled = [];
- const pinia = markRaw({
- install(app) {
- setActivePinia(pinia);
- if (!isVue2) {
- pinia._a = app;
- app.provide(piniaSymbol, pinia);
- app.config.globalProperties.$pinia = pinia;
- if (USE_DEVTOOLS) {
- registerPiniaDevtools(app, pinia);
- }
- toBeInstalled.forEach((plugin) => _p.push(plugin));
- toBeInstalled = [];
- }
- },
- use(plugin) {
- if (!this._a && !isVue2) {
- toBeInstalled.push(plugin);
- } else {
- _p.push(plugin);
- }
- return this;
- },
- _p,
- // it's actually undefined here
- // @ts-expect-error
- _a: null,
- _e: scope,
- _s: /* @__PURE__ */ new Map(),
- state
- });
- if (USE_DEVTOOLS && typeof Proxy !== "undefined") {
- pinia.use(devtoolsPlugin);
- }
- return pinia;
- }
- var isUseStore = (fn) => {
- return typeof fn === "function" && typeof fn.$id === "string";
- };
- function patchObject(newState, oldState) {
- for (const key in oldState) {
- const subPatch = oldState[key];
- if (!(key in newState)) {
- continue;
- }
- const targetValue = newState[key];
- if (isPlainObject(targetValue) && isPlainObject(subPatch) && !isRef(subPatch) && !isReactive(subPatch)) {
- newState[key] = patchObject(targetValue, subPatch);
- } else {
- if (isVue2) {
- set(newState, key, subPatch);
- } else {
- newState[key] = subPatch;
- }
- }
- }
- return newState;
- }
- function acceptHMRUpdate(initialUseStore, hot) {
- if (false) {
- return () => {
- };
- }
- return (newModule) => {
- const pinia = hot.data.pinia || initialUseStore._pinia;
- if (!pinia) {
- return;
- }
- hot.data.pinia = pinia;
- for (const exportName in newModule) {
- const useStore = newModule[exportName];
- if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {
- const id = useStore.$id;
- if (id !== initialUseStore.$id) {
- console.warn(`The id of the store changed from "${initialUseStore.$id}" to "${id}". Reloading.`);
- return hot.invalidate();
- }
- const existingStore = pinia._s.get(id);
- if (!existingStore) {
- console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);
- return;
- }
- useStore(pinia, existingStore);
- }
- }
- };
- }
- var noop = () => {
- };
- function addSubscription(subscriptions, callback, detached, onCleanup = noop) {
- subscriptions.push(callback);
- const removeSubscription = () => {
- const idx = subscriptions.indexOf(callback);
- if (idx > -1) {
- subscriptions.splice(idx, 1);
- onCleanup();
- }
- };
- if (!detached && getCurrentScope()) {
- onScopeDispose(removeSubscription);
- }
- return removeSubscription;
- }
- function triggerSubscriptions(subscriptions, ...args) {
- subscriptions.slice().forEach((callback) => {
- callback(...args);
- });
- }
- var fallbackRunWithContext = (fn) => fn();
- function mergeReactiveObjects(target, patchToApply) {
- if (target instanceof Map && patchToApply instanceof Map) {
- patchToApply.forEach((value, key) => target.set(key, value));
- }
- if (target instanceof Set && patchToApply instanceof Set) {
- patchToApply.forEach(target.add, target);
- }
- for (const key in patchToApply) {
- if (!patchToApply.hasOwnProperty(key))
- continue;
- const subPatch = patchToApply[key];
- const targetValue = target[key];
- if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key) && !isRef(subPatch) && !isReactive(subPatch)) {
- target[key] = mergeReactiveObjects(targetValue, subPatch);
- } else {
- target[key] = subPatch;
- }
- }
- return target;
- }
- var skipHydrateSymbol = true ? Symbol("pinia:skipHydration") : (
- /* istanbul ignore next */
- Symbol()
- );
- var skipHydrateMap = /* @__PURE__ */ new WeakMap();
- function skipHydrate(obj) {
- return isVue2 ? (
- // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...
- /* istanbul ignore next */
- skipHydrateMap.set(obj, 1) && obj
- ) : Object.defineProperty(obj, skipHydrateSymbol, {});
- }
- function shouldHydrate(obj) {
- return isVue2 ? (
- /* istanbul ignore next */
- !skipHydrateMap.has(obj)
- ) : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);
- }
- var { assign } = Object;
- function isComputed(o) {
- return !!(isRef(o) && o.effect);
- }
- function createOptionsStore(id, options, pinia, hot) {
- const { state, actions, getters } = options;
- const initialState = pinia.state.value[id];
- let store;
- function setup() {
- if (!initialState && !hot) {
- if (isVue2) {
- set(pinia.state.value, id, state ? state() : {});
- } else {
- pinia.state.value[id] = state ? state() : {};
- }
- }
- const localState = hot ? (
- // use ref() to unwrap refs inside state TODO: check if this is still necessary
- toRefs(ref(state ? state() : {}).value)
- ) : toRefs(pinia.state.value[id]);
- return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {
- if (name in localState) {
- console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".`);
- }
- computedGetters[name] = markRaw(computed(() => {
- setActivePinia(pinia);
- const store2 = pinia._s.get(id);
- if (isVue2 && !store2._r)
- return;
- return getters[name].call(store2, store2);
- }));
- return computedGetters;
- }, {}));
- }
- store = createSetupStore(id, setup, options, pinia, hot, true);
- return store;
- }
- function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {
- let scope;
- const optionsForPlugin = assign({ actions: {} }, options);
- if (!pinia._e.active) {
- throw new Error("Pinia destroyed");
- }
- const $subscribeOptions = {
- deep: true
- // flush: 'post',
- };
- if (!isVue2) {
- $subscribeOptions.onTrigger = (event) => {
- if (isListening) {
- debuggerEvents = event;
- } else if (isListening == false && !store._hotUpdating) {
- if (Array.isArray(debuggerEvents)) {
- debuggerEvents.push(event);
- } else {
- console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.");
- }
- }
- };
- }
- let isListening;
- let isSyncListening;
- let subscriptions = [];
- let actionSubscriptions = [];
- let debuggerEvents;
- const initialState = pinia.state.value[$id];
- if (!isOptionsStore && !initialState && !hot) {
- if (isVue2) {
- set(pinia.state.value, $id, {});
- } else {
- pinia.state.value[$id] = {};
- }
- }
- const hotState = ref({});
- let activeListener;
- function $patch(partialStateOrMutator) {
- let subscriptionMutation;
- isListening = isSyncListening = false;
- if (true) {
- debuggerEvents = [];
- }
- if (typeof partialStateOrMutator === "function") {
- partialStateOrMutator(pinia.state.value[$id]);
- subscriptionMutation = {
- type: MutationType.patchFunction,
- storeId: $id,
- events: debuggerEvents
- };
- } else {
- mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);
- subscriptionMutation = {
- type: MutationType.patchObject,
- payload: partialStateOrMutator,
- storeId: $id,
- events: debuggerEvents
- };
- }
- const myListenerId = activeListener = Symbol();
- nextTick().then(() => {
- if (activeListener === myListenerId) {
- isListening = true;
- }
- });
- isSyncListening = true;
- triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);
- }
- const $reset = isOptionsStore ? function $reset2() {
- const { state } = options;
- const newState = state ? state() : {};
- this.$patch(($state) => {
- assign($state, newState);
- });
- } : (
- /* istanbul ignore next */
- true ? () => {
- throw new Error(`🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().`);
- } : noop
- );
- function $dispose() {
- scope.stop();
- subscriptions = [];
- actionSubscriptions = [];
- pinia._s.delete($id);
- }
- function wrapAction(name, action) {
- return function() {
- setActivePinia(pinia);
- const args = Array.from(arguments);
- const afterCallbackList = [];
- const onErrorCallbackList = [];
- function after(callback) {
- afterCallbackList.push(callback);
- }
- function onError(callback) {
- onErrorCallbackList.push(callback);
- }
- triggerSubscriptions(actionSubscriptions, {
- args,
- name,
- store,
- after,
- onError
- });
- let ret;
- try {
- ret = action.apply(this && this.$id === $id ? this : store, args);
- } catch (error) {
- triggerSubscriptions(onErrorCallbackList, error);
- throw error;
- }
- if (ret instanceof Promise) {
- return ret.then((value) => {
- triggerSubscriptions(afterCallbackList, value);
- return value;
- }).catch((error) => {
- triggerSubscriptions(onErrorCallbackList, error);
- return Promise.reject(error);
- });
- }
- triggerSubscriptions(afterCallbackList, ret);
- return ret;
- };
- }
- const _hmrPayload = markRaw({
- actions: {},
- getters: {},
- state: [],
- hotState
- });
- const partialStore = {
- _p: pinia,
- // _s: scope,
- $id,
- $onAction: addSubscription.bind(null, actionSubscriptions),
- $patch,
- $reset,
- $subscribe(callback, options2 = {}) {
- const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher());
- const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {
- if (options2.flush === "sync" ? isSyncListening : isListening) {
- callback({
- storeId: $id,
- type: MutationType.direct,
- events: debuggerEvents
- }, state);
- }
- }, assign({}, $subscribeOptions, options2)));
- return removeSubscription;
- },
- $dispose
- };
- if (isVue2) {
- partialStore._r = false;
- }
- const store = reactive(true ? assign(
- {
- _hmrPayload,
- _customProperties: markRaw(/* @__PURE__ */ new Set())
- // devtools custom properties
- },
- partialStore
- // must be added later
- // setupStore
- ) : partialStore);
- pinia._s.set($id, store);
- const runWithContext = pinia._a && pinia._a.runWithContext || fallbackRunWithContext;
- const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(setup)));
- for (const key in setupStore) {
- const prop = setupStore[key];
- if (isRef(prop) && !isComputed(prop) || isReactive(prop)) {
- if (hot) {
- set(hotState.value, key, toRef(setupStore, key));
- } else if (!isOptionsStore) {
- if (initialState && shouldHydrate(prop)) {
- if (isRef(prop)) {
- prop.value = initialState[key];
- } else {
- mergeReactiveObjects(prop, initialState[key]);
- }
- }
- if (isVue2) {
- set(pinia.state.value[$id], key, prop);
- } else {
- pinia.state.value[$id][key] = prop;
- }
- }
- if (true) {
- _hmrPayload.state.push(key);
- }
- } else if (typeof prop === "function") {
- const actionValue = hot ? prop : wrapAction(key, prop);
- if (isVue2) {
- set(setupStore, key, actionValue);
- } else {
- setupStore[key] = actionValue;
- }
- if (true) {
- _hmrPayload.actions[key] = prop;
- }
- optionsForPlugin.actions[key] = prop;
- } else if (true) {
- if (isComputed(prop)) {
- _hmrPayload.getters[key] = isOptionsStore ? (
- // @ts-expect-error
- options.getters[key]
- ) : prop;
- if (IS_CLIENT) {
- const getters = setupStore._getters || // @ts-expect-error: same
- (setupStore._getters = markRaw([]));
- getters.push(key);
- }
- }
- }
- }
- if (isVue2) {
- Object.keys(setupStore).forEach((key) => {
- set(store, key, setupStore[key]);
- });
- } else {
- assign(store, setupStore);
- assign(toRaw(store), setupStore);
- }
- Object.defineProperty(store, "$state", {
- get: () => hot ? hotState.value : pinia.state.value[$id],
- set: (state) => {
- if (hot) {
- throw new Error("cannot set hotState");
- }
- $patch(($state) => {
- assign($state, state);
- });
- }
- });
- if (true) {
- store._hotUpdate = markRaw((newStore) => {
- store._hotUpdating = true;
- newStore._hmrPayload.state.forEach((stateKey) => {
- if (stateKey in store.$state) {
- const newStateTarget = newStore.$state[stateKey];
- const oldStateSource = store.$state[stateKey];
- if (typeof newStateTarget === "object" && isPlainObject(newStateTarget) && isPlainObject(oldStateSource)) {
- patchObject(newStateTarget, oldStateSource);
- } else {
- newStore.$state[stateKey] = oldStateSource;
- }
- }
- set(store, stateKey, toRef(newStore.$state, stateKey));
- });
- Object.keys(store.$state).forEach((stateKey) => {
- if (!(stateKey in newStore.$state)) {
- del(store, stateKey);
- }
- });
- isListening = false;
- isSyncListening = false;
- pinia.state.value[$id] = toRef(newStore._hmrPayload, "hotState");
- isSyncListening = true;
- nextTick().then(() => {
- isListening = true;
- });
- for (const actionName in newStore._hmrPayload.actions) {
- const action = newStore[actionName];
- set(store, actionName, wrapAction(actionName, action));
- }
- for (const getterName in newStore._hmrPayload.getters) {
- const getter = newStore._hmrPayload.getters[getterName];
- const getterValue = isOptionsStore ? (
- // special handling of options api
- computed(() => {
- setActivePinia(pinia);
- return getter.call(store, store);
- })
- ) : getter;
- set(store, getterName, getterValue);
- }
- Object.keys(store._hmrPayload.getters).forEach((key) => {
- if (!(key in newStore._hmrPayload.getters)) {
- del(store, key);
- }
- });
- Object.keys(store._hmrPayload.actions).forEach((key) => {
- if (!(key in newStore._hmrPayload.actions)) {
- del(store, key);
- }
- });
- store._hmrPayload = newStore._hmrPayload;
- store._getters = newStore._getters;
- store._hotUpdating = false;
- });
- }
- if (USE_DEVTOOLS) {
- const nonEnumerable = {
- writable: true,
- configurable: true,
- // avoid warning on devtools trying to display this property
- enumerable: false
- };
- ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((p) => {
- Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));
- });
- }
- if (isVue2) {
- store._r = true;
- }
- pinia._p.forEach((extender) => {
- if (USE_DEVTOOLS) {
- const extensions = scope.run(() => extender({
- store,
- app: pinia._a,
- pinia,
- options: optionsForPlugin
- }));
- Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));
- assign(store, extensions);
- } else {
- assign(store, scope.run(() => extender({
- store,
- app: pinia._a,
- pinia,
- options: optionsForPlugin
- })));
- }
- });
- if (store.$state && typeof store.$state === "object" && typeof store.$state.constructor === "function" && !store.$state.constructor.toString().includes("[native code]")) {
- console.warn(`[🍍]: The "state" must be a plain object. It cannot be
- state: () => new MyClass()
- Found in store "${store.$id}".`);
- }
- if (initialState && isOptionsStore && options.hydrate) {
- options.hydrate(store.$state, initialState);
- }
- isListening = true;
- isSyncListening = true;
- return store;
- }
- function defineStore(idOrOptions, setup, setupOptions) {
- let id;
- let options;
- const isSetupStore = typeof setup === "function";
- if (typeof idOrOptions === "string") {
- id = idOrOptions;
- options = isSetupStore ? setupOptions : setup;
- } else {
- options = idOrOptions;
- id = idOrOptions.id;
- if (typeof id !== "string") {
- throw new Error(`[🍍]: "defineStore()" must be passed a store id as its first argument.`);
- }
- }
- function useStore(pinia, hot) {
- const hasContext = hasInjectionContext();
- pinia = // in test mode, ignore the argument provided as we can always retrieve a
- // pinia instance with getActivePinia()
- (false ? null : pinia) || (hasContext ? inject(piniaSymbol, null) : null);
- if (pinia)
- setActivePinia(pinia);
- if (!activePinia) {
- throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
- See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.
- This will fail in production.`);
- }
- pinia = activePinia;
- if (!pinia._s.has(id)) {
- if (isSetupStore) {
- createSetupStore(id, setup, options, pinia);
- } else {
- createOptionsStore(id, options, pinia);
- }
- if (true) {
- useStore._pinia = pinia;
- }
- }
- const store = pinia._s.get(id);
- if (hot) {
- const hotId = "__hot:" + id;
- const newStore = isSetupStore ? createSetupStore(hotId, setup, options, pinia, true) : createOptionsStore(hotId, assign({}, options), pinia, true);
- hot._hotUpdate(newStore);
- delete pinia.state.value[hotId];
- pinia._s.delete(hotId);
- }
- if (IS_CLIENT) {
- const currentInstance = getCurrentInstance();
- if (currentInstance && currentInstance.proxy && // avoid adding stores that are just built for hot module replacement
- !hot) {
- const vm = currentInstance.proxy;
- const cache = "_pStores" in vm ? vm._pStores : vm._pStores = {};
- cache[id] = store;
- }
- }
- return store;
- }
- useStore.$id = id;
- return useStore;
- }
- var mapStoreSuffix = "Store";
- function setMapStoreSuffix(suffix) {
- mapStoreSuffix = suffix;
- }
- function mapStores(...stores) {
- if (Array.isArray(stores[0])) {
- console.warn(`[🍍]: Directly pass all stores to "mapStores()" without putting them in an array:
- Replace
- mapStores([useAuthStore, useCartStore])
- with
- mapStores(useAuthStore, useCartStore)
- This will fail in production if not fixed.`);
- stores = stores[0];
- }
- return stores.reduce((reduced, useStore) => {
- reduced[useStore.$id + mapStoreSuffix] = function() {
- return useStore(this.$pinia);
- };
- return reduced;
- }, {});
- }
- function mapState(useStore, keysOrMapper) {
- return Array.isArray(keysOrMapper) ? keysOrMapper.reduce((reduced, key) => {
- reduced[key] = function() {
- return useStore(this.$pinia)[key];
- };
- return reduced;
- }, {}) : Object.keys(keysOrMapper).reduce((reduced, key) => {
- reduced[key] = function() {
- const store = useStore(this.$pinia);
- const storeKey = keysOrMapper[key];
- return typeof storeKey === "function" ? storeKey.call(this, store) : store[storeKey];
- };
- return reduced;
- }, {});
- }
- var mapGetters = mapState;
- function mapActions(useStore, keysOrMapper) {
- return Array.isArray(keysOrMapper) ? keysOrMapper.reduce((reduced, key) => {
- reduced[key] = function(...args) {
- return useStore(this.$pinia)[key](...args);
- };
- return reduced;
- }, {}) : Object.keys(keysOrMapper).reduce((reduced, key) => {
- reduced[key] = function(...args) {
- return useStore(this.$pinia)[keysOrMapper[key]](...args);
- };
- return reduced;
- }, {});
- }
- function mapWritableState(useStore, keysOrMapper) {
- return Array.isArray(keysOrMapper) ? keysOrMapper.reduce((reduced, key) => {
- reduced[key] = {
- get() {
- return useStore(this.$pinia)[key];
- },
- set(value) {
- return useStore(this.$pinia)[key] = value;
- }
- };
- return reduced;
- }, {}) : Object.keys(keysOrMapper).reduce((reduced, key) => {
- reduced[key] = {
- get() {
- return useStore(this.$pinia)[keysOrMapper[key]];
- },
- set(value) {
- return useStore(this.$pinia)[keysOrMapper[key]] = value;
- }
- };
- return reduced;
- }, {});
- }
- function storeToRefs(store) {
- if (isVue2) {
- return toRefs(store);
- } else {
- store = toRaw(store);
- const refs = {};
- for (const key in store) {
- const value = store[key];
- if (isRef(value) || isReactive(value)) {
- refs[key] = // ---
- toRef(store, key);
- }
- }
- return refs;
- }
- }
- var PiniaVuePlugin = function(_Vue) {
- _Vue.mixin({
- beforeCreate() {
- const options = this.$options;
- if (options.pinia) {
- const pinia = options.pinia;
- if (!this._provided) {
- const provideCache = {};
- Object.defineProperty(this, "_provided", {
- get: () => provideCache,
- set: (v) => Object.assign(provideCache, v)
- });
- }
- this._provided[piniaSymbol] = pinia;
- if (!this.$pinia) {
- this.$pinia = pinia;
- }
- pinia._a = this;
- if (IS_CLIENT) {
- setActivePinia(pinia);
- }
- if (USE_DEVTOOLS) {
- registerPiniaDevtools(pinia._a, pinia);
- }
- } else if (!this.$pinia && options.parent && options.parent.$pinia) {
- this.$pinia = options.parent.$pinia;
- }
- },
- destroyed() {
- delete this._pStores;
- }
- });
- };
- export {
- MutationType,
- PiniaVuePlugin,
- acceptHMRUpdate,
- createPinia,
- defineStore,
- getActivePinia,
- mapActions,
- mapGetters,
- mapState,
- mapStores,
- mapWritableState,
- setActivePinia,
- setMapStoreSuffix,
- skipHydrate,
- storeToRefs
- };
- /*! Bundled license information:
- pinia/dist/pinia.mjs:
- (*!
- * pinia v2.1.7
- * (c) 2023 Eduardo San Martin Morote
- * @license MIT
- *)
- */
- //# sourceMappingURL=pinia.js.map
|