@opengis/admin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +29 -0
  2. package/config.js +5 -0
  3. package/dist/add-page-C-msiPrU.js +64 -0
  4. package/dist/admin-interface-vPkHXzQK.js +762 -0
  5. package/dist/admin-view-BYF4ITZY.js +220 -0
  6. package/dist/card-page-HOwuHNjV.js +49 -0
  7. package/dist/card-view-CjZRvfqy.js +11 -0
  8. package/dist/edit-page-7yrRusn4.js +58 -0
  9. package/dist/form-TrZSpRSC.js +38 -0
  10. package/dist/import-file-DPHo57R5.js +3726 -0
  11. package/dist/settings.js +4 -0
  12. package/dist/settings.umd.cjs +36 -0
  13. package/dist/style.css +1 -0
  14. package/dist/userMenu-CT1xO2Pt.js +5 -0
  15. package/package.json +52 -0
  16. package/plugin.js +25 -0
  17. package/server/helpers/controllers/badge.js +12 -0
  18. package/server/helpers/controllers/hb.js +3 -0
  19. package/server/helpers/controllers/map.js +3 -0
  20. package/server/helpers/controllers/mls.js +3 -0
  21. package/server/helpers/controllers/vue.js +3 -0
  22. package/server/helpers/index.mjs +13 -0
  23. package/server/plugins/docs.js +28 -0
  24. package/server/plugins/hook.js +94 -0
  25. package/server/plugins/vite.js +64 -0
  26. package/server/routes/data/controllers/cardData.js +30 -0
  27. package/server/routes/data/controllers/metaFormat/getSelectVal.js +19 -0
  28. package/server/routes/data/controllers/metaFormat/index.js +29 -0
  29. package/server/routes/data/controllers/tableData.js +129 -0
  30. package/server/routes/data/controllers/tableDataId.js +28 -0
  31. package/server/routes/data/controllers/tableFilter.js +51 -0
  32. package/server/routes/data/index.mjs +10 -0
  33. package/server/routes/menu/controllers/getMenu.js +50 -0
  34. package/server/routes/menu/index.mjs +5 -0
  35. package/server/routes/root.mjs +3 -0
  36. package/server/routes/templates/controllers/getTemplate.js +9 -0
  37. package/server/routes/templates/funcs/addTempateFolder.js +47 -0
  38. package/server/routes/templates/funcs/getTemplate.js +70 -0
  39. package/server/routes/templates/funcs/getTemplatePath.js +39 -0
  40. package/server/routes/templates/funcs/loadTemplate.js +1 -0
  41. package/server/routes/templates/funcs/loadTemplateDir.js +1 -0
  42. package/server/routes/templates/funcs/loadTemplatePath.js +1 -0
  43. package/server/routes/templates/index.mjs +14 -0
  44. package/server/templates/cls/test.json +10 -0
  45. package/server/templates/form/admin.user_cls.data.form.json +50 -0
  46. package/server/templates/form/admin.user_group_rel.form.json +22 -0
  47. package/server/templates/form/cp_building.form.json +33 -0
  48. package/server/templates/form/form-user-pass.json +11 -0
  49. package/server/templates/form/form-user_group.json +40 -0
  50. package/server/templates/form/form-users.json +157 -0
  51. package/server/templates/form/user_group_access.form.json +23 -0
  52. package/server/templates/interface/management.user_group.html +1 -0
  53. package/server/templates/interface/management.user_group.json +10 -0
  54. package/server/templates/interface/management.users.html +1 -0
  55. package/server/templates/interface/management.users.json +10 -0
  56. package/server/templates/map/dgm_level_line.xml +52 -0
  57. package/server/templates/pt/admin-menu-pt.html +108 -0
  58. package/server/templates/pt/management.user_group.table.pt.html +127 -0
  59. package/server/templates/pt/management.users.table.pt.html +130 -0
  60. package/server/templates/pt/table-standard-pt.html +202 -0
  61. package/server/templates/select/account_id.json +3 -0
  62. package/server/templates/select/account_id.sql +1 -0
  63. package/server/templates/table/gis.dataset.table.json +44 -0
  64. package/server/templates/table/management.user_group.table.json +113 -0
  65. package/server/templates/table/management.users.table.json +127 -0
@@ -0,0 +1,4 @@
1
+ import { p as f } from "./import-file-DPHo57R5.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,36 @@
1
+ (function(s,oe){typeof exports=="object"&&typeof module<"u"?module.exports=oe(require("vue")):typeof define=="function"&&define.amd?define(["vue"],oe):(s=typeof globalThis<"u"?globalThis:s||self,s.settings=oe(s.Vue))})(this,function(s){"use strict";function oe(e,t){return function(){return e.apply(t,arguments)}}const{toString:Kn}=Object.prototype,{getPrototypeOf:De}=Object,xe=(e=>t=>{const n=Kn.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),z=e=>(e=e.toLowerCase(),t=>xe(t)===e),ke=e=>t=>typeof t===e,{isArray:se}=Array,fe=ke("undefined");function Wn(e){return e!==null&&!fe(e)&&e.constructor!==null&&!fe(e.constructor)&&H(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const gt=z("ArrayBuffer");function Gn(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&gt(e.buffer),t}const Jn=ke("string"),H=ke("function"),bt=ke("number"),Ce=e=>e!==null&&typeof e=="object",Zn=e=>e===!0||e===!1,Ne=e=>{if(xe(e)!=="object")return!1;const t=De(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Qn=z("Date"),Xn=z("File"),Yn=z("Blob"),er=z("FileList"),tr=e=>Ce(e)&&H(e.pipe),nr=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||H(e.append)&&((t=xe(e))==="formdata"||t==="object"&&H(e.toString)&&e.toString()==="[object FormData]"))},rr=z("URLSearchParams"),[or,sr,ar,ir]=["ReadableStream","Request","Response","Headers"].map(z),lr=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function pe(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),se(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const a=n?Object.getOwnPropertyNames(e):Object.keys(e),i=a.length;let l;for(r=0;r<i;r++)l=a[r],t.call(null,e[l],l,e)}}function yt(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,o;for(;r-- >0;)if(o=n[r],t===o.toLowerCase())return o;return null}const Y=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,wt=e=>!fe(e)&&e!==Y;function Ie(){const{caseless:e}=wt(this)&&this||{},t={},n=(r,o)=>{const a=e&&yt(t,o)||o;Ne(t[a])&&Ne(r)?t[a]=Ie(t[a],r):Ne(r)?t[a]=Ie({},r):se(r)?t[a]=r.slice():t[a]=r};for(let r=0,o=arguments.length;r<o;r++)arguments[r]&&pe(arguments[r],n);return t}const cr=(e,t,n,{allOwnKeys:r}={})=>(pe(t,(o,a)=>{n&&H(o)?e[a]=oe(o,n):e[a]=o},{allOwnKeys:r}),e),ur=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),dr=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},fr=(e,t,n,r)=>{let o,a,i;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)i=o[a],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&De(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},pr=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},hr=e=>{if(!e)return null;if(se(e))return e;let t=e.length;if(!bt(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},mr=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&De(Uint8Array)),gr=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=r.next())&&!o.done;){const a=o.value;t.call(e,a[0],a[1])}},br=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},yr=z("HTMLFormElement"),wr=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Et=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Er=z("RegExp"),_t=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};pe(n,(o,a)=>{let i;(i=t(o,a,e))!==!1&&(r[a]=i||o)}),Object.defineProperties(e,r)},_r=e=>{_t(e,(t,n)=>{if(H(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(H(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},xr=(e,t)=>{const n={},r=o=>{o.forEach(a=>{n[a]=!0})};return se(e)?r(e):r(String(e).split(t)),n},kr=()=>{},Cr=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Me="abcdefghijklmnopqrstuvwxyz",xt="0123456789",kt={DIGIT:xt,ALPHA:Me,ALPHA_DIGIT:Me+Me.toUpperCase()+xt},Nr=(e=16,t=kt.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function Sr(e){return!!(e&&H(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const Rr=e=>{const t=new Array(10),n=(r,o)=>{if(Ce(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const a=se(r)?[]:{};return pe(r,(i,l)=>{const u=n(i,o+1);!fe(u)&&(a[l]=u)}),t[o]=void 0,a}}return r};return n(e,0)},vr=z("AsyncFunction"),Vr=e=>e&&(Ce(e)||H(e))&&H(e.then)&&H(e.catch),Ct=((e,t)=>e?setImmediate:t?((n,r)=>(Y.addEventListener("message",({source:o,data:a})=>{o===Y&&a===n&&r.length&&r.shift()()},!1),o=>{r.push(o),Y.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",H(Y.postMessage)),$r=typeof queueMicrotask<"u"?queueMicrotask.bind(Y):typeof process<"u"&&process.nextTick||Ct,h={isArray:se,isArrayBuffer:gt,isBuffer:Wn,isFormData:nr,isArrayBufferView:Gn,isString:Jn,isNumber:bt,isBoolean:Zn,isObject:Ce,isPlainObject:Ne,isReadableStream:or,isRequest:sr,isResponse:ar,isHeaders:ir,isUndefined:fe,isDate:Qn,isFile:Xn,isBlob:Yn,isRegExp:Er,isFunction:H,isStream:tr,isURLSearchParams:rr,isTypedArray:mr,isFileList:er,forEach:pe,merge:Ie,extend:cr,trim:lr,stripBOM:ur,inherits:dr,toFlatObject:fr,kindOf:xe,kindOfTest:z,endsWith:pr,toArray:hr,forEachEntry:gr,matchAll:br,isHTMLForm:yr,hasOwnProperty:Et,hasOwnProp:Et,reduceDescriptors:_t,freezeMethods:_r,toObjectSet:xr,toCamelCase:wr,noop:kr,toFiniteNumber:Cr,findKey:yt,global:Y,isContextDefined:wt,ALPHABET:kt,generateString:Nr,isSpecCompliantForm:Sr,toJSONObject:Rr,isAsyncFn:vr,isThenable:Vr,setImmediate:Ct,asap:$r};function R(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}h.inherits(R,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:h.toJSONObject(this.config),code:this.code,status:this.status}}});const Nt=R.prototype,St={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{St[e]={value:e}}),Object.defineProperties(R,St),Object.defineProperty(Nt,"isAxiosError",{value:!0}),R.from=(e,t,n,r,o,a)=>{const i=Object.create(Nt);return h.toFlatObject(e,i,function(u){return u!==Error.prototype},l=>l!=="isAxiosError"),R.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,a&&Object.assign(i,a),i};const Or=null;function Le(e){return h.isPlainObject(e)||h.isArray(e)}function Rt(e){return h.endsWith(e,"[]")?e.slice(0,-2):e}function vt(e,t,n){return e?e.concat(t).map(function(o,a){return o=Rt(o),!n&&a?"["+o+"]":o}).join(n?".":""):t}function Tr(e){return h.isArray(e)&&!e.some(Le)}const Pr=h.toFlatObject(h,{},null,function(t){return/^is[A-Z]/.test(t)});function Se(e,t,n){if(!h.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=h.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,w){return!h.isUndefined(w[y])});const r=n.metaTokens,o=n.visitor||c,a=n.dots,i=n.indexes,u=(n.Blob||typeof Blob<"u"&&Blob)&&h.isSpecCompliantForm(t);if(!h.isFunction(o))throw new TypeError("visitor must be a function");function f(b){if(b===null)return"";if(h.isDate(b))return b.toISOString();if(!u&&h.isBlob(b))throw new R("Blob is not supported. Use a Buffer instead.");return h.isArrayBuffer(b)||h.isTypedArray(b)?u&&typeof Blob=="function"?new Blob([b]):Buffer.from(b):b}function c(b,y,w){let N=b;if(b&&!w&&typeof b=="object"){if(h.endsWith(y,"{}"))y=r?y:y.slice(0,-2),b=JSON.stringify(b);else if(h.isArray(b)&&Tr(b)||(h.isFileList(b)||h.endsWith(y,"[]"))&&(N=h.toArray(b)))return y=Rt(y),N.forEach(function(k,D){!(h.isUndefined(k)||k===null)&&t.append(i===!0?vt([y],D,a):i===null?y:y+"[]",f(k))}),!1}return Le(b)?!0:(t.append(vt(w,y,a),f(b)),!1)}const d=[],p=Object.assign(Pr,{defaultVisitor:c,convertValue:f,isVisitable:Le});function m(b,y){if(!h.isUndefined(b)){if(d.indexOf(b)!==-1)throw Error("Circular reference detected in "+y.join("."));d.push(b),h.forEach(b,function(N,x){(!(h.isUndefined(N)||N===null)&&o.call(t,N,h.isString(x)?x.trim():x,y,p))===!0&&m(N,y?y.concat(x):[x])}),d.pop()}}if(!h.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vt(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function je(e,t){this._pairs=[],e&&Se(e,this,t)}const $t=je.prototype;$t.append=function(t,n){this._pairs.push([t,n])},$t.toString=function(t){const n=t?function(r){return t.call(this,r,Vt)}:Vt;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function Ar(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ot(e,t,n){if(!t)return e;const r=n&&n.encode||Ar,o=n&&n.serialize;let a;if(o?a=o(t,n):a=h.isURLSearchParams(t)?t.toString():new je(t,n).toString(r),a){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class Tt{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){h.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Pt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Br={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:je,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Fe=typeof window<"u"&&typeof document<"u",Ue=typeof navigator=="object"&&navigator||void 0,Dr=Fe&&(!Ue||["ReactNative","NativeScript","NS"].indexOf(Ue.product)<0),Ir=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Mr=Fe&&window.location.href||"http://localhost",F={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fe,hasStandardBrowserEnv:Dr,hasStandardBrowserWebWorkerEnv:Ir,navigator:Ue,origin:Mr},Symbol.toStringTag,{value:"Module"})),...Br};function Lr(e,t){return Se(e,new F.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,a){return F.isNode&&h.isBuffer(n)?(this.append(r,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function jr(e){return h.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fr(e){const t={},n=Object.keys(e);let r;const o=n.length;let a;for(r=0;r<o;r++)a=n[r],t[a]=e[a];return t}function At(e){function t(n,r,o,a){let i=n[a++];if(i==="__proto__")return!0;const l=Number.isFinite(+i),u=a>=n.length;return i=!i&&h.isArray(o)?o.length:i,u?(h.hasOwnProp(o,i)?o[i]=[o[i],r]:o[i]=r,!l):((!o[i]||!h.isObject(o[i]))&&(o[i]=[]),t(n,r,o[i],a)&&h.isArray(o[i])&&(o[i]=Fr(o[i])),!l)}if(h.isFormData(e)&&h.isFunction(e.entries)){const n={};return h.forEachEntry(e,(r,o)=>{t(jr(r),o,n,0)}),n}return null}function Ur(e,t,n){if(h.isString(e))try{return(t||JSON.parse)(e),h.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const he={transitional:Pt,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,a=h.isObject(t);if(a&&h.isHTMLForm(t)&&(t=new FormData(t)),h.isFormData(t))return o?JSON.stringify(At(t)):t;if(h.isArrayBuffer(t)||h.isBuffer(t)||h.isStream(t)||h.isFile(t)||h.isBlob(t)||h.isReadableStream(t))return t;if(h.isArrayBufferView(t))return t.buffer;if(h.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(a){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lr(t,this.formSerializer).toString();if((l=h.isFileList(t))||r.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return Se(l?{"files[]":t}:t,u&&new u,this.formSerializer)}}return a||o?(n.setContentType("application/json",!1),Ur(t)):t}],transformResponse:[function(t){const n=this.transitional||he.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(h.isResponse(t)||h.isReadableStream(t))return t;if(t&&h.isString(t)&&(r&&!this.responseType||o)){const i=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(i)throw l.name==="SyntaxError"?R.from(l,R.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:F.classes.FormData,Blob:F.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};h.forEach(["delete","get","head","post","put","patch"],e=>{he.headers[e]={}});const Hr=h.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),qr=e=>{const t={};let n,r,o;return e&&e.split(`
2
+ `).forEach(function(i){o=i.indexOf(":"),n=i.substring(0,o).trim().toLowerCase(),r=i.substring(o+1).trim(),!(!n||t[n]&&Hr[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Bt=Symbol("internals");function me(e){return e&&String(e).trim().toLowerCase()}function Re(e){return e===!1||e==null?e:h.isArray(e)?e.map(Re):String(e)}function zr(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Kr=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function He(e,t,n,r,o){if(h.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!h.isString(t)){if(h.isString(r))return t.indexOf(r)!==-1;if(h.isRegExp(r))return r.test(t)}}function Wr(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Gr(e,t){const n=h.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,a,i){return this[r].call(this,t,o,a,i)},configurable:!0})})}class U{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function a(l,u,f){const c=me(u);if(!c)throw new Error("header name must be a non-empty string");const d=h.findKey(o,c);(!d||o[d]===void 0||f===!0||f===void 0&&o[d]!==!1)&&(o[d||u]=Re(l))}const i=(l,u)=>h.forEach(l,(f,c)=>a(f,c,u));if(h.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(h.isString(t)&&(t=t.trim())&&!Kr(t))i(qr(t),n);else if(h.isHeaders(t))for(const[l,u]of t.entries())a(u,l,r);else t!=null&&a(n,t,r);return this}get(t,n){if(t=me(t),t){const r=h.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return zr(o);if(h.isFunction(n))return n.call(this,o,r);if(h.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=me(t),t){const r=h.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||He(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function a(i){if(i=me(i),i){const l=h.findKey(r,i);l&&(!n||He(r,r[l],l,n))&&(delete r[l],o=!0)}}return h.isArray(t)?t.forEach(a):a(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const a=n[r];(!t||He(this,this[a],a,t,!0))&&(delete this[a],o=!0)}return o}normalize(t){const n=this,r={};return h.forEach(this,(o,a)=>{const i=h.findKey(r,a);if(i){n[i]=Re(o),delete n[a];return}const l=t?Wr(a):String(a).trim();l!==a&&delete n[a],n[l]=Re(o),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return h.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&h.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
3
+ `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Bt]=this[Bt]={accessors:{}}).accessors,o=this.prototype;function a(i){const l=me(i);r[l]||(Gr(o,i),r[l]=!0)}return h.isArray(t)?t.forEach(a):a(t),this}}U.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),h.reduceDescriptors(U.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),h.freezeMethods(U);function qe(e,t){const n=this||he,r=t||n,o=U.from(r.headers);let a=r.data;return h.forEach(e,function(l){a=l.call(n,a,o.normalize(),t?t.status:void 0)}),o.normalize(),a}function Dt(e){return!!(e&&e.__CANCEL__)}function ae(e,t,n){R.call(this,e??"canceled",R.ERR_CANCELED,t,n),this.name="CanceledError"}h.inherits(ae,R,{__CANCEL__:!0});function It(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new R("Request failed with status code "+n.status,[R.ERR_BAD_REQUEST,R.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Jr(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Zr(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,a=0,i;return t=t!==void 0?t:1e3,function(u){const f=Date.now(),c=r[a];i||(i=f),n[o]=u,r[o]=f;let d=a,p=0;for(;d!==o;)p+=n[d++],d=d%e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),f-i<t)return;const m=c&&f-c;return m?Math.round(p*1e3/m):void 0}}function Qr(e,t){let n=0,r=1e3/t,o,a;const i=(f,c=Date.now())=>{n=c,o=null,a&&(clearTimeout(a),a=null),e.apply(null,f)};return[(...f)=>{const c=Date.now(),d=c-n;d>=r?i(f,c):(o=f,a||(a=setTimeout(()=>{a=null,i(o)},r-d)))},()=>o&&i(o)]}const ve=(e,t,n=3)=>{let r=0;const o=Zr(50,250);return Qr(a=>{const i=a.loaded,l=a.lengthComputable?a.total:void 0,u=i-r,f=o(u),c=i<=l;r=i;const d={loaded:i,total:l,progress:l?i/l:void 0,bytes:u,rate:f||void 0,estimated:f&&l&&c?(l-i)/f:void 0,event:a,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(d)},n)},Mt=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Lt=e=>(...t)=>h.asap(()=>e(...t)),Xr=F.hasStandardBrowserEnv?function(){const t=F.navigator&&/(msie|trident)/i.test(F.navigator.userAgent),n=document.createElement("a");let r;function o(a){let i=a;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(i){const l=h.isString(i)?o(i):i;return l.protocol===r.protocol&&l.host===r.host}}():function(){return function(){return!0}}(),Yr=F.hasStandardBrowserEnv?{write(e,t,n,r,o,a){const i=[e+"="+encodeURIComponent(t)];h.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),h.isString(r)&&i.push("path="+r),h.isString(o)&&i.push("domain="+o),a===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function eo(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function to(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function jt(e,t){return e&&!eo(t)?to(e,t):t}const Ft=e=>e instanceof U?{...e}:e;function ee(e,t){t=t||{};const n={};function r(f,c,d){return h.isPlainObject(f)&&h.isPlainObject(c)?h.merge.call({caseless:d},f,c):h.isPlainObject(c)?h.merge({},c):h.isArray(c)?c.slice():c}function o(f,c,d){if(h.isUndefined(c)){if(!h.isUndefined(f))return r(void 0,f,d)}else return r(f,c,d)}function a(f,c){if(!h.isUndefined(c))return r(void 0,c)}function i(f,c){if(h.isUndefined(c)){if(!h.isUndefined(f))return r(void 0,f)}else return r(void 0,c)}function l(f,c,d){if(d in t)return r(f,c);if(d in e)return r(void 0,f)}const u={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(f,c)=>o(Ft(f),Ft(c),!0)};return h.forEach(Object.keys(Object.assign({},e,t)),function(c){const d=u[c]||o,p=d(e[c],t[c],c);h.isUndefined(p)&&d!==l||(n[c]=p)}),n}const Ut=e=>{const t=ee({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:l}=t;t.headers=i=U.from(i),t.url=Ot(jt(t.baseURL,t.url),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let u;if(h.isFormData(n)){if(F.hasStandardBrowserEnv||F.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((u=i.getContentType())!==!1){const[f,...c]=u?u.split(";").map(d=>d.trim()).filter(Boolean):[];i.setContentType([f||"multipart/form-data",...c].join("; "))}}if(F.hasStandardBrowserEnv&&(r&&h.isFunction(r)&&(r=r(t)),r||r!==!1&&Xr(t.url))){const f=o&&a&&Yr.read(a);f&&i.set(o,f)}return t},no=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const o=Ut(e);let a=o.data;const i=U.from(o.headers).normalize();let{responseType:l,onUploadProgress:u,onDownloadProgress:f}=o,c,d,p,m,b;function y(){m&&m(),b&&b(),o.cancelToken&&o.cancelToken.unsubscribe(c),o.signal&&o.signal.removeEventListener("abort",c)}let w=new XMLHttpRequest;w.open(o.method.toUpperCase(),o.url,!0),w.timeout=o.timeout;function N(){if(!w)return;const k=U.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),S={data:!l||l==="text"||l==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:k,config:e,request:w};It(function(P){n(P),y()},function(P){r(P),y()},S),w=null}"onloadend"in w?w.onloadend=N:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(N)},w.onabort=function(){w&&(r(new R("Request aborted",R.ECONNABORTED,e,w)),w=null)},w.onerror=function(){r(new R("Network Error",R.ERR_NETWORK,e,w)),w=null},w.ontimeout=function(){let D=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const S=o.transitional||Pt;o.timeoutErrorMessage&&(D=o.timeoutErrorMessage),r(new R(D,S.clarifyTimeoutError?R.ETIMEDOUT:R.ECONNABORTED,e,w)),w=null},a===void 0&&i.setContentType(null),"setRequestHeader"in w&&h.forEach(i.toJSON(),function(D,S){w.setRequestHeader(S,D)}),h.isUndefined(o.withCredentials)||(w.withCredentials=!!o.withCredentials),l&&l!=="json"&&(w.responseType=o.responseType),f&&([p,b]=ve(f,!0),w.addEventListener("progress",p)),u&&w.upload&&([d,m]=ve(u),w.upload.addEventListener("progress",d),w.upload.addEventListener("loadend",m)),(o.cancelToken||o.signal)&&(c=k=>{w&&(r(!k||k.type?new ae(null,e,w):k),w.abort(),w=null)},o.cancelToken&&o.cancelToken.subscribe(c),o.signal&&(o.signal.aborted?c():o.signal.addEventListener("abort",c)));const x=Jr(o.url);if(x&&F.protocols.indexOf(x)===-1){r(new R("Unsupported protocol "+x+":",R.ERR_BAD_REQUEST,e));return}w.send(a||null)})},ro=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const a=function(f){if(!o){o=!0,l();const c=f instanceof Error?f:this.reason;r.abort(c instanceof R?c:new ae(c instanceof Error?c.message:c))}};let i=t&&setTimeout(()=>{i=null,a(new R(`timeout ${t} of ms exceeded`,R.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(a):f.removeEventListener("abort",a)}),e=null)};e.forEach(f=>f.addEventListener("abort",a));const{signal:u}=r;return u.unsubscribe=()=>h.asap(l),u}},oo=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,o;for(;r<n;)o=r+t,yield e.slice(r,o),r=o},so=async function*(e,t){for await(const n of ao(e))yield*oo(n,t)},ao=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},Ht=(e,t,n,r)=>{const o=so(e,t);let a=0,i,l=u=>{i||(i=!0,r&&r(u))};return new ReadableStream({async pull(u){try{const{done:f,value:c}=await o.next();if(f){l(),u.close();return}let d=c.byteLength;if(n){let p=a+=d;n(p)}u.enqueue(new Uint8Array(c))}catch(f){throw l(f),f}},cancel(u){return l(u),o.return()}},{highWaterMark:2})},Ve=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",qt=Ve&&typeof ReadableStream=="function",io=Ve&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),zt=(e,...t)=>{try{return!!e(...t)}catch{return!1}},lo=qt&&zt(()=>{let e=!1;const t=new Request(F.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Kt=64*1024,ze=qt&&zt(()=>h.isReadableStream(new Response("").body)),$e={stream:ze&&(e=>e.body)};Ve&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!$e[t]&&($e[t]=h.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new R(`Response type '${t}' is not supported`,R.ERR_NOT_SUPPORT,r)})})})(new Response);const co=async e=>{if(e==null)return 0;if(h.isBlob(e))return e.size;if(h.isSpecCompliantForm(e))return(await new Request(F.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(h.isArrayBufferView(e)||h.isArrayBuffer(e))return e.byteLength;if(h.isURLSearchParams(e)&&(e=e+""),h.isString(e))return(await io(e)).byteLength},uo=async(e,t)=>{const n=h.toFiniteNumber(e.getContentLength());return n??co(t)},Ke={http:Or,xhr:no,fetch:Ve&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:a,timeout:i,onDownloadProgress:l,onUploadProgress:u,responseType:f,headers:c,withCredentials:d="same-origin",fetchOptions:p}=Ut(e);f=f?(f+"").toLowerCase():"text";let m=ro([o,a&&a.toAbortSignal()],i),b;const y=m&&m.unsubscribe&&(()=>{m.unsubscribe()});let w;try{if(u&&lo&&n!=="get"&&n!=="head"&&(w=await uo(c,r))!==0){let S=new Request(t,{method:"POST",body:r,duplex:"half"}),I;if(h.isFormData(r)&&(I=S.headers.get("content-type"))&&c.setContentType(I),S.body){const[P,ne]=Mt(w,ve(Lt(u)));r=Ht(S.body,Kt,P,ne)}}h.isString(d)||(d=d?"include":"omit");const N="credentials"in Request.prototype;b=new Request(t,{...p,signal:m,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:r,duplex:"half",credentials:N?d:void 0});let x=await fetch(b);const k=ze&&(f==="stream"||f==="response");if(ze&&(l||k&&y)){const S={};["status","statusText","headers"].forEach(ue=>{S[ue]=x[ue]});const I=h.toFiniteNumber(x.headers.get("content-length")),[P,ne]=l&&Mt(I,ve(Lt(l),!0))||[];x=new Response(Ht(x.body,Kt,P,()=>{ne&&ne(),y&&y()}),S)}f=f||"text";let D=await $e[h.findKey($e,f)||"text"](x,e);return!k&&y&&y(),await new Promise((S,I)=>{It(S,I,{data:D,headers:U.from(x.headers),status:x.status,statusText:x.statusText,config:e,request:b})})}catch(N){throw y&&y(),N&&N.name==="TypeError"&&/fetch/i.test(N.message)?Object.assign(new R("Network Error",R.ERR_NETWORK,e,b),{cause:N.cause||N}):R.from(N,N&&N.code,e,b)}})};h.forEach(Ke,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Wt=e=>`- ${e}`,fo=e=>h.isFunction(e)||e===null||e===!1,Gt={getAdapter:e=>{e=h.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let a=0;a<t;a++){n=e[a];let i;if(r=n,!fo(n)&&(r=Ke[(i=String(n)).toLowerCase()],r===void 0))throw new R(`Unknown adapter '${i}'`);if(r)break;o[i||"#"+a]=r}if(!r){const a=Object.entries(o).map(([l,u])=>`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let i=t?a.length>1?`since :
4
+ `+a.map(Wt).join(`
5
+ `):" "+Wt(a[0]):"as no adapter specified";throw new R("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Ke};function We(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ae(null,e)}function Jt(e){return We(e),e.headers=U.from(e.headers),e.data=qe.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Gt.getAdapter(e.adapter||he.adapter)(e).then(function(r){return We(e),r.data=qe.call(e,e.transformResponse,r),r.headers=U.from(r.headers),r},function(r){return Dt(r)||(We(e),r&&r.response&&(r.response.data=qe.call(e,e.transformResponse,r.response),r.response.headers=U.from(r.response.headers))),Promise.reject(r)})}const Zt="1.7.7",Ge={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ge[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Qt={};Ge.transitional=function(t,n,r){function o(a,i){return"[Axios v"+Zt+"] Transitional option '"+a+"'"+i+(r?". "+r:"")}return(a,i,l)=>{if(t===!1)throw new R(o(i," has been removed"+(n?" in "+n:"")),R.ERR_DEPRECATED);return n&&!Qt[i]&&(Qt[i]=!0,console.warn(o(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,i,l):!0}};function po(e,t,n){if(typeof e!="object")throw new R("options must be an object",R.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const a=r[o],i=t[a];if(i){const l=e[a],u=l===void 0||i(l,a,e);if(u!==!0)throw new R("option "+a+" must be "+u,R.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new R("Unknown option "+a,R.ERR_BAD_OPTION)}}const Je={assertOptions:po,validators:Ge},J=Je.validators;class te{constructor(t){this.defaults=t,this.interceptors={request:new Tt,response:new Tt}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const a=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?a&&!String(r.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(r.stack+=`
6
+ `+a):r.stack=a}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ee(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:a}=n;r!==void 0&&Je.assertOptions(r,{silentJSONParsing:J.transitional(J.boolean),forcedJSONParsing:J.transitional(J.boolean),clarifyTimeoutError:J.transitional(J.boolean)},!1),o!=null&&(h.isFunction(o)?n.paramsSerializer={serialize:o}:Je.assertOptions(o,{encode:J.function,serialize:J.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=a&&h.merge(a.common,a[n.method]);a&&h.forEach(["delete","get","head","post","put","patch","common"],b=>{delete a[b]}),n.headers=U.concat(i,a);const l=[];let u=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(u=u&&y.synchronous,l.unshift(y.fulfilled,y.rejected))});const f=[];this.interceptors.response.forEach(function(y){f.push(y.fulfilled,y.rejected)});let c,d=0,p;if(!u){const b=[Jt.bind(this),void 0];for(b.unshift.apply(b,l),b.push.apply(b,f),p=b.length,c=Promise.resolve(n);d<p;)c=c.then(b[d++],b[d++]);return c}p=l.length;let m=n;for(d=0;d<p;){const b=l[d++],y=l[d++];try{m=b(m)}catch(w){y.call(this,w);break}}try{c=Jt.call(this,m)}catch(b){return Promise.reject(b)}for(d=0,p=f.length;d<p;)c=c.then(f[d++],f[d++]);return c}getUri(t){t=ee(this.defaults,t);const n=jt(t.baseURL,t.url);return Ot(n,t.params,t.paramsSerializer)}}h.forEach(["delete","get","head","options"],function(t){te.prototype[t]=function(n,r){return this.request(ee(r||{},{method:t,url:n,data:(r||{}).data}))}}),h.forEach(["post","put","patch"],function(t){function n(r){return function(a,i,l){return this.request(ee(l||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:a,data:i}))}}te.prototype[t]=n(),te.prototype[t+"Form"]=n(!0)});class Ze{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(a){n=a});const r=this;this.promise.then(o=>{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](o);r._listeners=null}),this.promise.then=o=>{let a;const i=new Promise(l=>{r.subscribe(l),a=l}).then(o);return i.cancel=function(){r.unsubscribe(a)},i},t(function(a,i,l){r.reason||(r.reason=new ae(a,i,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Ze(function(o){t=o}),cancel:t}}}function ho(e){return function(n){return e.apply(null,n)}}function mo(e){return h.isObject(e)&&e.isAxiosError===!0}const Qe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Qe).forEach(([e,t])=>{Qe[t]=e});function Xt(e){const t=new te(e),n=oe(te.prototype.request,t);return h.extend(n,te.prototype,t,{allOwnKeys:!0}),h.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Xt(ee(e,o))},n}const O=Xt(he);O.Axios=te,O.CanceledError=ae,O.CancelToken=Ze,O.isCancel=Dt,O.VERSION=Zt,O.toFormData=Se,O.AxiosError=R,O.Cancel=O.CanceledError,O.all=function(t){return Promise.all(t)},O.spread=ho,O.isAxiosError=mo,O.mergeConfig=ee,O.AxiosHeaders=U,O.formToJSON=e=>At(h.isHTMLForm(e)?new FormData(e):e),O.getAdapter=Gt.getAdapter,O.HttpStatusCode=Qe,O.default=O;const B=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},go={};function bo(e,t,n,r,o,a){const i=s.resolveComponent("router-view");return s.openBlock(),s.createBlock(i)}const yo=B(go,[["render",bo]]);function wo(){return Yt().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Yt(){return typeof navigator<"u"&&typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}}const Eo=typeof Proxy=="function",_o="devtools-plugin:setup",xo="plugin:settings:set";let ie,Xe;function ko(){var e;return ie!==void 0||(typeof window<"u"&&window.performance?(ie=!0,Xe=window.performance):typeof globalThis<"u"&&(!((e=globalThis.perf_hooks)===null||e===void 0)&&e.performance)?(ie=!0,Xe=globalThis.perf_hooks.performance):ie=!1),ie}function Co(){return ko()?Xe.now():Date.now()}class No{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const i in t.settings){const l=t.settings[i];r[i]=l.defaultValue}const o=`__vue-devtools-plugin-settings__${t.id}`;let a=Object.assign({},r);try{const i=localStorage.getItem(o),l=JSON.parse(i);Object.assign(a,l)}catch{}this.fallbacks={getSettings(){return a},setSettings(i){try{localStorage.setItem(o,JSON.stringify(i))}catch{}a=i},now(){return Co()}},n&&n.on(xo,(i,l)=>{i===this.plugin.id&&this.fallbacks.setSettings(l)}),this.proxiedOn=new Proxy({},{get:(i,l)=>this.target?this.target.on[l]:(...u)=>{this.onQueue.push({method:l,args:u})}}),this.proxiedTarget=new Proxy({},{get:(i,l)=>this.target?this.target[l]:l==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(l)?(...u)=>(this.targetQueue.push({method:l,args:u,resolve:()=>{}}),this.fallbacks[l](...u)):(...u)=>new Promise(f=>{this.targetQueue.push({method:l,args:u,resolve:f})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function So(e,t){const n=e,r=Yt(),o=wo(),a=Eo&&n.enableEarlyProxy;if(o&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!a))o.emit(_o,e,t);else{const i=a?new No(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:i}),i&&t(i.proxiedTarget)}}/*!
7
+ * vue-router v4.4.5
8
+ * (c) 2024 Eduardo San Martin Morote
9
+ * @license MIT
10
+ */const K=typeof document<"u";function en(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ro(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&en(e.default)}const T=Object.assign;function Ye(e,t){const n={};for(const r in t){const o=t[r];n[r]=q(o)?o.map(e):e(o)}return n}const ge=()=>{},q=Array.isArray;function v(e){const t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const tn=/#/g,vo=/&/g,Vo=/\//g,$o=/=/g,Oo=/\?/g,nn=/\+/g,To=/%5B/g,Po=/%5D/g,rn=/%5E/g,Ao=/%60/g,on=/%7B/g,Bo=/%7C/g,sn=/%7D/g,Do=/%20/g;function et(e){return encodeURI(""+e).replace(Bo,"|").replace(To,"[").replace(Po,"]")}function Io(e){return et(e).replace(on,"{").replace(sn,"}").replace(rn,"^")}function tt(e){return et(e).replace(nn,"%2B").replace(Do,"+").replace(tn,"%23").replace(vo,"%26").replace(Ao,"`").replace(on,"{").replace(sn,"}").replace(rn,"^")}function Mo(e){return tt(e).replace($o,"%3D")}function Lo(e){return et(e).replace(tn,"%23").replace(Oo,"%3F")}function jo(e){return e==null?"":Lo(e).replace(Vo,"%2F")}function le(e){try{return decodeURIComponent(""+e)}catch{process.env.NODE_ENV!=="production"&&v(`Error decoding "${e}". Using original value`)}return""+e}const Fo=/\/$/,Uo=e=>e.replace(Fo,"");function nt(e,t,n="/"){let r,o={},a="",i="";const l=t.indexOf("#");let u=t.indexOf("?");return l<u&&l>=0&&(u=-1),u>-1&&(r=t.slice(0,u),a=t.slice(u+1,l>-1?l:t.length),o=e(a)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=zo(r??t,n),{fullPath:r+(a&&"?")+a+i,path:r,query:o,hash:le(i)}}function Ho(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function an(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ln(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Z(t.matched[r],n.matched[o])&&cn(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Z(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cn(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!qo(e[n],t[n]))return!1;return!0}function qo(e,t){return q(e)?un(e,t):q(t)?un(t,e):e===t}function un(e,t){return q(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function zo(e,t){if(e.startsWith("/"))return e;if(process.env.NODE_ENV!=="production"&&!t.startsWith("/"))return v(`Cannot resolve a relative location without an absolute path. Trying to resolve "${e}" from "${t}". It should look like "/${t}".`),e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let a=n.length-1,i,l;for(i=0;i<r.length;i++)if(l=r[i],l!==".")if(l==="..")a>1&&a--;else break;return n.slice(0,a).join("/")+"/"+r.slice(i).join("/")}const Q={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var be;(function(e){e.pop="pop",e.push="push"})(be||(be={}));var ye;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ye||(ye={}));function Ko(e){if(!e)if(K){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Uo(e)}const Wo=/^[^#]+#/;function Go(e,t){return e.replace(Wo,"#")+t}function Jo(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Oe=()=>({left:window.scrollX,top:window.scrollY});function Zo(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#");if(process.env.NODE_ENV!=="production"&&typeof e.el=="string"&&(!r||!document.getElementById(e.el.slice(1))))try{const a=document.querySelector(e.el);if(r&&a){v(`The selector "${e.el}" should be passed as "el: document.querySelector('${e.el}')" because it starts with "#".`);return}}catch{v(`The selector "${e.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);return}const o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o){process.env.NODE_ENV!=="production"&&v(`Couldn't find element using selector "${e.el}" returned by scrollBehavior.`);return}t=Jo(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function dn(e,t){return(history.state?history.state.position-t:-1)+e}const rt=new Map;function Qo(e,t){rt.set(e,t)}function Xo(e){const t=rt.get(e);return rt.delete(e),t}let Yo=()=>location.protocol+"//"+location.host;function fn(e,t){const{pathname:n,search:r,hash:o}=t,a=e.indexOf("#");if(a>-1){let l=o.includes(e.slice(a))?e.slice(a).length:1,u=o.slice(l);return u[0]!=="/"&&(u="/"+u),an(u,"")}return an(n,e)+r+o}function es(e,t,n,r){let o=[],a=[],i=null;const l=({state:p})=>{const m=fn(e,location),b=n.value,y=t.value;let w=0;if(p){if(n.value=m,t.value=p,i&&i===b){i=null;return}w=y?p.position-y.position:0}else r(m);o.forEach(N=>{N(n.value,b,{delta:w,type:be.pop,direction:w?w>0?ye.forward:ye.back:ye.unknown})})};function u(){i=n.value}function f(p){o.push(p);const m=()=>{const b=o.indexOf(p);b>-1&&o.splice(b,1)};return a.push(m),m}function c(){const{history:p}=window;p.state&&p.replaceState(T({},p.state,{scroll:Oe()}),"")}function d(){for(const p of a)p();a=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:u,listen:f,destroy:d}}function pn(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Oe():null}}function ts(e){const{history:t,location:n}=window,r={value:fn(e,n)},o={value:t.state};o.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(u,f,c){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+u:Yo()+e+u;try{t[c?"replaceState":"pushState"](f,"",p),o.value=f}catch(m){process.env.NODE_ENV!=="production"?v("Error with push/replace State",m):console.error(m),n[c?"replace":"assign"](p)}}function i(u,f){const c=T({},t.state,pn(o.value.back,u,o.value.forward,!0),f,{position:o.value.position});a(u,c,!0),r.value=u}function l(u,f){const c=T({},o.value,t.state,{forward:u,scroll:Oe()});process.env.NODE_ENV!=="production"&&!t.state&&v(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:
11
+
12
+ history.replaceState(history.state, '', url)
13
+
14
+ You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state`),a(c.current,c,!0);const d=T({},pn(r.value,u,null),{position:c.position+1},f);a(u,d,!1),r.value=u}return{location:r,state:o,push:l,replace:i}}function ns(e){e=Ko(e);const t=ts(e),n=es(e,t.state,t.location,t.replace);function r(a,i=!0){i||n.pauseListeners(),history.go(a)}const o=T({location:"",base:e,go:r,createHref:Go.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Te(e){return typeof e=="string"||e&&typeof e=="object"}function hn(e){return typeof e=="string"||typeof e=="symbol"}const ot=Symbol(process.env.NODE_ENV!=="production"?"navigation failure":"");var mn;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(mn||(mn={}));const rs={1({location:e,currentLocation:t}){return`No match for
15
+ ${JSON.stringify(e)}${t?`
16
+ while being at
17
+ `+JSON.stringify(t):""}`},2({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${ss(t)}" via a navigation guard.`},4({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},8({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},16({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function ce(e,t){return process.env.NODE_ENV!=="production"?T(new Error(rs[e](t)),{type:e,[ot]:!0},t):T(new Error,{type:e,[ot]:!0},t)}function W(e,t){return e instanceof Error&&ot in e&&(t==null||!!(e.type&t))}const os=["params","query","hash"];function ss(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of os)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}const gn="[^/]+?",as={sensitive:!1,strict:!1,start:!0,end:!0},is=/[.+*?^${}()[\]/\\]/g;function ls(e,t){const n=T({},as,t),r=[];let o=n.start?"^":"";const a=[];for(const f of e){const c=f.length?[]:[90];n.strict&&!f.length&&(o+="/");for(let d=0;d<f.length;d++){const p=f[d];let m=40+(n.sensitive?.25:0);if(p.type===0)d||(o+="/"),o+=p.value.replace(is,"\\$&"),m+=40;else if(p.type===1){const{value:b,repeatable:y,optional:w,regexp:N}=p;a.push({name:b,repeatable:y,optional:w});const x=N||gn;if(x!==gn){m+=10;try{new RegExp(`(${x})`)}catch(D){throw new Error(`Invalid custom RegExp for param "${b}" (${x}): `+D.message)}}let k=y?`((?:${x})(?:/(?:${x}))*)`:`(${x})`;d||(k=w&&f.length<2?`(?:/${k})`:"/"+k),w&&(k+="?"),o+=k,m+=20,w&&(m+=-8),y&&(m+=-20),x===".*"&&(m+=-50)}c.push(m)}r.push(c)}if(n.strict&&n.end){const f=r.length-1;r[f][r[f].length-1]+=.7000000000000001}n.strict||(o+="/?"),n.end?o+="$":n.strict&&(o+="(?:/|$)");const i=new RegExp(o,n.sensitive?"":"i");function l(f){const c=f.match(i),d={};if(!c)return null;for(let p=1;p<c.length;p++){const m=c[p]||"",b=a[p-1];d[b.name]=m&&b.repeatable?m.split("/"):m}return d}function u(f){let c="",d=!1;for(const p of e){(!d||!c.endsWith("/"))&&(c+="/"),d=!1;for(const m of p)if(m.type===0)c+=m.value;else if(m.type===1){const{value:b,repeatable:y,optional:w}=m,N=b in f?f[b]:"";if(q(N)&&!y)throw new Error(`Provided param "${b}" is an array but it is not repeatable (* or + modifiers)`);const x=q(N)?N.join("/"):N;if(!x)if(w)p.length<2&&(c.endsWith("/")?c=c.slice(0,-1):d=!0);else throw new Error(`Missing required param "${b}"`);c+=x}}return c||"/"}return{re:i,score:r,keys:a,parse:l,stringify:u}}function cs(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function bn(e,t){let n=0;const r=e.score,o=t.score;for(;n<r.length&&n<o.length;){const a=cs(r[n],o[n]);if(a)return a;n++}if(Math.abs(o.length-r.length)===1){if(yn(r))return 1;if(yn(o))return-1}return o.length-r.length}function yn(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const us={type:0,value:""},ds=/[a-zA-Z0-9_]/;function fs(e){if(!e)return[[]];if(e==="/")return[[us]];if(!e.startsWith("/"))throw new Error(process.env.NODE_ENV!=="production"?`Route paths should start with a "/": "${e}" should be "/${e}".`:`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${f}": ${m}`)}let n=0,r=n;const o=[];let a;function i(){a&&o.push(a),a=[]}let l=0,u,f="",c="";function d(){f&&(n===0?a.push({type:0,value:f}):n===1||n===2||n===3?(a.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:f,regexp:c,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),f="")}function p(){f+=u}for(;l<e.length;){if(u=e[l++],u==="\\"&&n!==2){r=n,n=4;continue}switch(n){case 0:u==="/"?(f&&d(),i()):u===":"?(d(),n=1):p();break;case 4:p(),n=r;break;case 1:u==="("?n=2:ds.test(u)?p():(d(),n=0,u!=="*"&&u!=="?"&&u!=="+"&&l--);break;case 2:u===")"?c[c.length-1]=="\\"?c=c.slice(0,-1)+u:n=3:c+=u;break;case 3:d(),n=0,u!=="*"&&u!=="?"&&u!=="+"&&l--,c="";break;default:t("Unknown state");break}}return n===2&&t(`Unfinished custom RegExp for param "${f}"`),d(),i(),o}function ps(e,t,n){const r=ls(fs(e.path),n);if(process.env.NODE_ENV!=="production"){const a=new Set;for(const i of r.keys)a.has(i.name)&&v(`Found duplicated params with name "${i.name}" for path "${e.path}". Only the last one will be available on "$route.params".`),a.add(i.name)}const o=T(r,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function hs(e,t){const n=[],r=new Map;t=xn({strict:!1,end:!0,sensitive:!1},t);function o(d){return r.get(d)}function a(d,p,m){const b=!m,y=En(d);process.env.NODE_ENV!=="production"&&ys(y,p),y.aliasOf=m&&m.record;const w=xn(t,d),N=[y];if("alias"in d){const D=typeof d.alias=="string"?[d.alias]:d.alias;for(const S of D)N.push(En(T({},y,{components:m?m.record.components:y.components,path:S,aliasOf:m?m.record:y})))}let x,k;for(const D of N){const{path:S}=D;if(p&&S[0]!=="/"){const I=p.record.path,P=I[I.length-1]==="/"?"":"/";D.path=p.record.path+(S&&P+S)}if(process.env.NODE_ENV!=="production"&&D.path==="*")throw new Error(`Catch all routes ("*") must now be defined using a param with a custom regexp.
18
+ See more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.`);if(x=ps(D,p,w),process.env.NODE_ENV!=="production"&&p&&S[0]==="/"&&ws(x,p),m?(m.alias.push(x),process.env.NODE_ENV!=="production"&&bs(m,x)):(k=k||x,k!==x&&k.alias.push(x),b&&d.name&&!_n(x)&&i(d.name)),kn(x)&&u(x),y.children){const I=y.children;for(let P=0;P<I.length;P++)a(I[P],x,m&&m.children[P])}m=m||x}return k?()=>{i(k)}:ge}function i(d){if(hn(d)){const p=r.get(d);p&&(r.delete(d),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(d);p>-1&&(n.splice(p,1),d.record.name&&r.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function l(){return n}function u(d){const p=Es(d,n);n.splice(p,0,d),d.record.name&&!_n(d)&&r.set(d.record.name,d)}function f(d,p){let m,b={},y,w;if("name"in d&&d.name){if(m=r.get(d.name),!m)throw ce(1,{location:d});if(process.env.NODE_ENV!=="production"){const k=Object.keys(d.params||{}).filter(D=>!m.keys.find(S=>S.name===D));k.length&&v(`Discarded invalid param(s) "${k.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}w=m.record.name,b=T(wn(p.params,m.keys.filter(k=>!k.optional).concat(m.parent?m.parent.keys.filter(k=>k.optional):[]).map(k=>k.name)),d.params&&wn(d.params,m.keys.map(k=>k.name))),y=m.stringify(b)}else if(d.path!=null)y=d.path,process.env.NODE_ENV!=="production"&&!y.startsWith("/")&&v(`The Matcher cannot resolve relative paths but received "${y}". Unless you directly called \`matcher.resolve("${y}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`),m=n.find(k=>k.re.test(y)),m&&(b=m.parse(y),w=m.record.name);else{if(m=p.name?r.get(p.name):n.find(k=>k.re.test(p.path)),!m)throw ce(1,{location:d,currentLocation:p});w=m.record.name,b=T({},p.params,d.params),y=m.stringify(b)}const N=[];let x=m;for(;x;)N.unshift(x.record),x=x.parent;return{name:w,path:y,params:b,matched:N,meta:gs(N)}}e.forEach(d=>a(d));function c(){n.length=0,r.clear()}return{addRoute:a,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:o}}function wn(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function En(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:ms(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function ms(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function _n(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function gs(e){return e.reduce((t,n)=>T(t,n.meta),{})}function xn(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function st(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function bs(e,t){for(const n of e.keys)if(!n.optional&&!t.keys.find(st.bind(null,n)))return v(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`);for(const n of t.keys)if(!n.optional&&!e.keys.find(st.bind(null,n)))return v(`Alias "${t.record.path}" and the original record: "${e.record.path}" must have the exact same param named "${n.name}"`)}function ys(e,t){t&&t.record.name&&!e.name&&!e.path&&v(`The route named "${String(t.record.name)}" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`)}function ws(e,t){for(const n of t.keys)if(!e.keys.find(st.bind(null,n)))return v(`Absolute path "${e.record.path}" must have the exact same param named "${n.name}" as its parent "${t.record.path}".`)}function Es(e,t){let n=0,r=t.length;for(;n!==r;){const a=n+r>>1;bn(e,t[a])<0?r=a:n=a+1}const o=_s(e);return o&&(r=t.lastIndexOf(o,r-1),process.env.NODE_ENV!=="production"&&r<0&&v(`Finding ancestor route "${o.record.path}" failed for "${e.record.path}"`)),r}function _s(e){let t=e;for(;t=t.parent;)if(kn(t)&&bn(e,t)===0)return t}function kn({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function xs(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;o<r.length;++o){const a=r[o].replace(nn," "),i=a.indexOf("="),l=le(i<0?a:a.slice(0,i)),u=i<0?null:le(a.slice(i+1));if(l in t){let f=t[l];q(f)||(f=t[l]=[f]),f.push(u)}else t[l]=u}return t}function Cn(e){let t="";for(let n in e){const r=e[n];if(n=Mo(n),r==null){r!==void 0&&(t+=(t.length?"&":"")+n);continue}(q(r)?r.map(a=>a&&tt(a)):[r&&tt(r)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function ks(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=q(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const Cs=Symbol(process.env.NODE_ENV!=="production"?"router view location matched":""),Nn=Symbol(process.env.NODE_ENV!=="production"?"router view depth":""),at=Symbol(process.env.NODE_ENV!=="production"?"router":""),Sn=Symbol(process.env.NODE_ENV!=="production"?"route location":""),it=Symbol(process.env.NODE_ENV!=="production"?"router view location":"");function we(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function X(e,t,n,r,o,a=i=>i()){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,u)=>{const f=p=>{p===!1?u(ce(4,{from:n,to:t})):p instanceof Error?u(p):Te(p)?u(ce(2,{from:t,to:p})):(i&&r.enterCallbacks[o]===i&&typeof p=="function"&&i.push(p),l())},c=a(()=>e.call(r&&r.instances[o],t,n,process.env.NODE_ENV!=="production"?Ns(f,t,n):f));let d=Promise.resolve(c);if(e.length<3&&(d=d.then(f)),process.env.NODE_ENV!=="production"&&e.length>2){const p=`The "next" callback was never called inside of ${e.name?'"'+e.name+'"':""}:
19
+ ${e.toString()}
20
+ . If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`;if(typeof c=="object"&&"then"in c)d=d.then(m=>f._called?m:(v(p),Promise.reject(new Error("Invalid navigation guard"))));else if(c!==void 0&&!f._called){v(p),u(new Error("Invalid navigation guard"));return}}d.catch(p=>u(p))})}function Ns(e,t,n){let r=0;return function(){r++===1&&v(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,r===1&&e.apply(null,arguments)}}function lt(e,t,n,r,o=a=>a()){const a=[];for(const i of e){process.env.NODE_ENV!=="production"&&!i.components&&!i.children.length&&v(`Record with path "${i.path}" is either missing a "component(s)" or "children" property.`);for(const l in i.components){let u=i.components[l];if(process.env.NODE_ENV!=="production"){if(!u||typeof u!="object"&&typeof u!="function")throw v(`Component "${l}" in record with path "${i.path}" is not a valid component. Received "${String(u)}".`),new Error("Invalid route component");if("then"in u){v(`Component "${l}" in record with path "${i.path}" is a Promise instead of a function that returns a Promise. Did you write "import('./MyPage.vue')" instead of "() => import('./MyPage.vue')" ? This will break in production if not fixed.`);const f=u;u=()=>f}else u.__asyncLoader&&!u.__warnedDefineAsync&&(u.__warnedDefineAsync=!0,v(`Component "${l}" in record with path "${i.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`))}if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(en(u)){const c=(u.__vccOpts||u)[t];c&&a.push(X(c,n,r,i,l,o))}else{let f=u();process.env.NODE_ENV!=="production"&&!("catch"in f)&&(v(`Component "${l}" in record with path "${i.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`),f=Promise.resolve(f)),a.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const d=Ro(c)?c.default:c;i.mods[l]=c,i.components[l]=d;const m=(d.__vccOpts||d)[t];return m&&X(m,n,r,i,l,o)()}))}}}return a}function Rn(e){const t=s.inject(at),n=s.inject(Sn);let r=!1,o=null;const a=s.computed(()=>{const c=s.unref(e.to);return process.env.NODE_ENV!=="production"&&(!r||c!==o)&&(Te(c)||(r?v(`Invalid value for prop "to" in useLink()
21
+ - to:`,c,`
22
+ - previous to:`,o,`
23
+ - props:`,e):v(`Invalid value for prop "to" in useLink()
24
+ - to:`,c,`
25
+ - props:`,e)),o=c,r=!0),t.resolve(c)}),i=s.computed(()=>{const{matched:c}=a.value,{length:d}=c,p=c[d-1],m=n.matched;if(!p||!m.length)return-1;const b=m.findIndex(Z.bind(null,p));if(b>-1)return b;const y=vn(c[d-2]);return d>1&&vn(p)===y&&m[m.length-1].path!==y?m.findIndex(Z.bind(null,c[d-2])):b}),l=s.computed(()=>i.value>-1&&vs(n.params,a.value.params)),u=s.computed(()=>i.value>-1&&i.value===n.matched.length-1&&cn(n.params,a.value.params));function f(c={}){return Rs(c)?t[s.unref(e.replace)?"replace":"push"](s.unref(e.to)).catch(ge):Promise.resolve()}if(process.env.NODE_ENV!=="production"&&K){const c=s.getCurrentInstance();if(c){const d={route:a.value,isActive:l.value,isExactActive:u.value,error:null};c.__vrl_devtools=c.__vrl_devtools||[],c.__vrl_devtools.push(d),s.watchEffect(()=>{d.route=a.value,d.isActive=l.value,d.isExactActive=u.value,d.error=Te(s.unref(e.to))?null:'Invalid "to" value'},{flush:"post"})}}return{route:a,href:s.computed(()=>a.value.href),isActive:l,isExactActive:u,navigate:f}}const Ss=s.defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Rn,setup(e,{slots:t}){const n=s.reactive(Rn(e)),{options:r}=s.inject(at),o=s.computed(()=>({[Vn(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Vn(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&t.default(n);return e.custom?a:s.h("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},a)}}});function Rs(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function vs(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!q(o)||o.length!==r.length||r.some((a,i)=>a!==o[i]))return!1}return!0}function vn(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Vn=(e,t,n)=>e??t??n,Vs=s.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){process.env.NODE_ENV!=="production"&&Os();const r=s.inject(it),o=s.computed(()=>e.route||r.value),a=s.inject(Nn,0),i=s.computed(()=>{let f=s.unref(a);const{matched:c}=o.value;let d;for(;(d=c[f])&&!d.components;)f++;return f}),l=s.computed(()=>o.value.matched[i.value]);s.provide(Nn,s.computed(()=>i.value+1)),s.provide(Cs,l),s.provide(it,o);const u=s.ref();return s.watch(()=>[u.value,l.value,e.name],([f,c,d],[p,m,b])=>{c&&(c.instances[d]=f,m&&m!==c&&f&&f===p&&(c.leaveGuards.size||(c.leaveGuards=m.leaveGuards),c.updateGuards.size||(c.updateGuards=m.updateGuards))),f&&c&&(!m||!Z(c,m)||!p)&&(c.enterCallbacks[d]||[]).forEach(y=>y(f))},{flush:"post"}),()=>{const f=o.value,c=e.name,d=l.value,p=d&&d.components[c];if(!p)return $n(n.default,{Component:p,route:f});const m=d.props[c],b=m?m===!0?f.params:typeof m=="function"?m(f):m:null,y=N=>{N.component.isUnmounted&&(d.instances[c]=null)},w=s.h(p,T({},b,t,{onVnodeUnmounted:y,ref:u}));if(process.env.NODE_ENV!=="production"&&K&&w.ref){const N={depth:i.value,name:d.name,path:d.path,meta:d.meta};(q(w.ref)?w.ref.map(k=>k.i):[w.ref.i]).forEach(k=>{k.__vrv_devtools=N})}return $n(n.default,{Component:w,route:f})||w}}});function $n(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const $s=Vs;function Os(){const e=s.getCurrentInstance(),t=e.parent&&e.parent.type.name,n=e.parent&&e.parent.subTree&&e.parent.subTree.type;if(t&&(t==="KeepAlive"||t.includes("Transition"))&&typeof n=="object"&&n.name==="RouterView"){const r=t==="KeepAlive"?"keep-alive":"transition";v(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.
26
+ Use slot props instead:
27
+
28
+ <router-view v-slot="{ Component }">
29
+ <${r}>
30
+ <component :is="Component" />
31
+ </${r}>
32
+ </router-view>`)}}function Ee(e,t){const n=T({},e,{matched:e.matched.map(r=>Us(r,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function Pe(e){return{_custom:{display:e}}}let Ts=0;function Ps(e,t,n){if(t.__hasDevtools)return;t.__hasDevtools=!0;const r=Ts++;So({id:"org.vuejs.router"+(r?"."+r:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},o=>{typeof o.now!="function"&&console.warn("[Vue Router]: 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."),o.on.inspectComponent((c,d)=>{c.instanceData&&c.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:Ee(t.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:c,componentInstance:d})=>{if(d.__vrv_devtools){const p=d.__vrv_devtools;c.tags.push({label:(p.name?`${p.name.toString()}: `:"")+p.path,textColor:0,tooltip:"This component is rendered by &lt;router-view&gt;",backgroundColor:On})}q(d.__vrl_devtools)&&(d.__devtoolsApi=o,d.__vrl_devtools.forEach(p=>{let m=p.route.path,b=An,y="",w=0;p.error?(m=p.error,b=Ms,w=Ls):p.isExactActive?(b=Pn,y="This is exactly active"):p.isActive&&(b=Tn,y="This link is active"),c.tags.push({label:m,textColor:w,tooltip:y,backgroundColor:b})}))}),s.watch(t.currentRoute,()=>{u(),o.notifyComponentUpdate(),o.sendInspectorTree(l),o.sendInspectorState(l)});const a="router:navigations:"+r;o.addTimelineLayer({id:a,label:`Router${r?" "+r:""} Navigations`,color:4237508}),t.onError((c,d)=>{o.addTimelineEvent({layerId:a,event:{title:"Error during Navigation",subtitle:d.fullPath,logType:"error",time:o.now(),data:{error:c},groupId:d.meta.__navigationId}})});let i=0;t.beforeEach((c,d)=>{const p={guard:Pe("beforeEach"),from:Ee(d,"Current Location during this navigation"),to:Ee(c,"Target location")};Object.defineProperty(c.meta,"__navigationId",{value:i++}),o.addTimelineEvent({layerId:a,event:{time:o.now(),title:"Start of navigation",subtitle:c.fullPath,data:p,groupId:c.meta.__navigationId}})}),t.afterEach((c,d,p)=>{const m={guard:Pe("afterEach")};p?(m.failure={_custom:{type:Error,readOnly:!0,display:p?p.message:"",tooltip:"Navigation Failure",value:p}},m.status=Pe("❌")):m.status=Pe("✅"),m.from=Ee(d,"Current Location during this navigation"),m.to=Ee(c,"Target location"),o.addTimelineEvent({layerId:a,event:{title:"End of navigation",subtitle:c.fullPath,time:o.now(),data:m,logType:p?"warning":"default",groupId:c.meta.__navigationId}})});const l="router-inspector:"+r;o.addInspector({id:l,label:"Routes"+(r?" "+r:""),icon:"book",treeFilterPlaceholder:"Search routes"});function u(){if(!f)return;const c=f;let d=n.getRoutes().filter(p=>!p.parent||!p.parent.record.components);d.forEach(In),c.filter&&(d=d.filter(p=>ct(p,c.filter.toLowerCase()))),d.forEach(p=>Dn(p,t.currentRoute.value)),c.rootNodes=d.map(Bn)}let f;o.on.getInspectorTree(c=>{f=c,c.app===e&&c.inspectorId===l&&u()}),o.on.getInspectorState(c=>{if(c.app===e&&c.inspectorId===l){const p=n.getRoutes().find(m=>m.record.__vd_id===c.nodeId);p&&(c.state={options:Bs(p)})}}),o.sendInspectorTree(l),o.sendInspectorState(l)})}function As(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function Bs(e){const{record:t}=e,n=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&n.push({editable:!1,key:"name",value:t.name}),n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(r=>`${r.name}${As(r)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&n.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(r=>r.record.path)}),Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta}),n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(r=>r.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}const On=15485081,Tn=2450411,Pn=8702998,Ds=2282478,An=16486972,Is=6710886,Ms=16704226,Ls=12131356;function Bn(e){const t=[],{record:n}=e;n.name!=null&&t.push({label:String(n.name),textColor:0,backgroundColor:Ds}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:An}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:On}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:Pn}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Tn}),n.redirect&&t.push({label:typeof n.redirect=="string"?`redirect: ${n.redirect}`:"redirects",textColor:16777215,backgroundColor:Is});let r=n.__vd_id;return r==null&&(r=String(js++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(Bn)}}let js=0;const Fs=/^\/(.*)\/([a-z]*)$/;function Dn(e,t){const n=t.matched.length&&Z(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=n,n||(e.__vd_active=t.matched.some(r=>Z(r,e.record))),e.children.forEach(r=>Dn(r,t))}function In(e){e.__vd_match=!1,e.children.forEach(In)}function ct(e,t){const n=String(e.re).match(Fs);if(e.__vd_match=!1,!n||n.length<3)return!1;if(new RegExp(n[1].replace(/\$$/,""),n[2]).test(t))return e.children.forEach(i=>ct(i,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const o=e.record.path.toLowerCase(),a=le(o);return!t.startsWith("/")&&(a.includes(t)||o.includes(t))||a.startsWith(t)||o.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(i=>ct(i,t))}function Us(e,t){const n={};for(const r in e)t.includes(r)||(n[r]=e[r]);return n}function Hs(e){const t=hs(e.routes,e),n=e.parseQuery||xs,r=e.stringifyQuery||Cn,o=e.history;if(process.env.NODE_ENV!=="production"&&!o)throw new Error('Provide the "history" option when calling "createRouter()": https://router.vuejs.org/api/interfaces/RouterOptions.html#history');const a=we(),i=we(),l=we(),u=s.shallowRef(Q);let f=Q;K&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Ye.bind(null,g=>""+g),d=Ye.bind(null,jo),p=Ye.bind(null,le);function m(g,_){let E,C;return hn(g)?(E=t.getRecordMatcher(g),process.env.NODE_ENV!=="production"&&!E&&v(`Parent route "${String(g)}" not found when adding child route`,_),C=_):C=g,t.addRoute(C,E)}function b(g){const _=t.getRecordMatcher(g);_?t.removeRoute(_):process.env.NODE_ENV!=="production"&&v(`Cannot remove non-existent route "${String(g)}"`)}function y(){return t.getRoutes().map(g=>g.record)}function w(g){return!!t.getRecordMatcher(g)}function N(g,_){if(_=T({},_||u.value),typeof g=="string"){const V=nt(n,g,_.path),M=t.resolve({path:V.path},_),re=o.createHref(V.fullPath);return process.env.NODE_ENV!=="production"&&(re.startsWith("//")?v(`Location "${g}" resolved to "${re}". A resolved location cannot start with multiple slashes.`):M.matched.length||v(`No match found for location with path "${g}"`)),T(V,M,{params:p(M.params),hash:le(V.hash),redirectedFrom:void 0,href:re})}if(process.env.NODE_ENV!=="production"&&!Te(g))return v(`router.resolve() was passed an invalid location. This will fail in production.
33
+ - Location:`,g),N({});let E;if(g.path!=null)process.env.NODE_ENV!=="production"&&"params"in g&&!("name"in g)&&Object.keys(g.params).length&&v(`Path "${g.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),E=T({},g,{path:nt(n,g.path,_.path).path});else{const V=T({},g.params);for(const M in V)V[M]==null&&delete V[M];E=T({},g,{params:d(V)}),_.params=d(_.params)}const C=t.resolve(E,_),A=g.hash||"";process.env.NODE_ENV!=="production"&&A&&!A.startsWith("#")&&v(`A \`hash\` should always start with the character "#". Replace "${A}" with "#${A}".`),C.params=c(p(C.params));const L=Ho(r,T({},g,{hash:Io(A),path:C.path})),$=o.createHref(L);return process.env.NODE_ENV!=="production"&&($.startsWith("//")?v(`Location "${g}" resolved to "${$}". A resolved location cannot start with multiple slashes.`):C.matched.length||v(`No match found for location with path "${g.path!=null?g.path:g}"`)),T({fullPath:L,hash:A,query:r===Cn?ks(g.query):g.query||{}},C,{redirectedFrom:void 0,href:$})}function x(g){return typeof g=="string"?nt(n,g,u.value.path):T({},g)}function k(g,_){if(f!==g)return ce(8,{from:_,to:g})}function D(g){return P(g)}function S(g){return D(T(x(g),{replace:!0}))}function I(g){const _=g.matched[g.matched.length-1];if(_&&_.redirect){const{redirect:E}=_;let C=typeof E=="function"?E(g):E;if(typeof C=="string"&&(C=C.includes("?")||C.includes("#")?C=x(C):{path:C},C.params={}),process.env.NODE_ENV!=="production"&&C.path==null&&!("name"in C))throw v(`Invalid redirect found:
34
+ ${JSON.stringify(C,null,2)}
35
+ when navigating to "${g.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect");return T({query:g.query,hash:g.hash,params:C.path!=null?{}:g.params},C)}}function P(g,_){const E=f=N(g),C=u.value,A=g.state,L=g.force,$=g.replace===!0,V=I(E);if(V)return P(T(x(V),{state:typeof V=="object"?T({},A,V.state):A,force:L,replace:$}),_||E);const M=E;M.redirectedFrom=_;let re;return!L&&ln(r,C,E)&&(re=ce(16,{to:M,from:C}),qn(C,C,!0,!1)),(re?Promise.resolve(re):jn(M,C)).catch(j=>W(j)?W(j,2)?j:pt(j):ft(j,M,C)).then(j=>{if(j){if(W(j,2))return process.env.NODE_ENV!=="production"&&ln(r,N(j.to),M)&&_&&(_._count=_._count?_._count+1:1)>30?(v(`Detected a possibly infinite redirection in a navigation guard when going from "${C.fullPath}" to "${M.fullPath}". Aborting to avoid a Stack Overflow.
36
+ Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):P(T({replace:$},x(j.to),{state:typeof j.to=="object"?T({},A,j.to.state):A,force:L}),_||M)}else j=Un(M,C,!0,$,A);return Fn(M,C,j),j})}function ne(g,_){const E=k(g,_);return E?Promise.reject(E):Promise.resolve()}function ue(g){const _=Be.values().next().value;return _&&typeof _.runWithContext=="function"?_.runWithContext(g):g()}function jn(g,_){let E;const[C,A,L]=qs(g,_);E=lt(C.reverse(),"beforeRouteLeave",g,_);for(const V of C)V.leaveGuards.forEach(M=>{E.push(X(M,g,_))});const $=ne.bind(null,g,_);return E.push($),de(E).then(()=>{E=[];for(const V of a.list())E.push(X(V,g,_));return E.push($),de(E)}).then(()=>{E=lt(A,"beforeRouteUpdate",g,_);for(const V of A)V.updateGuards.forEach(M=>{E.push(X(M,g,_))});return E.push($),de(E)}).then(()=>{E=[];for(const V of L)if(V.beforeEnter)if(q(V.beforeEnter))for(const M of V.beforeEnter)E.push(X(M,g,_));else E.push(X(V.beforeEnter,g,_));return E.push($),de(E)}).then(()=>(g.matched.forEach(V=>V.enterCallbacks={}),E=lt(L,"beforeRouteEnter",g,_,ue),E.push($),de(E))).then(()=>{E=[];for(const V of i.list())E.push(X(V,g,_));return E.push($),de(E)}).catch(V=>W(V,8)?V:Promise.reject(V))}function Fn(g,_,E){l.list().forEach(C=>ue(()=>C(g,_,E)))}function Un(g,_,E,C,A){const L=k(g,_);if(L)return L;const $=_===Q,V=K?history.state:{};E&&(C||$?o.replace(g.fullPath,T({scroll:$&&V&&V.scroll},A)):o.push(g.fullPath,A)),u.value=g,qn(g,_,E,$),pt()}let _e;function Ol(){_e||(_e=o.listen((g,_,E)=>{if(!zn.listening)return;const C=N(g),A=I(C);if(A){P(T(A,{replace:!0}),C).catch(ge);return}f=C;const L=u.value;K&&Qo(dn(L.fullPath,E.delta),Oe()),jn(C,L).catch($=>W($,12)?$:W($,2)?(P($.to,C).then(V=>{W(V,20)&&!E.delta&&E.type===be.pop&&o.go(-1,!1)}).catch(ge),Promise.reject()):(E.delta&&o.go(-E.delta,!1),ft($,C,L))).then($=>{$=$||Un(C,L,!1),$&&(E.delta&&!W($,8)?o.go(-E.delta,!1):E.type===be.pop&&W($,20)&&o.go(-1,!1)),Fn(C,L,$)}).catch(ge)}))}let dt=we(),Hn=we(),Ae;function ft(g,_,E){pt(g);const C=Hn.list();return C.length?C.forEach(A=>A(g,_,E)):(process.env.NODE_ENV!=="production"&&v("uncaught error during route navigation:"),console.error(g)),Promise.reject(g)}function Tl(){return Ae&&u.value!==Q?Promise.resolve():new Promise((g,_)=>{dt.add([g,_])})}function pt(g){return Ae||(Ae=!g,Ol(),dt.list().forEach(([_,E])=>g?E(g):_()),dt.reset()),g}function qn(g,_,E,C){const{scrollBehavior:A}=e;if(!K||!A)return Promise.resolve();const L=!E&&Xo(dn(g.fullPath,0))||(C||!E)&&history.state&&history.state.scroll||null;return s.nextTick().then(()=>A(g,_,L)).then($=>$&&Zo($)).catch($=>ft($,g,_))}const ht=g=>o.go(g);let mt;const Be=new Set,zn={currentRoute:u,listening:!0,addRoute:m,removeRoute:b,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:y,resolve:N,options:e,push:D,replace:S,go:ht,back:()=>ht(-1),forward:()=>ht(1),beforeEach:a.add,beforeResolve:i.add,afterEach:l.add,onError:Hn.add,isReady:Tl,install(g){const _=this;g.component("RouterLink",Ss),g.component("RouterView",$s),g.config.globalProperties.$router=_,Object.defineProperty(g.config.globalProperties,"$route",{enumerable:!0,get:()=>s.unref(u)}),K&&!mt&&u.value===Q&&(mt=!0,D(o.location).catch(A=>{process.env.NODE_ENV!=="production"&&v("Unexpected error when starting the router:",A)}));const E={};for(const A in Q)Object.defineProperty(E,A,{get:()=>u.value[A],enumerable:!0});g.provide(at,_),g.provide(Sn,s.shallowReactive(E)),g.provide(it,u);const C=g.unmount;Be.add(g),g.unmount=function(){Be.delete(g),Be.size<1&&(f=Q,_e&&_e(),_e=null,u.value=Q,mt=!1,Ae=!1),C()},process.env.NODE_ENV!=="production"&&K&&Ps(g,_,t)}};function de(g){return g.reduce((_,E)=>_.then(()=>ue(E)),Promise.resolve())}return zn}function qs(e,t){const n=[],r=[],o=[],a=Math.max(t.matched.length,e.matched.length);for(let i=0;i<a;i++){const l=t.matched[i];l&&(e.matched.find(f=>Z(f,l))?r.push(l):n.push(l));const u=e.matched[i];u&&(t.matched.find(f=>Z(f,u))||o.push(u))}return[n,r,o]}const zs=[{name:"edit",path:"/edit",component:()=>Promise.resolve().then(()=>ma)},{name:"add",path:"/add",component:()=>Promise.resolve().then(()=>ka)},{name:"card-view",path:"/card",component:()=>Promise.resolve().then(()=>Ln),children:[{name:"table",path:":table",component:()=>Promise.resolve().then(()=>Ln),children:[{name:"card",path:":id",component:()=>Promise.resolve().then(()=>Ta)}]}]}],Ks={},Ws={class:"bg-gray-200 w-full px-16 md:px-0 h-screen flex items-center justify-center"},Gs={class:"bg-white border border-gray-200 flex flex-col items-center justify-center px-4 md:px-8 lg:px-24 py-8 rounded-lg shadow-2xl"};function Js(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("div",Ws,[s.createElementVNode("div",Gs,[t[2]||(t[2]=s.createElementVNode("p",{class:"text-6xl md:text-7xl lg:text-9xl font-bold tracking-wider text-gray-300"}," 404 ",-1)),t[3]||(t[3]=s.createElementVNode("p",{class:"text-2xl md:text-3xl lg:text-5xl font-bold tracking-wider text-gray-500 mt-4"}," Сторінку не знайдено ",-1)),t[4]||(t[4]=s.createElementVNode("p",{class:"text-gray-500 mt-4 pb-4 border-b-2 text-center"}," Вибачте, така сторінка не існує ",-1)),s.createElementVNode("div",{onClick:t[0]||(t[0]=i=>e.$router.push("/")),class:"flex cursor-pointer items-center space-x-2 bg-blue-600 hover:bg-blue-700 text-gray-100 px-4 py-2 mt-6 rounded transition duration-150",title:"Return Home"},t[1]||(t[1]=[s.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor"},[s.createElementVNode("path",{"fill-rule":"evenodd",d:"M9.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L7.414 9H15a1 1 0 110 2H7.414l2.293 2.293a1 1 0 010 1.414z","clip-rule":"evenodd"})],-1),s.createElementVNode("span",null,"Повернутись на головну",-1)]))])])}const Zs=B(Ks,[["render",Js]]),Qs=()=>{const e=zs.map(n=>({...n}));return{router:Hs({history:ns(),routes:[{path:"/404",name:"404",component:Zs},{path:"/",name:"global",component:()=>Promise.resolve().then(()=>si),children:[...e,{path:"/:catchAll(.*)",component:()=>Promise.resolve().then(()=>$l)}]}]}),routerData:e}},Xs={props:{value:{type:[String],default:()=>""}},data(){return{}}};function Ys(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("div",null,s.toDisplayString(n.value),1)}const ut=B(Xs,[["render",Ys]]),ea={props:{value:{type:[String],default:()=>""}},data(){return{}}},ta={class:"p-2 ps-1.5 px-2 inline-flex items-center gap-x-1.5 text-xs font-medium bg-green-100 text-green-800 rounded-md"};function na(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("div",ta,s.toDisplayString(n.value),1)}const ra=B(ea,[["render",na]]),oa={props:{data:Object,name:String},computed:{getValue(){var e;return(e=this.data)==null?void 0:e[this.name]}}};function sa(e,t,n,r,o,a){const i=s.resolveComponent("VsSwitch");return s.openBlock(),s.createBlock(i,{modelValue:a.getValue,"onUpdate:modelValue":t[0]||(t[0]=l=>a.getValue=l),disabled:"true"},null,8,["modelValue"])}const aa={"table-format-text":ut,"table-format-select":ut,"table-format-badge":ra,"table-format-swetch":B(oa,[["render",sa]]),"table-format-html":ut},ia={admin:{install(e){O.defaults.baseURL&&(O.defaults.baseURL=O.defaults.baseURL);const{router:t}=Qs();e.component("admin",yo),e.config.globalProperties={...e.config.globalProperties,$componentsConfig:aa,$router:t},e.use(t)}}},G=s.ref(null),Mn={sur_name:{ua:"Прізвище",type:"text",validators:["required"]},user_name:{ua:"Ім'я",type:"text",validators:["required"]},father_name:{ua:"По батькові",type:"text"},email:{ua:"Email",type:"email",validators:["required"]},phone:{ua:"Номер телефону",type:"text"},avatar:{ua:"Аватар",type:"file"}},la={data(){return{formValues:{}}},computed:{form(){return Mn}},mounted(){},methods:{flattenMenu(e){const t=[];return e.forEach(n=>{n.menu?t.push(...this.flattenMenu(n.menu)):t.push(n)}),t}}},ca={style:{width:"calc(100vw - 260px)"}},ua={class:"h-[58px] bg-gray-50 flex items-center justify-between px-[30px]"},da={class:"flex items-center gap-[6px]"},fa={style:{height:"calc(100vh - 60px)",width:"calc(100vw - 260px)"},class:"bg-gray-50 p-[20px] flex"},pa={class:"bg-white w-full rounded-xl border p-[20px]"};function ha(e,t,n,r,o,a){const i=s.resolveComponent("VsForm");return s.openBlock(),s.createElementBlock("div",ca,[s.createElementVNode("div",ua,[t[3]||(t[3]=s.createElementVNode("h2",{class:"text-xl font-medium"},"Створити",-1)),s.createElementVNode("div",da,[s.createElementVNode("button",{onClick:t[0]||(t[0]=l=>e.$router.back()),class:"py-2 px-3 flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-100 text-gray-800 shadow bg-white focus:outline-none hover:bg-gray-50 hover:border-gray-100 duration-300"}," Скасувати "),t[2]||(t[2]=s.createElementVNode("button",{class:"py-2 px-3 flex items-center gap-x-2 text-sm text-white font-medium rounded-lg border-none bg-blue-500 text-gray-800 shadow-sm focus:border-none focus:outline-none hover:bg-blue-700 hover:text-white duration-300"}," Зберегти ",-1))])]),s.createElementVNode("div",fa,[s.createElementVNode("div",pa,[s.createVNode(i,{scheme:a.form,modelValue:o.formValues,"onUpdate:modelValue":t[1]||(t[1]=l=>o.formValues=l),class:"p-0 mt-[20px]"},null,8,["scheme","modelValue"])])])])}const ma=Object.freeze(Object.defineProperty({__proto__:null,default:B(la,[["render",ha]])},Symbol.toStringTag,{value:"Module"})),ga={data(){return{formValues:{}}},computed:{form(){return Mn}},mounted(){},methods:{flattenMenu(e){const t=[];return e.forEach(n=>{n.menu?t.push(...this.flattenMenu(n.menu)):t.push(n)}),t}},async createObject(){try{await axios.post("/api/",this.formValues),await this.$router.replace("")}catch{}}},ba={style:{width:"calc(100vw - 260px)"}},ya={class:"h-[58px] bg-gray-50 flex items-center justify-between px-[30px]"},wa={class:"flex items-center gap-[6px]"},Ea={style:{height:"calc(100vh - 60px)",width:"calc(100vw - 260px)"},class:"bg-gray-50 p-[20px] flex"},_a={class:"bg-white w-full rounded-xl border p-[20px]"};function xa(e,t,n,r,o,a){const i=s.resolveComponent("VsForm");return s.openBlock(),s.createElementBlock("div",ba,[s.createElementVNode("div",ya,[t[3]||(t[3]=s.createElementVNode("h2",{class:"text-xl font-medium"},"Створити",-1)),s.createElementVNode("div",wa,[s.createElementVNode("button",{onClick:t[0]||(t[0]=l=>e.$router.back()),class:"py-2 px-3 flex items-center gap-x-2 text-sm font-medium rounded-lg border bg-white border-gray-100 text-gray-800 shadow focus:outline-none hover:bg-gray-50 hover:border-gray-100 duration-300"}," Скасувати "),t[2]||(t[2]=s.createElementVNode("button",{class:"py-2 px-3 flex items-center gap-x-2 text-sm text-white font-medium rounded-lg border-none bg-blue-500 text-gray-800 shadow-sm focus:border-none focus:outline-none hover:bg-blue-700 hover:text-white duration-300"}," Зберегти ",-1))])]),s.createElementVNode("div",Ea,[s.createElementVNode("div",_a,[s.createVNode(i,{scheme:a.form,modelValue:o.formValues,"onUpdate:modelValue":t[1]||(t[1]=l=>o.formValues=l),class:"p-0 mt-[20px]"},null,8,["scheme","modelValue"])])])])}const ka=Object.freeze(Object.defineProperty({__proto__:null,default:B(ga,[["render",xa]])},Symbol.toStringTag,{value:"Module"})),Ca={};function Na(e,t,n,r,o,a){const i=s.resolveComponent("router-view");return s.openBlock(),s.createBlock(i)}const Ln=Object.freeze(Object.defineProperty({__proto__:null,default:B(Ca,[["render",Na]])},Symbol.toStringTag,{value:"Module"})),Sa={data(){return{objectData:null}},mounted(){this.getObjectData()},methods:{async getObjectData(){var n,r;const{table:e,id:t}=(n=this.$route)==null?void 0:n.params;(!e||!t)&&this.$router.replace("/404");try{const{data:o}=await O.get(`/api/table-data/${e}/${t}`);this.objectData=(r=o==null?void 0:o.data)==null?void 0:r.general_info,console.log(o==null?void 0:o.rows)}catch{}}}},Ra={style:{width:"calc(100vw - 260px)"}},va={style:{height:"calc(100vh - 60px)",width:"calc(100vw - 260px)"},class:"bg-gray-50 p-[20px] flex"},Va={class:"p-[20px]"},$a=["innerHTML"];function Oa(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("div",Ra,[t[0]||(t[0]=s.createElementVNode("div",{class:"h-[58px] bg-gray-50 flex items-center justify-between px-[30px]"},[s.createElementVNode("h2",{class:"text-xl font-medium"},"Створити"),s.createElementVNode("div",{class:"flex items-center gap-[6px]"},[s.createElementVNode("button",{class:"py-2 px-3 flex items-center gap-x-2 text-sm text-white font-medium rounded-lg border-none bg-blue-500 text-gray-800 shadow-sm focus:border-none focus:outline-none hover:bg-blue-700 hover:text-white duration-300"}," Редагувати ")])],-1)),s.createElementVNode("div",va,[s.createElementVNode("div",Va,[s.createElementVNode("div",{class:"bg-white w-full rounded-xl border p-[20px]",innerHTML:o.objectData},null,8,$a)])])])}const Ta=Object.freeze(Object.defineProperty({__proto__:null,default:B(Sa,[["render",Oa]])},Symbol.toStringTag,{value:"Module"})),Pa={},Aa={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-logout"};function Ba(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",Aa,t[0]||(t[0]=[s.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),s.createElementVNode("path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2"},null,-1),s.createElementVNode("path",{d:"M9 12h12l-3 -3"},null,-1),s.createElementVNode("path",{d:"M18 15l3 -3"},null,-1)]))}const Da=B(Pa,[["render",Ba]]),Ia={},Ma={viewBox:"0 0 1823 249",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function La(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",Ma,t[0]||(t[0]=[s.createStaticVNode('<path d="M218.88 96.05C223.55 99.19 228.69 101.56 234.09 103.07V145.42C212.05 151.54 195.83 171.79 195.83 195.75C195.83 200.22 196.41 204.65 197.53 208.94L160.92 230.08C156.82 226.06 152.08 222.73 146.91 220.24V171.62C164.83 163.13 176.59 145.06 176.59 124.48C176.59 123.17 176.54 121.86 176.44 120.56L218.88 96.05ZM220.32 79.09L160.97 113.36C162.04 116.88 162.61 120.61 162.61 124.48C162.61 142.66 149.93 157.87 132.93 161.76V230.05C143.4 232.46 152.23 239.16 157.46 248.21L215 214.99C211.7 209.34 209.81 202.77 209.81 195.75C209.81 174.62 226.94 157.49 248.07 157.49V91.02C237.14 91.02 227.29 86.43 220.32 79.09Z" fill="#CE3936"></path><path d="M161.39 19.13L197.44 39.94C196.39 44.11 195.84 48.42 195.84 52.75C195.84 54.21 195.9 55.65 196.02 57.1L153.9 81.42C145.27 75.5 134.95 72.24 124.36 72.24C113.83 72.24 103.57 75.47 94.96 81.32L52.71 56.93C52.82 55.55 52.88 54.16 52.88 52.76C52.88 48.43 52.34 44.12 51.28 39.95L87.3 19.16C96.98 28.89 110.26 34.58 124.34 34.58C138.42 34.57 151.7 28.87 161.39 19.13ZM157.77 0.919983C151.24 12.66 138.71 20.6 124.33 20.6C109.95 20.6 97.44 12.67 90.9 0.939983L33.9 33.85C37.08 39.43 38.91 45.88 38.91 52.76C38.91 56.71 38.31 60.52 37.2 64.11L96.46 98.32C103.44 90.87 113.36 86.22 124.37 86.22C135.44 86.22 145.41 90.93 152.39 98.44L211.59 64.27C210.45 60.64 209.83 56.78 209.83 52.77C209.83 45.89 211.65 39.44 214.84 33.86L157.77 0.919983Z" fill="#CE3936"></path><path d="M29.97 95.95L72.28 120.38C72.17 121.74 72.12 123.1 72.12 124.47C72.12 145.02 83.86 163.08 101.74 171.58V220.23C96.58 222.71 91.84 226.04 87.75 230.05L51.17 208.93C52.29 204.64 52.87 200.21 52.87 195.74C52.87 171.78 36.65 151.53 14.61 145.41V103.06C20.07 101.55 25.27 99.14 29.97 95.95ZM28.5 78.97C21.52 86.38 11.63 91.02 0.640015 91.02V157.49C21.77 157.49 38.9 174.62 38.9 195.75C38.9 202.77 37 209.33 33.71 214.99L91.2 248.18C96.43 239.14 105.25 232.45 115.71 230.04V161.73C98.74 157.81 86.09 142.62 86.09 124.46C86.09 120.54 86.68 116.75 87.78 113.18L28.5 78.97Z" fill="#CE3936"></path><path d="M498.39 177.5V144.88C498.39 128.55 485.11 115.27 468.78 115.27H343.22C342.69 115.27 342.18 115.32 341.67 115.4H337.19C332.35 115.4 328.42 111.46 328.42 106.63V74C328.42 69.16 332.36 65.23 337.19 65.23H486.33C492.08 65.23 496.75 60.57 496.75 54.81C496.75 49.06 492.08 44.39 486.33 44.39H337.19C320.86 44.39 307.58 57.67 307.58 74V106.62C307.58 122.95 320.86 136.23 337.19 136.23H462.75C463.28 136.23 463.79 136.18 464.3 136.1H468.78C473.62 136.1 477.55 140.04 477.55 144.87V177.49C477.55 182.33 473.61 186.26 468.78 186.26H319.64C313.89 186.26 309.22 190.92 309.22 196.68C309.22 202.43 313.89 207.1 319.64 207.1H468.78C485.11 207.11 498.39 193.83 498.39 177.5Z" fill="#CE3935"></path><path d="M710.7 177.32V75.24C710.7 58.91 697.42 45.63 681.09 45.63H550.05C533.72 45.63 520.44 58.91 520.44 75.24V177.32C520.44 193.65 533.72 206.93 550.05 206.93H681.1C697.42 206.93 710.7 193.65 710.7 177.32ZM541.27 75.24C541.27 70.4 545.21 66.47 550.04 66.47H681.09C685.93 66.47 689.86 70.41 689.86 75.24V177.32C689.86 182.16 685.92 186.09 681.09 186.09H550.05C545.21 186.09 541.28 182.15 541.28 177.32V75.24H541.27Z" fill="#CE3935"></path><path d="M1823 177.32V75.24C1823 58.91 1809.72 45.63 1793.39 45.63H1662.34C1646.01 45.63 1632.73 58.91 1632.73 75.24V177.32C1632.73 193.65 1646.01 206.93 1662.34 206.93H1793.39C1809.72 206.93 1823 193.65 1823 177.32ZM1653.57 75.24C1653.57 70.4 1657.51 66.47 1662.34 66.47H1793.39C1798.23 66.47 1802.16 70.41 1802.16 75.24V177.32C1802.16 182.16 1798.22 186.09 1793.39 186.09H1662.34C1657.5 186.09 1653.57 182.15 1653.57 177.32V75.24Z" fill="#CE3935"></path><path d="M756.76 196.51V152H849.42C855.17 152 859.84 147.34 859.84 141.58C859.84 135.83 855.17 131.16 849.42 131.16H756.76V75.23C756.76 70.39 760.7 66.46 765.53 66.46H893.29C899.04 66.46 903.71 61.8 903.71 56.04C903.71 50.29 899.04 45.62 893.29 45.62H765.53C749.2 45.62 735.92 58.9 735.92 75.23V196.5C735.92 202.25 740.59 206.92 746.34 206.92C752.09 206.93 756.76 202.27 756.76 196.51Z" fill="#CE3935"></path><path d="M933.86 66.47H1006.51V194.32C1006.51 200.07 1011.18 204.74 1016.93 204.74C1022.68 204.74 1027.35 200.07 1027.35 194.32V66.47H1100C1105.75 66.47 1110.42 61.81 1110.42 56.05C1110.42 50.3 1105.76 45.63 1100 45.63H933.86C928.11 45.63 923.44 50.29 923.44 56.05C923.45 61.81 928.11 66.47 933.86 66.47Z" fill="#CE3935"></path><path d="M1218.44 204.19C1224.19 204.19 1228.86 199.53 1228.86 193.77V152H1368.13C1384.46 152 1397.74 138.72 1397.74 122.39V75.24C1397.74 58.91 1384.46 45.63 1368.13 45.63H1237.63C1221.3 45.63 1208.02 58.91 1208.02 75.24V193.77C1208.02 199.53 1212.68 204.19 1218.44 204.19ZM1237.63 66.47H1368.13C1372.97 66.47 1376.9 70.41 1376.9 75.24V122.39C1376.9 127.23 1372.96 131.16 1368.13 131.16H1228.86V75.23C1228.86 70.41 1232.79 66.47 1237.63 66.47Z" fill="#CE3935"></path><path d="M1430.64 204.19C1436.39 204.19 1441.06 199.53 1441.06 193.77V152H1523.95C1524.57 153.18 1525.42 154.26 1526.51 155.17L1581.89 201.23C1583.83 202.85 1586.2 203.64 1588.55 203.64C1591.54 203.64 1594.5 202.36 1596.57 199.88C1600.25 195.46 1599.64 188.89 1595.22 185.21L1555.29 152H1580.33C1596.66 152 1609.94 138.72 1609.94 122.39V75.24C1609.94 58.91 1596.66 45.63 1580.33 45.63H1449.83C1433.5 45.63 1420.22 58.91 1420.22 75.24V193.77C1420.22 199.53 1424.88 204.19 1430.64 204.19ZM1449.83 66.47H1580.33C1585.17 66.47 1589.1 70.41 1589.1 75.24V122.39C1589.1 127.23 1585.17 131.16 1580.33 131.16H1441.06V75.23C1441.05 70.41 1444.99 66.47 1449.83 66.47Z" fill="#CE3935"></path>',10)]))}const ja=B(Ia,[["render",La]]),Fa={},Ua={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down"};function Ha(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",Ua,t[0]||(t[0]=[s.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),s.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const qa={components:{IconChevronDown:B(Fa,[["render",Ha]])},props:{route:Object},data(){return{isOpen:!1}}},za={key:0,class:""},Ka={class:"ml-[30px] before:block before:absolute relative w-[196px] inline-block before:w-[2px] before:h-[100%] before:bg-gray-100 before:left-[-14px] cursor-pointer"},Wa={key:1};function Ga(e,t,n,r,o,a){var u,f,c,d,p,m;const i=s.resolveComponent("IconChevronDown"),l=s.resolveComponent("router-link");return(u=n.route)!=null&&u.menu?(s.openBlock(),s.createElementBlock("div",za,[s.createElementVNode("button",{onClick:t[0]||(t[0]=b=>o.isOpen=!o.isOpen),class:"flex cursor-pointer gap-x-3 py-2 px-3 mb-[6px] text-sm text-gray-800 justify-start w-full border-none focus:outline-none text-gray-800 rounded-lg items-center focus:bg-gray-100 hover:bg-gray-100 duration-300"},[s.createTextVNode(s.toDisplayString((f=n.route)==null?void 0:f.ua)+" ",1),s.createVNode(i,{class:s.normalizeClass([[o.isOpen&&"-rotate-180"],"ml-auto duration-300"]),width:"16",height:"16"},null,8,["class"])]),s.createVNode(s.Transition,{name:"fade"},{default:s.withCtx(()=>{var b;return[s.withDirectives(s.createElementVNode("ul",Ka,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList((b=n.route)==null?void 0:b.menu,(y,w)=>{var N,x;return s.openBlock(),s.createElementBlock("li",{key:w,class:"w-full"},[s.createVNode(l,{to:"/"+(y==null?void 0:y.path),class:s.normalizeClass([[((x=(N=e.$route)==null?void 0:N.path)==null?void 0:x.includes(y==null?void 0:y.path))&&"bg-gray-100"],"flex gap-x-3 py-2 w-full font-[400] px-3 text-sm text-gray-800 rounded-lg items-center hover:bg-gray-100 duration-300 hover:text-gray-800"])},{default:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(y==null?void 0:y.ua),1)]),_:2},1032,["to","class"])])}),128))],512),[[s.vShow,o.isOpen]])]}),_:1})])):(s.openBlock(),s.createElementBlock("div",Wa,[s.createVNode(l,{to:(c=n.route)==null?void 0:c.path,class:s.normalizeClass([[((m=(d=e.$route)==null?void 0:d.path)==null?void 0:m.includes((p=n.route)==null?void 0:p.path))&&"bg-gray-100"],"flex gap-x-3 py-2 w-full font-[400] px-3 text-sm text-gray-800 rounded-lg items-center hover:bg-gray-100 duration-300 hover:text-gray-800"])},{default:s.withCtx(()=>{var b;return[s.createTextVNode(s.toDisplayString((b=n.route)==null?void 0:b.ua),1)]}),_:1},8,["to","class"])]))}const Ja={components:{IconLogout:Da,NavbarItem:B(qa,[["render",Ga]]),IconLogo:ja},data(){return{activeIndex:null,data:null,searchValue:""}},computed:{data(){var e,t;return(e=this.searchValue)!=null&&e.trim()?(t=this.flattenMenu(G.value))==null?void 0:t.filter(n=>{var r,o,a;return(a=(r=n==null?void 0:n.ua)==null?void 0:r.toLowerCase())==null?void 0:a.includes((o=this.searchValue)==null?void 0:o.toLowerCase())}):G.value}},methods:{flattenMenu(e){const t=[];return e.forEach(n=>{n.menu?t.push(...this.flattenMenu(n.menu)):t.push(n)}),t}}},Za={class:"flex flex-col h-[100vh] border-r w-[300px]"},Qa={class:"p-[16px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},Xa={class:"pb-3 w-full flex flex-col flex-wrap"},Ya={key:0,class:"flex flex-col gap-[6px]"},ei={key:1,class:"text-gray-800 text-lg mt-[20px]"};function ti(e,t,n,r,o,a){var u;const i=s.resolveComponent("IconLogo"),l=s.resolveComponent("NavbarItem");return s.openBlock(),s.createElementBlock("div",Za,[s.createVNode(i,{height:"40",width:"200",class:"my-[20px] ml-[20px]"}),s.withDirectives(s.createElementVNode("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=f=>o.searchValue=f),placeholder:"Пошук по меню",class:"h-[40px] block rounded-lg border mx-[10px] pl-[10px] focus:border-blue-600 focus:border-[2px] outline-none"},null,512),[[s.vModelText,o.searchValue]]),s.createElementVNode("div",Qa,[s.createElementVNode("nav",Xa,[(u=a.data)!=null&&u.length?(s.openBlock(),s.createElementBlock("ul",Ya,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(a.data,(f,c)=>(s.openBlock(),s.createElementBlock("li",{key:c},[s.createVNode(l,{route:f},null,8,["route"])]))),128))])):(s.openBlock(),s.createElementBlock("div",ei,"Нічього не знайдено"))])])])}const ni={components:{navbar:B(Ja,[["render",ti]])},mounted(){this.getMenu()},computed:{isMenu(){return G.value}},methods:{async getMenu(){try{const{data:e}=await O.get("/api/user-menu");G.value=e}catch{}}}},ri={class:"admin-wrapper"};function oi(e,t,n,r,o,a){const i=s.resolveComponent("navbar"),l=s.resolveComponent("router-view");return s.openBlock(),s.createElementBlock("div",ri,[s.createVNode(i),a.isMenu?(s.openBlock(),s.createBlock(l,{key:0})):s.createCommentVNode("",!0)])}const si=Object.freeze(Object.defineProperty({__proto__:null,default:B(ni,[["render",oi],["__scopeId","data-v-3a278cfb"]])},Symbol.toStringTag,{value:"Module"})),ai={},ii={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-adjustments-horizontal"};function li(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",ii,t[0]||(t[0]=[s.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 6l8 0"></path><path d="M16 6l4 0"></path><path d="M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 12l2 0"></path><path d="M10 12l10 0"></path><path d="M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 18l11 0"></path><path d="M19 18l1 0"></path>',10)]))}const ci=B(ai,[["render",li]]),ui={},di={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-dots-vertical"};function fi(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",di,t[0]||(t[0]=[s.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),s.createElementVNode("path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"},null,-1),s.createElementVNode("path",{d:"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"},null,-1),s.createElementVNode("path",{d:"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"},null,-1)]))}const pi=B(ui,[["render",fi]]),hi={},mi={class:"flex-shrink-0 size-3.5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function gi(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",mi,t[0]||(t[0]=[s.createStaticVNode('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>',5)]))}const bi=B(hi,[["render",gi]]),yi={props:{height:{type:String,default:"16"},width:{type:String,default:"12"},color:{type:String,default:"black"}}},wi={style:{display:"none"}},Ei=["height","width","fill"];function _i(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock(s.Fragment,null,[(s.openBlock(),s.createElementBlock("svg",wi,t[0]||(t[0]=[s.createElementVNode("symbol",{id:"icon-pencil",viewBox:"0 0 32 32"},[s.createElementVNode("path",{d:"M27 0c2.761 0 5 2.239 5 5 0 1.126-0.372 2.164-1 3l-2 2-7-7 2-2c0.836-0.628 1.874-1 3-1zM2 23l-2 9 9-2 18.5-18.5-7-7-18.5 18.5zM22.362 11.362l-14 14-1.724-1.724 14-14 1.724 1.724z"})],-1)]))),(s.openBlock(),s.createElementBlock("svg",{height:n.height,width:n.width,fill:n.color},t[1]||(t[1]=[s.createElementVNode("use",{"xlink:href":"#icon-pencil"},null,-1)]),8,Ei))],64)}const xi={components:{IconMore:pi,IconDelete:bi,IconEdit:B(yi,[["render",_i]])},emits:["updateTable"],props:{item:Object,table:String},data(){return{formVisible:!1,isDeleteConfirm:!1,formValue:{},top:0,left:0}},methods:{openConfirm(){this.isDeleteConfirm=!0,document.querySelector("body").click()},async getData(){var e;try{const{data:t}=await O.get(`/api/table/${this.table}/${(e=this.item)==null?void 0:e.id}`);this.formValue=t}catch(t){console.error(t)}},doSomethingOnCancel(){this.formVisible=!1},async deleteElement(){var e;try{O.delete(`/api/table/${this.table}/${(e=this.item)==null?void 0:e.id}`),this.$notify({title:"Успішно!",message:"Об`єкт успішно видалeно",type:"success"}),this.$emit("update-table"),this.isDeleteConfirm=!1}catch{this.$notify({title:"Помилка!",message:"Сталася помилка",type:"error"})}}}},ki={class:"hs-dropdown [--placement:bottom-right] inline-flex"},Ci={id:"hs-pro-dupc1",type:"button",class:"gap-x-2 p-2 rounded-lg hover:border-transparent focus:outline-none text-black hover:bg-gray-50"},Ni={class:"pt-[7px] pb-[7px] flex flex-col items-start"},Si={class:"p-4"},Ri={class:"mt-4 flex justify-end gap-x-3"};function vi(e,t,n,r,o,a){const i=s.resolveComponent("IconMore"),l=s.resolveComponent("IconEdit"),u=s.resolveComponent("router-link"),f=s.resolveComponent("IconDelete"),c=s.resolveComponent("VsPopover"),d=s.resolveComponent("VsDialog");return s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("div",ki,[s.createVNode(c,{trigger:"click",placement:"left"},{reference:s.withCtx(()=>[s.createElementVNode("button",Ci,[s.createVNode(i,{height:"16",width:"16"})])]),default:s.withCtx(()=>{var p,m,b;return[s.createElementVNode("div",Ni,[s.createVNode(u,{to:`/edit?table=${(m=(p=e.$route)==null?void 0:p.params)==null?void 0:m.catchAll}&id=${(b=n.item)==null?void 0:b.id}`,class:"w-[100px] ml-[2px] flex items-center justify-center gap-x-3 rounded-lg text-[13px] text-gray-800"},{default:s.withCtx(()=>[s.createVNode(l,{color:"#000"}),t[4]||(t[4]=s.createTextVNode(" Редагувати "))]),_:1},8,["to"]),t[6]||(t[6]=s.createElementVNode("div",{class:"h-[1px] w-[80%] bg-gray-200 ml-auto mr-auto mt-[10px] mb-[10px]"},null,-1)),s.createElementVNode("button",{onClick:t[0]||(t[0]=s.withModifiers((...y)=>a.openConfirm&&a.openConfirm(...y),["stop"])),type:"button",class:"w-[100px] flex items-center justify-center gap-x-3 rounded-lg text-[14px] text-red-500"},[s.createVNode(f),t[5]||(t[5]=s.createElementVNode("span",{class:"text-gray-800"},"Видалити",-1))])])]}),_:1})]),s.createVNode(d,{visible:o.isDeleteConfirm,"onUpdate:visible":t[3]||(t[3]=p=>o.isDeleteConfirm=p),title:"Ви впевнені?"},{default:s.withCtx(()=>[s.createElementVNode("div",Si,[t[7]||(t[7]=s.createElementVNode("p",{class:"mt-1 text-gray-500 dark:text-neutral-500"}," Ви впевнені, що хочете видалити цей об'єкт? ",-1)),s.createElementVNode("div",Ri,[s.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-gray-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:t[1]||(t[1]=p=>o.isDeleteConfirm=!1)}," Скасувати "),s.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-red-500 text-white hover:bg-red-600 disabled:opacity-50 disabled:pointer-events-none",onClick:t[2]||(t[2]=(...p)=>a.deleteElement&&a.deleteElement(...p))}," Так, я впевнена/ий ")])])]),_:1},8,["visible"])],64)}const Vi=B(xi,[["render",vi]]),$i={},Oi={class:"flex-shrink-0 mt-0.5 size-3.5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function Ti(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",Oi,t[0]||(t[0]=[s.createElementVNode("path",{d:"m3 16 4 4 4-4"},null,-1),s.createElementVNode("path",{d:"M7 20V4"},null,-1),s.createElementVNode("path",{d:"m21 8-4-4-4 4"},null,-1),s.createElementVNode("path",{d:"M17 4v16"},null,-1)]))}const Pi=B($i,[["render",Ti]]),Ai={props:{columns:{type:Object,default:()=>{}},table:{type:String,default:()=>""}},data(){return{tableFormats:["json","csv","xlsx"],format:"",cols:[]}},methods:{async exportTable(){try{const e=await O.get("/api/export",{params:{table:this.table,format:this.format,cols:this.cols.join(",")},responseType:"blob"}),t=new Blob([e.data],{type:"application/octet-stream"}),n=window.URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.setAttribute("download",`${this.table.split(".")[0]}.${this.format}`),document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(n),this.$notify({type:"success",title:"Експорт",message:"Файл успішно експортовано!"})}catch(e){console.error("Ошибка при экспорте файла:",e),this.$notify({type:"error",title:"Помилка",message:"Не вдалося експортувати файл."})}},selectFormat(e){this.format=e}}},Bi={class:"p-4"},Di={class:"pb-5 mb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700"},Ii={class:"mt-2 flex row flex-wrap gap-y-[5px] gap-x-[10px]"},Mi={class:"pb-5 mb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700"},Li={class:"mt-2 space-y-2"},ji=["id","onChange"],Fi=["for"],Ui={class:"pb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700"},Hi={class:"text-center"};function qi(e,t,n,r,o,a){const i=s.resolveComponent("VsCheckbox");return s.openBlock(),s.createElementBlock(s.Fragment,null,[t[4]||(t[4]=s.createElementVNode("div",{class:"dark:border-neutral-700"},null,-1)),s.createElementVNode("div",Bi,[s.createElementVNode("div",Di,[t[2]||(t[2]=s.createElementVNode("label",{class:"text-sm text-gray-500 dark:text-neutral-500"}," Виберіть стовпці таблиці для експорту: ",-1)),s.createElementVNode("div",Ii,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.columns,(l,u)=>(s.openBlock(),s.createElementBlock("div",{class:"flex items-center",key:u,style:{width:"calc((100% - 10px) / 2)"}},[s.createVNode(i,{class:"py-0 shrink-0 border-gray-300 rounded text-blue-600 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-500 dark:checked:bg-blue-500 dark:checked:border-blue-500 dark:focus:ring-offset-gray-800",modelValue:o.cols,"onUpdate:modelValue":t[0]||(t[0]=f=>o.cols=f),value:l==null?void 0:l.name,label:l==null?void 0:l.ua},null,8,["modelValue","value","label"])]))),128))])]),s.createElementVNode("div",Mi,[t[3]||(t[3]=s.createElementVNode("label",{class:"text-sm text-gray-500 dark:text-neutral-500"}," Виберіть формат таблиці: ",-1)),s.createElementVNode("div",Li,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.tableFormats,(l,u)=>(s.openBlock(),s.createElementBlock("div",{class:"flex items-center",key:u},[s.createElementVNode("input",{type:"radio",name:"hs-pro-duecmfm",class:"shrink-0 border-gray-300 rounded-full text-blue-600 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-500 dark:checked:bg-blue-500 dark:checked:border-blue-500 dark:focus:ring-offset-gray-800",id:l,onChange:f=>a.selectFormat(l)},null,40,ji),s.createElementVNode("label",{for:l,class:"text-sm text-gray-800 ms-3 dark:text-neutral-400"}," Формат "+s.toDisplayString(l),9,Fi)]))),128))])]),s.createElementVNode("div",Ui,[s.createElementVNode("div",Hi,[s.createElementVNode("button",{type:"button",class:"p-2 inline-flex items-center gap-x-2 text-xs font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:ring-2 focus:ring-blue-500",onClick:t[1]||(t[1]=(...l)=>a.exportTable&&a.exportTable(...l))}," Завантажити таблицю ")])])])],64)}const zi={components:{IconExport:Pi,AdminTableExportForm:B(Ai,[["render",qi]])},props:{table:String,columns:Array},data(){return{isOpen:!1}}};function Ki(e,t,n,r,o,a){const i=s.resolveComponent("IconExport"),l=s.resolveComponent("AdminTableExportForm"),u=s.resolveComponent("VsDialog");return s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("button",{onClick:t[0]||(t[0]=f=>o.isOpen=!0),class:"py-2 px-3 relative flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300"},[s.createVNode(i,{height:"16",width:"16"}),t[2]||(t[2]=s.createTextVNode(" Експорт "))]),s.createVNode(u,{visible:o.isOpen,"onUpdate:visible":t[1]||(t[1]=f=>o.isOpen=f),title:"Експорт таблиці"},{default:s.withCtx(()=>[s.createVNode(l,{table:n.table,columns:n.columns},null,8,["table","columns"])]),_:1},8,["visible"])],64)}const Wi=B(zi,[["render",Ki]]),Gi={},Ji={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-columns"};function Zi(e,t,n,r,o,a){return s.openBlock(),s.createElementBlock("svg",Ji,t[0]||(t[0]=[s.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 6l5.5 0"></path><path d="M4 10l5.5 0"></path><path d="M4 14l5.5 0"></path><path d="M4 18l5.5 0"></path><path d="M14.5 6l5.5 0"></path><path d="M14.5 10l5.5 0"></path><path d="M14.5 14l5.5 0"></path><path d="M14.5 18l5.5 0"></path>',9)]))}const Qi=B(Gi,[["render",Zi]]),Xi={props:{column:Object},emits:["update-column"],data(){return{value:!1}},watch:{value(e){this.$emit("update-column",{...this.column,hidden:!e})}},mounted(){var e;((e=this.column)==null?void 0:e.hidden)!==!0&&(this.value=!0)}},Yi={class:"flex w-full gap-[8px] items-centr"};function el(e,t,n,r,o,a){var i,l;return s.openBlock(),s.createElementBlock("label",Yi,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=u=>o.value=u),type:"checkbox"},null,512),[[s.vModelCheckbox,o.value]]),s.createTextVNode(" "+s.toDisplayString(((i=n.column)==null?void 0:i.ua)||((l=n.column)==null?void 0:l.title)),1)])}const tl={components:{IconColumns:Qi,AdminTableColumnsHiddenItem:B(Xi,[["render",el]])},emits:["update-columns"],props:{columns:Array},methods:{updateColumn(e){const t=this.columns.findIndex(r=>(r==null?void 0:r.name)===(e==null?void 0:e.name)),n=this.columns;n[t]=e,this.$emit("update-columns",[...n])}}},nl={class:"py-2 px-3 flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300"},rl={class:"flex flex-col gap-[3px] h-[400px] w-[300px] overflow-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"};function ol(e,t,n,r,o,a){const i=s.resolveComponent("IconColumns"),l=s.resolveComponent("AdminTableColumnsHiddenItem"),u=s.resolveComponent("VsPopover");return s.openBlock(),s.createBlock(u,{trigger:"click",placement:"bottom"},{reference:s.withCtx(()=>[s.createElementVNode("button",nl,[s.createVNode(i,{height:"20",width:"16"})])]),default:s.withCtx(()=>[s.createElementVNode("div",null,[t[0]||(t[0]=s.createElementVNode("h2",{class:"text-sm mb-[8px]"},"Оберіть колонки, щоб приховати",-1)),s.createElementVNode("ul",rl,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.columns,(f,c)=>(s.openBlock(),s.createElementBlock("li",{key:c},[s.createVNode(l,{column:f,onUpdateColumn:a.updateColumn},null,8,["column","onUpdateColumn"])]))),128))])])]),_:1})}const sl={props:{table:String},components:{IconFilter:ci,AdminTableControl:Vi,AdminTableExport:Wi,AdminTableColumnsHidden:B(tl,[["render",ol]])},data(){return{tableData:{},isFilters:!1,filterScheme:[],page:1,searchValue:"",limit:20,filters:null}},mounted(){var e,t;this.page=((t=(e=this.$route)==null?void 0:e.query)==null?void 0:t.page)||1,this.getTableData(),this.getFilters()},computed:{defaultPage(){var e,t;return((t=(e=this.$route)==null?void 0:e.query)==null?void 0:t.page)||1},getFilterScheme(){var e;return(e=this.tableData)==null?void 0:e.filters},columns(){var e,t;return(t=(e=this.tableData)==null?void 0:e.columns)==null?void 0:t.filter(n=>(n==null?void 0:n.hidden)!==!0)}},watch:{table(){this.getTableData()},searchValue(){this.getTableData()}},methods:{async getTableData(){try{const{data:e}=await O.get(`/api/template/table/${this.table}`),t=await O.get(`/api/table-data/${this.table}`,{params:{page:this.page,search:this.searchValue||null,limit:this.limit,filter:this.filters||null}});this.tableData={...this.tableData,...e,...(t==null?void 0:t.data)||{}}}catch{}},async getFilters(){var e;try{const{data:t}=await O.get(`/api/table-filter/${this.table}`);this.filterScheme=(e=t==null?void 0:t.list)==null?void 0:e.map(n=>({...n,label:(n==null?void 0:n.label)||(n==null?void 0:n.ua)}))}catch{}},async handlePageChange(e){const t=this.$route.query;this.page=e,!(!(t!=null&&t.page)&&e===1||t.page===e)&&(await this.$router.replace({query:{...t,page:e}}),await this.getTableData())},async changeLimit(e){this.limit=await e,this.defaultPage=1,await this.getTableData()},closeFilter({target:e}){this.isFilters&&e.classList.contains("filter-container")&&(this.isFilters=!1)},async filterChange({url:e}){this.filters=e,this.page=1,await this.getTableData()}}},al={class:"w-[calc(100vw - 320px)]"},il={class:"h-[58px] bg-gray-50 flex items-center justify-between px-[30px]"},ll={class:"text-xl font-medium"},cl={style:{height:"calc(100vh - 60px)",width:"calc(100vw - 260px)"},class:"bg-gray-50 p-[20px] flex"},ul={class:"bg-white w-full rounded-xl border p-[20px]"},dl={class:"flex sm:grid sm:grid-cols-2 gap-x-2 sm:gap-x-5 mb-[10px]"},fl={class:"flex gap-[6px] ml-auto"},pl={class:"space-y-5 flex items-start w-full justify-start"},hl={style:{height:"calc(100vh - 250px)"},class:"overflow-x-auto w-full [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},ml={class:"inline-block align-middle"},gl={class:"divide-y divide-gray-200 dark:divide-neutral-700 relative"},bl={class:"sticky top-0 bg-white"},yl={class:"border-t border-stone-200"},wl={class:"pe-4 py-3 gap-x-1 text-sm font-medium text-gray-800 dark:text-neutral-200"},El={class:"divide-y divide-gray-200 dark:divide-neutral-700"},_l=["onClick"],xl={class:"text-center sticky right-0 bg-white"},kl={class:"p-[20px] flex justify-end w-full"},Cl={class:"filter-content h-screen bg-white w-[400px] p-[20px] pt-[10px]"};function Nl(e,t,n,r,o,a){var m,b,y,w,N,x,k,D;const i=s.resolveComponent("router-link"),l=s.resolveComponent("AdminTableColumnsHidden"),u=s.resolveComponent("AdminTableExport"),f=s.resolveComponent("IconFilter"),c=s.resolveComponent("AdminTableControl"),d=s.resolveComponent("VsPagination"),p=s.resolveComponent("VsFilter");return s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("div",al,[s.createElementVNode("div",il,[s.createElementVNode("h2",ll,s.toDisplayString((b=(m=o.tableData)==null?void 0:m.title_full)==null?void 0:b.ua),1),s.createVNode(i,{to:`/add?table=${(w=(y=e.$route)==null?void 0:y.params)==null?void 0:w.catchAll}`,class:"py-2 px-3 flex items-center gap-x-2 text-sm text-white font-medium rounded-lg bg-blue-500 text-gray-800 shadow-sm hover:bg-blue-700 hover:text-white duration-300"},{default:s.withCtx(()=>t[5]||(t[5]=[s.createTextVNode(" Додати ")])),_:1},8,["to"])]),s.createElementVNode("div",cl,[s.createElementVNode("div",ul,[s.createElementVNode("div",dl,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=S=>o.searchValue=S),class:"py-2 pl-[15px] h-[38px] w-[400px] block w-full border rounded-lg text-sm focus:border-blue-600 focus:border-[2px] outline-none",placeholder:"Пошук..."},null,512),[[s.vModelText,o.searchValue]]),s.createElementVNode("div",fl,[s.createVNode(l,{columns:(N=o.tableData)==null?void 0:N.columns,onUpdateColumns:t[1]||(t[1]=S=>o.tableData.columns=S)},null,8,["columns"]),s.createVNode(u,{table:n.table,columns:(x=o.tableData)==null?void 0:x.columns},null,8,["table","columns"]),s.createElementVNode("button",{onClick:t[2]||(t[2]=S=>o.isFilters=!o.isFilters),class:"py-2 px-3 flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300"},[s.createVNode(f,{height:"16",width:"16"}),t[6]||(t[6]=s.createTextVNode(" Фільтри "))])])]),s.createElementVNode("div",pl,[s.createElementVNode("div",hl,[s.createElementVNode("div",ml,[s.createElementVNode("table",gl,[s.createElementVNode("thead",bl,[s.createElementVNode("tr",yl,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(a.columns,S=>(s.openBlock(),s.createElementBlock("th",{class:"min-w-[200px] text-start",key:S.name},[s.createElementVNode("div",wl,s.toDisplayString((S==null?void 0:S.ua)||S.name),1)]))),128)),t[7]||(t[7]=s.createElementVNode("th",{class:"min-w-[150px] sticky right-0 top-0 bg-white z-[10]"}," Дія ",-1))])]),s.createElementVNode("tbody",El,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList((k=o.tableData)==null?void 0:k.rows,(S,I)=>(s.openBlock(),s.createElementBlock("tr",{key:I},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(a.columns,P=>(s.openBlock(),s.createElementBlock("td",{onClick:ne=>e.$router.push(`/card/${n.table}/${S==null?void 0:S.id}`),class:"size-px min-w-[200px] whitespace-nowrap text-start pe-4 py-3 text-sm text-gray-600",key:P.name},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(e.$componentsConfig[`table-format-${(P==null?void 0:P.format)||e.text}`]),{name:P==null?void 0:P.name,data:S,value:S==null?void 0:S[P==null?void 0:P.name]},null,8,["name","data","value"]))],8,_l))),128)),s.createElementVNode("td",xl,[s.createVNode(c,{item:S,table:n.table,onUpdateTable:a.getTableData},null,8,["item","table","onUpdateTable"])])]))),128))])])])])]),s.createElementVNode("div",kl,[s.createVNode(d,{goTo:!1,class:"justify-end",style:{width:"calc(50% + 100px)"},"default-page":a.defaultPage,total:((D=o.tableData)==null?void 0:D.total)||0,pageSize:o.limit,onPageChange:a.handlePageChange,pageSizes:[10,16,20],onPageSizeChange:a.changeLimit},null,8,["default-page","total","pageSize","onPageChange","onPageSizeChange"])])])])]),s.createVNode(s.Transition,{name:"fade"},{default:s.withCtx(()=>{var S;return[s.withDirectives(s.createElementVNode("div",{onClick:t[4]||(t[4]=(...I)=>a.closeFilter&&a.closeFilter(...I)),style:{height:"100vh"},class:"fixed filter-container top-0 flex justify-end items-center z-[2] right-0 left-0 bottom-0 overflow-x-auto bg-[rgba(0,0,0,0.5)] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},[s.createElementVNode("div",Cl,[(S=o.filterScheme)!=null&&S.length?(s.openBlock(),s.createBlock(p,{key:0,ref:"filter",scheme:o.filterScheme,layout:"default","apply-vue-router":"",history:"",name:"filter",onFilterChange:a.filterChange,closeFilterBtn:!0,onFilterClose:t[3]||(t[3]=I=>o.isFilters=!1)},null,8,["scheme","onFilterChange"])):s.createCommentVNode("",!0)])],512),[[s.vShow,o.isFilters]])]}),_:1})],64)}const Sl={components:{AdminTable:B(sl,[["render",Nl]])},data(){return{table:!1,interface:""}},watch:{$route:{async handler(){G!=null&&G.value||await this.getMenu(),await this.checkPageType()},deep:!0}},async mounted(){await this.checkPageType()},methods:{flattenMenu(e){const t=[];return e.forEach(n=>{n.menu?t.push(...this.flattenMenu(n.menu)):t.push(n)}),t},async getMenu(){try{const{data:e}=await O.get("/api/user-menu");G.value=e}catch{}},async checkPageType(){const e=this.flattenMenu(G.value);e!=null&&e.length||this.$router.replace("/404");const t=e==null?void 0:e.find(r=>{var o,a;return(r==null?void 0:r.path)==((a=(o=this.$route)==null?void 0:o.params)==null?void 0:a.catchAll)});t||this.$router.replace("/404");const n=t==null?void 0:t.table;this.table=n||!1,!n&&this.getInterface()},async getInterface(){var e,t;try{const{data:n}=await O.get(`/api/template/interface/${((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.catchAll)||""}`);this.interface=n||""}catch{this.interface=""}}}},Rl={key:1,class:"w-full"},vl=["innerHTML"];function Vl(e,t,n,r,o,a){const i=s.resolveComponent("AdminTable");return o.table?(s.openBlock(),s.createBlock(i,{key:0,table:o.table},null,8,["table"])):(s.openBlock(),s.createElementBlock("div",Rl,[s.createElementVNode("div",{innerHTML:o.interface},null,8,vl)]))}const $l=Object.freeze(Object.defineProperty({__proto__:null,default:B(Sl,[["render",Vl]])},Symbol.toStringTag,{value:"Module"}));return ia});
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .admin-wrapper[data-v-3a278cfb]{display:flex;height:100vh;align-items:start}
@@ -0,0 +1,5 @@
1
+ import { ref as r } from "vue";
2
+ const o = r(null);
3
+ export {
4
+ o as u
5
+ };
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@opengis/admin",
3
+ "version": "0.1.0",
4
+ "description": "This project was bootstrapped with Fastify-CLI.",
5
+ "main": "plugin.js",
6
+ "type": "module",
7
+ "directories": {
8
+ "test": "test"
9
+ },
10
+ "files": [
11
+ "dist/*",
12
+ "server/*",
13
+ "plugin.js",
14
+ "config.js"
15
+ ],
16
+ "scripts": {
17
+ "test": "node --test test/**/*.test.js",
18
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
19
+ "build": "vite build",
20
+ "build-app": "cross-env APP=true vite build",
21
+ "admin": "cross-env NODE_ENV=admin npm run start",
22
+ "prod": "cross-env NODE_ENV=production npm run start",
23
+ "start": "node --watch-path=server server vite ",
24
+ "dev": "fastify start -w -l info -P server/app.js"
25
+ },
26
+ "keywords": [],
27
+ "author": "Softpro",
28
+ "license": "ISC",
29
+ "dependencies": {
30
+ "@opengis/fastify-auth": "^1.0.20",
31
+ "@opengis/fastify-file": "^1.0.17",
32
+ "@opengis/fastify-table": "^1.0.72",
33
+ "@opengis/v3-core": "^0.1.80",
34
+ "@opengis/v3-filter": "^0.0.31",
35
+ "@vitejs/plugin-vue": "^5.0.4",
36
+ "close-with-grace": "^1.3.0",
37
+ "cross-env": "^7.0.3",
38
+ "fastify": "^4.26.1",
39
+ "fastify-plugin": "^4.0.0",
40
+ "moment": "^2.30.1",
41
+ "vite": "^5.1.4",
42
+ "vue": "^3.4.21",
43
+ "vue-router": "^4.3.0"
44
+ },
45
+ "devDependencies": {
46
+ "@vue/eslint-config-typescript": "^12.0.0",
47
+ "eslint": "^8.49.0",
48
+ "eslint-config-airbnb": "^19.0.4",
49
+ "eslint-plugin-import": "^2.25.3",
50
+ "eslint-plugin-vue": "^9.17.0"
51
+ }
52
+ }
package/plugin.js ADDED
@@ -0,0 +1,25 @@
1
+ import config from './config.js';
2
+
3
+ export default async function (fastify, opts) {
4
+ // const prefix = config.prefix || '/api';
5
+
6
+ // core
7
+ fastify.register(import('./server/plugins/hook.js'));
8
+
9
+
10
+ fastify.register(import('@opengis/fastify-table'), config);
11
+ fastify.register(import('@opengis/fastify-file'), config);
12
+ fastify.register(import('@opengis/fastify-hb'), config);
13
+ fastify.register(import('./server/helpers/index.mjs'), config);
14
+ // fastify.register(import('@opengis/fastify-auth'), config);
15
+
16
+ // fastify.register(import('./server/plugins/vike.js'));
17
+ fastify.register(import('./server/plugins/vite.js'));
18
+
19
+ // API
20
+
21
+ fastify.register(import('./server/routes/templates/index.mjs'), config);
22
+ fastify.register(import('./server/routes/menu/index.mjs'), config);
23
+ fastify.register(import('./server/routes/data/index.mjs'), config);
24
+ fastify.register(import('./server/routes/root.mjs'), config);
25
+ }
@@ -0,0 +1,12 @@
1
+ export default async function badge(data, options = {}) {
2
+ if (!data) return '-';
3
+ //const cls = await getSelect(options.data, { val: data, full: 1 });
4
+
5
+ return data;
6
+ /*const html = cls?.map((el) => {
7
+ const color = bscolor[el.color] || el.color || '#aaa';
8
+ return `<span class="el-tag el-tag--mini" style="color:${color || '#aaa'};border-color:${color || '#aaa'};background:unset;">
9
+ ${funcs.locale(el.id, { lang: root.lang, prefix: opt.data, type: 'cls' }) || el.text}</span>`;
10
+ }).join(', ');
11
+ return html;*/
12
+ }
@@ -0,0 +1,3 @@
1
+ export default async function _hb() {
2
+ return '';
3
+ }
@@ -0,0 +1,3 @@
1
+ export default async function map() {
2
+ return '';
3
+ }
@@ -0,0 +1,3 @@
1
+ export default async function _mls(data, options={}) {
2
+ return data.hash?.ua || '';
3
+ }
@@ -0,0 +1,3 @@
1
+ export default async function _vue() {
2
+ return '';
3
+ }
@@ -0,0 +1,13 @@
1
+ import _hb from "./controllers/hb.js";
2
+ import _vue from "./controllers/vue.js";
3
+ import map from "./controllers/map.js";
4
+ import _mls from "./controllers/mls.js";
5
+ import badge from "./controllers/badge.js";
6
+
7
+ export default async function route(fastify) {
8
+ fastify.handlebars.registerHelper('_hb', _hb);
9
+ fastify.handlebars.registerHelper('_vue', _vue);
10
+ fastify.handlebars.registerHelper('map', map);
11
+ fastify.handlebars.registerHelper('mls', _mls);
12
+ fastify.handlebars.registerHelper('badge', badge);
13
+ }
@@ -0,0 +1,28 @@
1
+ 'use strict'
2
+
3
+ import path, { dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import fs from 'fs';
6
+
7
+ const dir = dirname(fileURLToPath(import.meta.url));
8
+ const root = `${dir}/../../`;
9
+
10
+
11
+ async function plugin(fastify, opts) {
12
+ fastify.get('/docs*', async (req, reply) => {
13
+ if (!fs.existsSync(path.join(root, 'docs/.vitepress/dist/'))) {
14
+ return reply.status(404).send('docs not exists');
15
+ }
16
+ const { params } = req;
17
+ const url = params['*']
18
+ const filePath = url && url[url.length - 1] !== '/' ? path.join(root, 'docs/.vitepress/dist/', url) : path.join(root, 'docs/.vitepress/dist/', url, 'index.html')
19
+ const ext = path.extname(filePath);
20
+ const mime = {
21
+ '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg'
22
+ }[ext];
23
+ const stream = fs.createReadStream(filePath);
24
+ return mime ? reply.type(mime).send(stream) : stream;
25
+
26
+ })
27
+ }
28
+ export default plugin;