skypilot-nightly 1.0.0.dev20250808__py3-none-any.whl → 1.0.0.dev20250814__py3-none-any.whl
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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- sky/__init__.py +4 -2
- sky/adaptors/kubernetes.py +5 -2
- sky/backends/backend_utils.py +102 -8
- sky/backends/cloud_vm_ray_backend.py +197 -31
- sky/catalog/cudo_catalog.py +1 -1
- sky/catalog/data_fetchers/fetch_cudo.py +1 -1
- sky/catalog/data_fetchers/fetch_nebius.py +6 -3
- sky/client/cli/command.py +60 -77
- sky/client/common.py +1 -1
- sky/client/sdk.py +19 -19
- sky/client/sdk_async.py +5 -4
- sky/clouds/aws.py +52 -1
- sky/clouds/kubernetes.py +14 -0
- sky/core.py +5 -0
- sky/dag.py +1 -0
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/{-DXZksWqf2waNHeU9YTQe → Y0eNlwi85qGRecLTin11y}/_buildManifest.js +1 -1
- sky/dashboard/out/_next/static/chunks/{6989-6129c1cfbcf51063.js → 6989-37611fe6b86d274d.js} +1 -1
- sky/dashboard/out/_next/static/chunks/8056-5bdeda81199c0def.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/{_app-491a4d699d95e808.js → _app-c2ea34fda4f1f8c8.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-078751bad714c017.js +11 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-da9cc0901349c2e9.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/jobs/pools/{[pool]-f5ccf5d39d87aebe.js → [pool]-664c36eda967b1ba.js} +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-339efec49c0cc7d0.js → webpack-00c0a51d21157453.js} +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs/pools/[pool].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/data/storage.py +11 -1
- sky/exceptions.py +5 -0
- sky/execution.py +15 -0
- sky/global_user_state.py +160 -2
- sky/jobs/constants.py +1 -1
- sky/jobs/controller.py +0 -1
- sky/jobs/recovery_strategy.py +6 -3
- sky/jobs/scheduler.py +23 -68
- sky/jobs/server/core.py +22 -12
- sky/jobs/state.py +6 -2
- sky/jobs/utils.py +17 -2
- sky/provision/__init__.py +4 -2
- sky/provision/aws/config.py +9 -0
- sky/provision/aws/instance.py +41 -17
- sky/provision/azure/instance.py +7 -4
- sky/provision/cudo/cudo_wrapper.py +1 -1
- sky/provision/cudo/instance.py +7 -4
- sky/provision/do/instance.py +7 -4
- sky/provision/fluidstack/instance.py +7 -4
- sky/provision/gcp/instance.py +7 -4
- sky/provision/hyperbolic/instance.py +7 -5
- sky/provision/kubernetes/instance.py +169 -6
- sky/provision/lambda_cloud/instance.py +7 -4
- sky/provision/nebius/instance.py +7 -4
- sky/provision/oci/instance.py +7 -4
- sky/provision/paperspace/instance.py +7 -5
- sky/provision/paperspace/utils.py +1 -1
- sky/provision/provisioner.py +6 -0
- sky/provision/runpod/instance.py +7 -4
- sky/provision/runpod/utils.py +1 -1
- sky/provision/scp/instance.py +7 -5
- sky/provision/vast/instance.py +7 -5
- sky/provision/vsphere/instance.py +7 -4
- sky/resources.py +1 -2
- sky/schemas/__init__.py +0 -0
- sky/schemas/api/__init__.py +0 -0
- sky/schemas/api/responses.py +70 -0
- sky/schemas/db/global_user_state/001_initial_schema.py +1 -1
- sky/schemas/db/global_user_state/005_cluster_event.py +32 -0
- sky/schemas/db/serve_state/001_initial_schema.py +1 -1
- sky/schemas/db/spot_jobs/001_initial_schema.py +1 -1
- sky/schemas/generated/__init__.py +0 -0
- sky/schemas/generated/autostopv1_pb2.py +36 -0
- sky/schemas/generated/autostopv1_pb2.pyi +43 -0
- sky/schemas/generated/autostopv1_pb2_grpc.py +146 -0
- sky/serve/constants.py +3 -7
- sky/serve/replica_managers.py +15 -16
- sky/serve/serve_state.py +10 -0
- sky/serve/serve_utils.py +58 -23
- sky/serve/server/impl.py +15 -19
- sky/serve/service.py +31 -16
- sky/server/server.py +20 -14
- sky/setup_files/dependencies.py +11 -10
- sky/skylet/autostop_lib.py +38 -5
- sky/skylet/constants.py +3 -1
- sky/skylet/services.py +44 -0
- sky/skylet/skylet.py +49 -4
- sky/skypilot_config.py +4 -4
- sky/task.py +19 -16
- sky/templates/aws-ray.yml.j2 +2 -2
- sky/templates/jobs-controller.yaml.j2 +6 -0
- sky/users/permission.py +1 -1
- sky/utils/cli_utils/status_utils.py +9 -0
- sky/utils/command_runner.py +1 -1
- sky/utils/config_utils.py +29 -5
- sky/utils/controller_utils.py +73 -0
- sky/utils/db/db_utils.py +39 -1
- sky/utils/db/migration_utils.py +1 -1
- sky/utils/schemas.py +3 -0
- sky/volumes/server/core.py +2 -2
- sky/volumes/server/server.py +2 -2
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/METADATA +5 -7
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/RECORD +117 -108
- sky/dashboard/out/_next/static/chunks/8056-34d27f51e6d1c631.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-ae17cec0fc6483d9.js +0 -11
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-155d477a6c3e04e2.js +0 -1
- /sky/dashboard/out/_next/static/{-DXZksWqf2waNHeU9YTQe → Y0eNlwi85qGRecLTin11y}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250808.dist-info → skypilot_nightly-1.0.0.dev20250814.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8056],{50326:function(e,t,a){a.d(t,{$N:function(){return p},Be:function(){return _},Vq:function(){return c},cN:function(){return f},cZ:function(){return d},fK:function(){return g}});var r=a(85893),s=a(67294),o=a(6327),n=a(32350),l=a(43767);let c=o.fC;o.xz;let u=o.h_;o.x8;let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.aV,{ref:t,className:(0,n.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s})});i.displayName=o.aV.displayName;let d=s.forwardRef((e,t)=>{let{className:a,children:s,...c}=e;return(0,r.jsxs)(u,{children:[(0,r.jsx)(i,{}),(0,r.jsxs)(o.VY,{ref:t,className:(0,n.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...c,children:[s,(0,r.jsxs)(o.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,r.jsx)(l.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});d.displayName=o.VY.displayName;let g=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};g.displayName="DialogHeader";let f=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};f.displayName="DialogFooter";let p=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Dx,{ref:t,className:(0,n.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});p.displayName=o.Dx.displayName;let _=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.dk,{ref:t,className:(0,n.cn)("text-sm text-gray-500",a),...s})});_.displayName=o.dk.displayName},23266:function(e,t,a){a.d(t,{QL:function(){return g},Sl:function(){return i},getClusters:function(){return c},uR:function(){return u}});var r=a(67294),s=a(15821),o=a(47145),n=a(6378);let l={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function c(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{return(await o.x.fetch("/status",{cluster_names:e,all_users:!0})).map(e=>{let t="",a=t=e.zone?e.zone:e.region;return t&&t.length>25&&(t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e||e.length<=t)return e;if(t<=3)return"...";let a=Math.floor((t-3)/2),r=a+(t-3)%2;return 0===a?e.substring(0,r)+"...":e.substring(0,r)+"..."+e.substring(e.length-a)}(t,25)),{status:l[e.status],cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,infra:t?e.cloud+" ("+t+")":e.cloud,full_infra:a?"".concat(e.cloud," (").concat(a,")"):e.cloud,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,workspace:e.workspace,autostop:e.autostop,last_event:e.last_event,to_down:e.to_down,jobs:[],command:e.last_creation_command||e.last_use,task_yaml:e.last_creation_yaml||"{}",events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}})}catch(e){return console.error("Error fetching clusters:",e),[]}}async function u(){try{let e=await o.x.fetch("/cost_report",{days:30});console.log("Raw cluster history data:",e);let t=e.map(e=>{let t="Unknown";e.cloud?t=e.cloud:e.resources&&e.resources.cloud&&(t=e.resources.cloud);let a=e.user_name||"-";return{status:e.status?l[e.status]:"TERMINATED",cluster:e.name,user:a,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:t,region:"",infra:t,full_infra:t,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:e.launched_at?new Date(1e3*e.launched_at):null,num_nodes:e.num_nodes||1,duration:e.duration,total_cost:e.total_cost,workspace:e.workspace||"default",autostop:-1,to_down:!1,usage_intervals:e.usage_intervals,command:e.last_creation_command||"",task_yaml:e.last_creation_yaml||"{}",events:[{time:e.launched_at?new Date(1e3*e.launched_at):new Date,event:"Cluster created."}]}});return console.log("Processed cluster history data:",t),t}catch(e){return console.error("Error fetching cluster history:",e),[]}}async function i(e){let{clusterName:t,jobId:a,onNewLog:r,workspace:n}=e;try{await o.x.stream("/logs",{follow:!1,cluster_name:t,job_id:a,tail:1e4,override_skypilot_config:{active_workspace:n||"default"}},r)}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,s.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function d(e){let{clusterName:t,workspace:a}=e;try{return(await o.x.fetch("/queue",{cluster_name:t,all_users:!0,override_skypilot_config:{active_workspace:a}})).map(e=>{var r;let s=e.end_at?e.end_at:Date.now()/1e3,o=0,n=0;return e.submitted_at&&(o=s-e.submitted_at),e.start_at&&(n=s-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,user_hash:e.user_hash,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:o,job_duration:n,infra:"",logs:"",workspace:a||"default",git_commit:(null===(r=e.metadata)||void 0===r?void 0:r.git_commit)||"-"}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function g(e){let{cluster:t,job:a=null}=e,[s,o]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),[i,g]=(0,r.useState)(!0),[f,p]=(0,r.useState)(!0),_=(0,r.useCallback)(async()=>{if(t)try{g(!0);let e=await n.default.get(c,[{clusterNames:[t]}]);return o(e[0]),e[0]}catch(e){console.error("Error fetching cluster data:",e)}finally{g(!1)}return null},[t]),h=(0,r.useCallback)(async e=>{if(t)try{p(!0);let a=await n.default.get(d,[{clusterName:t,workspace:e||"default"}]);u(a)}catch(e){console.error("Error fetching cluster job data:",e)}finally{p(!1)}},[t]),m=(0,r.useCallback)(async()=>{n.default.invalidate(c,[{clusterNames:[t]}]);let e=await _();e&&(n.default.invalidate(d,[{clusterName:t,workspace:e.workspace||"default"}]),await h(e.workspace))},[_,h,t]),y=(0,r.useCallback)(async()=>{s&&(n.default.invalidate(d,[{clusterName:t,workspace:s.workspace||"default"}]),await h(s.workspace))},[h,s,t]);return(0,r.useEffect)(()=>{(async()=>{let e=await _();e&&h(e.workspace)})()},[t,a,_,h]),{clusterData:s,clusterJobData:l,loading:i,clusterDetailsLoading:i,clusterJobsLoading:f,refreshData:m,refreshClusterJobsOnly:y}}},32045:function(e,t,a){a.d(t,{l4:function(){return n}});var r=a(93225),s=a(47145);async function o(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{let o=[];try{if(a){console.log("Force refreshing clouds by running sky check...");try{let e=await s.x.post("/check",{}),t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),a=await s.x.get("/api/get?request_id=".concat(t)),r=await a.json();console.log("Sky check completed:",r)}catch(e){console.error("Error running sky check:",e)}}let e=await s.x.get("/enabled_clouds"),t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),r=await s.x.get("/api/get?request_id=".concat(t)),n=await r.json();o=n.return_value?JSON.parse(n.return_value):[],console.log("Enabled clouds:",o)}catch(e){console.error("Error fetching enabled clouds:",e),o=[]}let n={};r.$m.forEach(e=>{let t=o.includes(e.toLowerCase());n[e]={name:e,clusters:0,jobs:0,enabled:t}}),e.forEach(e=>{if(e.cloud){let t=e.cloud;n[t]&&(n[t].clusters+=1,n[t].enabled=!0)}}),t.forEach(e=>{if(e.cloud){let t=e.cloud;n[t]&&(n[t].jobs+=1,n[t].enabled=!0)}});let l=r.$m.length,c=Object.values(n).filter(e=>e.enabled).length;return{clouds:Object.values(n).filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name)),totalClouds:l,enabledClouds:c}}catch(e){return console.error("Error fetching cloud infrastructure:",e),{clouds:[],totalClouds:r.$m.length,enabledClouds:0}}}async function n(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],{getClusters:t}=await Promise.resolve().then(a.bind(a,23266)),{getManagedJobs:r}=await Promise.resolve().then(a.bind(a,68969)),s=(await Promise.resolve().then(a.bind(a,6378))).default,[n,c]=await Promise.all([s.get(t),s.get(r,[{allUsers:!0}])]),u=n||[],i=(null==c?void 0:c.jobs)||[],[d,g]=await Promise.all([l(u,i),o(u,i,e)]);return{gpuData:d,cloudData:g}}async function l(e,t){return await g({clusters:e||[],jobs:t||[]})}async function c(){try{let e=await s.x.post("/realtime_kubernetes_gpu_availability",{context:null,name_filter:null,quantity_filter:null});if(!e.ok)return console.error("Error fetching Kubernetes context GPUs (in getKubernetesContextGPUs): ".concat(e.status," ").concat(e.statusText)),[];let t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("x-request-id");if(!t)return console.error("No request ID returned for Kubernetes GPU availability (in getKubernetesContextGPUs)"),[];let a=await s.x.get("/api/get?request_id=".concat(t)),r=await a.text();if(500===a.status){try{let e=JSON.parse(r);if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);console.error("[infra.jsx] getKubernetesContextGPUs: Server error detail:",t.message)}catch(t){console.error("[infra.jsx] getKubernetesContextGPUs: Error parsing server error JSON:",t,"Original error text:",e.detail.error)}}catch(e){console.error("[infra.jsx] getKubernetesContextGPUs: Error parsing 500 error response JSON:",e,"Raw text was:",r)}return[]}let o=JSON.parse(r);return o.return_value?JSON.parse(o.return_value):[]}catch(e){return console.error("[infra.jsx] Outer error in getKubernetesContextGPUs:",e),[]}}async function u(){try{let e=await s.x.get("/all_contexts");if(!e.ok)return console.error("Error fetching all contexts: ".concat(e.status," ").concat(e.statusText)),[];let t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("x-request-id");if(!t)return console.error("No request ID returned for /all_contexts"),[];let a=await s.x.get("/api/get?request_id=".concat(t)),r=await a.json();return r.return_value?JSON.parse(r.return_value):[]}catch(e){return console.error("[infra.jsx] Error in getAllContexts:",e),[]}}async function i(e){try{let t=await s.x.post("/kubernetes_node_info",{context:e}),a=t.headers.get("X-Skypilot-Request-ID")||t.headers.get("x-request-id"),r=await s.x.get("/api/get?request_id=".concat(a));if(500===r.status){try{let e=await r.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);console.error("Error fetching Kubernetes per node GPUs:",t.message)}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{}}let o=await r.json();return(o.return_value?JSON.parse(o.return_value):{}).node_info_dict||{}}catch(t){return console.error("[infra.jsx] Error in getKubernetesPerNodeGPUs for context",e,":",t),{}}}async function d(e){try{let t=e.clusters,a=e.jobs,r={};return t.forEach(e=>{let t=null;if("Kubernetes"===e.cloud)(t=e.region)&&(t="kubernetes/".concat(t));else if("SSH"===e.cloud&&(t=e.region)){let e=t.startsWith("ssh-")?t.substring(4):t;t="ssh/".concat(e)}t&&(r[t]||(r[t]={clusters:0,jobs:0}),r[t].clusters+=1)}),a.forEach(e=>{let t=null;if("Kubernetes"===e.cloud)(t=e.region)&&(t="kubernetes/".concat(t));else if("SSH"===e.cloud&&(t=e.region)){let e=t.startsWith("ssh-")?t.substring(4):t;t="ssh/".concat(e)}t&&(r[t]||(r[t]={clusters:0,jobs:0}),r[t].jobs+=1)}),r}catch(e){return console.error("=== Error in getContextClustersAndJobs ===",e),{}}}async function g(e){try{let o=await u();if(!o||0===o.length)return console.log("No contexts found from /all_contexts endpoint."),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}};let n=await d(e),l=await c(),g=new Map;l&&l.forEach(e=>{g.set(e[0],e[1])});let f={},p={},_={};for(let e of o){p[e]||(p[e]=[]);let o=g.get(e);if(o&&o.length>0)for(let t of o){let a=t[0],r=t[1].join(", "),s=t[2],o=t[3];a in f?(f[a].gpu_total+=s,f[a].gpu_free+=o):f[a]={gpu_total:s,gpu_free:o,gpu_name:a},p[e].push({gpu_name:a,gpu_requestable_qty_per_node:r,gpu_total:s,gpu_free:o,context:e})}let n=await i(e);if(n&&Object.keys(n).length>0)for(let o in n){var t,a,r,s;let l=n[o],c=l.accelerator_type||"-",u=null!==(r=null===(t=l.total)||void 0===t?void 0:t.accelerator_count)&&void 0!==r?r:0,i=null!==(s=null===(a=l.free)||void 0===a?void 0:a.accelerators_available)&&void 0!==s?s:0;_["".concat(e,"/").concat(o)]={node_name:l.name,gpu_name:c,gpu_total:u,gpu_free:i,ip_address:l.ip_address||null,context:e},"-"===c||p[e].some(e=>e.gpu_name===c)||(c in f||(f[c]={gpu_total:0,gpu_free:0,gpu_name:c}),p[e].find(e=>e.gpu_name===c)||p[e].push({gpu_name:c,gpu_requestable_qty_per_node:"-",gpu_total:0,gpu_free:0,context:e}))}0===p[e].length&&n&&Object.keys(n).length}return{allContextNames:o.sort(),allGPUs:Object.values(f).sort((e,t)=>e.gpu_name.localeCompare(t.gpu_name)),perContextGPUs:Object.values(p).flat().sort((e,t)=>e.context.localeCompare(t.context)||e.gpu_name.localeCompare(t.gpu_name)),perNodeGPUs:Object.values(_).sort((e,t)=>e.context.localeCompare(t.context)||e.node_name.localeCompare(t.node_name)||e.gpu_name.localeCompare(t.gpu_name)),contextStats:n}}catch(e){return console.error("[infra.jsx] Outer error in getKubernetesGPUs:",e),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}}}}},53081:function(e,t,a){a.d(t,{R:function(){return s}}),a(23266),a(68969);var r=a(47145);async function s(){try{let e=await r.x.get("/users");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));return(await e.json()).map(e=>({userId:e.id,username:e.name,role:e.role,created_at:e.created_at}))||[]}catch(e){return console.error("Failed to fetch users:",e),[]}}},19238:function(e,t,a){a.d(t,{C:function(){return s},w:function(){return o}});var r=a(47145);async function s(){try{return(await r.x.fetch("/volumes",{},"GET")).map(e=>{var t,a,r;let s=e.cloud||"";return e.region&&(s+="/".concat(e.region)),e.zone&&(s+="/".concat(e.zone)),{name:e.name,launched_at:e.launched_at,user_hash:e.user_hash,user_name:e.user_name||"-",workspace:e.workspace||"-",last_attached_at:e.last_attached_at,status:e.status,type:e.type,cloud:e.cloud,region:e.region,zone:e.zone,infra:s,size:"".concat(e.size,"Gi"),config:e.config,storage_class:(null===(t=e.config)||void 0===t?void 0:t.storage_class_name)||"-",access_mode:(null===(a=e.config)||void 0===a?void 0:a.access_mode)||"-",namespace:(null===(r=e.config)||void 0===r?void 0:r.namespace)||"-",name_on_cloud:e.name_on_cloud,usedby_pods:e.usedby_pods,usedby_clusters:e.usedby_clusters}})||[]}catch(e){return console.error("Failed to fetch volumes:",e),[]}}async function o(e){let t="";try{let a=await r.x.post("/volumes/delete",{names:[e]}),s=a.headers.get("X-SkyPilot-Request-ID")||a.headers.get("X-Request-ID"),o=await r.x.get("/api/get?request_id=".concat(s));if(500===o.status){try{let e=await o.json();if(e.detail&&e.detail.error)try{t=JSON.parse(e.detail.error).message}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{success:!1,msg:t}}return{success:!0}}catch(e){return console.error("Failed to delete volume:",e),{success:!1,msg:e.message}}}},23001:function(e,t,a){a.d(t,{X:function(){return s}});var r=a(67294);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=()=>{a(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},36856:function(e,t,a){var r=a(6378),s=a(23266),o=a(68969),n=a(17324),l=a(53081),c=a(32045),u=a(19238);let i={base:{getClusters:{fn:s.getClusters,args:[]},getClusterHistory:{fn:s.uR,args:[]},getManagedJobs:{fn:o.getManagedJobs,args:[{allUsers:!0}]},getWorkspaces:{fn:n.fX,args:[]},getUsers:{fn:l.R,args:[]},getInfraData:{fn:c.l4,args:[]},getVolumes:{fn:u.C,args:[]}},dynamic:{getEnabledClouds:{fn:n.yz,requiresWorkspaces:!0}},pages:{clusters:["getClusters","getClusterHistory","getWorkspaces","getUsers"],jobs:["getManagedJobs","getClusters","getWorkspaces","getUsers"],infra:["getInfraData","getClusters","getManagedJobs"],workspaces:["getWorkspaces","getClusters","getManagedJobs","getEnabledClouds"],users:["getUsers","getClusters","getManagedJobs"],volumes:["getVolumes"]}};class d{async preloadForPage(e,t){let{backgroundPreload:a=!0,force:r=!1}=t||{};if(!i.pages[e]){console.warn("Unknown page: ".concat(e));return}console.log("[CachePreloader] Preloading cache for page: ".concat(e));try{await this._loadPageData(e,r),a&&this._backgroundPreloadOtherPages(e)}catch(t){console.error("[CachePreloader] Error preloading for page ".concat(e,":"),t)}}async _loadPageData(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=i.pages[e],s=[];for(let e of a)if(i.base[e]){let{fn:a,args:o}=i.base[e];t&&r.default.invalidate(a,o),s.push(r.default.get(a,o))}else"getEnabledClouds"===e&&s.push(this._loadEnabledCloudsForAllWorkspaces(t));await Promise.allSettled(s),console.log("[CachePreloader] Loaded data for page: ".concat(e))}async _loadEnabledCloudsForAllWorkspaces(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{e&&r.default.invalidate(n.fX);let t=await r.default.get(n.fX),a=Object.keys(t||{}).map(t=>(e&&r.default.invalidate(n.yz,[t]),r.default.get(n.yz,[t])));await Promise.allSettled(a)}catch(e){console.error("[CachePreloader] Error loading enabled clouds:",e)}}_backgroundPreloadOtherPages(e){if(this.isPreloading)return;this.isPreloading=!0;let t=Object.keys(i.pages).filter(t=>t!==e);console.log("[CachePreloader] Background preloading pages: ".concat(t.join(", "))),Promise.allSettled(t.map(async e=>{try{await this._loadPageData(e,!1),console.log("[CachePreloader] Background loaded: ".concat(e))}catch(t){console.error("[CachePreloader] Background load failed for ".concat(e,":"),t)}})).then(()=>{this.isPreloading=!1,console.log("[CachePreloader] Background preloading complete")})}async preloadBaseFunctions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];console.log("[CachePreloader] Preloading all base functions");let t=Object.entries(i.base).map(t=>{let[a,{fn:s,args:o}]=t;return e&&r.default.invalidate(s,o),r.default.get(s,o).catch(e=>{console.error("[CachePreloader] Failed to preload ".concat(a,":"),e)})});await Promise.allSettled(t),console.log("[CachePreloader] Base functions preloaded")}getCacheStats(){return{...r.default.getStats(),isPreloading:this.isPreloading}}clearCache(){r.default.clear(),this.isPreloading=!1,this.preloadPromises.clear(),console.log("[CachePreloader] Cache cleared")}constructor(){this.isPreloading=!1,this.preloadPromises=new Map}}let g=new d;t.ZP=g}}]);
|
sky/dashboard/out/_next/static/chunks/pages/{_app-491a4d699d95e808.js → _app-c2ea34fda4f1f8c8.js}
RENAMED
|
@@ -17,7 +17,7 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
|
17
17
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
18
18
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
19
19
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
|
|
20
|
-
*/Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return h}});let o=n(10260)._(n(67294)),r=n(16725),i=[],l=[],s=!1;function a(e){let t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(e=>(n.loading=!1,n.loaded=e,e)).catch(e=>{throw n.loading=!1,n.error=e,e}),n}class c{promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}}function u(e){return function(e,t){let n=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),i=null;function a(){if(!i){let t=new c(e,n);i={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return i.promise()}if(!s){let e=n.webpack?n.webpack():n.modules;e&&l.push(t=>{for(let n of e)if(t.includes(n))return a()})}function u(e,t){!function(){a();let e=o.default.useContext(r.LoadableContext);e&&Array.isArray(n.modules)&&n.modules.forEach(t=>{e(t)})}();let l=o.default.useSyncExternalStore(i.subscribe,i.getCurrentValue,i.getCurrentValue);return o.default.useImperativeHandle(t,()=>({retry:i.retry}),[]),o.default.useMemo(()=>{var t;return l.loading||l.error?o.default.createElement(n.loading,{isLoading:l.loading,pastDelay:l.pastDelay,timedOut:l.timedOut,error:l.error,retry:i.retry}):l.loaded?o.default.createElement((t=l.loaded)&&t.default?t.default:t,e):null},[e,l])}return u.preload=()=>a(),u.displayName="LoadableComponent",o.default.forwardRef(u)}(a,e)}function d(e,t){let n=[];for(;e.length;){let o=e.pop();n.push(o(t))}return Promise.all(n).then(()=>{if(e.length)return d(e,t)})}u.preloadAll=()=>new Promise((e,t)=>{d(i).then(e,t)}),u.preloadReady=e=>(void 0===e&&(e=[]),new Promise(t=>{let n=()=>(s=!0,t());d(l,e).then(n,n)})),window.__NEXT_PRELOADREADY=u.preloadReady;let h=u},93225:function(e,t,n){"use strict";n.d(t,{$m:function(){return a},Bo:function(){return l},GW:function(){return r},Z2:function(){return c},f4:function(){return o},iW:function(){return s},mF:function(){return i}}),n(83454);let o=function(){{let e=window.location.pathname,t=e.indexOf("/dashboard");if(-1!==t){let n=e.substring(0,t);return"".concat(n,"/internal/dashboard")}return"/internal/dashboard"}}(),r=function(){{let e=window.location.pathname,t=e.indexOf("/dashboard");return -1!==t?e.substring(0,t+10):"/dashboard"}}();"/api/v1".replace(/^http/,"ws");let i="ClusterDoesNotExist",l="NotSupportedError",s="ClusterNotUpError",a=["AWS","Azure","GCP","IBM","Lambda","SCP","OCI","RunPod","VAST","vSphere","Cudo","FluidStack","Paperspace","DO","Nebius"],c=Object.fromEntries([...a.map(e=>[e.toLowerCase(),e]),["kubernetes","Kubernetes"],["ssh","SSH Node Pool"]])},6556:function(e,t,n){"use strict";n.d(t,{n:function(){return l}});var o=n(67294);let r="skypilot-dashboard-first-visit",i="skypilot-dashboard-tour-completed";function l(){let[e,t]=(0,o.useState)(!1),[n,l]=(0,o.useState)(!1),[s,a]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{a(!0);let e=sessionStorage.getItem(r),n=localStorage.getItem(i);e||(t(!0),sessionStorage.setItem(r,"true")),n&&l(!0)},[]),{isFirstVisit:!!s&&e,tourCompleted:!!s&&n,shouldShowTourPrompt:s&&e&&!n,shouldPulseHelpButton:s&&e&&!n,markTourCompleted:()=>{localStorage.setItem(i,"true"),l(!0)},resetFirstVisit:()=>{sessionStorage.removeItem(r),localStorage.removeItem(i),t(!0),l(!1)},isClient:s}}},94849:function(e,t,n){"use strict";let o,r;n.d(t,{C:function(){return t5},r:function(){return t3}});var i,l,s=n(85893),a=n(67294),c=n(11163);function u(e){return e instanceof HTMLElement}function d(e){return"function"==typeof e}function h(e){return"string"==typeof e}function f(e){return void 0===e}class p{on(e,t,n,o=!1){var r;return f(this.bindings)&&(this.bindings={}),f(this.bindings[e])&&(this.bindings[e]=[]),null==(r=this.bindings[e])||r.push({handler:t,ctx:n,once:o}),this}once(e,t,n){return this.on(e,t,n,!0)}off(e,t){if(f(this.bindings)||f(this.bindings[e]))return this;if(f(t))delete this.bindings[e];else{var n;null==(n=this.bindings[e])||n.forEach((n,o)=>{if(n.handler===t){var r;null==(r=this.bindings[e])||r.splice(o,1)}})}return this}trigger(e,...t){if(!f(this.bindings)&&this.bindings[e]){var n;null==(n=this.bindings[e])||n.forEach((n,o)=>{let{ctx:r,handler:i,once:l}=n;if(i.apply(r||this,t),l){var s;null==(s=this.bindings[e])||s.splice(o,1)}})}return this}}function m(){return(m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(null,arguments)}function g(e,t){if(null==e)return{};var n={};for(var o in e)if(({}).hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}let y={defaultMerge:Symbol("deepmerge-ts: default merge"),skip:Symbol("deepmerge-ts: skip")};function b(e,t){return t}function v(e,t){return e.filter(e=>void 0!==e)}function x(e){return"object"!=typeof e||null===e?0:Array.isArray(e)?2:!function(e){if(!E.has(Object.prototype.toString.call(e)))return!1;let{constructor:t}=e;if(void 0===t)return!0;let n=t.prototype;return!!(null!==n&&"object"==typeof n&&E.has(Object.prototype.toString.call(n))&&n.hasOwnProperty("isPrototypeOf"))}(e)?e instanceof Set?3:e instanceof Map?4:5:1}function w(e){return{*[Symbol.iterator](){for(let t of e)for(let e of t)yield e}}}y.defaultMerge,(i=l||(l={}))[i.NOT=0]="NOT",i[i.RECORD=1]="RECORD",i[i.ARRAY=2]="ARRAY",i[i.SET=3]="SET",i[i.MAP=4]="MAP",i[i.OTHER=5]="OTHER";let E=new Set(["[object Object]","[object Module]"]),S={mergeRecords:function(e,t,n){let o={};for(let r of function(e){let t=new Set;for(let n of e)for(let e of[...Object.keys(n),...Object.getOwnPropertySymbols(n)])t.add(e);return t}(e)){let i=[];for(let t of e)"object"==typeof t&&Object.prototype.propertyIsEnumerable.call(t,r)&&i.push(t[r]);if(0===i.length)continue;let l=t.metaDataUpdater(n,{key:r,parents:e}),s=$(i,t,l);s!==y.skip&&("__proto__"===r?Object.defineProperty(o,r,{value:s,configurable:!0,enumerable:!0,writable:!0}):o[r]=s)}return o},mergeArrays:function(e){return e.flat()},mergeSets:function(e){return new Set(w(e))},mergeMaps:function(e){return new Map(w(e))},mergeOthers:function(e){return e.at(-1)}};function T(...e){return(function(e,t){var n,o,r;let i={defaultMergeFunctions:S,mergeFunctions:m({},S,Object.fromEntries(Object.entries(e).filter(([e,t])=>Object.hasOwn(S,e)).map(([e,t])=>!1===t?[e,S.mergeOthers]:[e,t]))),metaDataUpdater:null!=(n=e.metaDataUpdater)?n:b,deepmerge:l,useImplicitDefaultMerging:null!=(o=e.enableImplicitDefaultMerging)&&o,filterValues:!1===e.filterValues?void 0:null!=(r=e.filterValues)?r:v,actions:y};function l(...e){return $(e,i,void 0)}return l})({})(...e)}function $(e,t,n){var o;let r=null!=(o=null==t.filterValues?void 0:t.filterValues(e,n))?o:e;if(0===r.length)return;if(1===r.length)return k(r,t,n);let i=x(r[0]);if(0!==i&&5!==i){for(let e=1;e<r.length;e++)if(x(r[e])!==i)return k(r,t,n)}switch(i){case 1:return function(e,t,n){let o=t.mergeFunctions.mergeRecords(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeRecords!==t.defaultMergeFunctions.mergeRecords?t.defaultMergeFunctions.mergeRecords(e,t,n):o}(r,t,n);case 2:return function(e,t,n){let o=t.mergeFunctions.mergeArrays(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeArrays!==t.defaultMergeFunctions.mergeArrays?t.defaultMergeFunctions.mergeArrays(e):o}(r,t,n);case 3:return function(e,t,n){let o=t.mergeFunctions.mergeSets(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeSets!==t.defaultMergeFunctions.mergeSets?t.defaultMergeFunctions.mergeSets(e):o}(r,t,n);case 4:return function(e,t,n){let o=t.mergeFunctions.mergeMaps(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeMaps!==t.defaultMergeFunctions.mergeMaps?t.defaultMergeFunctions.mergeMaps(e):o}(r,t,n);default:return k(r,t,n)}}function k(e,t,n){let o=t.mergeFunctions.mergeOthers(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeOthers!==t.defaultMergeFunctions.mergeOthers?t.defaultMergeFunctions.mergeOthers(e):o}function _(e){let t=Object.getOwnPropertyNames(e.constructor.prototype);for(let n=0;n<t.length;n++){let o=t[n],r=e[o];"constructor"!==o&&"function"==typeof r&&(e[o]=r.bind(e))}return e}class C{constructor(e){}}class O{constructor(e,t){}}function P(e){return h(e)&&""!==e?"-"!==e.charAt(e.length-1)?`${e}-`:e:""}function A(e){return null==e||!e.element||!e.on}function L(){let e=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)})}let M=["top","right","bottom","left"].reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]),I=Math.min,R=Math.max,q=Math.round,B=Math.floor,H=e=>({x:e,y:e}),j={left:"right",right:"left",bottom:"top",top:"bottom"},D={start:"end",end:"start"};function F(e,t){return"function"==typeof e?e(t):e}function N(e){return e.split("-")[0]}function V(e){return e.split("-")[1]}function W(e){return"x"===e?"y":"x"}function z(e){return"y"===e?"height":"width"}function U(e){return["top","bottom"].includes(N(e))?"y":"x"}function Y(e,t,n){void 0===n&&(n=!1);let o=V(e),r=W(U(e)),i=z(r),l="x"===r?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return t.reference[i]>t.floating[i]&&(l=K(l)),[l,K(l)]}function G(e){return e.replace(/start|end/g,e=>D[e])}function K(e){return e.replace(/left|right|bottom|top/g,e=>j[e])}function J(e){return"number"!=typeof e?m({top:0,right:0,bottom:0,left:0},e):{top:e,right:e,bottom:e,left:e}}function X(e){let{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}let Z=["crossAxis","alignment","allowedPlacements","autoAlignment"],Q=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],ee=["mainAxis","crossAxis","limiter"];function et(e,t,n){let o,{reference:r,floating:i}=e,l=U(t),s=W(U(t)),a=z(s),c=N(t),u="y"===l,d=r.x+r.width/2-i.width/2,h=r.y+r.height/2-i.height/2,f=r[a]/2-i[a]/2;switch(c){case"top":o={x:d,y:r.y-i.height};break;case"bottom":o={x:d,y:r.y+r.height};break;case"right":o={x:r.x+r.width,y:h};break;case"left":o={x:r.x-i.width,y:h};break;default:o={x:r.x,y:r.y}}switch(V(t)){case"start":o[s]-=f*(n&&u?-1:1);break;case"end":o[s]+=f*(n&&u?-1:1)}return o}let en=async(e,t,n)=>{let{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:l}=n,s=i.filter(Boolean),a=await (null==l.isRTL?void 0:l.isRTL(t)),c=await l.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=et(c,o,a),h=o,f={},p=0;for(let n=0;n<s.length;n++){let{name:i,fn:g}=s[n],{x:y,y:b,data:v,reset:x}=await g({x:u,y:d,initialPlacement:o,placement:h,strategy:r,middlewareData:f,rects:c,platform:l,elements:{reference:e,floating:t}});u=null!=y?y:u,d=null!=b?b:d,f=m({},f,{[i]:m({},f[i],v)}),x&&p<=50&&(p++,"object"==typeof x&&(x.placement&&(h=x.placement),x.rects&&(c=!0===x.rects?await l.getElementRects({reference:e,floating:t,strategy:r}):x.rects),{x:u,y:d}=et(c,h,a)),n=-1)}return{x:u,y:d,placement:h,strategy:r,middlewareData:f}};async function eo(e,t){var n;void 0===t&&(t={});let{x:o,y:r,platform:i,rects:l,elements:s,strategy:a}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:h=!1,padding:f=0}=F(t,e),p=J(f),m=s[h?"floating"===d?"reference":"floating":d],g=X(await i.getClippingRect({element:null==(n=await (null==i.isElement?void 0:i.isElement(m)))||n?m:m.contextElement||await (null==i.getDocumentElement?void 0:i.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:a})),y="floating"===d?{x:o,y:r,width:l.floating.width,height:l.floating.height}:l.reference,b=await (null==i.getOffsetParent?void 0:i.getOffsetParent(s.floating)),v=await (null==i.isElement?void 0:i.isElement(b))&&await (null==i.getScale?void 0:i.getScale(b))||{x:1,y:1},x=X(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:y,offsetParent:b,strategy:a}):y);return{top:(g.top-x.top+p.top)/v.y,bottom:(x.bottom-g.bottom+p.bottom)/v.y,left:(g.left-x.left+p.left)/v.x,right:(x.right-g.right+p.right)/v.x}}function er(){return"undefined"!=typeof window}function ei(e){return ea(e)?(e.nodeName||"").toLowerCase():"#document"}function el(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function es(e){var t;return null==(t=(ea(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ea(e){return!!er()&&(e instanceof Node||e instanceof el(e).Node)}function ec(e){return!!er()&&(e instanceof Element||e instanceof el(e).Element)}function eu(e){return!!er()&&(e instanceof HTMLElement||e instanceof el(e).HTMLElement)}function ed(e){return!!er()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof el(e).ShadowRoot)}function eh(e){let{overflow:t,overflowX:n,overflowY:o,display:r}=ey(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}function ef(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch(e){return!1}})}function ep(e){let t=em(),n=ec(e)?ey(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some(e=>(n.willChange||"").includes(e))||["paint","layout","strict","content"].some(e=>(n.contain||"").includes(e))}function em(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function eg(e){return["html","body","#document"].includes(ei(e))}function ey(e){return el(e).getComputedStyle(e)}function eb(e){return ec(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ev(e){if("html"===ei(e))return e;let t=e.assignedSlot||e.parentNode||ed(e)&&e.host||es(e);return ed(t)?t.host:t}function ex(e,t,n){var o;void 0===t&&(t=[]),void 0===n&&(n=!0);let r=function e(t){let n=ev(t);return eg(n)?t.ownerDocument?t.ownerDocument.body:t.body:eu(n)&&eh(n)?n:e(n)}(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),l=el(r);if(i){let e=ew(l);return t.concat(l,l.visualViewport||[],eh(r)?r:[],e&&n?ex(e):[])}return t.concat(r,ex(r,[],n))}function ew(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eE(e){let t=ey(e),n=parseFloat(t.width)||0,o=parseFloat(t.height)||0,r=eu(e),i=r?e.offsetWidth:n,l=r?e.offsetHeight:o,s=q(n)!==i||q(o)!==l;return s&&(n=i,o=l),{width:n,height:o,$:s}}function eS(e){return ec(e)?e:e.contextElement}function eT(e){let t=eS(e);if(!eu(t))return H(1);let n=t.getBoundingClientRect(),{width:o,height:r,$:i}=eE(t),l=(i?q(n.width):n.width)/o,s=(i?q(n.height):n.height)/r;return l&&Number.isFinite(l)||(l=1),s&&Number.isFinite(s)||(s=1),{x:l,y:s}}let e$=H(0);function ek(e){let t=el(e);return em()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:e$}function e_(e,t,n,o){var r;void 0===t&&(t=!1),void 0===n&&(n=!1);let i=e.getBoundingClientRect(),l=eS(e),s=H(1);t&&(o?ec(o)&&(s=eT(o)):s=eT(e));let a=(void 0===(r=n)&&(r=!1),o&&(!r||o===el(l))&&r)?ek(l):H(0),c=(i.left+a.x)/s.x,u=(i.top+a.y)/s.y,d=i.width/s.x,h=i.height/s.y;if(l){let e=el(l),t=o&&ec(o)?el(o):o,n=e,r=ew(n);for(;r&&o&&t!==n;){let e=eT(r),t=r.getBoundingClientRect(),o=ey(r),i=t.left+(r.clientLeft+parseFloat(o.paddingLeft))*e.x,l=t.top+(r.clientTop+parseFloat(o.paddingTop))*e.y;c*=e.x,u*=e.y,d*=e.x,h*=e.y,c+=i,u+=l,r=ew(n=el(r))}}return X({width:d,height:h,x:c,y:u})}function eC(e,t){let n=eb(e).scrollLeft;return t?t.left+n:e_(es(e)).left+n}function eO(e,t,n){void 0===n&&(n=!1);let o=e.getBoundingClientRect();return{x:o.left+t.scrollLeft-(n?0:eC(e,o)),y:o.top+t.scrollTop}}function eP(e,t,n){let o;if("viewport"===t)o=function(e,t){let n=el(e),o=es(e),r=n.visualViewport,i=o.clientWidth,l=o.clientHeight,s=0,a=0;if(r){i=r.width,l=r.height;let e=em();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,a=r.offsetTop)}return{width:i,height:l,x:s,y:a}}(e,n);else if("document"===t)o=function(e){let t=es(e),n=eb(e),o=e.ownerDocument.body,r=R(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=R(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight),l=-n.scrollLeft+eC(e),s=-n.scrollTop;return"rtl"===ey(o).direction&&(l+=R(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:l,y:s}}(es(e));else if(ec(t))o=function(e,t){let n=e_(e,!0,"fixed"===t),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=eu(e)?eT(e):H(1),l=e.clientWidth*i.x;return{width:l,height:e.clientHeight*i.y,x:r*i.x,y:o*i.y}}(t,n);else{let n=ek(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return X(o)}function eA(e){return"static"===ey(e).position}function eL(e,t){if(!eu(e)||"fixed"===ey(e).position)return null;if(t)return t(e);let n=e.offsetParent;return es(e)===n&&(n=n.ownerDocument.body),n}function eM(e,t){let n=el(e);if(ef(e))return n;if(!eu(e)){let t=ev(e);for(;t&&!eg(t);){if(ec(t)&&!eA(t))return t;t=ev(t)}return n}let o=eL(e,t);for(;o&&["table","td","th"].includes(ei(o))&&eA(o);)o=eL(o,t);return o&&eg(o)&&eA(o)&&!ep(o)?n:o||function(e){let t=ev(e);for(;eu(t)&&!eg(t);){if(ep(t))return t;if(ef(t))break;t=ev(t)}return null}(e)||n}let eI=async function(e){let t=this.getOffsetParent||eM,n=this.getDimensions,o=await n(e.floating);return{reference:function(e,t,n){let o=eu(t),r=es(t),i="fixed"===n,l=e_(e,!0,i,t),s={scrollLeft:0,scrollTop:0},a=H(0);if(o||!o&&!i){if(("body"!==ei(t)||eh(r))&&(s=eb(t)),o){let e=e_(t,!0,i,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else r&&(a.x=eC(r))}let c=!r||o||i?H(0):eO(r,s);return{x:l.left+s.scrollLeft-a.x-c.x,y:l.top+s.scrollTop-a.y-c.y,width:l.width,height:l.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}},eR={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e,i="fixed"===r,l=es(o),s=!!t&&ef(t.floating);if(o===l||s&&i)return n;let a={scrollLeft:0,scrollTop:0},c=H(1),u=H(0),d=eu(o);if((d||!d&&!i)&&(("body"!==ei(o)||eh(l))&&(a=eb(o)),eu(o))){let e=e_(o);c=eT(o),u.x=e.x+o.clientLeft,u.y=e.y+o.clientTop}let h=!l||d||i?H(0):eO(l,a,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+u.x+h.x,y:n.y*c.y-a.scrollTop*c.y+u.y+h.y}},getDocumentElement:es,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e,i=[..."clippingAncestors"===n?ef(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let o=ex(e,[],!1).filter(e=>ec(e)&&"body"!==ei(e)),r=null,i="fixed"===ey(e).position,l=i?ev(e):e;for(;ec(l)&&!eg(l);){let t=ey(l),n=ep(l);n||"fixed"!==t.position||(r=null),(i?!n&&!r:!n&&"static"===t.position&&!!r&&["absolute","fixed"].includes(r.position)||eh(l)&&!n&&function e(t,n){let o=ev(t);return!(o===n||!ec(o)||eg(o))&&("fixed"===ey(o).position||e(o,n))}(e,l))?o=o.filter(e=>e!==l):r=t,l=ev(l)}return t.set(e,o),o}(t,this._c):[].concat(n),o],l=i[0],s=i.reduce((e,n)=>{let o=eP(t,n,r);return e.top=R(o.top,e.top),e.right=I(o.right,e.right),e.bottom=I(o.bottom,e.bottom),e.left=R(o.left,e.left),e},eP(t,l,r));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:eM,getElementRects:eI,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=eE(e);return{width:t,height:n}},getScale:eT,isElement:ec,isRTL:function(e){return"rtl"===ey(e).direction}},eq=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:o,placement:r,rects:i,platform:l,elements:s,middlewareData:a}=t,{element:c,padding:u=0}=F(e,t)||{};if(null==c)return{};let d=J(u),h={x:n,y:o},f=W(U(r)),p=z(f),g=await l.getDimensions(c),y="y"===f,b=y?"clientHeight":"clientWidth",v=i.reference[p]+i.reference[f]-h[f]-i.floating[p],x=h[f]-i.reference[f],w=await (null==l.getOffsetParent?void 0:l.getOffsetParent(c)),E=w?w[b]:0;E&&await (null==l.isElement?void 0:l.isElement(w))||(E=s.floating[b]||i.floating[p]);let S=E/2-g[p]/2-1,T=I(d[y?"top":"left"],S),$=I(d[y?"bottom":"right"],S),k=E-g[p]-$,_=E/2-g[p]/2+(v/2-x/2),C=R(T,I(_,k)),O=!a.arrow&&null!=V(r)&&_!==C&&i.reference[p]/2-(_<T?T:$)-g[p]/2<0,P=O?_<T?_-T:_-k:0;return{[f]:h[f]+P,data:m({[f]:C,centerOffset:_-C-P},O&&{alignmentOffset:P}),reset:O}}}),eB=(e,t,n)=>{let o=new Map,r=m({platform:eR},n),i=m({},r.platform,{_c:o});return en(e,t,m({},r,{platform:i}))};function eH(){}function ej(e){return e()}function eD(){return Object.create(null)}function eF(e){e.forEach(ej)}function eN(e){return"function"==typeof e}function eV(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function eW(e,t){e.appendChild(t)}function ez(e,t,n){e.insertBefore(t,n||null)}function eU(e){e.parentNode&&e.parentNode.removeChild(e)}function eY(e){return document.createElement(e)}function eG(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function eK(e){return document.createTextNode(e)}function eJ(){return eK(" ")}function eX(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function eZ(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}let eQ=["width","height"];function e0(e,t){let n=Object.getOwnPropertyDescriptors(e.__proto__);for(let o in t)null==t[o]?e.removeAttribute(o):"style"===o?e.style.cssText=t[o]:"__value"===o?e.value=e[o]=t[o]:n[o]&&n[o].set&&-1===eQ.indexOf(o)?e[o]=t[o]:eZ(e,o,t[o])}function e1(e,t,n){e.classList.toggle(t,!!n)}function e2(){if(!o)throw Error("Function called outside component initialization");return o}function e4(e){e2().$$.after_update.push(e)}let e6=[],e3=[],e5=[],e9=[],e8=Promise.resolve(),e7=!1;function te(e){e5.push(e)}let tt=new Set,tn=0;function to(){if(0!==tn)return;let e=o;do{try{for(;tn<e6.length;){let e=e6[tn];tn++,o=e,function(e){if(null!==e.fragment){e.update(),eF(e.before_update);let t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(te)}}(e.$$)}}catch(e){throw e6.length=0,tn=0,e}for(o=null,e6.length=0,tn=0;e3.length;)e3.pop()();for(let e=0;e<e5.length;e+=1){let t=e5[e];tt.has(t)||(tt.add(t),t())}e5.length=0}while(e6.length);for(;e9.length;)e9.pop()();e7=!1,tt.clear(),o=e}let tr=new Set;function ti(){r={r:0,c:[],p:r}}function tl(){r.r||eF(r.c),r=r.p}function ts(e,t){e&&e.i&&(tr.delete(e),e.i(t))}function ta(e,t,n,o){e&&e.o?tr.has(e)||(tr.add(e),r.c.push(()=>{tr.delete(e),o&&(n&&e.d(1),o())}),e.o(t)):o&&o()}function tc(e){return(null==e?void 0:e.length)!==void 0?e:Array.from(e)}function tu(e){e&&e.c()}function td(e,t,n){let{fragment:o,after_update:r}=e.$$;o&&o.m(t,n),te(()=>{let t=e.$$.on_mount.map(ej).filter(eN);e.$$.on_destroy?e.$$.on_destroy.push(...t):eF(t),e.$$.on_mount=[]}),r.forEach(te)}function th(e,t){let n=e.$$;null!==n.fragment&&(!function(e){let t=[],n=[];e5.forEach(o=>-1===e.indexOf(o)?t.push(o):n.push(o)),n.forEach(e=>e()),e5=t}(n.after_update),eF(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function tf(e,t,n,r,i,l,s=null,a=[-1]){let c=o;o=e;let u=e.$$={fragment:null,ctx:[],props:l,update:eH,not_equal:i,bound:eD(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(c?c.$$.context:[])),callbacks:eD(),dirty:a,skip_bound:!1,root:t.target||c.$$.root};s&&s(u.root);let d=!1;if(u.ctx=n?n(e,t.props||{},(t,n,...o)=>{let r=o.length?o[0]:n;return u.ctx&&i(u.ctx[t],u.ctx[t]=r)&&(!u.skip_bound&&u.bound[t]&&u.bound[t](r),d)&&(-1===e.$$.dirty[0]&&(e6.push(e),e7||(e7=!0,e8.then(to)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31),n}):[],u.update(),d=!0,eF(u.before_update),u.fragment=!!r&&r(u.ctx),t.target){if(t.hydrate){let e=Array.from(t.target.childNodes);u.fragment&&u.fragment.l(e),e.forEach(eU)}else u.fragment&&u.fragment.c();t.intro&&ts(e.$$.fragment),td(e,t.target,t.anchor),to()}o=c}class tp{constructor(){this.$$=void 0,this.$$set=void 0}$destroy(){th(this,1),this.$destroy=eH}$on(e,t){if(!eN(t))return eH;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&0!==Object.keys(e).length&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function tm(e){let t,n,o,r,i;return{c(){eZ(t=eY("button"),"aria-label",n=e[3]?e[3]:null),eZ(t,"class",o=`${e[1]||""} shepherd-button ${e[4]?"shepherd-button-secondary":""}`),t.disabled=e[2],eZ(t,"tabindex","0"),eZ(t,"type","button")},m(n,o){ez(n,t,o),t.innerHTML=e[5],r||(i=eX(t,"click",function(){eN(e[0])&&e[0].apply(this,arguments)}),r=!0)},p(r,[i]){e=r,32&i&&(t.innerHTML=e[5]),8&i&&n!==(n=e[3]?e[3]:null)&&eZ(t,"aria-label",n),18&i&&o!==(o=`${e[1]||""} shepherd-button ${e[4]?"shepherd-button-secondary":""}`)&&eZ(t,"class",o),4&i&&(t.disabled=e[2])},i:eH,o:eH,d(e){e&&eU(t),r=!1,i()}}}function tg(e,t,n){let o,r,i,l,s,a,{config:c,step:u}=t;function h(e){return d(e)?e=e.call(u):e}return e.$$set=e=>{"config"in e&&n(6,c=e.config),"step"in e&&n(7,u=e.step)},e.$$.update=()=>{192&e.$$.dirty&&(n(0,o=c.action?c.action.bind(u.tour):null),n(1,r=c.classes),n(2,i=!!c.disabled&&h(c.disabled)),n(3,l=c.label?h(c.label):null),n(4,s=c.secondary),n(5,a=c.text?h(c.text):null))},[o,r,i,l,s,a,c,u]}"undefined"!=typeof window&&(window.__svelte||(window.__svelte={v:new Set})).v.add("4");class ty extends tp{constructor(e){super(),tf(this,e,tg,tm,eV,{config:6,step:7})}}function tb(e,t,n){let o=e.slice();return o[2]=t[n],o}function tv(e){let t,n;let o=tc(e[1]),r=[];for(let t=0;t<o.length;t+=1)r[t]=tx(tb(e,o,t));let i=e=>ta(r[e],1,1,()=>{r[e]=null});return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=eK("")},m(e,o){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,o);ez(e,t,o),n=!0},p(e,n){if(3&n){let l;for(l=0,o=tc(e[1]);l<o.length;l+=1){let i=tb(e,o,l);r[l]?(r[l].p(i,n),ts(r[l],1)):(r[l]=tx(i),r[l].c(),ts(r[l],1),r[l].m(t.parentNode,t))}for(ti(),l=o.length;l<r.length;l+=1)i(l);tl()}},i(e){if(!n){for(let e=0;e<o.length;e+=1)ts(r[e]);n=!0}},o(e){r=r.filter(Boolean);for(let e=0;e<r.length;e+=1)ta(r[e]);n=!1},d(e){e&&eU(t),function(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}(r,e)}}}function tx(e){let t,n;return t=new ty({props:{config:e[2],step:e[0]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};2&n&&(o.config=e[2]),1&n&&(o.step=e[0]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tw(e){let t,n;let o=e[1]&&tv(e);return{c(){t=eY("footer"),o&&o.c(),eZ(t,"class","shepherd-footer")},m(e,r){ez(e,t,r),o&&o.m(t,null),n=!0},p(e,[n]){e[1]?o?(o.p(e,n),2&n&&ts(o,1)):((o=tv(e)).c(),ts(o,1),o.m(t,null)):o&&(ti(),ta(o,1,1,()=>{o=null}),tl())},i(e){n||(ts(o),n=!0)},o(e){ta(o),n=!1},d(e){e&&eU(t),o&&o.d()}}}function tE(e,t,n){let o;let{step:r}=t;return e.$$set=e=>{"step"in e&&n(0,r=e.step)},e.$$.update=()=>{1&e.$$.dirty&&n(1,o=r.options.buttons)},[r,o]}class tS extends tp{constructor(e){super(),tf(this,e,tE,tw,eV,{step:0})}}function tT(e){let t,n,o,r,i;return{c(){t=eY("button"),(n=eY("span")).textContent="\xd7",eZ(n,"aria-hidden","true"),eZ(t,"aria-label",o=e[0].label?e[0].label:"Close Tour"),eZ(t,"class","shepherd-cancel-icon"),eZ(t,"type","button")},m(o,l){ez(o,t,l),eW(t,n),r||(i=eX(t,"click",e[1]),r=!0)},p(e,[n]){1&n&&o!==(o=e[0].label?e[0].label:"Close Tour")&&eZ(t,"aria-label",o)},i:eH,o:eH,d(e){e&&eU(t),r=!1,i()}}}function t$(e,t,n){let{cancelIcon:o,step:r}=t;return e.$$set=e=>{"cancelIcon"in e&&n(0,o=e.cancelIcon),"step"in e&&n(2,r=e.step)},[o,e=>{e.preventDefault(),r.cancel()},r]}class tk extends tp{constructor(e){super(),tf(this,e,t$,tT,eV,{cancelIcon:0,step:2})}}function t_(e){let t;return{c(){eZ(t=eY("h3"),"id",e[1]),eZ(t,"class","shepherd-title")},m(n,o){ez(n,t,o),e[3](t)},p(e,[n]){2&n&&eZ(t,"id",e[1])},i:eH,o:eH,d(n){n&&eU(t),e[3](null)}}}function tC(e,t,n){let{labelId:o,element:r,title:i}=t;return e4(()=>{d(i)&&n(2,i=i()),n(0,r.innerHTML=i,r)}),e.$$set=e=>{"labelId"in e&&n(1,o=e.labelId),"element"in e&&n(0,r=e.element),"title"in e&&n(2,i=e.title)},[r,o,i,function(e){e3[e?"unshift":"push"](()=>{n(0,r=e)})}]}class tO extends tp{constructor(e){super(),tf(this,e,tC,t_,eV,{labelId:1,element:0,title:2})}}function tP(e){let t,n;return t=new tO({props:{labelId:e[0],title:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};1&n&&(o.labelId=e[0]),4&n&&(o.title=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tA(e){let t,n;return t=new tk({props:{cancelIcon:e[3],step:e[1]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};8&n&&(o.cancelIcon=e[3]),2&n&&(o.step=e[1]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tL(e){let t,n,o;let r=e[2]&&tP(e),i=e[3]&&e[3].enabled&&tA(e);return{c(){t=eY("header"),r&&r.c(),n=eJ(),i&&i.c(),eZ(t,"class","shepherd-header")},m(e,l){ez(e,t,l),r&&r.m(t,null),eW(t,n),i&&i.m(t,null),o=!0},p(e,[o]){e[2]?r?(r.p(e,o),4&o&&ts(r,1)):((r=tP(e)).c(),ts(r,1),r.m(t,n)):r&&(ti(),ta(r,1,1,()=>{r=null}),tl()),e[3]&&e[3].enabled?i?(i.p(e,o),8&o&&ts(i,1)):((i=tA(e)).c(),ts(i,1),i.m(t,null)):i&&(ti(),ta(i,1,1,()=>{i=null}),tl())},i(e){o||(ts(r),ts(i),o=!0)},o(e){ta(r),ta(i),o=!1},d(e){e&&eU(t),r&&r.d(),i&&i.d()}}}function tM(e,t,n){let o,r,{labelId:i,step:l}=t;return e.$$set=e=>{"labelId"in e&&n(0,i=e.labelId),"step"in e&&n(1,l=e.step)},e.$$.update=()=>{2&e.$$.dirty&&(n(2,o=l.options.title),n(3,r=l.options.cancelIcon))},[i,l,o,r]}class tI extends tp{constructor(e){super(),tf(this,e,tM,tL,eV,{labelId:0,step:1})}}function tR(e){let t;return{c(){eZ(t=eY("div"),"class","shepherd-text"),eZ(t,"id",e[1])},m(n,o){ez(n,t,o),e[3](t)},p(e,[n]){2&n&&eZ(t,"id",e[1])},i:eH,o:eH,d(n){n&&eU(t),e[3](null)}}}function tq(e,t,n){let{descriptionId:o,element:r,step:i}=t;return e4(()=>{let{text:e}=i.options;d(e)&&(e=e.call(i)),u(e)?r.appendChild(e):n(0,r.innerHTML=e,r)}),e.$$set=e=>{"descriptionId"in e&&n(1,o=e.descriptionId),"element"in e&&n(0,r=e.element),"step"in e&&n(2,i=e.step)},[r,o,i,function(e){e3[e?"unshift":"push"](()=>{n(0,r=e)})}]}class tB extends tp{constructor(e){super(),tf(this,e,tq,tR,eV,{descriptionId:1,element:0,step:2})}}function tH(e){let t,n;return t=new tI({props:{labelId:e[1],step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};2&n&&(o.labelId=e[1]),4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tj(e){let t,n;return t=new tB({props:{descriptionId:e[0],step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};1&n&&(o.descriptionId=e[0]),4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tD(e){let t,n;return t=new tS({props:{step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tF(e){let t,n,o,r;let i=!f(e[2].options.title)||e[2].options.cancelIcon&&e[2].options.cancelIcon.enabled,l=!f(e[2].options.text),s=Array.isArray(e[2].options.buttons)&&e[2].options.buttons.length,a=i&&tH(e),c=l&&tj(e),u=s&&tD(e);return{c(){t=eY("div"),a&&a.c(),n=eJ(),c&&c.c(),o=eJ(),u&&u.c(),eZ(t,"class","shepherd-content")},m(e,i){ez(e,t,i),a&&a.m(t,null),eW(t,n),c&&c.m(t,null),eW(t,o),u&&u.m(t,null),r=!0},p(e,[r]){4&r&&(i=!f(e[2].options.title)||e[2].options.cancelIcon&&e[2].options.cancelIcon.enabled),i?a?(a.p(e,r),4&r&&ts(a,1)):((a=tH(e)).c(),ts(a,1),a.m(t,n)):a&&(ti(),ta(a,1,1,()=>{a=null}),tl()),4&r&&(l=!f(e[2].options.text)),l?c?(c.p(e,r),4&r&&ts(c,1)):((c=tj(e)).c(),ts(c,1),c.m(t,o)):c&&(ti(),ta(c,1,1,()=>{c=null}),tl()),4&r&&(s=Array.isArray(e[2].options.buttons)&&e[2].options.buttons.length),s?u?(u.p(e,r),4&r&&ts(u,1)):((u=tD(e)).c(),ts(u,1),u.m(t,null)):u&&(ti(),ta(u,1,1,()=>{u=null}),tl())},i(e){r||(ts(a),ts(c),ts(u),r=!0)},o(e){ta(a),ta(c),ta(u),r=!1},d(e){e&&eU(t),a&&a.d(),c&&c.d(),u&&u.d()}}}function tN(e,t,n){let{descriptionId:o,labelId:r,step:i}=t;return e.$$set=e=>{"descriptionId"in e&&n(0,o=e.descriptionId),"labelId"in e&&n(1,r=e.labelId),"step"in e&&n(2,i=e.step)},[o,r,i]}class tV extends tp{constructor(e){super(),tf(this,e,tN,tF,eV,{descriptionId:0,labelId:1,step:2})}}function tW(e){let t;return{c(){eZ(t=eY("div"),"class","shepherd-arrow"),eZ(t,"data-popper-arrow","")},m(e,n){ez(e,t,n)},d(e){e&&eU(t)}}}function tz(e){let t,n,o,r,i,l,s,a;let c=e[4].options.arrow&&e[4].options.attachTo&&e[4].options.attachTo.element&&e[4].options.attachTo.on&&tW();o=new tV({props:{descriptionId:e[2],labelId:e[3],step:e[4]}});let u=[{"aria-describedby":r=f(e[4].options.text)?null:e[2]},{"aria-labelledby":i=e[4].options.title?e[3]:null},e[1],{open:"true"}],d={};for(let e=0;e<u.length;e+=1)d=function(e,t){for(let n in t)e[n]=t[n];return e}(d,u[e]);return{c(){t=eY("dialog"),c&&c.c(),n=eJ(),tu(o.$$.fragment),e0(t,d),e1(t,"shepherd-has-cancel-icon",e[5]),e1(t,"shepherd-has-title",e[6]),e1(t,"shepherd-element",!0)},m(r,i){ez(r,t,i),c&&c.m(t,null),eW(t,n),td(o,t,null),e[13](t),l=!0,s||(a=eX(t,"keydown",e[7]),s=!0)},p(e,[s]){e[4].options.arrow&&e[4].options.attachTo&&e[4].options.attachTo.element&&e[4].options.attachTo.on?c||((c=tW()).c(),c.m(t,n)):c&&(c.d(1),c=null);let a={};4&s&&(a.descriptionId=e[2]),8&s&&(a.labelId=e[3]),16&s&&(a.step=e[4]),o.$set(a),e0(t,d=function(e,t){let n={},o={},r={$$scope:1},i=e.length;for(;i--;){let l=e[i],s=t[i];if(s){for(let e in l)e in s||(o[e]=1);for(let e in s)r[e]||(n[e]=s[e],r[e]=1);e[i]=s}else for(let e in l)r[e]=1}for(let e in o)e in n||(n[e]=void 0);return n}(u,[(!l||20&s&&r!==(r=f(e[4].options.text)?null:e[2]))&&{"aria-describedby":r},(!l||24&s&&i!==(i=e[4].options.title?e[3]:null))&&{"aria-labelledby":i},2&s&&e[1],{open:"true"}])),e1(t,"shepherd-has-cancel-icon",e[5]),e1(t,"shepherd-has-title",e[6]),e1(t,"shepherd-element",!0)},i(e){l||(ts(o.$$.fragment,e),l=!0)},o(e){ta(o.$$.fragment,e),l=!1},d(n){n&&eU(t),c&&c.d(),th(o),e[13](null),s=!1,a()}}}function tU(e){return e.split(" ").filter(e=>!!e.length)}function tY(e,t,n){var o;let r,i,l,{classPrefix:s,element:a,descriptionId:c,firstFocusableElement:u,focusableElements:d,labelId:f,lastFocusableElement:p,step:m,dataStepId:g}=t;return o=()=>{n(1,g={[`data-${s}shepherd-step-id`]:m.id}),n(9,d=a.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]')),n(8,u=d[0]),n(10,p=d[d.length-1])},e2().$$.on_mount.push(o),e4(()=>{l!==m.options.classes&&(function(e){if(h(e)){let t=tU(e);t.length&&a.classList.remove(...t)}}(l),function(e){if(h(e)){let t=tU(e);t.length&&a.classList.add(...t)}}(l=m.options.classes))}),e.$$set=e=>{"classPrefix"in e&&n(11,s=e.classPrefix),"element"in e&&n(0,a=e.element),"descriptionId"in e&&n(2,c=e.descriptionId),"firstFocusableElement"in e&&n(8,u=e.firstFocusableElement),"focusableElements"in e&&n(9,d=e.focusableElements),"labelId"in e&&n(3,f=e.labelId),"lastFocusableElement"in e&&n(10,p=e.lastFocusableElement),"step"in e&&n(4,m=e.step),"dataStepId"in e&&n(1,g=e.dataStepId)},e.$$.update=()=>{16&e.$$.dirty&&(n(5,r=m.options&&m.options.cancelIcon&&m.options.cancelIcon.enabled),n(6,i=m.options&&m.options.title))},[a,g,c,f,m,r,i,e=>{let{tour:t}=m;switch(e.keyCode){case 9:if(0===d.length){e.preventDefault();break}e.shiftKey?(document.activeElement===u||document.activeElement.classList.contains("shepherd-element"))&&(e.preventDefault(),p.focus()):document.activeElement===p&&(e.preventDefault(),u.focus());break;case 27:t.options.exitOnEsc&&(e.preventDefault(),e.stopPropagation(),m.cancel());break;case 37:t.options.keyboardNavigation&&(e.preventDefault(),e.stopPropagation(),t.back());break;case 39:t.options.keyboardNavigation&&(e.preventDefault(),e.stopPropagation(),t.next())}},u,d,p,s,()=>a,function(e){e3[e?"unshift":"push"](()=>{n(0,a=e)})}]}class tG extends tp{constructor(e){super(),tf(this,e,tY,tz,eV,{classPrefix:11,element:0,descriptionId:2,firstFocusableElement:8,focusableElements:9,labelId:3,lastFocusableElement:10,step:4,dataStepId:1,getElement:12})}get getElement(){return this.$$.ctx[12]}}class tK extends p{constructor(e,t={}){return super(),this._resolvedAttachTo=void 0,this._resolvedExtraHighlightElements=void 0,this.classPrefix=void 0,this.el=void 0,this.target=void 0,this.tour=void 0,this.tour=e,this.classPrefix=this.tour.options?P(this.tour.options.classPrefix):"",this.styles=e.styles,this._resolvedAttachTo=null,_(this),this._setOptions(t),this}cancel(){this.tour.cancel(),this.trigger("cancel")}complete(){this.tour.complete(),this.trigger("complete")}destroy(){this.cleanup&&this.cleanup(),this.cleanup=null,u(this.el)&&(this.el.remove(),this.el=null),this._updateStepTargetOnHide(),this.trigger("destroy")}getTour(){return this.tour}hide(){var e;null==(e=this.tour.modal)||e.hide(),this.trigger("before-hide"),this.el&&(this.el.hidden=!0),this._updateStepTargetOnHide(),this.trigger("hide")}_resolveExtraHiglightElements(){return this._resolvedExtraHighlightElements=this.options.extraHighlights?this.options.extraHighlights.flatMap(e=>Array.from(document.querySelectorAll(e))):[],this._resolvedExtraHighlightElements}_resolveAttachToOptions(){return this._resolvedAttachTo=function(e){let t=e.options.attachTo||{},n=Object.assign({},t);if(d(n.element)&&(n.element=n.element.call(e)),h(n.element)){try{n.element=document.querySelector(n.element)}catch(e){}n.element||console.error(`The element for this Shepherd step was not found ${t.element}`)}return n}(this),this._resolvedAttachTo}_getResolvedAttachToOptions(){return null===this._resolvedAttachTo?this._resolveAttachToOptions():this._resolvedAttachTo}isOpen(){return!!(this.el&&!this.el.hidden)}show(){return d(this.options.beforeShowPromise)?Promise.resolve(this.options.beforeShowPromise()).then(()=>this._show()):Promise.resolve(this._show())}updateStepOptions(e){Object.assign(this.options,e),this.shepherdElementComponent&&this.shepherdElementComponent.$set({step:this})}getElement(){return this.el}getTarget(){return this.target}_createTooltipContent(){let e=`${this.id}-description`,t=`${this.id}-label`;return this.shepherdElementComponent=new tG({target:this.tour.options.stepsContainer||document.body,props:{classPrefix:this.classPrefix,descriptionId:e,labelId:t,step:this,styles:this.styles}}),this.shepherdElementComponent.getElement()}_scrollTo(e){let{element:t}=this._getResolvedAttachToOptions();d(this.options.scrollToHandler)?this.options.scrollToHandler(t):t instanceof Element&&"function"==typeof t.scrollIntoView&&t.scrollIntoView(e)}_getClassOptions(e){let t=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions,n=e.classes?e.classes:"",o=t&&t.classes?t.classes:"";return Array.from(new Set([...n.split(" "),...o.split(" ")])).join(" ").trim()}_setOptions(e={}){let t=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;t=T({},t||{}),this.options=Object.assign({arrow:!0},t,e,{floatingUIOptions:T(t.floatingUIOptions||{},e.floatingUIOptions||{})});let{when:n}=this.options;this.options.classes=this._getClassOptions(e),this.destroy(),this.id=this.options.id||`step-${L()}`,n&&Object.keys(n).forEach(e=>{this.on(e,n[e],this)})}_setupElements(){f(this.el)||this.destroy(),this.el=this._createTooltipContent(),this.options.advanceOn&&function(e){let{event:t,selector:n}=e.options.advanceOn||{};if(!t)return console.error("advanceOn was defined, but no event name was passed.");{let o=t=>{if(e.isOpen()){let o=e.el&&t.currentTarget===e.el;(!f(n)&&t.currentTarget.matches(n)||o)&&e.tour.next()}},r=null;if(!f(n)&&!(r=document.querySelector(n)))return console.error(`No element was found for the selector supplied to advanceOn: ${n}`);r?(r.addEventListener(t,o),e.on("destroy",()=>r.removeEventListener(t,o))):(document.body.addEventListener(t,o,!0),e.on("destroy",()=>document.body.removeEventListener(t,o,!0)))}}(this),function(e){e.cleanup&&e.cleanup();let t=e._getResolvedAttachToOptions(),n=t.element,o=function(e,t){var n,o,r,i,l,s,a,c;let u={strategy:"absolute"};u.middleware=[];let d=!!t.options.arrow&&!!t.el&&t.el.querySelector(".shepherd-arrow"),h=A(e),f=null==(n=e.on)?void 0:n.includes("auto"),p=(null==e||null==(o=e.on)?void 0:o.includes("-start"))||(null==e||null==(r=e.on)?void 0:r.includes("-end"));if(!h){if(f?u.middleware.push({name:"autoPlacement",options:l={crossAxis:!0,alignment:p?null==e||null==(i=e.on)?void 0:i.split("-").pop():null},async fn(e){var t,n,o,r;let{rects:i,middlewareData:s,placement:a,platform:c,elements:u}=e,d=F(l,e),{crossAxis:h=!1,alignment:f,allowedPlacements:p=M,autoAlignment:m=!0}=d,y=g(d,Z),b=void 0!==f||p===M?((r=f||null)?[...p.filter(e=>V(e)===r),...p.filter(e=>V(e)!==r)]:p.filter(e=>N(e)===e)).filter(e=>!r||V(e)===r||!!m&&G(e)!==e):p,v=await eo(e,y),x=(null==(t=s.autoPlacement)?void 0:t.index)||0,w=b[x];if(null==w)return{};let E=Y(w,i,await (null==c.isRTL?void 0:c.isRTL(u.floating)));if(a!==w)return{reset:{placement:b[0]}};let S=[v[N(w)],v[E[0]],v[E[1]]],T=[...(null==(n=s.autoPlacement)?void 0:n.overflows)||[],{placement:w,overflows:S}],$=b[x+1];if($)return{data:{index:x+1,overflows:T},reset:{placement:$}};let k=T.map(e=>{let t=V(e.placement);return[e.placement,t&&h?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),_=(null==(o=k.filter(e=>e[2].slice(0,V(e[0])?2:3).every(e=>e<=0))[0])?void 0:o[0])||k[0][0];return _!==a?{data:{index:x+1,overflows:T},reset:{placement:_}}:{}}}):u.middleware.push((void 0===s&&(s={}),{name:"flip",options:s,async fn(e){var t,n,o,r,i;let{placement:l,middlewareData:a,rects:c,initialPlacement:u,platform:d,elements:h}=e,f=F(s,e),{mainAxis:p=!0,crossAxis:m=!0,fallbackPlacements:y,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:x=!0}=f,w=g(f,Q);if(null!=(t=a.arrow)&&t.alignmentOffset)return{};let E=N(l),S=U(u),T=N(u)===u,$=await (null==d.isRTL?void 0:d.isRTL(h.floating)),k=y||(T||!x?[K(u)]:function(e){let t=K(e);return[G(e),t,G(t)]}(u)),_="none"!==v;!y&&_&&k.push(...function(e,t,n,o){let r=V(e),i=function(e,t,n){let o=["left","right"],r=["right","left"];switch(e){case"top":case"bottom":if(n)return t?r:o;return t?o:r;case"left":case"right":return t?["top","bottom"]:["bottom","top"];default:return[]}}(N(e),"start"===n,o);return r&&(i=i.map(e=>e+"-"+r),t&&(i=i.concat(i.map(G)))),i}(u,x,v,$));let C=[u,...k],O=await eo(e,w),P=[],A=(null==(n=a.flip)?void 0:n.overflows)||[];if(p&&P.push(O[E]),m){let e=Y(l,c,$);P.push(O[e[0]],O[e[1]])}if(A=[...A,{placement:l,overflows:P}],!P.every(e=>e<=0)){let e=((null==(o=a.flip)?void 0:o.index)||0)+1,t=C[e];if(t)return{data:{index:e,overflows:A},reset:{placement:t}};let n=null==(r=A.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:r.placement;if(!n)switch(b){case"bestFit":{let e=null==(i=A.filter(e=>{if(_){let t=U(e.placement);return t===S||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:i[0];e&&(n=e);break}case"initialPlacement":n=u}if(l!==n)return{reset:{placement:n}}}return{}}})),u.middleware.push({name:"shift",options:c={limiter:(void 0===a&&(a={}),{options:a,fn(e){let{x:t,y:n,placement:o,rects:r,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=F(a,e),u={x:t,y:n},d=U(o),h=W(d),f=u[h],p=u[d],g=F(l,e),y="number"==typeof g?{mainAxis:g,crossAxis:0}:m({mainAxis:0,crossAxis:0},g);if(s){let e="y"===h?"height":"width",t=r.reference[h]-r.floating[e]+y.mainAxis,n=r.reference[h]+r.reference[e]-y.mainAxis;f<t?f=t:f>n&&(f=n)}if(c){var b,v;let e="y"===h?"width":"height",t=["top","left"].includes(N(o)),n=r.reference[d]-r.floating[e]+(t&&(null==(b=i.offset)?void 0:b[d])||0)+(t?0:y.crossAxis),l=r.reference[d]+r.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?y.crossAxis:0);p<n?p=n:p>l&&(p=l)}return{[h]:f,[d]:p}}}),crossAxis:!0},async fn(e){let{x:t,y:n,placement:o}=e,r=F(c,e),{mainAxis:i=!0,crossAxis:l=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}}}=r,a=g(r,ee),u={x:t,y:n},d=await eo(e,a),h=U(N(o)),f=W(h),p=u[f],y=u[h];if(i){let e="y"===f?"top":"left",t="y"===f?"bottom":"right",n=p+d[e],o=p-d[t];p=R(n,I(p,o))}if(l){let e="y"===h?"top":"left",t="y"===h?"bottom":"right",n=y+d[e],o=y-d[t];y=R(n,I(y,o))}let b=s.fn(m({},e,{[f]:p,[h]:y}));return m({},b,{data:{x:b.x-t,y:b.y-n}})}}),d){let e="object"==typeof t.options.arrow?t.options.arrow:{padding:4};u.middleware.push(eq({element:d,padding:p?e.padding:0}))}f||(u.placement=e.on)}return T(u,t.options.floatingUIOptions||{})}(t,e),r=A(t);r&&(n=document.body,e.shepherdElementComponent.getElement().classList.add("shepherd-centered")),e.cleanup=function(e,t,n,o){let r;void 0===o&&(o={});let{ancestorScroll:i=!0,ancestorResize:l=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:a="function"==typeof IntersectionObserver,animationFrame:c=!1}=o,u=eS(e),d=i||l?[...u?ex(u):[],...ex(t)]:[];d.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),l&&e.addEventListener("resize",n)});let h=u&&a?function(e,t){let n,o=null,r=es(e);function i(){var e;clearTimeout(n),null==(e=o)||e.disconnect(),o=null}return function l(s,a){void 0===s&&(s=!1),void 0===a&&(a=1),i();let{left:c,top:u,width:d,height:h}=e.getBoundingClientRect();if(s||t(),!d||!h)return;let f=B(u),p=B(r.clientWidth-(c+d)),g={rootMargin:-f+"px "+-p+"px "+-B(r.clientHeight-(u+h))+"px "+-B(c)+"px",threshold:R(0,I(1,a))||1},y=!0;function b(e){let t=e[0].intersectionRatio;if(t!==a){if(!y)return l();t?l(!1,t):n=setTimeout(()=>{l(!1,1e-7)},1e3)}y=!1}try{o=new IntersectionObserver(b,m({},g,{root:r.ownerDocument}))}catch(e){o=new IntersectionObserver(b,g)}o.observe(e)}(!0),i}(u,n):null,f=-1,p=null;s&&(p=new ResizeObserver(e=>{let[o]=e;o&&o.target===u&&p&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;null==(e=p)||e.observe(t)})),n()}),u&&!c&&p.observe(u),p.observe(t));let g=c?e_(e):null;return c&&function t(){let o=e_(e);g&&(o.x!==g.x||o.y!==g.y||o.width!==g.width||o.height!==g.height)&&n(),g=o,r=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{i&&e.removeEventListener("scroll",n),l&&e.removeEventListener("resize",n)}),null==h||h(),null==(e=p)||e.disconnect(),p=null,c&&cancelAnimationFrame(r)}}(n,e.el,()=>{if(!e.el){null==e.cleanup||e.cleanup();return}(function(e,t,n,o){eB(e,t.el,n).then(({x:e,y:n,placement:r,middlewareData:i})=>(t.el&&(o?Object.assign(t.el.style,{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"}):Object.assign(t.el.style,{position:"absolute",left:`${e}px`,top:`${n}px`}),t.el.dataset.popperPlacement=r,function(e,t){let n=e.querySelector(".shepherd-arrow");if(u(n)&&t.arrow){let{x:e,y:o}=t.arrow;Object.assign(n.style,{left:null!=e?`${e}px`:"",top:null!=o?`${o}px`:""})}}(t.el,i)),t)).then(e=>new Promise(t=>{setTimeout(()=>t(e),300)})).then(e=>{null!=e&&e.el&&e.el.focus({preventScroll:!0})})})(n,e,o,r)}),e.target=t.element}(this)}_show(){var e;this.trigger("before-show"),this._resolveAttachToOptions(),this._resolveExtraHiglightElements(),this._setupElements(),this.tour.modal||this.tour.setupModal(),null==(e=this.tour.modal)||e.setupForStep(this),this._styleTargetElementForStep(this),this.el&&(this.el.hidden=!1),this.options.scrollTo&&setTimeout(()=>{this._scrollTo(this.options.scrollTo)}),this.el&&(this.el.hidden=!1);let t=this.shepherdElementComponent.getElement(),n=this.target||document.body,o=this._resolvedExtraHighlightElements;n.classList.add(`${this.classPrefix}shepherd-enabled`),n.classList.add(`${this.classPrefix}shepherd-target`),t.classList.add("shepherd-enabled"),null==o||o.forEach(e=>{e.classList.add(`${this.classPrefix}shepherd-enabled`),e.classList.add(`${this.classPrefix}shepherd-target`)}),this.trigger("show")}_styleTargetElementForStep(e){let t=e.target,n=e._resolvedExtraHighlightElements;if(!t)return;let o=e.options.highlightClass;o&&(t.classList.add(o),null==n||n.forEach(e=>e.classList.add(o))),t.classList.remove("shepherd-target-click-disabled"),null==n||n.forEach(e=>e.classList.remove("shepherd-target-click-disabled")),!1===e.options.canClickTarget&&(t.classList.add("shepherd-target-click-disabled"),null==n||n.forEach(e=>e.classList.add("shepherd-target-click-disabled")))}_updateStepTargetOnHide(){let e=this.target||document.body,t=this._resolvedExtraHighlightElements,n=this.options.highlightClass;n&&(e.classList.remove(n),null==t||t.forEach(e=>e.classList.remove(n))),e.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`),null==t||t.forEach(e=>{e.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`)})}}function tJ(e){let t,n,o,r,i;return{c(){t=eG("svg"),eZ(n=eG("path"),"d",e[2]),eZ(t,"class",o=`${e[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)},m(o,l){ez(o,t,l),eW(t,n),e[11](t),r||(i=eX(t,"touchmove",e[3]),r=!0)},p(e,[r]){4&r&&eZ(n,"d",e[2]),2&r&&o!==(o=`${e[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)&&eZ(t,"class",o)},i:eH,o:eH,d(n){n&&eU(t),e[11](null),r=!1,i()}}}function tX(e,t,n){let o,r,{element:i,openingProperties:l}=t,s=!1;function a(){n(4,l=[{width:0,height:0,x:0,y:0,r:0}])}function c(){n(1,s=!1),f()}function u(e=0,t=0,o=0,r=0,i,s,c){if(s){let a=[s,...c||[]];for(let s of(n(4,l=[]),a)){if(!s||a.indexOf(s)!==a.lastIndexOf(s))continue;let{y:n,height:c}=function(e,t){let n=e.getBoundingClientRect(),o=n.y||n.top,r=n.bottom||o+n.height;if(t){let e=t.getBoundingClientRect(),n=e.y||e.top,i=e.bottom||n+e.height;o=Math.max(o,n),r=Math.min(r,i)}let i=Math.max(r-o,0);return{y:o,height:i}}(s,i),{x:u,width:d,left:h}=s.getBoundingClientRect();a.some(e=>{if(e===s)return!1;let t=e.getBoundingClientRect();return u>=t.left&&u+d<=t.right&&n>=t.top&&n+c<=t.bottom})||l.push({width:d+2*e,height:c+2*e,x:(u||h)+o-e,y:n+r-e,r:t})}}else a()}function d(){n(1,s=!0)}a();let h=e=>{e.preventDefault()};function f(){o&&(cancelAnimationFrame(o),o=void 0),window.removeEventListener("touchmove",h,{passive:!1})}return e.$$set=e=>{"element"in e&&n(0,i=e.element),"openingProperties"in e&&n(4,l=e.openingProperties)},e.$$.update=()=>{16&e.$$.dirty&&n(2,r=function(e){let t="",{innerWidth:n,innerHeight:o}=window;return e.forEach(e=>{let{width:n,height:o,x:r=0,y:i=0,r:l=0}=e,{topLeft:s=0,topRight:a=0,bottomRight:c=0,bottomLeft:u=0}="number"==typeof l?{topLeft:l,topRight:l,bottomRight:l,bottomLeft:l}:l;t+=`M${r+s},${i}\
|
|
20
|
+
*/Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return h}});let o=n(10260)._(n(67294)),r=n(16725),i=[],l=[],s=!1;function a(e){let t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(e=>(n.loading=!1,n.loaded=e,e)).catch(e=>{throw n.loading=!1,n.error=e,e}),n}class c{promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}}function u(e){return function(e,t){let n=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),i=null;function a(){if(!i){let t=new c(e,n);i={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return i.promise()}if(!s){let e=n.webpack?n.webpack():n.modules;e&&l.push(t=>{for(let n of e)if(t.includes(n))return a()})}function u(e,t){!function(){a();let e=o.default.useContext(r.LoadableContext);e&&Array.isArray(n.modules)&&n.modules.forEach(t=>{e(t)})}();let l=o.default.useSyncExternalStore(i.subscribe,i.getCurrentValue,i.getCurrentValue);return o.default.useImperativeHandle(t,()=>({retry:i.retry}),[]),o.default.useMemo(()=>{var t;return l.loading||l.error?o.default.createElement(n.loading,{isLoading:l.loading,pastDelay:l.pastDelay,timedOut:l.timedOut,error:l.error,retry:i.retry}):l.loaded?o.default.createElement((t=l.loaded)&&t.default?t.default:t,e):null},[e,l])}return u.preload=()=>a(),u.displayName="LoadableComponent",o.default.forwardRef(u)}(a,e)}function d(e,t){let n=[];for(;e.length;){let o=e.pop();n.push(o(t))}return Promise.all(n).then(()=>{if(e.length)return d(e,t)})}u.preloadAll=()=>new Promise((e,t)=>{d(i).then(e,t)}),u.preloadReady=e=>(void 0===e&&(e=[]),new Promise(t=>{let n=()=>(s=!0,t());d(l,e).then(n,n)})),window.__NEXT_PRELOADREADY=u.preloadReady;let h=u},93225:function(e,t,n){"use strict";n.d(t,{$m:function(){return a},Bo:function(){return l},GW:function(){return r},Z2:function(){return c},f4:function(){return o},iW:function(){return s},mF:function(){return i}}),n(83454);let o=function(){{let e=window.location.pathname,t=e.indexOf("/dashboard");if(-1!==t){let n=e.substring(0,t);return"".concat(n,"/internal/dashboard")}return"/internal/dashboard"}}(),r=function(){{let e=window.location.pathname,t=e.indexOf("/dashboard");return -1!==t?e.substring(0,t+10):"/dashboard"}}();"/api/v1".replace(/^http/,"ws");let i="ClusterDoesNotExist",l="NotSupportedError",s="ClusterNotUpError",a=["AWS","Azure","GCP","IBM","Lambda","SCP","OCI","RunPod","VAST","vSphere","Cudo","FluidStack","Paperspace","DO","Nebius"],c=Object.fromEntries([...a.map(e=>[e.toLowerCase(),e]),["kubernetes","Kubernetes"],["ssh","SSH Node Pool"]])},6556:function(e,t,n){"use strict";n.d(t,{n:function(){return l}});var o=n(67294);let r="skypilot-dashboard-first-visit",i="skypilot-dashboard-tour-completed";function l(){let[e,t]=(0,o.useState)(!1),[n,l]=(0,o.useState)(!1),[s,a]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{a(!0);let e=localStorage.getItem(r),n=localStorage.getItem(i);e||(t(!0),localStorage.setItem(r,"true")),n&&l(!0)},[]),{isFirstVisit:!!s&&e,tourCompleted:!!s&&n,shouldShowTourPrompt:s&&e&&!n,shouldPulseHelpButton:s&&e&&!n,markTourCompleted:()=>{localStorage.setItem(i,"true"),l(!0)},resetFirstVisit:()=>{localStorage.removeItem(r),localStorage.removeItem(i),t(!0),l(!1)},isClient:s}}},94849:function(e,t,n){"use strict";let o,r;n.d(t,{C:function(){return t5},r:function(){return t3}});var i,l,s=n(85893),a=n(67294),c=n(11163);function u(e){return e instanceof HTMLElement}function d(e){return"function"==typeof e}function h(e){return"string"==typeof e}function f(e){return void 0===e}class p{on(e,t,n,o=!1){var r;return f(this.bindings)&&(this.bindings={}),f(this.bindings[e])&&(this.bindings[e]=[]),null==(r=this.bindings[e])||r.push({handler:t,ctx:n,once:o}),this}once(e,t,n){return this.on(e,t,n,!0)}off(e,t){if(f(this.bindings)||f(this.bindings[e]))return this;if(f(t))delete this.bindings[e];else{var n;null==(n=this.bindings[e])||n.forEach((n,o)=>{if(n.handler===t){var r;null==(r=this.bindings[e])||r.splice(o,1)}})}return this}trigger(e,...t){if(!f(this.bindings)&&this.bindings[e]){var n;null==(n=this.bindings[e])||n.forEach((n,o)=>{let{ctx:r,handler:i,once:l}=n;if(i.apply(r||this,t),l){var s;null==(s=this.bindings[e])||s.splice(o,1)}})}return this}}function m(){return(m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(null,arguments)}function g(e,t){if(null==e)return{};var n={};for(var o in e)if(({}).hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}let y={defaultMerge:Symbol("deepmerge-ts: default merge"),skip:Symbol("deepmerge-ts: skip")};function b(e,t){return t}function v(e,t){return e.filter(e=>void 0!==e)}function x(e){return"object"!=typeof e||null===e?0:Array.isArray(e)?2:!function(e){if(!E.has(Object.prototype.toString.call(e)))return!1;let{constructor:t}=e;if(void 0===t)return!0;let n=t.prototype;return!!(null!==n&&"object"==typeof n&&E.has(Object.prototype.toString.call(n))&&n.hasOwnProperty("isPrototypeOf"))}(e)?e instanceof Set?3:e instanceof Map?4:5:1}function w(e){return{*[Symbol.iterator](){for(let t of e)for(let e of t)yield e}}}y.defaultMerge,(i=l||(l={}))[i.NOT=0]="NOT",i[i.RECORD=1]="RECORD",i[i.ARRAY=2]="ARRAY",i[i.SET=3]="SET",i[i.MAP=4]="MAP",i[i.OTHER=5]="OTHER";let E=new Set(["[object Object]","[object Module]"]),S={mergeRecords:function(e,t,n){let o={};for(let r of function(e){let t=new Set;for(let n of e)for(let e of[...Object.keys(n),...Object.getOwnPropertySymbols(n)])t.add(e);return t}(e)){let i=[];for(let t of e)"object"==typeof t&&Object.prototype.propertyIsEnumerable.call(t,r)&&i.push(t[r]);if(0===i.length)continue;let l=t.metaDataUpdater(n,{key:r,parents:e}),s=$(i,t,l);s!==y.skip&&("__proto__"===r?Object.defineProperty(o,r,{value:s,configurable:!0,enumerable:!0,writable:!0}):o[r]=s)}return o},mergeArrays:function(e){return e.flat()},mergeSets:function(e){return new Set(w(e))},mergeMaps:function(e){return new Map(w(e))},mergeOthers:function(e){return e.at(-1)}};function T(...e){return(function(e,t){var n,o,r;let i={defaultMergeFunctions:S,mergeFunctions:m({},S,Object.fromEntries(Object.entries(e).filter(([e,t])=>Object.hasOwn(S,e)).map(([e,t])=>!1===t?[e,S.mergeOthers]:[e,t]))),metaDataUpdater:null!=(n=e.metaDataUpdater)?n:b,deepmerge:l,useImplicitDefaultMerging:null!=(o=e.enableImplicitDefaultMerging)&&o,filterValues:!1===e.filterValues?void 0:null!=(r=e.filterValues)?r:v,actions:y};function l(...e){return $(e,i,void 0)}return l})({})(...e)}function $(e,t,n){var o;let r=null!=(o=null==t.filterValues?void 0:t.filterValues(e,n))?o:e;if(0===r.length)return;if(1===r.length)return k(r,t,n);let i=x(r[0]);if(0!==i&&5!==i){for(let e=1;e<r.length;e++)if(x(r[e])!==i)return k(r,t,n)}switch(i){case 1:return function(e,t,n){let o=t.mergeFunctions.mergeRecords(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeRecords!==t.defaultMergeFunctions.mergeRecords?t.defaultMergeFunctions.mergeRecords(e,t,n):o}(r,t,n);case 2:return function(e,t,n){let o=t.mergeFunctions.mergeArrays(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeArrays!==t.defaultMergeFunctions.mergeArrays?t.defaultMergeFunctions.mergeArrays(e):o}(r,t,n);case 3:return function(e,t,n){let o=t.mergeFunctions.mergeSets(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeSets!==t.defaultMergeFunctions.mergeSets?t.defaultMergeFunctions.mergeSets(e):o}(r,t,n);case 4:return function(e,t,n){let o=t.mergeFunctions.mergeMaps(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeMaps!==t.defaultMergeFunctions.mergeMaps?t.defaultMergeFunctions.mergeMaps(e):o}(r,t,n);default:return k(r,t,n)}}function k(e,t,n){let o=t.mergeFunctions.mergeOthers(e,t,n);return o===y.defaultMerge||t.useImplicitDefaultMerging&&void 0===o&&t.mergeFunctions.mergeOthers!==t.defaultMergeFunctions.mergeOthers?t.defaultMergeFunctions.mergeOthers(e):o}function _(e){let t=Object.getOwnPropertyNames(e.constructor.prototype);for(let n=0;n<t.length;n++){let o=t[n],r=e[o];"constructor"!==o&&"function"==typeof r&&(e[o]=r.bind(e))}return e}class C{constructor(e){}}class O{constructor(e,t){}}function P(e){return h(e)&&""!==e?"-"!==e.charAt(e.length-1)?`${e}-`:e:""}function A(e){return null==e||!e.element||!e.on}function L(){let e=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)})}let M=["top","right","bottom","left"].reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]),I=Math.min,R=Math.max,q=Math.round,B=Math.floor,H=e=>({x:e,y:e}),j={left:"right",right:"left",bottom:"top",top:"bottom"},D={start:"end",end:"start"};function F(e,t){return"function"==typeof e?e(t):e}function N(e){return e.split("-")[0]}function V(e){return e.split("-")[1]}function W(e){return"x"===e?"y":"x"}function z(e){return"y"===e?"height":"width"}function U(e){return["top","bottom"].includes(N(e))?"y":"x"}function Y(e,t,n){void 0===n&&(n=!1);let o=V(e),r=W(U(e)),i=z(r),l="x"===r?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return t.reference[i]>t.floating[i]&&(l=K(l)),[l,K(l)]}function G(e){return e.replace(/start|end/g,e=>D[e])}function K(e){return e.replace(/left|right|bottom|top/g,e=>j[e])}function J(e){return"number"!=typeof e?m({top:0,right:0,bottom:0,left:0},e):{top:e,right:e,bottom:e,left:e}}function X(e){let{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}let Z=["crossAxis","alignment","allowedPlacements","autoAlignment"],Q=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],ee=["mainAxis","crossAxis","limiter"];function et(e,t,n){let o,{reference:r,floating:i}=e,l=U(t),s=W(U(t)),a=z(s),c=N(t),u="y"===l,d=r.x+r.width/2-i.width/2,h=r.y+r.height/2-i.height/2,f=r[a]/2-i[a]/2;switch(c){case"top":o={x:d,y:r.y-i.height};break;case"bottom":o={x:d,y:r.y+r.height};break;case"right":o={x:r.x+r.width,y:h};break;case"left":o={x:r.x-i.width,y:h};break;default:o={x:r.x,y:r.y}}switch(V(t)){case"start":o[s]-=f*(n&&u?-1:1);break;case"end":o[s]+=f*(n&&u?-1:1)}return o}let en=async(e,t,n)=>{let{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:l}=n,s=i.filter(Boolean),a=await (null==l.isRTL?void 0:l.isRTL(t)),c=await l.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=et(c,o,a),h=o,f={},p=0;for(let n=0;n<s.length;n++){let{name:i,fn:g}=s[n],{x:y,y:b,data:v,reset:x}=await g({x:u,y:d,initialPlacement:o,placement:h,strategy:r,middlewareData:f,rects:c,platform:l,elements:{reference:e,floating:t}});u=null!=y?y:u,d=null!=b?b:d,f=m({},f,{[i]:m({},f[i],v)}),x&&p<=50&&(p++,"object"==typeof x&&(x.placement&&(h=x.placement),x.rects&&(c=!0===x.rects?await l.getElementRects({reference:e,floating:t,strategy:r}):x.rects),{x:u,y:d}=et(c,h,a)),n=-1)}return{x:u,y:d,placement:h,strategy:r,middlewareData:f}};async function eo(e,t){var n;void 0===t&&(t={});let{x:o,y:r,platform:i,rects:l,elements:s,strategy:a}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:h=!1,padding:f=0}=F(t,e),p=J(f),m=s[h?"floating"===d?"reference":"floating":d],g=X(await i.getClippingRect({element:null==(n=await (null==i.isElement?void 0:i.isElement(m)))||n?m:m.contextElement||await (null==i.getDocumentElement?void 0:i.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:a})),y="floating"===d?{x:o,y:r,width:l.floating.width,height:l.floating.height}:l.reference,b=await (null==i.getOffsetParent?void 0:i.getOffsetParent(s.floating)),v=await (null==i.isElement?void 0:i.isElement(b))&&await (null==i.getScale?void 0:i.getScale(b))||{x:1,y:1},x=X(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:y,offsetParent:b,strategy:a}):y);return{top:(g.top-x.top+p.top)/v.y,bottom:(x.bottom-g.bottom+p.bottom)/v.y,left:(g.left-x.left+p.left)/v.x,right:(x.right-g.right+p.right)/v.x}}function er(){return"undefined"!=typeof window}function ei(e){return ea(e)?(e.nodeName||"").toLowerCase():"#document"}function el(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function es(e){var t;return null==(t=(ea(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ea(e){return!!er()&&(e instanceof Node||e instanceof el(e).Node)}function ec(e){return!!er()&&(e instanceof Element||e instanceof el(e).Element)}function eu(e){return!!er()&&(e instanceof HTMLElement||e instanceof el(e).HTMLElement)}function ed(e){return!!er()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof el(e).ShadowRoot)}function eh(e){let{overflow:t,overflowX:n,overflowY:o,display:r}=ey(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}function ef(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch(e){return!1}})}function ep(e){let t=em(),n=ec(e)?ey(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some(e=>(n.willChange||"").includes(e))||["paint","layout","strict","content"].some(e=>(n.contain||"").includes(e))}function em(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function eg(e){return["html","body","#document"].includes(ei(e))}function ey(e){return el(e).getComputedStyle(e)}function eb(e){return ec(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ev(e){if("html"===ei(e))return e;let t=e.assignedSlot||e.parentNode||ed(e)&&e.host||es(e);return ed(t)?t.host:t}function ex(e,t,n){var o;void 0===t&&(t=[]),void 0===n&&(n=!0);let r=function e(t){let n=ev(t);return eg(n)?t.ownerDocument?t.ownerDocument.body:t.body:eu(n)&&eh(n)?n:e(n)}(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),l=el(r);if(i){let e=ew(l);return t.concat(l,l.visualViewport||[],eh(r)?r:[],e&&n?ex(e):[])}return t.concat(r,ex(r,[],n))}function ew(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eE(e){let t=ey(e),n=parseFloat(t.width)||0,o=parseFloat(t.height)||0,r=eu(e),i=r?e.offsetWidth:n,l=r?e.offsetHeight:o,s=q(n)!==i||q(o)!==l;return s&&(n=i,o=l),{width:n,height:o,$:s}}function eS(e){return ec(e)?e:e.contextElement}function eT(e){let t=eS(e);if(!eu(t))return H(1);let n=t.getBoundingClientRect(),{width:o,height:r,$:i}=eE(t),l=(i?q(n.width):n.width)/o,s=(i?q(n.height):n.height)/r;return l&&Number.isFinite(l)||(l=1),s&&Number.isFinite(s)||(s=1),{x:l,y:s}}let e$=H(0);function ek(e){let t=el(e);return em()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:e$}function e_(e,t,n,o){var r;void 0===t&&(t=!1),void 0===n&&(n=!1);let i=e.getBoundingClientRect(),l=eS(e),s=H(1);t&&(o?ec(o)&&(s=eT(o)):s=eT(e));let a=(void 0===(r=n)&&(r=!1),o&&(!r||o===el(l))&&r)?ek(l):H(0),c=(i.left+a.x)/s.x,u=(i.top+a.y)/s.y,d=i.width/s.x,h=i.height/s.y;if(l){let e=el(l),t=o&&ec(o)?el(o):o,n=e,r=ew(n);for(;r&&o&&t!==n;){let e=eT(r),t=r.getBoundingClientRect(),o=ey(r),i=t.left+(r.clientLeft+parseFloat(o.paddingLeft))*e.x,l=t.top+(r.clientTop+parseFloat(o.paddingTop))*e.y;c*=e.x,u*=e.y,d*=e.x,h*=e.y,c+=i,u+=l,r=ew(n=el(r))}}return X({width:d,height:h,x:c,y:u})}function eC(e,t){let n=eb(e).scrollLeft;return t?t.left+n:e_(es(e)).left+n}function eO(e,t,n){void 0===n&&(n=!1);let o=e.getBoundingClientRect();return{x:o.left+t.scrollLeft-(n?0:eC(e,o)),y:o.top+t.scrollTop}}function eP(e,t,n){let o;if("viewport"===t)o=function(e,t){let n=el(e),o=es(e),r=n.visualViewport,i=o.clientWidth,l=o.clientHeight,s=0,a=0;if(r){i=r.width,l=r.height;let e=em();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,a=r.offsetTop)}return{width:i,height:l,x:s,y:a}}(e,n);else if("document"===t)o=function(e){let t=es(e),n=eb(e),o=e.ownerDocument.body,r=R(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=R(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight),l=-n.scrollLeft+eC(e),s=-n.scrollTop;return"rtl"===ey(o).direction&&(l+=R(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:l,y:s}}(es(e));else if(ec(t))o=function(e,t){let n=e_(e,!0,"fixed"===t),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=eu(e)?eT(e):H(1),l=e.clientWidth*i.x;return{width:l,height:e.clientHeight*i.y,x:r*i.x,y:o*i.y}}(t,n);else{let n=ek(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return X(o)}function eA(e){return"static"===ey(e).position}function eL(e,t){if(!eu(e)||"fixed"===ey(e).position)return null;if(t)return t(e);let n=e.offsetParent;return es(e)===n&&(n=n.ownerDocument.body),n}function eM(e,t){let n=el(e);if(ef(e))return n;if(!eu(e)){let t=ev(e);for(;t&&!eg(t);){if(ec(t)&&!eA(t))return t;t=ev(t)}return n}let o=eL(e,t);for(;o&&["table","td","th"].includes(ei(o))&&eA(o);)o=eL(o,t);return o&&eg(o)&&eA(o)&&!ep(o)?n:o||function(e){let t=ev(e);for(;eu(t)&&!eg(t);){if(ep(t))return t;if(ef(t))break;t=ev(t)}return null}(e)||n}let eI=async function(e){let t=this.getOffsetParent||eM,n=this.getDimensions,o=await n(e.floating);return{reference:function(e,t,n){let o=eu(t),r=es(t),i="fixed"===n,l=e_(e,!0,i,t),s={scrollLeft:0,scrollTop:0},a=H(0);if(o||!o&&!i){if(("body"!==ei(t)||eh(r))&&(s=eb(t)),o){let e=e_(t,!0,i,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else r&&(a.x=eC(r))}let c=!r||o||i?H(0):eO(r,s);return{x:l.left+s.scrollLeft-a.x-c.x,y:l.top+s.scrollTop-a.y-c.y,width:l.width,height:l.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}},eR={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e,i="fixed"===r,l=es(o),s=!!t&&ef(t.floating);if(o===l||s&&i)return n;let a={scrollLeft:0,scrollTop:0},c=H(1),u=H(0),d=eu(o);if((d||!d&&!i)&&(("body"!==ei(o)||eh(l))&&(a=eb(o)),eu(o))){let e=e_(o);c=eT(o),u.x=e.x+o.clientLeft,u.y=e.y+o.clientTop}let h=!l||d||i?H(0):eO(l,a,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+u.x+h.x,y:n.y*c.y-a.scrollTop*c.y+u.y+h.y}},getDocumentElement:es,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e,i=[..."clippingAncestors"===n?ef(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let o=ex(e,[],!1).filter(e=>ec(e)&&"body"!==ei(e)),r=null,i="fixed"===ey(e).position,l=i?ev(e):e;for(;ec(l)&&!eg(l);){let t=ey(l),n=ep(l);n||"fixed"!==t.position||(r=null),(i?!n&&!r:!n&&"static"===t.position&&!!r&&["absolute","fixed"].includes(r.position)||eh(l)&&!n&&function e(t,n){let o=ev(t);return!(o===n||!ec(o)||eg(o))&&("fixed"===ey(o).position||e(o,n))}(e,l))?o=o.filter(e=>e!==l):r=t,l=ev(l)}return t.set(e,o),o}(t,this._c):[].concat(n),o],l=i[0],s=i.reduce((e,n)=>{let o=eP(t,n,r);return e.top=R(o.top,e.top),e.right=I(o.right,e.right),e.bottom=I(o.bottom,e.bottom),e.left=R(o.left,e.left),e},eP(t,l,r));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:eM,getElementRects:eI,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=eE(e);return{width:t,height:n}},getScale:eT,isElement:ec,isRTL:function(e){return"rtl"===ey(e).direction}},eq=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:o,placement:r,rects:i,platform:l,elements:s,middlewareData:a}=t,{element:c,padding:u=0}=F(e,t)||{};if(null==c)return{};let d=J(u),h={x:n,y:o},f=W(U(r)),p=z(f),g=await l.getDimensions(c),y="y"===f,b=y?"clientHeight":"clientWidth",v=i.reference[p]+i.reference[f]-h[f]-i.floating[p],x=h[f]-i.reference[f],w=await (null==l.getOffsetParent?void 0:l.getOffsetParent(c)),E=w?w[b]:0;E&&await (null==l.isElement?void 0:l.isElement(w))||(E=s.floating[b]||i.floating[p]);let S=E/2-g[p]/2-1,T=I(d[y?"top":"left"],S),$=I(d[y?"bottom":"right"],S),k=E-g[p]-$,_=E/2-g[p]/2+(v/2-x/2),C=R(T,I(_,k)),O=!a.arrow&&null!=V(r)&&_!==C&&i.reference[p]/2-(_<T?T:$)-g[p]/2<0,P=O?_<T?_-T:_-k:0;return{[f]:h[f]+P,data:m({[f]:C,centerOffset:_-C-P},O&&{alignmentOffset:P}),reset:O}}}),eB=(e,t,n)=>{let o=new Map,r=m({platform:eR},n),i=m({},r.platform,{_c:o});return en(e,t,m({},r,{platform:i}))};function eH(){}function ej(e){return e()}function eD(){return Object.create(null)}function eF(e){e.forEach(ej)}function eN(e){return"function"==typeof e}function eV(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function eW(e,t){e.appendChild(t)}function ez(e,t,n){e.insertBefore(t,n||null)}function eU(e){e.parentNode&&e.parentNode.removeChild(e)}function eY(e){return document.createElement(e)}function eG(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function eK(e){return document.createTextNode(e)}function eJ(){return eK(" ")}function eX(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function eZ(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}let eQ=["width","height"];function e0(e,t){let n=Object.getOwnPropertyDescriptors(e.__proto__);for(let o in t)null==t[o]?e.removeAttribute(o):"style"===o?e.style.cssText=t[o]:"__value"===o?e.value=e[o]=t[o]:n[o]&&n[o].set&&-1===eQ.indexOf(o)?e[o]=t[o]:eZ(e,o,t[o])}function e1(e,t,n){e.classList.toggle(t,!!n)}function e2(){if(!o)throw Error("Function called outside component initialization");return o}function e4(e){e2().$$.after_update.push(e)}let e6=[],e3=[],e5=[],e9=[],e8=Promise.resolve(),e7=!1;function te(e){e5.push(e)}let tt=new Set,tn=0;function to(){if(0!==tn)return;let e=o;do{try{for(;tn<e6.length;){let e=e6[tn];tn++,o=e,function(e){if(null!==e.fragment){e.update(),eF(e.before_update);let t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(te)}}(e.$$)}}catch(e){throw e6.length=0,tn=0,e}for(o=null,e6.length=0,tn=0;e3.length;)e3.pop()();for(let e=0;e<e5.length;e+=1){let t=e5[e];tt.has(t)||(tt.add(t),t())}e5.length=0}while(e6.length);for(;e9.length;)e9.pop()();e7=!1,tt.clear(),o=e}let tr=new Set;function ti(){r={r:0,c:[],p:r}}function tl(){r.r||eF(r.c),r=r.p}function ts(e,t){e&&e.i&&(tr.delete(e),e.i(t))}function ta(e,t,n,o){e&&e.o?tr.has(e)||(tr.add(e),r.c.push(()=>{tr.delete(e),o&&(n&&e.d(1),o())}),e.o(t)):o&&o()}function tc(e){return(null==e?void 0:e.length)!==void 0?e:Array.from(e)}function tu(e){e&&e.c()}function td(e,t,n){let{fragment:o,after_update:r}=e.$$;o&&o.m(t,n),te(()=>{let t=e.$$.on_mount.map(ej).filter(eN);e.$$.on_destroy?e.$$.on_destroy.push(...t):eF(t),e.$$.on_mount=[]}),r.forEach(te)}function th(e,t){let n=e.$$;null!==n.fragment&&(!function(e){let t=[],n=[];e5.forEach(o=>-1===e.indexOf(o)?t.push(o):n.push(o)),n.forEach(e=>e()),e5=t}(n.after_update),eF(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function tf(e,t,n,r,i,l,s=null,a=[-1]){let c=o;o=e;let u=e.$$={fragment:null,ctx:[],props:l,update:eH,not_equal:i,bound:eD(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(c?c.$$.context:[])),callbacks:eD(),dirty:a,skip_bound:!1,root:t.target||c.$$.root};s&&s(u.root);let d=!1;if(u.ctx=n?n(e,t.props||{},(t,n,...o)=>{let r=o.length?o[0]:n;return u.ctx&&i(u.ctx[t],u.ctx[t]=r)&&(!u.skip_bound&&u.bound[t]&&u.bound[t](r),d)&&(-1===e.$$.dirty[0]&&(e6.push(e),e7||(e7=!0,e8.then(to)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31),n}):[],u.update(),d=!0,eF(u.before_update),u.fragment=!!r&&r(u.ctx),t.target){if(t.hydrate){let e=Array.from(t.target.childNodes);u.fragment&&u.fragment.l(e),e.forEach(eU)}else u.fragment&&u.fragment.c();t.intro&&ts(e.$$.fragment),td(e,t.target,t.anchor),to()}o=c}class tp{constructor(){this.$$=void 0,this.$$set=void 0}$destroy(){th(this,1),this.$destroy=eH}$on(e,t){if(!eN(t))return eH;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&0!==Object.keys(e).length&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function tm(e){let t,n,o,r,i;return{c(){eZ(t=eY("button"),"aria-label",n=e[3]?e[3]:null),eZ(t,"class",o=`${e[1]||""} shepherd-button ${e[4]?"shepherd-button-secondary":""}`),t.disabled=e[2],eZ(t,"tabindex","0"),eZ(t,"type","button")},m(n,o){ez(n,t,o),t.innerHTML=e[5],r||(i=eX(t,"click",function(){eN(e[0])&&e[0].apply(this,arguments)}),r=!0)},p(r,[i]){e=r,32&i&&(t.innerHTML=e[5]),8&i&&n!==(n=e[3]?e[3]:null)&&eZ(t,"aria-label",n),18&i&&o!==(o=`${e[1]||""} shepherd-button ${e[4]?"shepherd-button-secondary":""}`)&&eZ(t,"class",o),4&i&&(t.disabled=e[2])},i:eH,o:eH,d(e){e&&eU(t),r=!1,i()}}}function tg(e,t,n){let o,r,i,l,s,a,{config:c,step:u}=t;function h(e){return d(e)?e=e.call(u):e}return e.$$set=e=>{"config"in e&&n(6,c=e.config),"step"in e&&n(7,u=e.step)},e.$$.update=()=>{192&e.$$.dirty&&(n(0,o=c.action?c.action.bind(u.tour):null),n(1,r=c.classes),n(2,i=!!c.disabled&&h(c.disabled)),n(3,l=c.label?h(c.label):null),n(4,s=c.secondary),n(5,a=c.text?h(c.text):null))},[o,r,i,l,s,a,c,u]}"undefined"!=typeof window&&(window.__svelte||(window.__svelte={v:new Set})).v.add("4");class ty extends tp{constructor(e){super(),tf(this,e,tg,tm,eV,{config:6,step:7})}}function tb(e,t,n){let o=e.slice();return o[2]=t[n],o}function tv(e){let t,n;let o=tc(e[1]),r=[];for(let t=0;t<o.length;t+=1)r[t]=tx(tb(e,o,t));let i=e=>ta(r[e],1,1,()=>{r[e]=null});return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=eK("")},m(e,o){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,o);ez(e,t,o),n=!0},p(e,n){if(3&n){let l;for(l=0,o=tc(e[1]);l<o.length;l+=1){let i=tb(e,o,l);r[l]?(r[l].p(i,n),ts(r[l],1)):(r[l]=tx(i),r[l].c(),ts(r[l],1),r[l].m(t.parentNode,t))}for(ti(),l=o.length;l<r.length;l+=1)i(l);tl()}},i(e){if(!n){for(let e=0;e<o.length;e+=1)ts(r[e]);n=!0}},o(e){r=r.filter(Boolean);for(let e=0;e<r.length;e+=1)ta(r[e]);n=!1},d(e){e&&eU(t),function(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}(r,e)}}}function tx(e){let t,n;return t=new ty({props:{config:e[2],step:e[0]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};2&n&&(o.config=e[2]),1&n&&(o.step=e[0]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tw(e){let t,n;let o=e[1]&&tv(e);return{c(){t=eY("footer"),o&&o.c(),eZ(t,"class","shepherd-footer")},m(e,r){ez(e,t,r),o&&o.m(t,null),n=!0},p(e,[n]){e[1]?o?(o.p(e,n),2&n&&ts(o,1)):((o=tv(e)).c(),ts(o,1),o.m(t,null)):o&&(ti(),ta(o,1,1,()=>{o=null}),tl())},i(e){n||(ts(o),n=!0)},o(e){ta(o),n=!1},d(e){e&&eU(t),o&&o.d()}}}function tE(e,t,n){let o;let{step:r}=t;return e.$$set=e=>{"step"in e&&n(0,r=e.step)},e.$$.update=()=>{1&e.$$.dirty&&n(1,o=r.options.buttons)},[r,o]}class tS extends tp{constructor(e){super(),tf(this,e,tE,tw,eV,{step:0})}}function tT(e){let t,n,o,r,i;return{c(){t=eY("button"),(n=eY("span")).textContent="\xd7",eZ(n,"aria-hidden","true"),eZ(t,"aria-label",o=e[0].label?e[0].label:"Close Tour"),eZ(t,"class","shepherd-cancel-icon"),eZ(t,"type","button")},m(o,l){ez(o,t,l),eW(t,n),r||(i=eX(t,"click",e[1]),r=!0)},p(e,[n]){1&n&&o!==(o=e[0].label?e[0].label:"Close Tour")&&eZ(t,"aria-label",o)},i:eH,o:eH,d(e){e&&eU(t),r=!1,i()}}}function t$(e,t,n){let{cancelIcon:o,step:r}=t;return e.$$set=e=>{"cancelIcon"in e&&n(0,o=e.cancelIcon),"step"in e&&n(2,r=e.step)},[o,e=>{e.preventDefault(),r.cancel()},r]}class tk extends tp{constructor(e){super(),tf(this,e,t$,tT,eV,{cancelIcon:0,step:2})}}function t_(e){let t;return{c(){eZ(t=eY("h3"),"id",e[1]),eZ(t,"class","shepherd-title")},m(n,o){ez(n,t,o),e[3](t)},p(e,[n]){2&n&&eZ(t,"id",e[1])},i:eH,o:eH,d(n){n&&eU(t),e[3](null)}}}function tC(e,t,n){let{labelId:o,element:r,title:i}=t;return e4(()=>{d(i)&&n(2,i=i()),n(0,r.innerHTML=i,r)}),e.$$set=e=>{"labelId"in e&&n(1,o=e.labelId),"element"in e&&n(0,r=e.element),"title"in e&&n(2,i=e.title)},[r,o,i,function(e){e3[e?"unshift":"push"](()=>{n(0,r=e)})}]}class tO extends tp{constructor(e){super(),tf(this,e,tC,t_,eV,{labelId:1,element:0,title:2})}}function tP(e){let t,n;return t=new tO({props:{labelId:e[0],title:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};1&n&&(o.labelId=e[0]),4&n&&(o.title=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tA(e){let t,n;return t=new tk({props:{cancelIcon:e[3],step:e[1]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};8&n&&(o.cancelIcon=e[3]),2&n&&(o.step=e[1]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tL(e){let t,n,o;let r=e[2]&&tP(e),i=e[3]&&e[3].enabled&&tA(e);return{c(){t=eY("header"),r&&r.c(),n=eJ(),i&&i.c(),eZ(t,"class","shepherd-header")},m(e,l){ez(e,t,l),r&&r.m(t,null),eW(t,n),i&&i.m(t,null),o=!0},p(e,[o]){e[2]?r?(r.p(e,o),4&o&&ts(r,1)):((r=tP(e)).c(),ts(r,1),r.m(t,n)):r&&(ti(),ta(r,1,1,()=>{r=null}),tl()),e[3]&&e[3].enabled?i?(i.p(e,o),8&o&&ts(i,1)):((i=tA(e)).c(),ts(i,1),i.m(t,null)):i&&(ti(),ta(i,1,1,()=>{i=null}),tl())},i(e){o||(ts(r),ts(i),o=!0)},o(e){ta(r),ta(i),o=!1},d(e){e&&eU(t),r&&r.d(),i&&i.d()}}}function tM(e,t,n){let o,r,{labelId:i,step:l}=t;return e.$$set=e=>{"labelId"in e&&n(0,i=e.labelId),"step"in e&&n(1,l=e.step)},e.$$.update=()=>{2&e.$$.dirty&&(n(2,o=l.options.title),n(3,r=l.options.cancelIcon))},[i,l,o,r]}class tI extends tp{constructor(e){super(),tf(this,e,tM,tL,eV,{labelId:0,step:1})}}function tR(e){let t;return{c(){eZ(t=eY("div"),"class","shepherd-text"),eZ(t,"id",e[1])},m(n,o){ez(n,t,o),e[3](t)},p(e,[n]){2&n&&eZ(t,"id",e[1])},i:eH,o:eH,d(n){n&&eU(t),e[3](null)}}}function tq(e,t,n){let{descriptionId:o,element:r,step:i}=t;return e4(()=>{let{text:e}=i.options;d(e)&&(e=e.call(i)),u(e)?r.appendChild(e):n(0,r.innerHTML=e,r)}),e.$$set=e=>{"descriptionId"in e&&n(1,o=e.descriptionId),"element"in e&&n(0,r=e.element),"step"in e&&n(2,i=e.step)},[r,o,i,function(e){e3[e?"unshift":"push"](()=>{n(0,r=e)})}]}class tB extends tp{constructor(e){super(),tf(this,e,tq,tR,eV,{descriptionId:1,element:0,step:2})}}function tH(e){let t,n;return t=new tI({props:{labelId:e[1],step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};2&n&&(o.labelId=e[1]),4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tj(e){let t,n;return t=new tB({props:{descriptionId:e[0],step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};1&n&&(o.descriptionId=e[0]),4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tD(e){let t,n;return t=new tS({props:{step:e[2]}}),{c(){tu(t.$$.fragment)},m(e,o){td(t,e,o),n=!0},p(e,n){let o={};4&n&&(o.step=e[2]),t.$set(o)},i(e){n||(ts(t.$$.fragment,e),n=!0)},o(e){ta(t.$$.fragment,e),n=!1},d(e){th(t,e)}}}function tF(e){let t,n,o,r;let i=!f(e[2].options.title)||e[2].options.cancelIcon&&e[2].options.cancelIcon.enabled,l=!f(e[2].options.text),s=Array.isArray(e[2].options.buttons)&&e[2].options.buttons.length,a=i&&tH(e),c=l&&tj(e),u=s&&tD(e);return{c(){t=eY("div"),a&&a.c(),n=eJ(),c&&c.c(),o=eJ(),u&&u.c(),eZ(t,"class","shepherd-content")},m(e,i){ez(e,t,i),a&&a.m(t,null),eW(t,n),c&&c.m(t,null),eW(t,o),u&&u.m(t,null),r=!0},p(e,[r]){4&r&&(i=!f(e[2].options.title)||e[2].options.cancelIcon&&e[2].options.cancelIcon.enabled),i?a?(a.p(e,r),4&r&&ts(a,1)):((a=tH(e)).c(),ts(a,1),a.m(t,n)):a&&(ti(),ta(a,1,1,()=>{a=null}),tl()),4&r&&(l=!f(e[2].options.text)),l?c?(c.p(e,r),4&r&&ts(c,1)):((c=tj(e)).c(),ts(c,1),c.m(t,o)):c&&(ti(),ta(c,1,1,()=>{c=null}),tl()),4&r&&(s=Array.isArray(e[2].options.buttons)&&e[2].options.buttons.length),s?u?(u.p(e,r),4&r&&ts(u,1)):((u=tD(e)).c(),ts(u,1),u.m(t,null)):u&&(ti(),ta(u,1,1,()=>{u=null}),tl())},i(e){r||(ts(a),ts(c),ts(u),r=!0)},o(e){ta(a),ta(c),ta(u),r=!1},d(e){e&&eU(t),a&&a.d(),c&&c.d(),u&&u.d()}}}function tN(e,t,n){let{descriptionId:o,labelId:r,step:i}=t;return e.$$set=e=>{"descriptionId"in e&&n(0,o=e.descriptionId),"labelId"in e&&n(1,r=e.labelId),"step"in e&&n(2,i=e.step)},[o,r,i]}class tV extends tp{constructor(e){super(),tf(this,e,tN,tF,eV,{descriptionId:0,labelId:1,step:2})}}function tW(e){let t;return{c(){eZ(t=eY("div"),"class","shepherd-arrow"),eZ(t,"data-popper-arrow","")},m(e,n){ez(e,t,n)},d(e){e&&eU(t)}}}function tz(e){let t,n,o,r,i,l,s,a;let c=e[4].options.arrow&&e[4].options.attachTo&&e[4].options.attachTo.element&&e[4].options.attachTo.on&&tW();o=new tV({props:{descriptionId:e[2],labelId:e[3],step:e[4]}});let u=[{"aria-describedby":r=f(e[4].options.text)?null:e[2]},{"aria-labelledby":i=e[4].options.title?e[3]:null},e[1],{open:"true"}],d={};for(let e=0;e<u.length;e+=1)d=function(e,t){for(let n in t)e[n]=t[n];return e}(d,u[e]);return{c(){t=eY("dialog"),c&&c.c(),n=eJ(),tu(o.$$.fragment),e0(t,d),e1(t,"shepherd-has-cancel-icon",e[5]),e1(t,"shepherd-has-title",e[6]),e1(t,"shepherd-element",!0)},m(r,i){ez(r,t,i),c&&c.m(t,null),eW(t,n),td(o,t,null),e[13](t),l=!0,s||(a=eX(t,"keydown",e[7]),s=!0)},p(e,[s]){e[4].options.arrow&&e[4].options.attachTo&&e[4].options.attachTo.element&&e[4].options.attachTo.on?c||((c=tW()).c(),c.m(t,n)):c&&(c.d(1),c=null);let a={};4&s&&(a.descriptionId=e[2]),8&s&&(a.labelId=e[3]),16&s&&(a.step=e[4]),o.$set(a),e0(t,d=function(e,t){let n={},o={},r={$$scope:1},i=e.length;for(;i--;){let l=e[i],s=t[i];if(s){for(let e in l)e in s||(o[e]=1);for(let e in s)r[e]||(n[e]=s[e],r[e]=1);e[i]=s}else for(let e in l)r[e]=1}for(let e in o)e in n||(n[e]=void 0);return n}(u,[(!l||20&s&&r!==(r=f(e[4].options.text)?null:e[2]))&&{"aria-describedby":r},(!l||24&s&&i!==(i=e[4].options.title?e[3]:null))&&{"aria-labelledby":i},2&s&&e[1],{open:"true"}])),e1(t,"shepherd-has-cancel-icon",e[5]),e1(t,"shepherd-has-title",e[6]),e1(t,"shepherd-element",!0)},i(e){l||(ts(o.$$.fragment,e),l=!0)},o(e){ta(o.$$.fragment,e),l=!1},d(n){n&&eU(t),c&&c.d(),th(o),e[13](null),s=!1,a()}}}function tU(e){return e.split(" ").filter(e=>!!e.length)}function tY(e,t,n){var o;let r,i,l,{classPrefix:s,element:a,descriptionId:c,firstFocusableElement:u,focusableElements:d,labelId:f,lastFocusableElement:p,step:m,dataStepId:g}=t;return o=()=>{n(1,g={[`data-${s}shepherd-step-id`]:m.id}),n(9,d=a.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]')),n(8,u=d[0]),n(10,p=d[d.length-1])},e2().$$.on_mount.push(o),e4(()=>{l!==m.options.classes&&(function(e){if(h(e)){let t=tU(e);t.length&&a.classList.remove(...t)}}(l),function(e){if(h(e)){let t=tU(e);t.length&&a.classList.add(...t)}}(l=m.options.classes))}),e.$$set=e=>{"classPrefix"in e&&n(11,s=e.classPrefix),"element"in e&&n(0,a=e.element),"descriptionId"in e&&n(2,c=e.descriptionId),"firstFocusableElement"in e&&n(8,u=e.firstFocusableElement),"focusableElements"in e&&n(9,d=e.focusableElements),"labelId"in e&&n(3,f=e.labelId),"lastFocusableElement"in e&&n(10,p=e.lastFocusableElement),"step"in e&&n(4,m=e.step),"dataStepId"in e&&n(1,g=e.dataStepId)},e.$$.update=()=>{16&e.$$.dirty&&(n(5,r=m.options&&m.options.cancelIcon&&m.options.cancelIcon.enabled),n(6,i=m.options&&m.options.title))},[a,g,c,f,m,r,i,e=>{let{tour:t}=m;switch(e.keyCode){case 9:if(0===d.length){e.preventDefault();break}e.shiftKey?(document.activeElement===u||document.activeElement.classList.contains("shepherd-element"))&&(e.preventDefault(),p.focus()):document.activeElement===p&&(e.preventDefault(),u.focus());break;case 27:t.options.exitOnEsc&&(e.preventDefault(),e.stopPropagation(),m.cancel());break;case 37:t.options.keyboardNavigation&&(e.preventDefault(),e.stopPropagation(),t.back());break;case 39:t.options.keyboardNavigation&&(e.preventDefault(),e.stopPropagation(),t.next())}},u,d,p,s,()=>a,function(e){e3[e?"unshift":"push"](()=>{n(0,a=e)})}]}class tG extends tp{constructor(e){super(),tf(this,e,tY,tz,eV,{classPrefix:11,element:0,descriptionId:2,firstFocusableElement:8,focusableElements:9,labelId:3,lastFocusableElement:10,step:4,dataStepId:1,getElement:12})}get getElement(){return this.$$.ctx[12]}}class tK extends p{constructor(e,t={}){return super(),this._resolvedAttachTo=void 0,this._resolvedExtraHighlightElements=void 0,this.classPrefix=void 0,this.el=void 0,this.target=void 0,this.tour=void 0,this.tour=e,this.classPrefix=this.tour.options?P(this.tour.options.classPrefix):"",this.styles=e.styles,this._resolvedAttachTo=null,_(this),this._setOptions(t),this}cancel(){this.tour.cancel(),this.trigger("cancel")}complete(){this.tour.complete(),this.trigger("complete")}destroy(){this.cleanup&&this.cleanup(),this.cleanup=null,u(this.el)&&(this.el.remove(),this.el=null),this._updateStepTargetOnHide(),this.trigger("destroy")}getTour(){return this.tour}hide(){var e;null==(e=this.tour.modal)||e.hide(),this.trigger("before-hide"),this.el&&(this.el.hidden=!0),this._updateStepTargetOnHide(),this.trigger("hide")}_resolveExtraHiglightElements(){return this._resolvedExtraHighlightElements=this.options.extraHighlights?this.options.extraHighlights.flatMap(e=>Array.from(document.querySelectorAll(e))):[],this._resolvedExtraHighlightElements}_resolveAttachToOptions(){return this._resolvedAttachTo=function(e){let t=e.options.attachTo||{},n=Object.assign({},t);if(d(n.element)&&(n.element=n.element.call(e)),h(n.element)){try{n.element=document.querySelector(n.element)}catch(e){}n.element||console.error(`The element for this Shepherd step was not found ${t.element}`)}return n}(this),this._resolvedAttachTo}_getResolvedAttachToOptions(){return null===this._resolvedAttachTo?this._resolveAttachToOptions():this._resolvedAttachTo}isOpen(){return!!(this.el&&!this.el.hidden)}show(){return d(this.options.beforeShowPromise)?Promise.resolve(this.options.beforeShowPromise()).then(()=>this._show()):Promise.resolve(this._show())}updateStepOptions(e){Object.assign(this.options,e),this.shepherdElementComponent&&this.shepherdElementComponent.$set({step:this})}getElement(){return this.el}getTarget(){return this.target}_createTooltipContent(){let e=`${this.id}-description`,t=`${this.id}-label`;return this.shepherdElementComponent=new tG({target:this.tour.options.stepsContainer||document.body,props:{classPrefix:this.classPrefix,descriptionId:e,labelId:t,step:this,styles:this.styles}}),this.shepherdElementComponent.getElement()}_scrollTo(e){let{element:t}=this._getResolvedAttachToOptions();d(this.options.scrollToHandler)?this.options.scrollToHandler(t):t instanceof Element&&"function"==typeof t.scrollIntoView&&t.scrollIntoView(e)}_getClassOptions(e){let t=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions,n=e.classes?e.classes:"",o=t&&t.classes?t.classes:"";return Array.from(new Set([...n.split(" "),...o.split(" ")])).join(" ").trim()}_setOptions(e={}){let t=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;t=T({},t||{}),this.options=Object.assign({arrow:!0},t,e,{floatingUIOptions:T(t.floatingUIOptions||{},e.floatingUIOptions||{})});let{when:n}=this.options;this.options.classes=this._getClassOptions(e),this.destroy(),this.id=this.options.id||`step-${L()}`,n&&Object.keys(n).forEach(e=>{this.on(e,n[e],this)})}_setupElements(){f(this.el)||this.destroy(),this.el=this._createTooltipContent(),this.options.advanceOn&&function(e){let{event:t,selector:n}=e.options.advanceOn||{};if(!t)return console.error("advanceOn was defined, but no event name was passed.");{let o=t=>{if(e.isOpen()){let o=e.el&&t.currentTarget===e.el;(!f(n)&&t.currentTarget.matches(n)||o)&&e.tour.next()}},r=null;if(!f(n)&&!(r=document.querySelector(n)))return console.error(`No element was found for the selector supplied to advanceOn: ${n}`);r?(r.addEventListener(t,o),e.on("destroy",()=>r.removeEventListener(t,o))):(document.body.addEventListener(t,o,!0),e.on("destroy",()=>document.body.removeEventListener(t,o,!0)))}}(this),function(e){e.cleanup&&e.cleanup();let t=e._getResolvedAttachToOptions(),n=t.element,o=function(e,t){var n,o,r,i,l,s,a,c;let u={strategy:"absolute"};u.middleware=[];let d=!!t.options.arrow&&!!t.el&&t.el.querySelector(".shepherd-arrow"),h=A(e),f=null==(n=e.on)?void 0:n.includes("auto"),p=(null==e||null==(o=e.on)?void 0:o.includes("-start"))||(null==e||null==(r=e.on)?void 0:r.includes("-end"));if(!h){if(f?u.middleware.push({name:"autoPlacement",options:l={crossAxis:!0,alignment:p?null==e||null==(i=e.on)?void 0:i.split("-").pop():null},async fn(e){var t,n,o,r;let{rects:i,middlewareData:s,placement:a,platform:c,elements:u}=e,d=F(l,e),{crossAxis:h=!1,alignment:f,allowedPlacements:p=M,autoAlignment:m=!0}=d,y=g(d,Z),b=void 0!==f||p===M?((r=f||null)?[...p.filter(e=>V(e)===r),...p.filter(e=>V(e)!==r)]:p.filter(e=>N(e)===e)).filter(e=>!r||V(e)===r||!!m&&G(e)!==e):p,v=await eo(e,y),x=(null==(t=s.autoPlacement)?void 0:t.index)||0,w=b[x];if(null==w)return{};let E=Y(w,i,await (null==c.isRTL?void 0:c.isRTL(u.floating)));if(a!==w)return{reset:{placement:b[0]}};let S=[v[N(w)],v[E[0]],v[E[1]]],T=[...(null==(n=s.autoPlacement)?void 0:n.overflows)||[],{placement:w,overflows:S}],$=b[x+1];if($)return{data:{index:x+1,overflows:T},reset:{placement:$}};let k=T.map(e=>{let t=V(e.placement);return[e.placement,t&&h?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),_=(null==(o=k.filter(e=>e[2].slice(0,V(e[0])?2:3).every(e=>e<=0))[0])?void 0:o[0])||k[0][0];return _!==a?{data:{index:x+1,overflows:T},reset:{placement:_}}:{}}}):u.middleware.push((void 0===s&&(s={}),{name:"flip",options:s,async fn(e){var t,n,o,r,i;let{placement:l,middlewareData:a,rects:c,initialPlacement:u,platform:d,elements:h}=e,f=F(s,e),{mainAxis:p=!0,crossAxis:m=!0,fallbackPlacements:y,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:x=!0}=f,w=g(f,Q);if(null!=(t=a.arrow)&&t.alignmentOffset)return{};let E=N(l),S=U(u),T=N(u)===u,$=await (null==d.isRTL?void 0:d.isRTL(h.floating)),k=y||(T||!x?[K(u)]:function(e){let t=K(e);return[G(e),t,G(t)]}(u)),_="none"!==v;!y&&_&&k.push(...function(e,t,n,o){let r=V(e),i=function(e,t,n){let o=["left","right"],r=["right","left"];switch(e){case"top":case"bottom":if(n)return t?r:o;return t?o:r;case"left":case"right":return t?["top","bottom"]:["bottom","top"];default:return[]}}(N(e),"start"===n,o);return r&&(i=i.map(e=>e+"-"+r),t&&(i=i.concat(i.map(G)))),i}(u,x,v,$));let C=[u,...k],O=await eo(e,w),P=[],A=(null==(n=a.flip)?void 0:n.overflows)||[];if(p&&P.push(O[E]),m){let e=Y(l,c,$);P.push(O[e[0]],O[e[1]])}if(A=[...A,{placement:l,overflows:P}],!P.every(e=>e<=0)){let e=((null==(o=a.flip)?void 0:o.index)||0)+1,t=C[e];if(t)return{data:{index:e,overflows:A},reset:{placement:t}};let n=null==(r=A.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:r.placement;if(!n)switch(b){case"bestFit":{let e=null==(i=A.filter(e=>{if(_){let t=U(e.placement);return t===S||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:i[0];e&&(n=e);break}case"initialPlacement":n=u}if(l!==n)return{reset:{placement:n}}}return{}}})),u.middleware.push({name:"shift",options:c={limiter:(void 0===a&&(a={}),{options:a,fn(e){let{x:t,y:n,placement:o,rects:r,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=F(a,e),u={x:t,y:n},d=U(o),h=W(d),f=u[h],p=u[d],g=F(l,e),y="number"==typeof g?{mainAxis:g,crossAxis:0}:m({mainAxis:0,crossAxis:0},g);if(s){let e="y"===h?"height":"width",t=r.reference[h]-r.floating[e]+y.mainAxis,n=r.reference[h]+r.reference[e]-y.mainAxis;f<t?f=t:f>n&&(f=n)}if(c){var b,v;let e="y"===h?"width":"height",t=["top","left"].includes(N(o)),n=r.reference[d]-r.floating[e]+(t&&(null==(b=i.offset)?void 0:b[d])||0)+(t?0:y.crossAxis),l=r.reference[d]+r.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?y.crossAxis:0);p<n?p=n:p>l&&(p=l)}return{[h]:f,[d]:p}}}),crossAxis:!0},async fn(e){let{x:t,y:n,placement:o}=e,r=F(c,e),{mainAxis:i=!0,crossAxis:l=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}}}=r,a=g(r,ee),u={x:t,y:n},d=await eo(e,a),h=U(N(o)),f=W(h),p=u[f],y=u[h];if(i){let e="y"===f?"top":"left",t="y"===f?"bottom":"right",n=p+d[e],o=p-d[t];p=R(n,I(p,o))}if(l){let e="y"===h?"top":"left",t="y"===h?"bottom":"right",n=y+d[e],o=y-d[t];y=R(n,I(y,o))}let b=s.fn(m({},e,{[f]:p,[h]:y}));return m({},b,{data:{x:b.x-t,y:b.y-n}})}}),d){let e="object"==typeof t.options.arrow?t.options.arrow:{padding:4};u.middleware.push(eq({element:d,padding:p?e.padding:0}))}f||(u.placement=e.on)}return T(u,t.options.floatingUIOptions||{})}(t,e),r=A(t);r&&(n=document.body,e.shepherdElementComponent.getElement().classList.add("shepherd-centered")),e.cleanup=function(e,t,n,o){let r;void 0===o&&(o={});let{ancestorScroll:i=!0,ancestorResize:l=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:a="function"==typeof IntersectionObserver,animationFrame:c=!1}=o,u=eS(e),d=i||l?[...u?ex(u):[],...ex(t)]:[];d.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),l&&e.addEventListener("resize",n)});let h=u&&a?function(e,t){let n,o=null,r=es(e);function i(){var e;clearTimeout(n),null==(e=o)||e.disconnect(),o=null}return function l(s,a){void 0===s&&(s=!1),void 0===a&&(a=1),i();let{left:c,top:u,width:d,height:h}=e.getBoundingClientRect();if(s||t(),!d||!h)return;let f=B(u),p=B(r.clientWidth-(c+d)),g={rootMargin:-f+"px "+-p+"px "+-B(r.clientHeight-(u+h))+"px "+-B(c)+"px",threshold:R(0,I(1,a))||1},y=!0;function b(e){let t=e[0].intersectionRatio;if(t!==a){if(!y)return l();t?l(!1,t):n=setTimeout(()=>{l(!1,1e-7)},1e3)}y=!1}try{o=new IntersectionObserver(b,m({},g,{root:r.ownerDocument}))}catch(e){o=new IntersectionObserver(b,g)}o.observe(e)}(!0),i}(u,n):null,f=-1,p=null;s&&(p=new ResizeObserver(e=>{let[o]=e;o&&o.target===u&&p&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;null==(e=p)||e.observe(t)})),n()}),u&&!c&&p.observe(u),p.observe(t));let g=c?e_(e):null;return c&&function t(){let o=e_(e);g&&(o.x!==g.x||o.y!==g.y||o.width!==g.width||o.height!==g.height)&&n(),g=o,r=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{i&&e.removeEventListener("scroll",n),l&&e.removeEventListener("resize",n)}),null==h||h(),null==(e=p)||e.disconnect(),p=null,c&&cancelAnimationFrame(r)}}(n,e.el,()=>{if(!e.el){null==e.cleanup||e.cleanup();return}(function(e,t,n,o){eB(e,t.el,n).then(({x:e,y:n,placement:r,middlewareData:i})=>(t.el&&(o?Object.assign(t.el.style,{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"}):Object.assign(t.el.style,{position:"absolute",left:`${e}px`,top:`${n}px`}),t.el.dataset.popperPlacement=r,function(e,t){let n=e.querySelector(".shepherd-arrow");if(u(n)&&t.arrow){let{x:e,y:o}=t.arrow;Object.assign(n.style,{left:null!=e?`${e}px`:"",top:null!=o?`${o}px`:""})}}(t.el,i)),t)).then(e=>new Promise(t=>{setTimeout(()=>t(e),300)})).then(e=>{null!=e&&e.el&&e.el.focus({preventScroll:!0})})})(n,e,o,r)}),e.target=t.element}(this)}_show(){var e;this.trigger("before-show"),this._resolveAttachToOptions(),this._resolveExtraHiglightElements(),this._setupElements(),this.tour.modal||this.tour.setupModal(),null==(e=this.tour.modal)||e.setupForStep(this),this._styleTargetElementForStep(this),this.el&&(this.el.hidden=!1),this.options.scrollTo&&setTimeout(()=>{this._scrollTo(this.options.scrollTo)}),this.el&&(this.el.hidden=!1);let t=this.shepherdElementComponent.getElement(),n=this.target||document.body,o=this._resolvedExtraHighlightElements;n.classList.add(`${this.classPrefix}shepherd-enabled`),n.classList.add(`${this.classPrefix}shepherd-target`),t.classList.add("shepherd-enabled"),null==o||o.forEach(e=>{e.classList.add(`${this.classPrefix}shepherd-enabled`),e.classList.add(`${this.classPrefix}shepherd-target`)}),this.trigger("show")}_styleTargetElementForStep(e){let t=e.target,n=e._resolvedExtraHighlightElements;if(!t)return;let o=e.options.highlightClass;o&&(t.classList.add(o),null==n||n.forEach(e=>e.classList.add(o))),t.classList.remove("shepherd-target-click-disabled"),null==n||n.forEach(e=>e.classList.remove("shepherd-target-click-disabled")),!1===e.options.canClickTarget&&(t.classList.add("shepherd-target-click-disabled"),null==n||n.forEach(e=>e.classList.add("shepherd-target-click-disabled")))}_updateStepTargetOnHide(){let e=this.target||document.body,t=this._resolvedExtraHighlightElements,n=this.options.highlightClass;n&&(e.classList.remove(n),null==t||t.forEach(e=>e.classList.remove(n))),e.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`),null==t||t.forEach(e=>{e.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`)})}}function tJ(e){let t,n,o,r,i;return{c(){t=eG("svg"),eZ(n=eG("path"),"d",e[2]),eZ(t,"class",o=`${e[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)},m(o,l){ez(o,t,l),eW(t,n),e[11](t),r||(i=eX(t,"touchmove",e[3]),r=!0)},p(e,[r]){4&r&&eZ(n,"d",e[2]),2&r&&o!==(o=`${e[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)&&eZ(t,"class",o)},i:eH,o:eH,d(n){n&&eU(t),e[11](null),r=!1,i()}}}function tX(e,t,n){let o,r,{element:i,openingProperties:l}=t,s=!1;function a(){n(4,l=[{width:0,height:0,x:0,y:0,r:0}])}function c(){n(1,s=!1),f()}function u(e=0,t=0,o=0,r=0,i,s,c){if(s){let a=[s,...c||[]];for(let s of(n(4,l=[]),a)){if(!s||a.indexOf(s)!==a.lastIndexOf(s))continue;let{y:n,height:c}=function(e,t){let n=e.getBoundingClientRect(),o=n.y||n.top,r=n.bottom||o+n.height;if(t){let e=t.getBoundingClientRect(),n=e.y||e.top,i=e.bottom||n+e.height;o=Math.max(o,n),r=Math.min(r,i)}let i=Math.max(r-o,0);return{y:o,height:i}}(s,i),{x:u,width:d,left:h}=s.getBoundingClientRect();a.some(e=>{if(e===s)return!1;let t=e.getBoundingClientRect();return u>=t.left&&u+d<=t.right&&n>=t.top&&n+c<=t.bottom})||l.push({width:d+2*e,height:c+2*e,x:(u||h)+o-e,y:n+r-e,r:t})}}else a()}function d(){n(1,s=!0)}a();let h=e=>{e.preventDefault()};function f(){o&&(cancelAnimationFrame(o),o=void 0),window.removeEventListener("touchmove",h,{passive:!1})}return e.$$set=e=>{"element"in e&&n(0,i=e.element),"openingProperties"in e&&n(4,l=e.openingProperties)},e.$$.update=()=>{16&e.$$.dirty&&n(2,r=function(e){let t="",{innerWidth:n,innerHeight:o}=window;return e.forEach(e=>{let{width:n,height:o,x:r=0,y:i=0,r:l=0}=e,{topLeft:s=0,topRight:a=0,bottomRight:c=0,bottomLeft:u=0}="number"==typeof l?{topLeft:l,topRight:l,bottomRight:l,bottomLeft:l}:l;t+=`M${r+s},${i}\
|
|
21
21
|
a${s},${s},0,0,0-${s},${s}\
|
|
22
22
|
V${o+i-u}\
|
|
23
23
|
a${u},${u},0,0,0,${u},${u}\
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9826,9666],{94966:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters/[cluster]/[job]",function(){return s(50190)}])},27325:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});/**
|
|
2
|
+
* @license lucide-react v0.407.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/let a=(0,s(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},13626:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let a=(0,s(60998).Z)("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]])},99307:function(e,t,s){"use strict";s.d(t,{Cl:function(){return l},OE:function(){return u}});var a=s(85893);s(67294);var r=s(55739),n=s(36989),c=s(53850);let l=e=>{switch(e){case"LAUNCHING":return"bg-blue-100 text-sky-blue";case"RUNNING":case"IN_USE":case"READY":return"bg-green-50 text-green-700";case"STOPPED":return"bg-yellow-100 text-yellow-800";case"TERMINATED":case"PENDING":case"UNKNOWN":default:return"bg-gray-100 text-gray-800";case"SUCCEEDED":case"PROVISIONING":case"CONTROLLER_INIT":case"REPLICA_INIT":return"bg-blue-50 text-blue-700";case"FAILED":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":return"bg-red-50 text-red-700";case"CANCELLED":case"CANCELLING":case"NOT_READY":return"bg-yellow-50 text-yellow-700";case"RECOVERING":case"SHUTTING_DOWN":return"bg-orange-50 text-orange-700";case"SUBMITTED":return"bg-indigo-50 text-indigo-700";case"STARTING":return"bg-cyan-50 text-cyan-700";case"FAILED_SETUP":return"bg-pink-50 text-pink-700";case"PREEMPTED":case"NO_REPLICA":return"bg-purple-50 text-purple-700"}},i=e=>{switch(e){case"LAUNCHING":case"STARTING":case"PROVISIONING":case"SHUTTING_DOWN":return(0,a.jsx)(r.Z,{size:12,className:"w-3 h-3 mr-1"});case"RUNNING":case"IN_USE":default:return(0,a.jsx)(c.W2,{className:"w-3 h-3 mr-1"});case"STOPPED":case"PREEMPTED":return(0,a.jsx)(c.fp,{className:"w-3 h-3 mr-1"});case"TERMINATED":case"FAILED":case"CANCELLED":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":case"UNKNOWN":return(0,a.jsx)(c.Ps,{className:"w-3 h-3 mr-1"});case"SUCCEEDED":return(0,a.jsx)(c.Ye,{className:"w-3 h-3 mr-1"});case"PENDING":case"RECOVERING":case"SUBMITTED":case"CANCELLING":case"FAILED_SETUP":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"READY":case"NOT_READY":case"CONTROLLER_INIT":case"REPLICA_INIT":case"NO_REPLICA":return(0,a.jsx)(c.J$,{className:"w-3 h-3 mr-1"})}},o=e=>{let t=l(e),s=i(e);return(0,a.jsxs)("span",{className:"".concat("inline-flex items-center px-2 py-1 rounded-full text-sm"," ").concat(t),children:[s,e]})},u=e=>{let{status:t}=e;return(0,a.jsx)(n.WH,{content:t,className:"text-muted-foreground text-sm",children:(0,a.jsx)("span",{children:o(t)})})}},20546:function(e,t,s){"use strict";s.d(t,{H:function(){return u}});var a=s(85893);s(67294);var r=s(41664),n=s.n(r),c=s(45697),l=s.n(c);function i(e){return!!e&&"string"==typeof e&&e.toLowerCase().startsWith("sa-")}let o=()=>(0,a.jsx)("span",{className:"px-2 py-0.5 text-xs bg-blue-100 text-blue-700 rounded font-medium ml-1",children:"SA"}),u=e=>{let{username:t,userHash:s,className:r="flex items-center gap-1",linkClassName:c="text-gray-700 hover:text-blue-600 hover:underline",showBadge:l=!0}=e,u=i(s),d=i(s)?"/users?tab=service-accounts":"/users";return(0,a.jsxs)("div",{className:r,children:[(0,a.jsx)(n(),{href:d,className:c,children:t}),l&&u&&(0,a.jsx)(o,{})]})};u.propTypes={username:l().string.isRequired,userHash:l().string,className:l().string,linkClassName:l().string,showBadge:l().bool}},37673:function(e,t,s){"use strict";s.d(t,{Ol:function(){return o},Zb:function(){return i},aY:function(){return h},ll:function(){return u}});var a=s(85893),r=s(67294),n=s(45697),c=s.n(n),l=s(32350);let i=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...n,children:r})});i.displayName="Card",i.propTypes={className:c().string,children:c().node};let o=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",s),...n,children:r})});o.displayName="CardHeader",o.propTypes={className:c().string,children:c().node};let u=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("h3",{ref:t,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",s),...n,children:r})});u.displayName="CardTitle",u.propTypes={className:c().string,children:c().node};let d=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...n,children:r})});d.displayName="CardDescription",d.propTypes={className:c().string,children:c().node};let h=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",s),...n,children:r})});h.displayName="CardContent",h.propTypes={className:c().string,children:c().node};let m=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",s),...n,children:r})});m.displayName="CardFooter",m.propTypes={className:c().string,children:c().node}},47145:function(e,t,s){"use strict";s.d(t,{x:function(){return r}});var a=s(93225);let r={fetch:async function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"POST",r=window.location.origin,n="".concat(r).concat(a.f4).concat(e),c=await fetch(n,{method:s,headers:"POST"===s?{"Content-Type":"application/json"}:{},body:"POST"===s?JSON.stringify(t):void 0}),l=c.headers.get("X-Skypilot-Request-ID")||c.headers.get("X-Request-ID"),i=await fetch("".concat(r).concat(a.f4,"/api/get?request_id=").concat(l)),o=await i.json();return o.return_value?JSON.parse(o.return_value):[]},post:async(e,t)=>{let s=window.location.origin,r="".concat(s).concat(a.f4).concat(e);return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})},stream:async(e,t,s)=>{let a=(await r.post(e,t)).body.getReader();try{for(;;){let{done:e,value:t}=await a.read();if(e)break;let r=new TextDecoder().decode(t);s(r)}}catch(e){throw console.error("Error in stream:",e),e}},get:async e=>{let t=window.location.origin,s="".concat(t).concat(a.f4).concat(e);return await fetch(s)}}},23266:function(e,t,s){"use strict";s.d(t,{QL:function(){return h},Sl:function(){return u},getClusters:function(){return i},uR:function(){return o}});var a=s(67294),r=s(15821),n=s(47145),c=s(6378);let l={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function i(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{return(await n.x.fetch("/status",{cluster_names:e,all_users:!0})).map(e=>{let t="",s=t=e.zone?e.zone:e.region;return t&&t.length>25&&(t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e||e.length<=t)return e;if(t<=3)return"...";let s=Math.floor((t-3)/2),a=s+(t-3)%2;return 0===s?e.substring(0,a)+"...":e.substring(0,a)+"..."+e.substring(e.length-s)}(t,25)),{status:l[e.status],cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,infra:t?e.cloud+" ("+t+")":e.cloud,full_infra:s?"".concat(e.cloud," (").concat(s,")"):e.cloud,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,workspace:e.workspace,autostop:e.autostop,last_event:e.last_event,to_down:e.to_down,jobs:[],command:e.last_creation_command||e.last_use,task_yaml:e.last_creation_yaml||"{}",events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}})}catch(e){return console.error("Error fetching clusters:",e),[]}}async function o(){try{let e=await n.x.fetch("/cost_report",{days:30});console.log("Raw cluster history data:",e);let t=e.map(e=>{let t="Unknown";e.cloud?t=e.cloud:e.resources&&e.resources.cloud&&(t=e.resources.cloud);let s=e.user_name||"-";return{status:e.status?l[e.status]:"TERMINATED",cluster:e.name,user:s,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:t,region:"",infra:t,full_infra:t,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:e.launched_at?new Date(1e3*e.launched_at):null,num_nodes:e.num_nodes||1,duration:e.duration,total_cost:e.total_cost,workspace:e.workspace||"default",autostop:-1,to_down:!1,usage_intervals:e.usage_intervals,command:e.last_creation_command||"",task_yaml:e.last_creation_yaml||"{}",events:[{time:e.launched_at?new Date(1e3*e.launched_at):new Date,event:"Cluster created."}]}});return console.log("Processed cluster history data:",t),t}catch(e){return console.error("Error fetching cluster history:",e),[]}}async function u(e){let{clusterName:t,jobId:s,onNewLog:a,workspace:c}=e;try{await n.x.stream("/logs",{follow:!1,cluster_name:t,job_id:s,tail:1e4,override_skypilot_config:{active_workspace:c||"default"}},a)}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,r.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function d(e){let{clusterName:t,workspace:s}=e;try{return(await n.x.fetch("/queue",{cluster_name:t,all_users:!0,override_skypilot_config:{active_workspace:s}})).map(e=>{var a;let r=e.end_at?e.end_at:Date.now()/1e3,n=0,c=0;return e.submitted_at&&(n=r-e.submitted_at),e.start_at&&(c=r-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,user_hash:e.user_hash,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:n,job_duration:c,infra:"",logs:"",workspace:s||"default",git_commit:(null===(a=e.metadata)||void 0===a?void 0:a.git_commit)||"-"}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function h(e){let{cluster:t,job:s=null}=e,[r,n]=(0,a.useState)(null),[l,o]=(0,a.useState)(null),[u,h]=(0,a.useState)(!0),[m,f]=(0,a.useState)(!0),x=(0,a.useCallback)(async()=>{if(t)try{h(!0);let e=await c.default.get(i,[{clusterNames:[t]}]);return n(e[0]),e[0]}catch(e){console.error("Error fetching cluster data:",e)}finally{h(!1)}return null},[t]),g=(0,a.useCallback)(async e=>{if(t)try{f(!0);let s=await c.default.get(d,[{clusterName:t,workspace:e||"default"}]);o(s)}catch(e){console.error("Error fetching cluster job data:",e)}finally{f(!1)}},[t]),N=(0,a.useCallback)(async()=>{c.default.invalidate(i,[{clusterNames:[t]}]);let e=await x();e&&(c.default.invalidate(d,[{clusterName:t,workspace:e.workspace||"default"}]),await g(e.workspace))},[x,g,t]),b=(0,a.useCallback)(async()=>{r&&(c.default.invalidate(d,[{clusterName:t,workspace:r.workspace||"default"}]),await g(r.workspace))},[g,r,t]);return(0,a.useEffect)(()=>{(async()=>{let e=await x();e&&g(e.workspace)})()},[t,s,x,g]),{clusterData:r,clusterJobData:l,loading:u,clusterDetailsLoading:u,clusterJobsLoading:m,refreshData:N,refreshClusterJobsOnly:b}}},15821:function(e,t,s){"use strict";function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,a=document.getElementById("toast-container");a||((a=document.createElement("div")).id="toast-container",a.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(a));let r=document.createElement("div");switch(r.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":r.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":r.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":r.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:r.className+=" bg-blue-100 border-blue-500 text-blue-800"}return r.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),a.appendChild(r),r.querySelector("button").addEventListener("click",()=>{a.removeChild(r)}),setTimeout(()=>{a.contains(r)&&a.removeChild(r)},s),r}s.d(t,{C:function(){return a}})},23001:function(e,t,s){"use strict";s.d(t,{X:function(){return r}});var a=s(67294);function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,s]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let t=()=>{s(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},6378:function(e,t,s){"use strict";s.r(t),s.d(t,{DashboardCache:function(){return r},dashboardCache:function(){return n}});let a=s(51214).ej.DEFAULT_TTL;class r{async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=s.ttl||a,n=!1!==s.refreshOnAccess,c=this._generateKey(e,t),l=e.name||"anonymous",i=this.cache.get(c),o=Date.now();if(i&&o-i.lastUpdated<r){let s=Math.round((o-i.lastUpdated)/1e3);return this._debug("Cache HIT for ".concat(l," (age: ").concat(s,"s, TTL: ").concat(Math.round(r/1e3),"s)")),n&&(this.cache.set(c,{data:i.data,lastUpdated:o}),this._debug("Cache TTL refreshed for ".concat(l))),this.backgroundJobs.has(c)||this._refreshInBackground(e,t,c),i.data}try{let s=await e(...t);return this.cache.set(c,{data:s,lastUpdated:o}),s}catch(e){if(i)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),i.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],s=this._generateKey(e,t);this.cache.delete(s),this.backgroundJobs.delete(s)}invalidateFunction(e){let t=e.name||"anonymous",s=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&s.push(e);s.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[s,a]of this.cache.entries()){let r=e-a.lastUpdated;t.push({key:s,age:Math.round(r/1e3),lastUpdated:new Date(a.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(s)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,s=Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];this.debugMode&&console.log("[DashboardCache] ".concat(e),...s)}_refreshInBackground(e,t,s){this.backgroundJobs.set(s,!0),e(...t).then(e=>{this.cache.set(s,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(s,":"),e)}).finally(()=>{this.backgroundJobs.delete(s)})}_generateKey(e,t){let s=function(e){let t=5381;for(let s=0;s<e.length;s++)t=(t<<5)+t+e.charCodeAt(s);return t>>>0}(e.toString()),a=t.length>0?JSON.stringify(t):"";return"".concat(s,"_").concat(a)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1}}let n=new r;t.default=n},32350:function(e,t,s){"use strict";s.d(t,{cn:function(){return n}});var a=s(90512),r=s(98388);function n(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,r.m6)((0,a.W)(t))}},50190:function(e,t,s){"use strict";s.r(t),s.d(t,{JobDetailPage:function(){return y}});var a=s(85893),r=s(67294);s(6135);var n=s(37673),c=s(41664),l=s.n(c),i=s(11163),o=s(23266),u=s(36989),d=s(13626),h=s(55739),m=s(99307),f=s(23001),x=s(9008),g=s.n(x),N=s(20546),b=s(70282),p=s(27325);function _(e){let{cluster:t,job:s,jobData:r,onRefresh:n,isRefreshing:c,loading:i}=e,o=(0,f.X)();return(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,a.jsxs)("div",{className:"text-base flex items-center",children:[(0,a.jsx)(l(),{href:"/clusters",className:"text-sky-blue hover:underline",children:"Sky Clusters"}),(0,a.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,a.jsx)(l(),{href:"/clusters/".concat(t),className:"text-sky-blue hover:underline",children:t}),(0,a.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,a.jsxs)(l(),{href:"/clusters/".concat(t,"/").concat(s),className:"text-sky-blue hover:underline",children:[s,r.job&&"-"!=r.job?" (".concat(r.job,")"):""]})]}),(0,a.jsxs)("div",{className:"flex items-center",children:[(i||c)&&(0,a.jsxs)("div",{className:"flex items-center mr-2",children:[(0,a.jsx)(h.Z,{size:15,className:"mt-0"}),(0,a.jsx)("span",{className:"text-sm ml-2 text-gray-500",children:"Loading..."})]}),(0,a.jsx)(u.WH,{content:"Refresh",className:"text-muted-foreground",children:(0,a.jsxs)("button",{onClick:n,disabled:i||c,className:"text-sm text-sky-blue hover:text-sky-blue-bright font-medium mx-2 flex items-center",children:[(0,a.jsx)(d.Z,{className:"w-4 h-4 mr-1.5"}),!o&&(0,a.jsx)("span",{children:"Refresh"})]})})]})]})}function y(){let e=(0,i.useRouter)(),{cluster:t,job:s}=e.query,{clusterData:c,clusterJobData:f,loading:x,refreshData:y}=(0,o.QL)({cluster:t}),[j,w]=(0,r.useState)(!1),[v,E]=(0,r.useState)(!0),[I,k]=(0,r.useState)(!1),[C,D]=(0,r.useState)(""),[L,T]=(0,r.useState)(!1),[R,S]=(0,r.useState)(!1),A=(0,r.useMemo)(()=>["INIT","PENDING","SETTING_UP"],[]),O=(0,r.useMemo)(()=>{if(!f||!s)return!0;let e=f.find(e=>e.id==s);return e&&A.includes(e.status)},[f,s,A]);r.useEffect(()=>{!x&&v&&E(!1)},[x,v]),(0,r.useEffect)(()=>{let e=!0;return t&&s&&!O?(k(!0),(0,o.Sl)({clusterName:t,jobId:s,onNewLog:t=>{e&&D(e=>{let s=t.split("\n").filter(e=>e.trim()),a=e;for(let e of s){let t=(0,u.Zn)(e);if(/\d+%\s*\|/.test(t)){let e=t.match(/^\(([^)]+)\)/);if(e&&a){let s=a.split("\n"),r=!1;for(let n=s.length-1;n>=0;n--){let c=s[n];if(/\d+%\s*\|/.test(c)){let l=c.match(/^\(([^)]+)\)/);if(l&&l[1]===e[1]){s[n]=t,a=s.join("\n"),r=!0;break}}}r||(a+=(a?"\n":"")+t)}else a+=(a?"\n":"")+t}else a+=(a?"\n":"")+t}return a})},workspace:null==c?void 0:c.workspace}).then(()=>{e&&k(!1)}).catch(t=>{e&&(console.error("Error streaming logs:",t),k(!1))})):k(!1),()=>{e=!1}},[t,s,L,O,c]);let P=async()=>{w(!0),T(e=>!e),D("");try{y&&await y()}catch(e){console.error("Error refreshing data:",e)}finally{w(!1)}};if(!e.isReady)return(0,a.jsx)("div",{children:"Loading..."});let U={id:s};if(c&&f){let e=f.find(e=>e.id==s);e&&(U={...e,infra:c.infra,cluster:c.cluster,user:c.user,user_hash:c.user_hash})}let F=t&&s?"Job: ".concat(s," @ ").concat(t," | SkyPilot Dashboard"):"Job Details | SkyPilot Dashboard";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g(),{children:(0,a.jsx)("title",{children:F})}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(_,{cluster:t,job:s,jobData:U,onRefresh:P,isRefreshing:j,loading:x}),x&&v?(0,a.jsxs)("div",{className:"flex items-center justify-center h-64",children:[(0,a.jsx)(h.Z,{size:24,className:"mr-2"}),(0,a.jsx)("span",{children:"Loading..."})]}):(0,a.jsxs)("div",{className:"space-y-8",children:[(0,a.jsx)("div",{id:"details",children:(0,a.jsxs)(n.Zb,{children:[(0,a.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Details"})}),(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Job ID"}),(0,a.jsx)("div",{className:"text-base mt-1",children:U.id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Job Name"}),(0,a.jsx)("div",{className:"text-base mt-1",children:U.job})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Status"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(m.OE,{status:U.status})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"User"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(N.H,{username:U.user,userHash:U.user_hash})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Submitted"}),(0,a.jsx)("div",{className:"text-base mt-1",children:U.submitted_at?(0,u.xn)(U.submitted_at):"N/A"})]}),U.resources&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Requested Resources"}),(0,a.jsx)("div",{className:"text-base mt-1",children:U.resources||"N/A"})]}),U.cluster&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cluster"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(l(),{href:"/clusters/".concat(U.cluster),className:"text-sky-blue hover:underline",children:U.cluster})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Git Commit"}),(0,a.jsx)("div",{className:"text-base mt-1 flex items-center",children:U.git_commit&&"-"!==U.git_commit?(0,a.jsxs)("span",{className:"flex items-center mr-2",children:[U.git_commit,(0,a.jsx)(u.WH,{content:R?"Copied!":"Copy commit",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:async()=>{await navigator.clipboard.writeText(U.git_commit),S(!0),setTimeout(()=>S(!1),2e3)},className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:R?(0,a.jsx)(b.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(p.Z,{className:"w-4 h-4"})})})]}):(0,a.jsx)("span",{className:"text-gray-400",children:"-"})})]})]})})]})}),(0,a.jsx)("div",{id:"logs",className:"mt-6",children:(0,a.jsxs)(n.Zb,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 pt-4",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Logs"}),(0,a.jsx)("span",{className:"ml-2 text-xs text-gray-500",children:"(Logs are not streaming; click refresh to fetch the latest logs.)"})]}),(0,a.jsx)(u.WH,{content:"Refresh logs",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:()=>{T(e=>!e),D("")},disabled:I,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:(0,a.jsx)(d.Z,{className:"w-4 h-4 ".concat(I?"animate-spin":"")})})})]}),(0,a.jsx)("div",{className:"p-4",children:O?(0,a.jsx)("div",{className:"bg-[#f7f7f7] flex items-center justify-center py-4 text-gray-500",children:(0,a.jsx)("span",{children:"Waiting for the job to start; refresh in a few moments."})}):I?(0,a.jsxs)("div",{className:"flex items-center justify-center py-4",children:[(0,a.jsx)(h.Z,{size:20,className:"mr-2"}),(0,a.jsx)("span",{children:"Loading..."})]}):(0,a.jsx)("div",{className:"max-h-96 overflow-y-auto",children:(0,a.jsx)(u.$B,{logs:C})})})]})})]})]})]})}t.default=y},9008:function(e,t,s){e.exports=s(37219)}},function(e){e.O(0,[616,6130,5739,7411,6989,3850,6135,2888,9774,179],function(){return e(e.s=94966)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[722],{58706:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters/[cluster]",function(){return s(56996)}])},1125:function(e,t,s){"use strict";s.d(t,{C:function(){return c}});var a=s(85893),l=s(67294),r=s(34209),n=s(84283);let i=e=>{if(!e||"string"!=typeof e)return e;let t=e.split("\n"),s=[];for(let e=0;e<t.length;e++){let a=t[e];if(""===a.trim()){let l=!1,r=0;for(let s=e-1;s>=0;s--){let e=t[s],a=e.trim();if(a&&e.match(/:\s*[|>]\s*$/)){l=!0;for(let e=s+1;e<t.length;e++){let s=t[e];if(s.trim()){r=s.search(/\S/);break}}break}if(a&&0===e.search(/\S/))break}if(l)for(let l=e+1;l<t.length;l++){let e=t[l];if(e.trim()){e.search(/\S/)>=r?s.push(" #YAML_BLANK_LINE_MARKER#"):s.push(a);break}}else s.push(a)}else s.push(a)}return s.join("\n")};function c(e){let{children:t,className:s=""}=e,c=(0,l.useRef)(null),o=i(t);(0,l.useEffect)(()=>{if(c.current){let e=c.current;setTimeout(()=>{let t;let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);for(;t=s.nextNode();)t.textContent&&t.textContent.includes("#YAML_BLANK_LINE_MARKER#")&&(t.textContent=t.textContent.replace(/#YAML_BLANK_LINE_MARKER#/g,""))},0)}},[o]);let d={...n.mQ,'code[class*="language-"]':{...n.mQ['code[class*="language-"]'],whiteSpace:"pre !important"},'pre[class*="language-"]':{...n.mQ['pre[class*="language-"]'],whiteSpace:"pre !important"}};return(0,a.jsx)("div",{ref:c,className:s,children:(0,a.jsx)(r.Z,{language:"yaml",style:d,customStyle:{margin:0,padding:0,background:"transparent",fontSize:"0.875rem",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace'},wrapLines:!0,wrapLongLines:!0,showLineNumbers:!1,useInlineStyles:!0,children:o})})}},84303:function(e,t,s){"use strict";s.d(t,{_q:function(){return r},pJ:function(){return c}});var a=s(1272);let l={lineWidth:-1,quotingType:"'",forceQuotes:!1,noRefs:!0,sortKeys:!1,condenseFlow:!1,indent:2},r=e=>{if(!e)return"No YAML available";try{let t=a.ZP.load(e),s=a.ZP.dump(t,l).split("\n"),r=[],n=-1;for(let e=0;e<s.length;e++){let t=s[e],a=t.search(/\S/);0===a&&n>=0&&e>0&&r.push(""),r.push(t),n=a}return r.join("\n").trim()}catch(t){return console.error("YAML formatting error:",t),e}},n=e=>"string"==typeof e?e.substring(0,50)+"...":e&&e.name?"name: ".concat(e.name):e&&e.resources?"Task configuration":"YAML document",i=(e,t)=>{try{let s=a.ZP.load(e),r=a.ZP.dump(s,l).split("\n"),i=[],c=-1;for(let e=0;e<r.length;e++){let t=r[e],s=t.search(/\S/);0===s&&c>=0&&e>0&&i.push(""),i.push(t),c=s}return{index:t,content:i.join("\n").trim(),preview:n(s)}}catch(s){return console.error("YAML formatting error for document ".concat(t,":"),s),{index:t,content:e,preview:"Invalid YAML"}}},c=e=>{if(!e)return[];try{let t=[],s=e.split(/^---$/m);for(let e=0;e<s.length;e++){let a=s[e].trim();a&&""!==a&&t.push(a)}return(t.length>1?t.slice(1):t).map((e,t)=>i(e,t))}catch(t){return console.error("YAML formatting error:",t),[{index:0,content:e,preview:"Invalid YAML"}]}}},56996:function(e,t,s){"use strict";s.r(t);var a=s(85893),l=s(67294),r=s(55739),n=s(9159),i=s(11163);s(6135);var c=s(41664),o=s.n(c),d=s(39037),m=s(99307);s(37673);var u=s(23266),x=s(6378),h=s(13626),f=s(70282),g=s(27325),v=s(45895),j=s(6639);s(1272);var b=s(36989),p=s(17853),N=s(92128),y=s(23001),_=s(9008),w=s.n(_),S=s(84303),C=s(20546),k=s(1125);let M=(e,t)=>{let s="",a="";return e>=0&&(s=e+"m",a=" "),t&&(s+="".concat(a,"(down)")),""===s&&(s="-"),s};function L(e){var t,s;let{clusterData:r,clusterJobData:i,clusterJobsLoading:c,refreshClusterJobsOnly:d,isVSCodeModalOpen:u,setIsVSCodeModalOpen:x,timeRange:h,handleTimeRangePreset:p,buildGrafanaMetricsUrl:N,matchedClusterName:y,isLoadingClusterMatch:_,isGrafanaAvailable:w,isHistoricalCluster:L=!1}=e,[A,E]=(0,l.useState)(!1),[R,T]=(0,l.useState)(!1),[O,P]=(0,l.useState)(!1),I=async()=>{try{let e=r.task_yaml||r.last_creation_yaml,t=(0,S._q)(e);await navigator.clipboard.writeText(t),T(!0),setTimeout(()=>T(!1),2e3)}catch(e){console.error("Failed to copy YAML to clipboard:",e)}},Z=async()=>{try{let e=r.command||r.last_creation_command;await navigator.clipboard.writeText(e),P(!0),setTimeout(()=>P(!1),2e3)}catch(e){console.error("Failed to copy command to clipboard:",e)}},U=(null==r?void 0:r.last_creation_command)||(null==r?void 0:r.last_creation_yaml)||(null==r?void 0:r.command)||(null==r?void 0:r.task_yaml);return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,a.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,a.jsx)("h3",{className:"text-lg font-semibold",children:L?"Historical Cluster Details":"Details"})}),(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Status"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(m.OE,{status:r.status})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cluster"}),(0,a.jsx)("div",{className:"text-base mt-1",children:r.cluster||r.name})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"User"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(C.H,{username:r.user,userHash:r.user_hash})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:L?"Cloud":"Infra"}),(0,a.jsx)("div",{className:"text-base mt-1",children:L?r.cloud||"N/A":r.infra?(0,a.jsx)(b.Md,{content:r.full_infra||r.infra,className:"text-sm text-muted-foreground",children:(0,a.jsxs)("span",{children:[(0,a.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:r.cloud||r.infra.split("(")[0].trim()}),r.infra.includes("(")&&(0,a.jsx)("span",{children:" "+r.infra.substring(r.infra.indexOf("("))})]})}):"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Resources"}),(0,a.jsx)("div",{className:"text-base mt-1",children:r.resources_str_full||r.resources_str||"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Started"}),(0,a.jsx)("div",{className:"text-base mt-1",children:r.time?(0,b.xn)(new Date(r.time)):"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Last Event"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(b.Md,{content:r.last_event||"-",className:"text-sm text-muted-foreground",children:(0,a.jsx)("span",{children:r.last_event||"-"})})})]}),L?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Duration"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(e=>{if(!e||0===e)return"-";let t=e=Math.floor(e),s="",a=0;for(let e of[{value:31536e3,label:"y"},{value:2592e3,label:"mo"},{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(t>=e.value&&a<2){let l=Math.floor(t/e.value);s+="".concat(l).concat(e.label," "),t%=e.value,a++}return s.trim()||"0s"})(r.duration)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cost"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(e=>{if(null==e||0===e)return"-";let t=Number(e);return isNaN(t)?"-":"$".concat(t.toFixed(2))})(r.total_cost)})]})]}):(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Autostop"}),(0,a.jsx)("div",{className:"text-base mt-1",children:M(r.autostop,r.to_down)})]}),U&&(0,a.jsxs)("div",{className:"col-span-2",children:[(r.command||r.last_creation_command)&&(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Entrypoint"}),r.command&&(0,a.jsx)(b.WH,{content:O?"Copied!":"Copy command",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:Z,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:O?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(g.Z,{className:"w-4 h-4"})})})]}),(0,a.jsxs)("div",{className:"space-y-4 mt-3",children:[(r.command||r.last_creation_command)&&(0,a.jsx)("div",{children:(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3",children:(0,a.jsx)("code",{className:"text-sm text-gray-800 font-mono break-all",children:r.command||r.last_creation_command})})}),(r.task_yaml||r.last_creation_yaml)&&"{}"!==r.task_yaml&&"{}"!==r.last_creation_yaml&&!(null===(t=r.cluster||r.name)||void 0===t?void 0:t.startsWith("sky-jobs-controller-"))&&!(null===(s=r.cluster||r.name)||void 0===s?void 0:s.startsWith("sky-serve-controller-"))&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center mb-2",children:[(0,a.jsxs)("button",{onClick:()=>{E(!A)},className:"flex items-center text-left focus:outline-none text-gray-700 hover:text-gray-900 transition-colors duration-200",children:[A?(0,a.jsx)(v.Z,{className:"w-4 h-4 mr-1"}):(0,a.jsx)(j.Z,{className:"w-4 h-4 mr-1"}),(0,a.jsx)("span",{className:"text-base",children:"Show SkyPilot YAML"})]}),(0,a.jsx)(b.WH,{content:R?"Copied!":"Copy YAML",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:I,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:R?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(g.Z,{className:"w-4 h-4"})})})]}),A&&(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 max-h-96 overflow-y-auto",children:(0,a.jsx)(k.C,{className:"whitespace-pre-wrap",children:(0,S._q)(r.task_yaml||r.last_creation_yaml)})})]})]})]})]})})]})}),r&&r.full_infra&&r.full_infra.includes("Kubernetes")&&!r.full_infra.includes("SSH")&&!r.full_infra.includes("ssh")&&w&&(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsx)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:(0,a.jsxs)("div",{className:"p-5",children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"GPU Metrics"})}),(0,a.jsxs)("div",{className:"mb-4 p-4 bg-gray-50 rounded-md border border-gray-200",children:[(0,a.jsx)("div",{className:"flex flex-col sm:flex-row gap-4 items-start sm:items-center",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:"Time Range:"}),(0,a.jsx)("div",{className:"flex gap-1",children:[{label:"15m",value:"15m"},{label:"1h",value:"1h"},{label:"6h",value:"6h"},{label:"24h",value:"24h"},{label:"7d",value:"7d"}].map(e=>(0,a.jsx)("button",{onClick:()=>p(e.value),className:"px-2 py-1 text-xs font-medium rounded border transition-colors ".concat(h.from==="now-".concat(e.value)&&"now"===h.to?"bg-sky-blue text-white border-sky-blue":"bg-white text-gray-600 border-gray-300 hover:bg-gray-50"),children:e.label},e.value))})]})}),(0,a.jsxs)("div",{className:"mt-2 text-xs text-gray-500",children:["Showing: ",null==r?void 0:r.cluster," • Time: ",h.from," to"," ",h.to,_&&(0,a.jsx)("span",{children:" • Finding cluster data..."})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:N("1"),width:"100%",height:"400",frameBorder:"0",title:"GPU Utilization",className:"rounded"},"gpu-util-".concat(null==r?void 0:r.cluster,"-").concat(h.from,"-").concat(h.to))})}),(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:N("2"),width:"100%",height:"400",frameBorder:"0",title:"GPU Memory Utilization",className:"rounded"},"gpu-memory-".concat(null==r?void 0:r.cluster,"-").concat(h.from,"-").concat(h.to))})}),(0,a.jsx)("div",{className:"bg-white rounded-md border border-gray-200 shadow-sm",children:(0,a.jsx)("div",{className:"p-2",children:(0,a.jsx)("iframe",{src:N("4"),width:"100%",height:"400",frameBorder:"0",title:"GPU Power Usage",className:"rounded"},"gpu-power-".concat(null==r?void 0:r.cluster,"-").concat(h.from,"-").concat(h.to))})})]})]})})}),!L&&(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsx)(n.ClusterJobs,{clusterName:r.cluster,clusterJobData:i,loading:c,refreshClusterJobsOnly:d})})]})}t.default=function(){let e=(0,i.useRouter)(),{cluster:t}=e.query,[s,n]=(0,l.useState)(!1),[c,m]=(0,l.useState)(!0),[f,g]=(0,l.useState)(!1),[v,j]=(0,l.useState)(!1),[_,S]=(0,l.useState)(null),[C,k]=(0,l.useState)(!1),[M,A]=(0,l.useState)(!1),E=(0,y.X)(),[R,T]=(0,l.useState)({from:"now-1h",to:"now"}),{clusterData:O,clusterJobData:P,loading:I,clusterDetailsLoading:Z,clusterJobsLoading:U,refreshData:Y,refreshClusterJobsOnly:D}=(0,u.QL)({cluster:t}),[F,G]=(0,l.useState)(null),[H,J]=(0,l.useState)(!1),[W,K]=(0,l.useState)(!1);(0,l.useEffect)(()=>{(async()=>{K(await (0,p.TO)())})()},[]);let z=(0,l.useCallback)(async()=>{if(W&&(null==O?void 0:O.cluster)){J(!0);try{let e=(0,p.ki)(),t=await fetch("".concat(e).concat("/api/datasources/proxy/1/api/v1/label/label_skypilot_cluster/values"),{method:"GET",credentials:"include",headers:{Accept:"application/json"}});if(t.ok){let e=await t.json();if(e.data&&e.data.length>0){let t=e.data.find(e=>e.startsWith(O.cluster));t&&G(t)}}}catch(e){console.error("Error fetching matching cluster:",e)}finally{J(!1)}}},[null==O?void 0:O.cluster,W]);(0,l.useEffect)(()=>{W&&(null==O?void 0:O.cluster)&&z()},[null==O?void 0:O.cluster,z,W]);let B=e=>{let t=(0,p.ki)(),s=F||(null==O?void 0:O.cluster)||"$__all";return"".concat(t,"/d-solo/skypilot-dcgm-gpu/skypilot-dcgm-gpu-metrics?orgId=1&from=").concat(encodeURIComponent(R.from),"&to=").concat(encodeURIComponent(R.to),"&timezone=browser&var-cluster=").concat(encodeURIComponent(s),"&var-node=$__all&var-gpu=$__all&theme=light&panelId=").concat(e,"&__feature.dashboardSceneSolo")};l.useEffect(()=>{!Z&&c&&m(!1)},[Z,c]),l.useEffect(()=>{let e=async()=>{if(t&&!Z&&!O){A(!0);try{let e=(await x.default.get(u.uR)).find(e=>e.cluster_hash===t||e.cluster===t);e&&(S(e),k(!0))}catch(e){console.error("Error fetching cluster history:",e)}finally{A(!1)}}};Z||O||e()},[t,Z,O]);let $=async()=>{n(!0),await Y(),n(!1)},q=e=>{T({from:"now-".concat(e),to:"now"})};if(!e.isReady)return(0,a.jsx)("div",{children:"Loading..."});let Q=t?"Cluster: ".concat(t," | SkyPilot Dashboard"):"Cluster Details | SkyPilot Dashboard";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(w(),{children:(0,a.jsx)("title",{children:Q})}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,a.jsxs)("div",{className:"text-base flex items-center",children:[(0,a.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline",children:"Sky Clusters"}),(0,a.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,a.jsx)(o(),{href:"/clusters/".concat(t),className:"text-sky-blue hover:underline",children:t})]}),(0,a.jsx)("div",{className:"text-sm flex items-center",children:(0,a.jsxs)("div",{className:"text-sm flex items-center",children:[(Z||s)&&(0,a.jsxs)("div",{className:"flex items-center mr-4",children:[(0,a.jsx)(r.Z,{size:15,className:"mt-0"}),(0,a.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),O&&(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(b.WH,{content:"Refresh",className:"text-sm text-muted-foreground",children:(0,a.jsxs)("button",{onClick:$,disabled:Z||s,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,a.jsx)(h.Z,{className:"w-4 h-4 mr-1.5"}),!E&&(0,a.jsx)("span",{children:"Refresh"})]})}),(0,a.jsx)(d.Status2Actions,{withLabel:!0,cluster:O.cluster,status:O.status,onOpenSSHModal:()=>{g(!0)},onOpenVSCodeModal:()=>{j(!0)}})]})]})})]}),Z&&c||M?(0,a.jsxs)("div",{className:"flex justify-center items-center py-12",children:[(0,a.jsx)(r.Z,{size:24,className:"mr-2"}),(0,a.jsx)("span",{className:"text-gray-500",children:"Loading cluster details..."})]}):O?(0,a.jsx)(L,{clusterData:O,clusterJobData:P,clusterJobsLoading:U,refreshClusterJobsOnly:D,isVSCodeModalOpen:v,setIsVSCodeModalOpen:j,timeRange:R,handleTimeRangePreset:q,buildGrafanaMetricsUrl:B,matchedClusterName:F,isLoadingClusterMatch:H,isGrafanaAvailable:W,isHistoricalCluster:!1}):C&&_?(0,a.jsx)(L,{clusterData:_,clusterJobData:[],clusterJobsLoading:!1,refreshClusterJobsOnly:()=>{},isVSCodeModalOpen:!1,setIsVSCodeModalOpen:()=>{},timeRange:R,handleTimeRangePreset:q,buildGrafanaMetricsUrl:B,matchedClusterName:null,isLoadingClusterMatch:!1,isGrafanaAvailable:!1,isHistoricalCluster:!0}):(0,a.jsx)("div",{className:"flex justify-center items-center py-12",children:(0,a.jsx)("span",{className:"text-gray-500",children:"Cluster not found in active clusters or history."})}),(0,a.jsx)(N.Oh,{isOpen:f,onClose:()=>g(!1),cluster:t}),(0,a.jsx)(N._R,{isOpen:v,onClose:()=>j(!1),cluster:t})]})]})}},17853:function(e,t,s){"use strict";s.d(t,{TO:function(){return r},ki:function(){return n}});let a=null,l=null,r=async()=>null!==a?a:l||(l=(async()=>{try{let e="".concat(window.location.origin,"/grafana"),t=await fetch("".concat(e,"/api/health"),{method:"GET",credentials:"include",headers:{Accept:"application/json"},signal:AbortSignal.timeout(5e3)});return 200==t.status}catch(e){return console.debug("Grafana availability check failed:",e),a=!1,!1}finally{l=null}})()),n=()=>"".concat(window.location.origin,"/grafana")}},function(e){e.O(0,[616,6130,5739,7411,1272,1559,6212,6989,3850,8969,6990,8056,6135,6601,9159,1871,2888,9774,179],function(){return e(e.s=58706)}),_N_E=e.O()}]);
|
|
@@ -18,4 +18,4 @@
|
|
|
18
18
|
*
|
|
19
19
|
* This source code is licensed under the ISC license.
|
|
20
20
|
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/let u=(0,s(60998).Z)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var h=s(70282),x=s(27325),m=s(45895),f=s(6639),p=s(68969),g=s(6378),N=s(36989),j=s(51214),b=s(99307),y=s(84303),v=s(1125),w=s(68764),E=s(30803);function _(){let e=(0,a.useRouter)(),{pool:t}=e.query,[s,l]=(0,n.useState)(null),[i,_]=(0,n.useState)(!1),[L,k]=(0,n.useState)(!0),[I,C]=(0,n.useState)(null),[R,A]=(0,n.useState)(1),[S,T]=(0,n.useState)(10),[D,O]=(0,n.useState)(!1),[P,M]=(0,n.useState)({key:null,direction:"ascending"}),[F,W]=(0,n.useState)(!1),[U,Y]=(0,n.useState)(!1),[Z,G]=(0,n.useState)(!1),H=n.useCallback(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(t){e?_(!0):k(!0),C(null);try{let{pools:e=[]}=await g.default.get(p.vs,[{}])||{},s=e.find(e=>e.name===t);s?l(s):(C("Pool ".concat(t," not found")),l(null))}catch(e){console.error("Error fetching pool data:",e),C("Failed to fetch pool data: ".concat(e.message)),l(null)}finally{e?_(!1):k(!1)}}},[t,_,k,C,l]);(0,n.useEffect)(()=>{H()},[t,H]);let z=e=>{let t="ascending";P.key===e&&"ascending"===P.direction&&(t="descending"),M({key:e,direction:t})},B=e=>P.key===e?"ascending"===P.direction?" ↑":" ↓":"",q=async()=>{try{if(s&&s.pool_yaml){let e=(0,y._q)(s.pool_yaml);await navigator.clipboard.writeText(e),Y(!0),setTimeout(()=>Y(!1),2e3)}}catch(e){console.error("Failed to copy Pool YAML to clipboard:",e)}},K=async()=>{try{s&&s.entrypoint&&(await navigator.clipboard.writeText(s.entrypoint),G(!0),setTimeout(()=>G(!1),2e3))}catch(e){console.error("Failed to copy entrypoint to clipboard:",e)}},{filteredWorkers:V,totalPages:J,paginatedWorkers:X}=(0,n.useMemo)(()=>{if(!s||!s.replica_info)return{filteredWorkers:[],totalPages:0,paginatedWorkers:[]};let e=D?s.replica_info:s.replica_info.filter(e=>!e.status||!e.status.includes("FAILED"));P.key&&(e=[...e].sort((e,t)=>{let s=e[P.key],r=t[P.key];return("launched_at"===P.key&&(s=s||0,r=r||0),"string"==typeof s&&(s=s.toLowerCase()),"string"==typeof r&&(r=r.toLowerCase()),s<r)?"ascending"===P.direction?-1:1:s>r?"ascending"===P.direction?1:-1:0}));let t=Math.ceil(e.length/S),r=(R-1)*S,n=r+S,a=e.slice(r,n);return{filteredWorkers:e,totalPages:t,paginatedWorkers:a}},[s,D,R,S,P]);return((0,n.useEffect)(()=>{A(1)},[D,P]),!e.isReady||L)?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsx)(d.Z,{size:32,className:"mb-3"}),(0,r.jsx)("span",{className:"text-gray-600",children:"Loading pool details..."})]})})]}):I||!s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsx)("div",{className:"bg-white shadow rounded-lg p-6",children:(0,r.jsxs)("div",{className:"text-center text-red-600",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-2",children:"Error"}),(0,r.jsx)("p",{children:I||"Pool ".concat(t," not found")}),(0,r.jsx)("button",{onClick:()=>{g.default.invalidate(p.vs,[{}]),H(!0)},className:"mt-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600",children:"Retry"})]})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,r.jsxs)("div",{className:"text-base flex items-center",children:[(0,r.jsx)(o(),{href:"/jobs",className:"text-sky-blue hover:underline",children:"Pools"}),(0,r.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,r.jsx)(o(),{href:"/jobs/pools/".concat(t),className:"text-sky-blue hover:underline",children:t})]}),(0,r.jsxs)("div",{className:"text-sm flex items-center",children:[i&&(0,r.jsxs)("div",{className:"flex items-center mr-4",children:[(0,r.jsx)(d.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{g.default.invalidate(p.vs,[{}]),H(!0)},disabled:i,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,r.jsx)(u,{className:"w-4 h-4 mr-1.5 ".concat(i?"animate-spin":"")}),(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col space-y-6",children:[(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,r.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Details"})}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Jobs"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(0,r.jsx)(N.x9,{jobCounts:(0,N.sY)(s),getStatusStyle:b.Cl})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Workers"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(e=>{if(!e||!e.replica_info||0===e.replica_info.length)return"0 (target: 0)";let t=e.replica_info.filter(e=>"READY"===e.status).length,s=e.target_num_replicas||0;return"".concat(t," (target: ").concat(s,")")})(s)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Worker Details"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(0,r.jsx)(N.Kl,{replicaInfo:s.replica_info})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Worker Resources"}),(0,r.jsx)("div",{className:"text-base mt-1",children:s.requested_resources_str||"-"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Policy"}),(0,r.jsx)("div",{className:"text-base mt-1",children:s.policy||"-"})]})]}),s.entrypoint&&(0,r.jsxs)("div",{className:"pt-4 mt-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Entrypoint"}),(0,r.jsx)(N.WH,{content:Z?"Copied!":"Copy command",className:"text-muted-foreground",children:(0,r.jsx)("button",{onClick:K,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:Z?(0,r.jsx)(h.Z,{className:"w-4 h-4 text-green-600"}):(0,r.jsx)(x.Z,{className:"w-4 h-4"})})})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3",children:(0,r.jsx)("code",{className:"text-sm text-gray-800 font-mono break-all",children:s.entrypoint})})})]}),s.pool_yaml&&s.pool_yaml.trim()&&(0,r.jsxs)("div",{className:"pt-4 mt-4",children:[(0,r.jsxs)("div",{className:"flex items-center mb-2",children:[(0,r.jsxs)("button",{onClick:()=>{W(!F)},className:"flex items-center text-left focus:outline-none text-gray-700 hover:text-gray-900 transition-colors duration-200",children:[F?(0,r.jsx)(m.Z,{className:"w-4 h-4 mr-1"}):(0,r.jsx)(f.Z,{className:"w-4 h-4 mr-1"}),(0,r.jsx)("span",{className:"text-base",children:"Show Pool YAML"})]}),(0,r.jsx)(N.WH,{content:U?"Copied!":"Copy YAML",className:"text-muted-foreground",children:(0,r.jsx)("button",{onClick:q,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:U?(0,r.jsx)(h.Z,{className:"w-4 h-4 text-green-600"}):(0,r.jsx)(x.Z,{className:"w-4 h-4"})})})]}),F&&(0,r.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 max-h-96 overflow-y-auto",children:(0,r.jsx)(v.C,{className:"whitespace-pre-wrap",children:(0,y._q)(s.pool_yaml)})})]})]})]})}),(0,r.jsxs)("div",{className:"mb-8",children:[(0,r.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Pool Workers"}),(0,r.jsx)("div",{className:"flex items-center space-x-2",children:(0,r.jsxs)("label",{className:"flex items-center space-x-3 text-sm cursor-pointer",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("input",{type:"checkbox",checked:D,onChange:e=>O(e.target.checked),className:"sr-only"}),(0,r.jsx)("div",{className:"w-11 h-6 rounded-full transition-colors duration-200 ease-in-out ".concat(D?"bg-blue-600":"bg-gray-300"),children:(0,r.jsx)("div",{className:"w-5 h-5 bg-white rounded-full shadow transform transition-transform duration-200 ease-in-out translate-y-0.5 ".concat(D?"translate-x-5":"translate-x-0.5")})})]}),(0,r.jsx)("span",{className:"text-gray-700",children:"Show history"})]})})]}),(0,r.jsxs)(w.iA,{children:[(0,r.jsx)(w.xD,{children:(0,r.jsxs)(w.SC,{children:[(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("replica_id"),children:["ID",B("replica_id")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("launched_at"),children:["Launched",B("launched_at")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("cloud"),children:["Infra",B("cloud")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("resources_str"),children:["Resources",B("resources_str")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("status"),children:["Status",B("status")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("used_by"),children:["Used By",B("used_by")]})]})}),(0,r.jsx)(w.RM,{children:X.length>0?X.map((e,t)=>(0,r.jsxs)(w.SC,{children:[(0,r.jsx)(w.pj,{children:e.replica_id}),(0,r.jsx)(w.pj,{children:e.launched_at&&e.launched_at>0?(0,r.jsx)(N.Zg,{date:new Date(1e3*e.launched_at)}):"-"}),(0,r.jsx)(w.pj,{children:(()=>{try{let t="".concat(e.cloud," (").concat(e.region,")"),s=j.MO.NAME_TRUNCATE_LENGTH,n=t.indexOf("(");if(-1===n)return(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud});let a=t.substring(0,n).trim(),l=t.substring(n+1,t.length-1);if(l.length<=s)return(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:a}),(0,r.jsxs)("span",{children:[" (",l,")"]})]});let c="".concat(l.substring(0,Math.floor((s-3)/2)),"...").concat(l.substring(l.length-Math.ceil((s-3)/2)));return"".concat(a," (").concat(c,")"),(0,r.jsx)(N.Md,{content:t,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:a}),(0,r.jsxs)("span",{children:[" (",c,")"]})]})})}catch(e){return"Error: ".concat(e.message)}})()}),(0,r.jsx)(w.pj,{children:(()=>{try{return e.resources_str}catch(e){return"Error: ".concat(e.message)}})()}),(0,r.jsx)(w.pj,{children:(0,r.jsx)(b.OE,{status:e.status})}),(0,r.jsx)(w.pj,{children:e.used_by?(0,r.jsxs)(o(),{href:"/jobs/".concat(e.used_by),className:"text-blue-600 hover:text-blue-800 hover:underline",children:["Job ID: ",e.used_by]}):"-"})]},e.replica_id)):(0,r.jsx)(w.SC,{children:(0,r.jsx)(w.pj,{colSpan:6,className:"text-center py-8 text-gray-500",children:D?"No workers found in this pool":"No non-failed workers found in this pool"})})})]})]}),V.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:S,onChange:e=>{T(parseInt(e.target.value,10)),A(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:20,children:"20"}),(0,r.jsx)("option",{value:50,children:"50"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[(R-1)*S+1," –"," ",Math.min(R*S,V.length)," ","of ",V.length]}),(0,r.jsx)(E.z,{variant:"ghost",size:"icon",onClick:()=>{A(e=>Math.max(e-1,1))},disabled:1===R,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(E.z,{variant:"ghost",size:"icon",onClick:()=>{A(e=>Math.min(e+1,J))},disabled:R===J,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})})]})]})]})]})}},12003:function(e,t,s){"use strict";s.d(t,{j:function(){return l}});var r=s(90512);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=r.W,l=(e,t)=>s=>{var r;if((null==t?void 0:t.variants)==null)return a(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:l,defaultVariants:c}=t,i=Object.keys(l).map(e=>{let t=null==s?void 0:s[e],r=null==c?void 0:c[e];if(null===t)return null;let a=n(t)||n(r);return l[e][a]}),o=s&&Object.entries(s).reduce((e,t)=>{let[s,r]=t;return void 0===r||(e[s]=r),e},{});return a(e,i,null==t?void 0:null===(r=t.compoundVariants)||void 0===r?void 0:r.reduce((e,t)=>{let{class:s,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,s]=e;return Array.isArray(s)?s.includes({...c,...o}[t]):({...c,...o})[t]===s})?[...e,s,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}}},function(e){e.O(0,[616,6130,5739,1272,6212,6989,3850,8969,2888,9774,179],function(){return e(e.s=38808)}),_N_E=e.O()}]);
|
|
21
|
+
*/let u=(0,s(60998).Z)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var h=s(70282),x=s(27325),m=s(45895),f=s(6639),p=s(68969),g=s(6378),N=s(36989),j=s(51214),b=s(99307),y=s(84303),v=s(1125),w=s(68764),E=s(30803);function _(){let e=(0,a.useRouter)(),{pool:t}=e.query,[s,l]=(0,n.useState)(null),[i,_]=(0,n.useState)(!1),[k,L]=(0,n.useState)(!0),[I,C]=(0,n.useState)(null),[R,A]=(0,n.useState)(1),[S,T]=(0,n.useState)(10),[D,O]=(0,n.useState)(!1),[P,M]=(0,n.useState)({key:null,direction:"ascending"}),[F,W]=(0,n.useState)(!1),[U,Y]=(0,n.useState)(!1),[Z,G]=(0,n.useState)(!1),H=n.useCallback(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(t){e?_(!0):L(!0),C(null);try{let{pools:e=[]}=await g.default.get(p.vs,[{}])||{},s=e.find(e=>e.name===t);s?l(s):(C("Pool ".concat(t," not found")),l(null))}catch(e){console.error("Error fetching pool data:",e),C("Failed to fetch pool data: ".concat(e.message)),l(null)}finally{e?_(!1):L(!1)}}},[t,_,L,C,l]);(0,n.useEffect)(()=>{H()},[t,H]);let z=e=>{let t="ascending";P.key===e&&"ascending"===P.direction&&(t="descending"),M({key:e,direction:t})},B=e=>P.key===e?"ascending"===P.direction?" ↑":" ↓":"",q=async()=>{try{if(s&&s.pool_yaml){let e=(0,y._q)(s.pool_yaml);await navigator.clipboard.writeText(e),Y(!0),setTimeout(()=>Y(!1),2e3)}}catch(e){console.error("Failed to copy Pool YAML to clipboard:",e)}},K=async()=>{try{s&&s.entrypoint&&(await navigator.clipboard.writeText(s.entrypoint),G(!0),setTimeout(()=>G(!1),2e3))}catch(e){console.error("Failed to copy entrypoint to clipboard:",e)}},{filteredWorkers:V,totalPages:J,paginatedWorkers:X}=(0,n.useMemo)(()=>{if(!s||!s.replica_info)return{filteredWorkers:[],totalPages:0,paginatedWorkers:[]};let e=D?s.replica_info:s.replica_info.filter(e=>!e.status||!e.status.includes("FAILED"));P.key&&(e=[...e].sort((e,t)=>{let s=e[P.key],r=t[P.key];return("launched_at"===P.key&&(s=s||0,r=r||0),"string"==typeof s&&(s=s.toLowerCase()),"string"==typeof r&&(r=r.toLowerCase()),s<r)?"ascending"===P.direction?-1:1:s>r?"ascending"===P.direction?1:-1:0}));let t=Math.ceil(e.length/S),r=(R-1)*S,n=r+S,a=e.slice(r,n);return{filteredWorkers:e,totalPages:t,paginatedWorkers:a}},[s,D,R,S,P]);return((0,n.useEffect)(()=>{A(1)},[D,P]),!e.isReady||k)?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsx)(d.Z,{size:32,className:"mb-3"}),(0,r.jsx)("span",{className:"text-gray-600",children:"Loading pool details..."})]})})]}):I||!s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsx)("div",{className:"bg-white shadow rounded-lg p-6",children:(0,r.jsxs)("div",{className:"text-center text-red-600",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-2",children:"Error"}),(0,r.jsx)("p",{children:I||"Pool ".concat(t," not found")}),(0,r.jsx)("button",{onClick:()=>{g.default.invalidate(p.vs,[{}]),H(!0)},className:"mt-4 bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600",children:"Retry"})]})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsxs)("title",{children:["Pool ",t," | SkyPilot Dashboard"]})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,r.jsxs)("div",{className:"text-base flex items-center",children:[(0,r.jsx)(o(),{href:"/jobs",className:"text-sky-blue hover:underline",children:"Pools"}),(0,r.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,r.jsx)(o(),{href:"/jobs/pools/".concat(t),className:"text-sky-blue hover:underline",children:t})]}),(0,r.jsxs)("div",{className:"text-sm flex items-center",children:[i&&(0,r.jsxs)("div",{className:"flex items-center mr-4",children:[(0,r.jsx)(d.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{g.default.invalidate(p.vs,[{}]),H(!0)},disabled:i,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,r.jsx)(u,{className:"w-4 h-4 mr-1.5 ".concat(i?"animate-spin":"")}),(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col space-y-6",children:[(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,r.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Details"})}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Jobs"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(0,r.jsx)(N.x9,{jobCounts:(0,N.sY)(s),getStatusStyle:b.Cl})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Workers"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(e=>{if(!e||!e.replica_info||0===e.replica_info.length)return"0 (target: 0)";let t=e.replica_info.filter(e=>"READY"===e.status).length,s=e.target_num_replicas||0;return"".concat(t," (target: ").concat(s,")")})(s)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Worker Details"}),(0,r.jsx)("div",{className:"text-base mt-1",children:(0,r.jsx)(N.Kl,{replicaInfo:s.replica_info})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Worker Resources"}),(0,r.jsx)("div",{className:"text-base mt-1",children:s.requested_resources_str||"-"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Policy"}),(0,r.jsx)("div",{className:"text-base mt-1",children:s.policy||"-"})]})]}),s.entrypoint&&(0,r.jsxs)("div",{className:"pt-4 mt-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Entrypoint"}),(0,r.jsx)(N.WH,{content:Z?"Copied!":"Copy command",className:"text-muted-foreground",children:(0,r.jsx)("button",{onClick:K,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:Z?(0,r.jsx)(h.Z,{className:"w-4 h-4 text-green-600"}):(0,r.jsx)(x.Z,{className:"w-4 h-4"})})})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3",children:(0,r.jsx)("code",{className:"text-sm text-gray-800 font-mono break-all",children:s.entrypoint})})})]}),s.pool_yaml&&s.pool_yaml.trim()&&(0,r.jsxs)("div",{className:"pt-4 mt-4",children:[(0,r.jsxs)("div",{className:"flex items-center mb-2",children:[(0,r.jsxs)("button",{onClick:()=>{W(!F)},className:"flex items-center text-left focus:outline-none text-gray-700 hover:text-gray-900 transition-colors duration-200",children:[F?(0,r.jsx)(m.Z,{className:"w-4 h-4 mr-1"}):(0,r.jsx)(f.Z,{className:"w-4 h-4 mr-1"}),(0,r.jsx)("span",{className:"text-base",children:"Show Pool YAML"})]}),(0,r.jsx)(N.WH,{content:U?"Copied!":"Copy YAML",className:"text-muted-foreground",children:(0,r.jsx)("button",{onClick:q,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:U?(0,r.jsx)(h.Z,{className:"w-4 h-4 text-green-600"}):(0,r.jsx)(x.Z,{className:"w-4 h-4"})})})]}),F&&(0,r.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 max-h-96 overflow-y-auto",children:(0,r.jsx)(v.C,{className:"whitespace-pre-wrap",children:(0,y._q)(s.pool_yaml)})})]})]})]})}),(0,r.jsxs)("div",{className:"mb-8",children:[(0,r.jsxs)("div",{className:"rounded-lg border bg-card text-card-foreground shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Pool Workers"}),(0,r.jsx)("div",{className:"flex items-center space-x-2",children:(0,r.jsxs)("label",{className:"flex items-center space-x-3 text-sm cursor-pointer",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("input",{type:"checkbox",checked:D,onChange:e=>O(e.target.checked),className:"sr-only"}),(0,r.jsx)("div",{className:"w-11 h-6 rounded-full transition-colors duration-200 ease-in-out ".concat(D?"bg-blue-600":"bg-gray-300"),children:(0,r.jsx)("div",{className:"w-5 h-5 bg-white rounded-full shadow transform transition-transform duration-200 ease-in-out translate-y-0.5 ".concat(D?"translate-x-5":"translate-x-0.5")})})]}),(0,r.jsx)("span",{className:"text-gray-700",children:"Show history"})]})})]}),(0,r.jsxs)(w.iA,{children:[(0,r.jsx)(w.xD,{children:(0,r.jsxs)(w.SC,{children:[(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("replica_id"),children:["ID",B("replica_id")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("launched_at"),children:["Launched",B("launched_at")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("cloud"),children:["Infra",B("cloud")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("resources_str"),children:["Resources",B("resources_str")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("status"),children:["Status",B("status")]}),(0,r.jsxs)(w.ss,{className:"sortable whitespace-nowrap",onClick:()=>z("used_by"),children:["Used By",B("used_by")]})]})}),(0,r.jsx)(w.RM,{children:X.length>0?X.map((e,t)=>(0,r.jsxs)(w.SC,{children:[(0,r.jsx)(w.pj,{children:e.replica_id}),(0,r.jsx)(w.pj,{children:e.launched_at&&e.launched_at>0?(0,r.jsx)(N.Zg,{date:new Date(1e3*e.launched_at)}):"-"}),(0,r.jsx)(w.pj,{children:(()=>{try{let t=e.cloud&&""!==e.cloud.trim()&&"undefined"!==e.cloud,s=e.region&&"undefined"!==e.region&&null!==e.region&&""!==e.region.trim();if(!t&&!s)return"-";let n=t?e.cloud:"Unknown",a=s?e.region:null;if(!a)return(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:n});let l="".concat(n," (").concat(a,")"),c=j.MO.NAME_TRUNCATE_LENGTH,i=l.indexOf("(");if(-1===i)return(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:n});if(a.length<=c)return(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:n}),(0,r.jsxs)("span",{children:[" (",a,")"]})]});let d="".concat(a.substring(0,Math.floor((c-3)/2)),"...").concat(a.substring(a.length-Math.ceil((c-3)/2)));return(0,r.jsx)(N.Md,{content:l,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:n}),(0,r.jsxs)("span",{children:[" (",d,")"]})]})})}catch(e){return"-"}})()}),(0,r.jsx)(w.pj,{children:(()=>{try{return e.resources_str}catch(e){return"Error: ".concat(e.message)}})()}),(0,r.jsx)(w.pj,{children:(0,r.jsx)(b.OE,{status:e.status})}),(0,r.jsx)(w.pj,{children:e.used_by?(0,r.jsxs)(o(),{href:"/jobs/".concat(e.used_by),className:"text-blue-600 hover:text-blue-800 hover:underline",children:["Job ID: ",e.used_by]}):"-"})]},e.replica_id)):(0,r.jsx)(w.SC,{children:(0,r.jsx)(w.pj,{colSpan:6,className:"text-center py-8 text-gray-500",children:D?"No workers found in this pool":"No non-failed workers found in this pool"})})})]})]}),V.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:S,onChange:e=>{T(parseInt(e.target.value,10)),A(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:20,children:"20"}),(0,r.jsx)("option",{value:50,children:"50"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[(R-1)*S+1," –"," ",Math.min(R*S,V.length)," ","of ",V.length]}),(0,r.jsx)(E.z,{variant:"ghost",size:"icon",onClick:()=>{A(e=>Math.max(e-1,1))},disabled:1===R,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(E.z,{variant:"ghost",size:"icon",onClick:()=>{A(e=>Math.min(e+1,J))},disabled:R===J,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})})]})]})]})]})}},12003:function(e,t,s){"use strict";s.d(t,{j:function(){return l}});var r=s(90512);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=r.W,l=(e,t)=>s=>{var r;if((null==t?void 0:t.variants)==null)return a(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:l,defaultVariants:c}=t,i=Object.keys(l).map(e=>{let t=null==s?void 0:s[e],r=null==c?void 0:c[e];if(null===t)return null;let a=n(t)||n(r);return l[e][a]}),o=s&&Object.entries(s).reduce((e,t)=>{let[s,r]=t;return void 0===r||(e[s]=r),e},{});return a(e,i,null==t?void 0:null===(r=t.compoundVariants)||void 0===r?void 0:r.reduce((e,t)=>{let{class:s,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,s]=e;return Array.isArray(s)?s.includes({...c,...o}[t]):({...c,...o})[t]===s})?[...e,s,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}}},function(e){e.O(0,[616,6130,5739,1272,6212,6989,3850,8969,2888,9774,179],function(){return e(e.s=38808)}),_N_E=e.O()}]);
|
sky/dashboard/out/_next/static/chunks/{webpack-339efec49c0cc7d0.js → webpack-00c0a51d21157453.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var t,e,n,r,c,o,u,a,i,f={},s={};function d(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}},r=!0;try{f[t](n,n.exports,d),r=!1}finally{r&&delete s[t]}return n.exports}d.m=f,t=[],d.O=function(e,n,r,c){if(n){c=c||0;for(var o=t.length;o>0&&t[o-1][2]>c;o--)t[o]=t[o-1];t[o]=[n,r,c];return}for(var u=1/0,o=0;o<t.length;o++){for(var n=t[o][0],r=t[o][1],c=t[o][2],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(t){return d.O[t](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){t.splice(o--,1);var f=r();void 0!==f&&(e=f)}}return e},d.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return d.d(e,{a:e}),e},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},d.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var c=Object.create(null);d.r(c);var o={};e=e||[null,n({}),n([]),n(n)];for(var u=2&r&&t;"object"==typeof u&&!~e.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},d.d(c,o),c},d.d=function(t,e){for(var n in e)d.o(e,n)&&!d.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},d.f={},d.e=function(t){return Promise.all(Object.keys(d.f).reduce(function(e,n){return d.f[n](t,e),e},[]))},d.u=function(t){return 9666===t?"static/chunks/9666.cd4273f2a5c5802c.js":
|
|
1
|
+
!function(){"use strict";var t,e,n,r,c,o,u,a,i,f={},s={};function d(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}},r=!0;try{f[t](n,n.exports,d),r=!1}finally{r&&delete s[t]}return n.exports}d.m=f,t=[],d.O=function(e,n,r,c){if(n){c=c||0;for(var o=t.length;o>0&&t[o-1][2]>c;o--)t[o]=t[o-1];t[o]=[n,r,c];return}for(var u=1/0,o=0;o<t.length;o++){for(var n=t[o][0],r=t[o][1],c=t[o][2],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(t){return d.O[t](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){t.splice(o--,1);var f=r();void 0!==f&&(e=f)}}return e},d.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return d.d(e,{a:e}),e},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},d.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var c=Object.create(null);d.r(c);var o={};e=e||[null,n({}),n([]),n(n)];for(var u=2&r&&t;"object"==typeof u&&!~e.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(e){o[e]=function(){return t[e]}});return o.default=function(){return t},d.d(c,o),c},d.d=function(t,e){for(var n in e)d.o(e,n)&&!d.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},d.f={},d.e=function(t){return Promise.all(Object.keys(d.f).reduce(function(e,n){return d.f[n](t,e),e},[]))},d.u=function(t){return 9666===t?"static/chunks/9666.cd4273f2a5c5802c.js":2369===t?"static/chunks/2369.fc20f0c2c8ed9fe7.js":3937===t?"static/chunks/3937.210053269f121201.js":9025===t?"static/chunks/9025.a1bef12d672bb66d.js":4937===t?"static/chunks/4937.a2baa2df5572a276.js":9984===t?"static/chunks/9984.c5564679e467d245.js":8252===t?"static/chunks/8252.62b0d23aed618bb2.js":9847===t?"static/chunks/9847.757720f3b40c0aa5.js":4725===t?"static/chunks/4725.29550342bd53afd8.js":691===t?"static/chunks/691.5eeedf82cc243343.js":2641===t?"static/chunks/2641.142718b6b78a6f9b.js":3785===t?"static/chunks/3785.6003d293cb83eab4.js":9360===t?"static/chunks/9360.85b0b1b4054574dd.js":"static/chunks/"+t+"-"+({616:"3d59f75e2ccf9321",1141:"a8a8f1adba34c892",1272:"1ef0bf0237faccdb",1559:"6c00e20454194859",1871:"980a395e92633a5c",3850:"ff4a9a69d978632b",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6135:"85426374db04811e",6601:"06114c982db410b6",6989:"37611fe6b86d274d",6990:"0f886f16e0d55ff8",7411:"b15471acd2cba716",8056:"5bdeda81199c0def",8969:"c9686994ddafcf01",9159:"11421c0f2909236f"})[t]+".js"},d.miniCssF=function(t){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),d.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},c="_N_E:",d.l=function(t,e,n,o){if(r[t]){r[t].push(e);return}if(void 0!==n)for(var u,a,i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var s=i[f];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(t)),r[t]=[e];var l=function(e,n){u.onerror=u.onload=null,clearTimeout(b);var c=r[t];if(delete r[t],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(t){return t(n)}),e)return e(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=l.bind(null,u.onerror),u.onload=l.bind(null,u.onload),a&&document.head.appendChild(u)},d.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(t){return d.tt().createScriptURL(t)},d.p="/dashboard/_next/",u={2272:0},d.f.j=function(t,e){var n=d.o(u,t)?u[t]:void 0;if(0!==n){if(n)e.push(n[2]);else if(2272!=t){var r=new Promise(function(e,r){n=u[t]=[e,r]});e.push(n[2]=r);var c=d.p+d.u(t),o=Error();d.l(c,function(e){if(d.o(u,t)&&(0!==(n=u[t])&&(u[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),c=e&&e.target&&e.target.src;o.message="Loading chunk "+t+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+t,t)}else u[t]=0}},d.O.j=function(t){return 0===u[t]},a=function(t,e){var n,r,c=e[0],o=e[1],a=e[2],i=0;if(c.some(function(t){return 0!==u[t]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(a)var f=a(d)}for(t&&t(e);i<c.length;i++)r=c[i],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(f)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),i.push=a.bind(null,i.push.bind(i)),d.nc=void 0}();
|