@rr0/ufoathome 0.146.1 → 0.147.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-embed-scene/rr0-scene.mjs +289 -289
- package/dist-embed-scene/sightingSchema-C5EbtAl0.js +1 -0
- package/dist-embed-sighting/rr0-sighting.mjs +296 -296
- package/dist-embed-sighting/sightingSchema-C5EbtAl0.js +1 -0
- package/dist-embed-sighting-editor/{BeamEditor-qZfCSNrr.js → BeamEditor-BHpoDP6v.js} +2 -2
- package/dist-embed-sighting-editor/BodyEditor-rPUSfhG-.js +27 -0
- package/dist-embed-sighting-editor/{InterviewEditorElement-CpK8gAgI.js → InterviewEditorElement-t69V1VkN.js} +2 -2
- package/dist-embed-sighting-editor/LanternEditor-BCc-i5j1.js +9 -0
- package/dist-embed-sighting-editor/{LaunchEditor-Dry3DiMo.js → LaunchEditor-D-1-8brV.js} +2 -2
- package/dist-embed-sighting-editor/{SightingEditorMessages_es-8tTlDrVR.js → SightingEditorMessages_es-gnJ7BSen.js} +1 -1
- package/dist-embed-sighting-editor/{SightingEditorMessages_fr-B6HG_PkP.js → SightingEditorMessages_fr-2oIyqapc.js} +1 -1
- package/dist-embed-sighting-editor/{SightingEditorMessages_it-BwIheqwp.js → SightingEditorMessages_it-CwMJTuAx.js} +1 -1
- package/dist-embed-sighting-editor/{SightingFileEditor-IEZGobI0.js → SightingFileEditor-B_d4jvL8.js} +1 -1
- package/dist-embed-sighting-editor/rr0-sighting-editor.mjs +382 -351
- package/dist-embed-sighting-editor/sightingSchema-C5EbtAl0.js +1 -0
- package/package.json +1 -1
- package/dist-embed-scene/sightingSchema-BpEpb5Vc.js +0 -1
- package/dist-embed-sighting/sightingSchema-BpEpb5Vc.js +0 -1
- package/dist-embed-sighting-editor/BodyEditor-XZ5oo20k.js +0 -27
- package/dist-embed-sighting-editor/LanternEditor-D2yl5PH3.js +0 -9
- package/dist-embed-sighting-editor/sightingSchema-BpEpb5Vc.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={basisTitle:"Come è stato ottenuto questo valore",basisField:"Base",howField:"Come",rationaleField:"Giustificazione",basisReset:"Base riportata a «dichiarata»: il valore è stato riscritto (era: {basis}).",lawSources:"Fonti: {sources}",extrapolation:"Queste leggi sono misurate su osservazioni notturne: applicarle a un'osservazione diurna è un'estrapolazione.",sectionAccountConditions:"Condizioni della testimonianza",sectionViewing:"Condizioni di visione",sectionMoon:"Calibro Luna",sectionErrorParameters:"Parametri d'errore di questo testimone",errorModelField:"Modello d'errore",delayField:"Ritardo prima di questo racconto",delayUnit:"giorni",versionField:"Versione",wordField:"Parola usata",exposureField:"Esposizione",independenceField:"Indipendenza",independentYes:"senza aver parlato con gli altri testimoni",independentNo:"dopo aver parlato con gli altri testimoni",unknownChoice:"non si sa",darkAdapted:"Adattato al buio",correctedVision:"Vista corretta (occhiali, lenti)",glare:"Luce intensa poco prima",viewingNote:"Il vetro o il parabrezza e il binocolo si impostano in «Visione» qui sopra.",moonIntro:"Il testimone mostra la Luna piena come ha mostrato l'oggetto. Il rapporto dà il suo fattore di dimensione angolare: l'unica misura che rende individuale la legge generale. Da rilevare una volta per testimone.",moonField:"Luna come mostrata",moonHint:"A braccio teso, 1 cm ≈ 1°",moonNone:"Non ancora misurata: si applica la legge generale ({law}).",moonFactor:"Fattore ×{k}: sostituisce la legge generale in tutte le dimensioni angolari di questo testimone.",moonReal:"Luna reale · 0,52°",parametersIntro:"Gli errori di uno stesso testimone sono legati: lo stesso fattore su tutte le dimensioni, lo stesso scarto su tutte le ore. Calcolati, mai scritti: nessun margine «±» si inserisce a mano.",showMore:"Mostra",basis:{measured:"◆ misurata",stated:"dichiarata",derived:"dedotta",assumed:"supposta"},how:{clock:"letta su un orologio",anchored:"ancorata a un evento datato",estimated:"stimata","shown-on-the-spot":"mostrata sul posto","arm-length-gauge":"calibro a braccio teso","recalled-object":"riferita a un oggetto noto",instrument:"strumento",landmark:"riferimento del paesaggio",occlusion:"occultazione","known-size":"dimensione nota",triangulation:"triangolazione"},status:{consolidated:"consolidata",individual:"individuale",single:"studio unico",argued:"argomentata",contested:"contestata"},laws:{timeClock:"± {minutes} min (letta su un orologio)",timeAnchored:"± {minutes} min (ancorata a un evento datato)",timeEstimated:"± {minutes} min per 9 testimoni su 10 (stimata)",duration:"da {low} a {high}: ×/÷{factor} (log-normale)",elevationOver:"da {low} a {high}: altezza sovrastimata",measuredInstrument:"± {degrees}° (misurata)",measuredLandmark:"± {degrees}° (da un riferimento)",headingCross:"da {low} a {high}: ± {degrees}°, verso talvolta invertito",sizeMoon:"da {low} a {high}: fattore ×{factor} del calibro Luna",sizeShown:"da {low} a {high}: mostrata sul posto, da +2 a +17 %",sizeRecalled:"da {low} a {high}: riferita a un oggetto noto, ~30 % troppo grande",sizeArm:"da {low} a {high}: sovrastimata da ×{from} a ×{to} a braccio teso",sizeGauge:"da {low} a {high}: calibro, ± {percent} %",distanceAnchored:"Ancorata: il suo errore segue quello di ciò da cui è dedotta",distanceNotData:"Non è un dato: sbagliata di un fattore {factor} o più senza ancoraggio"},parameterNames:{clock:"Scarto dell'orologio",date:"Scarto di data",heading:"Rotazione della direzione",elevation:"Compressione delle altezze",size:"Fattore di dimensione angolare",duration:"Fattore di durata"},parameterScopes:{clock:"tutte le ore",date:"la data",heading:"tutte le direzioni",elevation:"tutte le altezze",size:"tutte le dimensioni angolari",duration:"la durata e la scala della timeline"},parameters:{clockClock:"± {minutes} min (orologio)",clockAnchored:"± {minutes} min (ancorata)",clockEstimated:"± {minutes} min (stimata)",dateShift:"±1 giorno, mese o anno; ora legale ({percent} % delle date)",headingRotation:"± {degrees}°, specchio possibile",elevationCompression:"sovrastimate, mai sottostimate",sizeMoon:"×{factor} (calibro Luna)",sizeArm:"da ×{from} a ×{to} a braccio teso",sizeShown:"da +2 a +17 % mostrata sul posto",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"luce",object:"oggetto",craft:"velivolo",ufo:"ufo",other:"altro"},exposures:{none:"nessuna",press:"stampa",broadcast:"radio, televisione","other-witnesses":"altri testimoni",investigators:"investigatori"},models:{consolidated:"Letture consolidate (UFO@home)",keul:"Keul (dimensioni mostrate sul posto)"},candidates:{title:"Spiegazioni candidate",verdicts:{consolidated:"Compatibile con distorsioni consolidate",contested:"Solo invocando distorsioni contestate",incompatible:"Incompatibile anche ai limiti"},cost:"costo {x} σ",seeVariant:"Vedi questa variante",variantLabel:"Variante: {name}",backToAccount:"Torna al racconto",costNote:"Un costo non è una probabilità: dice quali distorsioni bisogna invocare, e di quanto.",scopeNote:"Matrice di Poher (1977) per la lista di partenza; la Luna, i pianeti, i passaggi di satelliti, i rientri, i bolidi registrati e gli aerei del tracciato sono calcolati e confrontati con il racconto.",fields:{time:"Ora",heading:"Azimut",elevation:"Altezza sull'orizzonte",size:"Larghezza apparente",duration:"Durata",sweep:"Percorso nel cielo"},biases:{clock:"scarto dell'orologio {x} min",heading:"rotazione della direzione {x}°",elevation:"altezza sovrastimata ×{x}",size:"dimensione sovrastimata ×{x}",duration:"durata stimata male ×{x}",sweep:"percorso stimato male {x}°"},reasons:{"never-seen":"Mai visibile da questo luogo nel margine dell'ora data.",direction:"Troppo lontano dalla direzione data, anche ai limiti delle leggi.",size:"Dimensione troppo diversa, anche ai limiti delle leggi.",motion:"Non si muove come dice il resoconto, e nulla fa leggere l'uno per l'altro.",growth:"Non cresce come dice il resoconto, né diventa più luminoso."},readingTitle:"Lettura",readings:{grouped:"luci lette come un solo corpo","still-seen-moving":"una luce ferma vista muoversi (effetto autocinetico, nuvole che scorrono)","moving-seen-still":"una luce in moto vista immobile (in arrivo di fronte)","brightening-as-approach":"una luminosità crescente letta come un avvicinamento"},notAgainst:"Non è un argomento contro il racconto.",noDirection:"Il racconto non colloca il fenomeno nel cielo: non c'è nulla da confrontare.",noSky:"Senza data, ora e luogo, nessun astro può essere collocato.",bodies:{Moon:"Luna",Venus:"Venere",Mars:"Marte",Jupiter:"Giove",Saturn:"Saturno"},aircraft:"Aeromobile {name}",interpretation:"Interpretazione: {name}",keepVariant:"Conserva questa variante",keptTitle:"Varianti conservate ({n})",seeKept:"Vedi",removeVariant:"Rimuovi",keptRecomputed:"ricalcolata: {verdict}, costo {x} σ",keptModel:"modello: {model}",reentry:"Rientro {name}",star:"Stella {name}",fireball:"Bolide {name}",poherLoading:"Caricamento della matrice di Poher…",poherFailed:"Non è stato possibile leggere la matrice di Poher: sono proposti solo gli astri.",poherTitle:"Secondo la matrice {version}",poherIntro:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: il loro punteggio è il giudizio di Poher, da confrontare a mano.",poherIntroRr0:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: ogni punteggio è quello di Poher, o quello di RR0 per ciò che RR0 aggiunge, con la sua ragione; da confrontare a mano.",poherVersion:"Matrice",poherVersions:{"poher-1977":"di Poher (1977)","rr0-2026":"di Poher estesa da RR0 (2026)"},poherAdded:"aggiunto da RR0",poherRr0Reason:"punteggio di RR0: {why}",poherPossible:"Possibili",poherExcluded:"Esclusi ({n})",poherExcludedBy:"escluso da: {list}",poherDoubted:"dubbio secondo stime: {list}",poherScore:"punteggio {x}",poherTag:"Poher: {state}",poherStatePossible:"possibile, punteggio {x}",poherStateExcluded:"escluso",answersTitle:"Risposte dedotte dalla registrazione ({n})",firm:"ferma",soft:"stima, da sola non esclude nulla"}},o={color:"Colore",transparency:"Trasparenza",halo:"Alone",blur:"Sfocatura",brightness:"Brillantezza",shapeTitle:"Nome",utcOffset:"Fuso orario",cloudBase:"Base delle nuvole",elevation:"Altitudine",heightAboveGround:"Altezza dal suolo",duration:"Durata",placeName:"Luogo",latitude:"Latitudine",longitude:"Longitudine",heading:"Orientamento",pitch:"Inclinazione",roll:"Rollio",sway:"Oscillazione a riposo",swayTitle:"Quanto il corpo che regge lo strumento muove la vista quando non cammina: 1 per una persona in piedi, 0 per un treppiede. Vuoto: 1 (0 se il resoconto dice che l'osservatore era paralizzato)",referenceGhosts:"Riflessi nella foto",referenceFindGhosts:"Cerca i riflessi",referenceGhostsSearching:"Ricerca…",referenceGhostsFound:"{count} riflessi trovati, ciascuno dalla parte opposta della sua luce rispetto all'asse dell'obiettivo.",referenceGhostsFoundScaled:"{count} riflessi trovati, ciascuno a {scale} volte la distanza della sua luce dall'asse dell'obiettivo.",referenceGhostsLow:"Forse {count} riflesso/i: troppo pochi per esserne sicuri.",referenceGhostsNone:"Nessun riflesso trovato: nessuna macchia debole sta dalla parte opposta di una luce rispetto a uno stesso punto.",referenceGhostsCropped:"L'asse dell'obiettivo è spostato dal centro dell'immagine: la foto è stata ritagliata.",referenceGhostsHide:"Nascondi i riflessi",referenceGhostsShow:"Mostra i riflessi",lensGlass:"Attraverso",lensGlassNone:"il solo obiettivo",lensGlassFilter:"un filtro sull'obiettivo",lensGlassWindow:"una finestra",lensGlassWindscreen:"un parabrezza",lensDrops:"Gocce sul vetro",lensDropsTitle:"Da 0 a 1: quanta parte del vetro esterno coprono le gocce d'acqua. Vuoto: secondo la pioggia o la neve che cade, salvo se il vetro è al riparo",lensCondensation:"Condensa",lensCondensationTitle:"Da 0 a 1: condensa sul vetro, come su un obiettivo passato dal caldo al freddo. Vuoto: nessuna",lensDirt:"Sporco",lensDirtTitle:"Da 0 a 1: sporco, unto o impronte sul vetro. Vuoto: nessuno",lensSheltered:"Al riparo dalla pioggia",lensShelteredTitle:"Il vetro esterno era fuori dalla pioggia o dalla neve: sotto un tetto, o dietro un parabrezza con i tergicristalli in funzione",lightPollution:"Cielo notturno",lightPollutionTitle:"Lo zenit di una notte senza Luna in questo luogo, in magnitudini per secondo d'arco quadrato, come lo legge uno Sky Quality Meter o lo dà l'atlante mondiale della brillanza artificiale del cielo (Falchi et al. 2016, lightpollutionmap.info, «SQM»). 22 è un cielo naturale; una periferia è intorno a 19, un centro città a 17. Vuoto: un cielo naturale",observationTime:"Inizio dell'osservazione",observationEndTime:"Fine dell'osservazione",assessmentGroup:"Valutazione",assessmentNames:{coverage:"Dati dell'osservatore"},assessmentVerdicts:{"hynek.nl":"NL — luce notturna","hynek.dd":"DD — disco diurno","hynek.rv":"RV — radar-visivo","hynek.ce1":"IR1 — incontro ravvicinato","hynek.ce2":"IR2 — con traccia fisica","hynek.ce3":"IR3 — con entità"},timeQualifierApproximate:"Approssimativa",timeQualifierUncertain:"Incerta",timeQualifierBoth:"Incerta e approssimativa",timeSeasonSpring:"Primavera",timeSeasonSummer:"Estate",timeSeasonAutumn:"Autunno",timeSeasonWinter:"Inverno",summaryGroups:{observation:"Osservazione",location:"Posizione",temporal:"Tempo",weather:"Meteo",sound:"Suono"},summaryGroup:"Riepilogo",summaryDescription:"Descrizione",closeDescription:"Chiudi la descrizione",observerGroup:"Osservatore",observerId:"ID",observerTitle:"Titolo",observerLastName:"Cognome",observerFirstNames:"Nomi",sightingId:"ID",tags:"Etichette",cloudCover:"Copertura nuvolosa",highCloudCover:"Nubi di ghiaccio (cirri)",focalLength:"Lunghezza focale",fieldOfView:"Campo visivo",aperture:"Apertura",exposure:"Esposizione",focusDistance:"Messa a fuoco a",iceCrystalAlignment:"Allineamento dei cristalli",rareIceCrystals:"Cristalli rari",cloudDarkness:"Oscurità delle nuvole",precipitationType:"Precipitazioni",precipitationNone:"Nessuna",precipitationRain:"Pioggia",precipitationSnow:"Neve",precipitationHail:"Grandine",precipitationIntensity:"Intensità",windDirection:"Direzione del vento",windSpeed:"Velocità del vento",storm:"Temporale",cloudsGroup:"Nuvole",precipitationGroup:"Precipitazioni",windGroup:"Vento",soundKind:"Suono",soundNone:"Nessuno (silenzioso)",soundHum:"Ronzio",soundWhistle:"Fischio",soundRumble:"Rombo",soundCrackle:"Crepitio",soundVolume:"Volume",soundPitch:"Tono",soundSrc:"Registrazione",instrument:"Osservato con",filter:"Davanti",filterNone:"niente",filterSolarVisual:"un filtro solare per l'occhio (occhiali da eclissi, densità 5)",filterSolarPhoto:"una pellicola solare per fotocamera (densità 3,8)",decorAircraft:"Aeromobile",decorEntity:"Essere",decorAltitude:"Altitudine",decorLights:"Luci",decorLightsNone:"nessuna",decor:"Ambiente",decorBuilding:"Edificio",decorTree:"Albero",decorShrub:"Cespuglio",decorBridge:"Ponte",decorWire:"Linea aerea",decorCrop:"Filare di coltura",decorTerrace:"Terrazzamento",decorMound:"Mucchio di pietre",decorWall:"Muretto a secco",decorStreetlight:"Lampione",decorTrafficLight:"Semaforo",decorCrossing:"Attraversamento pedonale",decorRoadSign:"Segnale stradale",decorVehicle:"Veicolo",decorObserver:"Altro osservatore",decorEast:"Distanza a est",decorNorth:"Distanza a nord",decorHeading:"Orientamento",decorColor:"Colore",decorLit:"Acceso",decorTitle:"Nome",milestones:"Momenti",milestoneLabel:"Etichetta",milestoneNote:"Cosa succede",addMilestone:"Dai un nome a questo momento",deleteMilestone:"Elimina momento",goToMilestone:"Vai a questo momento",decorWidth:"Larghezza",decorLength:"Lunghezza",decorHeight:"Altezza",decorModel:"Modello 3D",decorModelAdvanced:"Modello da un indirizzo",decorModelUrl:"Indirizzo glTF/GLB",decorModelTitle:"Nome del modello",decorModelAuthor:"Autore",decorModelLicense:"Licenza",decorModelSource:"Provenienza",decorObserverSide:"Posizione dell'osservatore",decorObserverSideNone:"Non presente",decorSideFront:"Davanti",decorSideBehind:"Dietro",decorSideLeft:"Sinistra",decorSideRight:"Destra",decorSideFrontLeft:"Davanti a sinistra",decorSideFrontRight:"Davanti a destra",decorSideBehindLeft:"Dietro a sinistra",decorSideBehindRight:"Dietro a destra"},a={...o,oval:"Ovale",polygon:"Poligono",modelTriangle:"Triangolo",modelSaucer:"Disco volante",modelCigar:"Sigaro",modelChevron:"Chevron",modelLight:"Luce",modelPartDisc:"disco",modelPartDome:"cupola",addVertex:"Aggiungi vertice",deleteVertex:"Elimina vertice",notAPolygon:"Seleziona una sola forma poligonale",tooFewVertices:"Una forma ha bisogno di almeno 3 punti",shape:"Forma",apparentWidth:"Larghezza apparente",realWidth:"Larghezza reale",distance:"Distanza",shapeRotation:"Rotazione",shapeRotationTitle:"Di quanto la forma è ruotata nel disegno, in senso orario, in gradi: ciò che regola la sua maniglia di rotazione",sizeLock:"Mantieni",lockNone:"niente",lockApparent:"la larghezza apparente",lockReal:"la larghezza reale",lockDistance:"la distanza",apparentSize:"{moons}× la Luna",utcOffsetPlaceholder:"dalla longitudine",realSizeBetween:"La scena delimita quella larghezza: tra {min} e {max} m, in base a ciò che attraversa",realSizeAtLeast:"La scena delimita quella larghezza: almeno {min} m, in base a ciò dietro cui passa",realSizeAtMost:"La scena delimita quella larghezza: al massimo {max} m, in base a ciò davanti a cui passa",realSizeUnknown:"Nulla nella scena delimita quella larghezza: è solo ciò che la distanza implica",realSizeOutside:" — la larghezza qui sopra ne è fuori",blurBound:"Sfocato attraverso questo obiettivo: più vicino di {max} m",blurBoundNoInstrument:"La sfocatura a occhio nudo non delimita alcuna distanza — un occhio non ha un diaframma con cui andare fuori fuoco",blurBoundNotAtInfinity:"La sfocatura delimita una distanza solo per un obiettivo messo a fuoco all'infinito: questo è a fuoco a {focus} m, il che sfoca da entrambi i lati",realSizeContradiction:"Contraddizione: gli attraversamenti dichiarati non possono essere tutti veri",realDistanceHere:" — cioè qui tra {min} e {max} m",clearDistanceHypothesis:"Ritira l'ipotesi di distanza",clearDistanceHypothesisTitle:"Torna a ciò che la registrazione stabilisce",depthStated:"Disegnato a {m} m, come dichiara la registrazione",depthHypothesis:"Disegnato a {m} m: la tua ipotesi — ciò che la scenografia ne nasconde è ciò che perderebbe una cosa così lontana",depthDerived:"Disegnato a {m} m, in base alla camminata stessa dell'osservatore",depthBounded:"Disegnato a {m} m, in base a ciò dietro e davanti a cui passa",depthConventional:"Disegnato a {m} m per convenzione: nulla nella registrazione stabilisce una distanza",addShape:"Aggiungi forma",deleteShape:"Elimina forma",play:"Riproduci",pause:"Pausa",noDuration:"Nessuna durata di osservazione",previousKeyframe:"Fotogramma chiave precedente",nextKeyframe:"Fotogramma chiave successivo",keyframeMark:"Fotogramma chiave",shapesTrack:"forme",observerTrack:"osservatore",weatherTrack:"meteo",soundTrack:"suono",group:"Raggruppa",ungroup:"Separa",duplicate:"Duplica",bringToFront:"Porta in primo piano",sendToBack:"Porta in fondo",contextMenuDelete:"Elimina",onlyOneShape:"C'è una sola forma",alreadyAtFront:"Questa forma è già in primo piano",alreadyAtBack:"Questa forma è già in fondo",needTwoShapesToGroup:"Seleziona almeno due forme per raggrupparle",notGrouped:"Questa forma non fa parte di un gruppo",multipleShapesSelected:"Più forme selezionate — selezionane una sola per modificare questo",samplingRate:"Frequenza di campionamento",currentPosition:"Posizione attuale",switchToElapsed:"clicca per mostrare il tempo trascorso",switchToClockTime:"clicca per mostrare l'ora del giorno",durationPlaceholder:"durata dell'osservazione",durationImprecise:"Queste date non determinano con sufficiente precisione una durata — inseriscila manualmente.",export:"Salva",frozenTitle:"Dati congelati",frozenHint:"Ciò che la scena chiederebbe altrimenti a terzi a ogni riproduzione (rilievo, foto del suolo, strade, acqua, ferrovie, alta atmosfera), rilevato al salvataggio e conservato in file accanto alla registrazione, perché si riproduca uguale senza chiedere nulla a nessuno.",frozenLive:"Interrogare le fonti a ogni riproduzione (non congelare nulla)",frozenRelief:"Rilievo",frozenImagery:"Foto del suolo",frozenRoads:"Strade",frozenWater:"Acqua",frozenRailways:"Ferrovie",frozenUpperAir:"Alta atmosfera",frozenMap:"Foto della mappa",fileItemRecording:"Registrazione",fileItemWeather:"Meteo",fileItemPlace:"Luogo",fileItemLightPollution:"Inquinamento luminoso",fileItemDecor:"Scenografia",weatherStatedByObserver:"come l'ha data l'osservatore",annexSource:"File",annexStorageInline:"dentro la registrazione stessa",annexEditorLabel:"L'allegato come testo JSON",annexUnreadable:"Questo file non è un allegato di questo tipo: non è cambiato nulla.",frozenTakenOn:"rilevato il {date}",frozenPending:"rilevato al salvataggio",frozenLiveState:"chiesto in diretta",frozenRefresh:"Aggiorna",frozenTaking:"Rilevamento: {group}… {done}/{of}",frozenFailed:"{group}: la fonte non ha risposto, nulla è stato rilevato.",frozenMissing:"{file} illeggibile: lasciato fuori dall'archivio.",frozenExported:"Salvato con {count} allegati ({size}), in un archivio da decomprimere dove la registrazione è pubblicata.",identityHint:"Nomina qualcuno solo se vi ha acconsentito o ha pubblicato lui stesso la propria testimonianza; altrimenti bastano le iniziali.",identityAsk:"Questa registrazione nomina o colloca una persona. Rispondi di ciò che pubblichi: nomina qualcuno solo se vi ha acconsentito, o se ha pubblicato lui stesso la propria testimonianza. Altrimenti bastano le iniziali.",identityLastName:"Cognome: {value}",identityFirstNames:"Nome: {value}",identityNameInId:"Nome in un identificativo: {value}",identityNameInText:"Nome nel testo: {value}",identityAddress:"Indirizzo: {value}",identityEmail:"Indirizzo e-mail: {value}",identityPhone:"Numero di telefono: {value}",identityInitials:"Sostituisci con le iniziali",identityKeep:"Salva comunque",identityBack:"Torna indietro",importFile:"Carica un file di osservazione",paramSummaryTitle:"Ciò che indica la registrazione ({n})",wholeKeyframes:"Ogni fotogramma chiave per intero",wholeKeyframesHint:"Altrimenti un fotogramma chiave dice solo ciò che è cambiato dal precedente, come si scrive una registrazione a mano. Cambiare questa scelta svuota la cronologia di annullamento.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"dal proprio disco",inputFileFromUrl:"da un indirizzo",inputFileModeHint:"Fare clic per darlo nell'altro modo: un proprio file o un indirizzo",inputFileLoad:"Carica",importError:"Impossibile caricare questa registrazione — controlla il file o l'URL e riprova.",importErrorCors:`Questo indirizzo risponde, ma il browser non ha il permesso di leggerlo da questa pagina. Il file in sé va bene: è il suo server che deve inviarlo con l'intestazione "Access-Control-Allow-Origin: *". Se il server non è tuo, è questo che devi chiedere al suo amministratore.`,importErrorMixedContent:"Una pagina sicura non può caricare un indirizzo che inizia con http://. Usa https:// se quel server lo offre.",importErrorUnreachable:"Nulla ha risposto a questo indirizzo. Controlla come è scritto e di essere connesso.",importErrorStatus:"Quel server ha risposto con un errore ({status}). Probabilmente l'indirizzo è sbagliato o il file è stato spostato.",importErrorMalformed:"Questo indirizzo ha risposto, ma ciò che è tornato non è una registrazione.",formatVersionError:"Questo file indica la versione {found} del suo formato; questo UFO@home legge fino alla versione {supported}. Lo apra con un UFO@home più recente.",record:"Registra",stop:"Ferma",according:"secondo",sourceElevation:"Rilievo",sourceImagery:"Immagini",sourceAircraft:"Traffico aereo",sourceFile:"File",sourceKind:"Dati",placeNamePlaceholder:"Valensole, Francia",searchPlace:"Localizza",placeMatch:"Corrispondenze",placeSearching:"Ricerca del luogo…",placeMatchFound:"luogo trovato",placeMatchesFound:"luoghi trovati",placeNotFound:"Nessun luogo con questo nome",placeSearchFailed:"Ricerca dei luoghi momentaneamente non disponibile",utcOffsetNoZone:"Nessun fuso indica questo scarto quel giorno",utcOffsetImplausible:"Questo fuso orario non corrisponde alla longitudine inserita, la cui ora solare è UTC{solar} — eppure la scena e il rilevamento meteo obbediscono a ciò che è dichiarato qui. Svuota il campo per ricavarlo dalla longitudine.",timeZoneManual:"sconosciuto",altitudeAboveSeaLevel:"Altitudine dell'osservatore sul livello del mare — il suolo del luogo inserito ne fissa il minimo: un osservatore sulle Alpi non è a 0 m.",groundAt:"suolo a {m} m",headingPlaceholder:"sconosciuto",edtfInvalid:"Data/ora EDTF non valida (es. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-GGThh:mm[?~%] o hh:mm",observationTimeHint:"EDTF — es. 1965-07-01T05:00, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:00 se la data non è nota",observationEndTimeHint:"EDTF — es. 1965-07-01T05:10, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:10 se la data non è nota",presetsGroupLabel:"Forma dell'UFO",description:"Descrizione",tagsPlaceholder:"separati da virgole",weather:"Meteo",shapeGroup:"Fenomeno",shapesSubgroup:"Forme",bodiesSubgroup:"Corpi",launchesSubgroup:"Lanci",sky:"Cielo",dataSources:"Fonti dei dati",beamsSubgroup:"Fasci",lanternsSubgroup:"Lanterne",soundGroup:"Suono",close:"Chiudi",editorKicker:"Editor di avvistamento",witnessError:e,expandTracks:"Espandi le tracce",collapseTracks:"Comprimi le tracce",addKeyframeHere:"Aggiungi un fotogramma chiave qui",keyframeHere:"Qui c'è un fotogramma chiave: modificarlo lo cambia",overlayHorizon:"Orizzonte · inclinazione {deg}°",overlayFov:"Campo visivo {v}° × {h}°",overlayWind:"Soffia verso {point} · {speed} m/s",sectionIdentity:"Identità",sectionProfile:"Profilo",sectionTestimony:"Testimonianza",sectionVision:"Visione",sectionPerception:"Percezione",sectionCoordinates:"Coordinate",sectionGaze:"Sguardo",sectionNightSky:"Cielo notturno",sectionPeriod:"Periodo",sectionSurvey:"Scenario da un rilievo",sectionHeard:"Ciò che è stato udito",sectionSoundRecording:"Registrazione",sectionPicture:"Foto",sectionPose:"Posa",sectionAppearance:"Aspetto",sectionSize:"Dimensioni e distanza",sectionPath:"Traiettoria",moreSettings:"Altre impostazioni ({n})",lessSettings:"Meno impostazioni",showSettings:"Mostra ({n} impostazioni)",showSettingsOne:"Mostra (1 impostazione)",showSettingsAny:"Mostra",hideSettings:"Nascondi",save:"Salva",stateNew:"Nuova registrazione",panelIntroObservation:"Cosa è successo, in poche righe, e cosa resta da completare.",panelIntroObserver:"Chi ha visto, e con cosa. Ogni osservatore ha il proprio punto di vista nella scena.",panelIntroLocation:"Da dove guardava l'osservatore, e in quale direzione.",panelIntroTemporal:"Quando è iniziato, quanto è durato, e i momenti del racconto.",panelIntroDecor:"Ciò che circondava l'osservatore: veicoli, edifici, vegetazione.",panelIntroWeather:"Il tempo che faceva, e ciò che attraversava il cielo senza essere il fenomeno: lanci, fasci.",panelIntroShape:"Ciò che è stato visto, disegnato nella scena dal punto di vista dell'osservatore.",panelIntroSound:"Ciò che è stato udito.",panelIntroReference:"Foto e schizzi, allineati alla scena per confrontarla.",panelIntroFile:"La registrazione completa, da salvare o ricaricare.",temporalGroup:"Data",fileGroup:"File",fileLoading:"Caricamento dell'editor…",weatherEditedAsk:"Questa modifica tocca il meteo, un dato letto dinamicamente da {source}. Vuoi smettere di leggerlo da {source}?",weatherEditedStop:"Smetti di leggerlo",weatherEditedKeep:"Continua a leggerlo (annulla la mia modifica)",fileEditorLabel:"La registrazione come testo JSON",fileSearchPhrases:{Find:"Cerca",Replace:"Sostituisci",next:"successivo",previous:"precedente",all:"tutti","match case":"maiuscole","by word":"parola intera",regexp:"regexp",replace:"sostituisci","replace all":"sostituisci tutto",close:"chiudi","current match":"corrispondenza corrente","on line":"alla riga","replaced $ matches":"$ corrispondenze sostituite","replaced match on line $":"corrispondenza sostituita alla riga $","Go to line":"Vai alla riga",go:"vai"},timeQualifierExact:"Esatta",durationPrecise:"precisa",durationIso:"imprecisa",durationModeTitle:"Dire la durata esattamente, o come è stata enunciata: circa, tra due durate",durationInvalid:"Non è una durata: PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Che cosa accetta il testo (EDTF)",durationHelpLines:`PT45S — 45 secondi
|
|
1
|
+
const e={basisTitle:"Come è stato ottenuto questo valore",basisField:"Base",howField:"Come",rationaleField:"Giustificazione",basisReset:"Base riportata a «dichiarata»: il valore è stato riscritto (era: {basis}).",lawSources:"Fonti: {sources}",extrapolation:"Queste leggi sono misurate su osservazioni notturne: applicarle a un'osservazione diurna è un'estrapolazione.",sectionAccountConditions:"Condizioni della testimonianza",sectionViewing:"Condizioni di visione",sectionMoon:"Calibro Luna",sectionErrorParameters:"Parametri d'errore di questo testimone",errorModelField:"Modello d'errore",delayField:"Ritardo prima di questo racconto",delayUnit:"giorni",versionField:"Versione",wordField:"Parola usata",exposureField:"Esposizione",independenceField:"Indipendenza",independentYes:"senza aver parlato con gli altri testimoni",independentNo:"dopo aver parlato con gli altri testimoni",unknownChoice:"non si sa",darkAdapted:"Adattato al buio",correctedVision:"Vista corretta (occhiali, lenti)",glare:"Luce intensa poco prima",viewingNote:"Il vetro o il parabrezza e il binocolo si impostano in «Visione» qui sopra.",moonIntro:"Il testimone mostra la Luna piena come ha mostrato l'oggetto. Il rapporto dà il suo fattore di dimensione angolare: l'unica misura che rende individuale la legge generale. Da rilevare una volta per testimone.",moonField:"Luna come mostrata",moonHint:"A braccio teso, 1 cm ≈ 1°",moonNone:"Non ancora misurata: si applica la legge generale ({law}).",moonFactor:"Fattore ×{k}: sostituisce la legge generale in tutte le dimensioni angolari di questo testimone.",moonReal:"Luna reale · 0,52°",parametersIntro:"Gli errori di uno stesso testimone sono legati: lo stesso fattore su tutte le dimensioni, lo stesso scarto su tutte le ore. Calcolati, mai scritti: nessun margine «±» si inserisce a mano.",showMore:"Mostra",basis:{measured:"◆ misurata",stated:"dichiarata",derived:"dedotta",assumed:"supposta"},how:{clock:"letta su un orologio",anchored:"ancorata a un evento datato",estimated:"stimata","shown-on-the-spot":"mostrata sul posto","arm-length-gauge":"calibro a braccio teso","recalled-object":"riferita a un oggetto noto",instrument:"strumento",landmark:"riferimento del paesaggio",occlusion:"occultazione","known-size":"dimensione nota",triangulation:"triangolazione"},status:{consolidated:"consolidata",individual:"individuale",single:"studio unico",argued:"argomentata",contested:"contestata"},laws:{timeClock:"± {minutes} min (letta su un orologio)",timeAnchored:"± {minutes} min (ancorata a un evento datato)",timeEstimated:"± {minutes} min per 9 testimoni su 10 (stimata)",duration:"da {low} a {high}: ×/÷{factor} (log-normale)",elevationOver:"da {low} a {high}: altezza sovrastimata",measuredInstrument:"± {degrees}° (misurata)",measuredLandmark:"± {degrees}° (da un riferimento)",headingCross:"da {low} a {high}: ± {degrees}°, verso talvolta invertito",sizeMoon:"da {low} a {high}: fattore ×{factor} del calibro Luna",sizeShown:"da {low} a {high}: mostrata sul posto, da +2 a +17 %",sizeRecalled:"da {low} a {high}: riferita a un oggetto noto, ~30 % troppo grande",sizeArm:"da {low} a {high}: sovrastimata da ×{from} a ×{to} a braccio teso",sizeGauge:"da {low} a {high}: calibro, ± {percent} %",distanceAnchored:"Ancorata: il suo errore segue quello di ciò da cui è dedotta",distanceNotData:"Non è un dato: sbagliata di un fattore {factor} o più senza ancoraggio"},parameterNames:{clock:"Scarto dell'orologio",date:"Scarto di data",heading:"Rotazione della direzione",elevation:"Compressione delle altezze",size:"Fattore di dimensione angolare",duration:"Fattore di durata"},parameterScopes:{clock:"tutte le ore",date:"la data",heading:"tutte le direzioni",elevation:"tutte le altezze",size:"tutte le dimensioni angolari",duration:"la durata e la scala della timeline"},parameters:{clockClock:"± {minutes} min (orologio)",clockAnchored:"± {minutes} min (ancorata)",clockEstimated:"± {minutes} min (stimata)",dateShift:"±1 giorno, mese o anno; ora legale ({percent} % delle date)",headingRotation:"± {degrees}°, specchio possibile",elevationCompression:"sovrastimate, mai sottostimate",sizeMoon:"×{factor} (calibro Luna)",sizeArm:"da ×{from} a ×{to} a braccio teso",sizeShown:"da +2 a +17 % mostrata sul posto",durationFactor:"×/÷{factor} (log-normale)"},words:{light:"luce",object:"oggetto",craft:"velivolo",ufo:"ufo",other:"altro"},exposures:{none:"nessuna",press:"stampa",broadcast:"radio, televisione","other-witnesses":"altri testimoni",investigators:"investigatori"},models:{consolidated:"Letture consolidate (UFO@home)",keul:"Keul (dimensioni mostrate sul posto)"},candidates:{title:"Spiegazioni candidate",verdicts:{consolidated:"Compatibile con distorsioni consolidate",contested:"Solo invocando distorsioni contestate",incompatible:"Incompatibile anche ai limiti"},cost:"costo {x} σ",seeVariant:"Vedi questa variante",variantLabel:"Variante: {name}",backToAccount:"Torna al racconto",costNote:"Un costo non è una probabilità: dice quali distorsioni bisogna invocare, e di quanto.",scopeNote:"Matrice di Poher (1977) per la lista di partenza; la Luna, i pianeti, i passaggi di satelliti, i rientri, i bolidi registrati e gli aerei del tracciato sono calcolati e confrontati con il racconto.",fields:{time:"Ora",heading:"Azimut",elevation:"Altezza sull'orizzonte",size:"Larghezza apparente",duration:"Durata",sweep:"Percorso nel cielo"},biases:{clock:"scarto dell'orologio {x} min",heading:"rotazione della direzione {x}°",elevation:"altezza sovrastimata ×{x}",size:"dimensione sovrastimata ×{x}",duration:"durata stimata male ×{x}",sweep:"percorso stimato male {x}°"},reasons:{"never-seen":"Mai visibile da questo luogo nel margine dell'ora data.",direction:"Troppo lontano dalla direzione data, anche ai limiti delle leggi.",size:"Dimensione troppo diversa, anche ai limiti delle leggi.",motion:"Non si muove come dice il resoconto, e nulla fa leggere l'uno per l'altro.",growth:"Non cresce come dice il resoconto, né diventa più luminoso."},readingTitle:"Lettura",readings:{grouped:"luci lette come un solo corpo","still-seen-moving":"una luce ferma vista muoversi (effetto autocinetico, nuvole che scorrono)","moving-seen-still":"una luce in moto vista immobile (in arrivo di fronte)","brightening-as-approach":"una luminosità crescente letta come un avvicinamento"},notAgainst:"Non è un argomento contro il racconto.",noDirection:"Il racconto non colloca il fenomeno nel cielo: non c'è nulla da confrontare.",noSky:"Senza data, ora e luogo, nessun astro può essere collocato.",bodies:{Moon:"Luna",Venus:"Venere",Mars:"Marte",Jupiter:"Giove",Saturn:"Saturno"},aircraft:"Aeromobile {name}",interpretation:"Interpretazione: {name}",keepVariant:"Conserva questa variante",keptTitle:"Varianti conservate ({n})",seeKept:"Vedi",removeVariant:"Rimuovi",keptRecomputed:"ricalcolata: {verdict}, costo {x} σ",keptModel:"modello: {model}",reentry:"Rientro {name}",star:"Stella {name}",fireball:"Bolide {name}",poherLoading:"Caricamento della matrice di Poher…",poherFailed:"Non è stato possibile leggere la matrice di Poher: sono proposti solo gli astri.",poherTitle:"Secondo la matrice {version}",poherIntro:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: il loro punteggio è il giudizio di Poher, da confrontare a mano.",poherIntroRr0:"Gli altri fenomeni noti della matrice, senza traiettoria calcolata qui: ogni punteggio è quello di Poher, o quello di RR0 per ciò che RR0 aggiunge, con la sua ragione; da confrontare a mano.",poherVersion:"Matrice",poherVersions:{"poher-1977":"di Poher (1977)","rr0-2026":"di Poher estesa da RR0 (2026)"},poherAdded:"aggiunto da RR0",poherRr0Reason:"punteggio di RR0: {why}",poherPossible:"Possibili",poherExcluded:"Esclusi ({n})",poherExcludedBy:"escluso da: {list}",poherDoubted:"dubbio secondo stime: {list}",poherScore:"punteggio {x}",poherTag:"Poher: {state}",poherStatePossible:"possibile, punteggio {x}",poherStateExcluded:"escluso",answersTitle:"Risposte dedotte dalla registrazione ({n})",firm:"ferma",soft:"stima, da sola non esclude nulla"}},o={color:"Colore",transparency:"Trasparenza",halo:"Alone",blur:"Sfocatura",brightness:"Brillantezza",shapeTitle:"Nome",utcOffset:"Fuso orario",cloudBase:"Base delle nuvole",elevation:"Altitudine",heightAboveGround:"Altezza dal suolo",duration:"Durata",placeName:"Luogo",latitude:"Latitudine",longitude:"Longitudine",heading:"Orientamento",pitch:"Inclinazione",roll:"Rollio",sway:"Oscillazione a riposo",swayTitle:"Quanto il corpo che regge lo strumento muove la vista quando non cammina: 1 per una persona in piedi, 0 per un treppiede. Vuoto: 1 (0 se il resoconto dice che l'osservatore era paralizzato)",referenceGhosts:"Riflessi nella foto",referenceFindGhosts:"Cerca i riflessi",referenceGhostsSearching:"Ricerca…",referenceGhostsFound:"{count} riflessi trovati, ciascuno dalla parte opposta della sua luce rispetto all'asse dell'obiettivo.",referenceGhostsFoundScaled:"{count} riflessi trovati, ciascuno a {scale} volte la distanza della sua luce dall'asse dell'obiettivo.",referenceGhostsLow:"Forse {count} riflesso/i: troppo pochi per esserne sicuri.",referenceGhostsNone:"Nessun riflesso trovato: nessuna macchia debole sta dalla parte opposta di una luce rispetto a uno stesso punto.",referenceGhostsCropped:"L'asse dell'obiettivo è spostato dal centro dell'immagine: la foto è stata ritagliata.",referenceGhostsHide:"Nascondi i riflessi",referenceGhostsShow:"Mostra i riflessi",lensGlass:"Attraverso",lensGlassNone:"il solo obiettivo",lensGlassFilter:"un filtro sull'obiettivo",lensGlassWindow:"una finestra",lensGlassWindscreen:"un parabrezza",lensDrops:"Gocce sul vetro",lensDropsTitle:"Da 0 a 1: quanta parte del vetro esterno coprono le gocce d'acqua. Vuoto: secondo la pioggia o la neve che cade, salvo se il vetro è al riparo",lensCondensation:"Condensa",lensCondensationTitle:"Da 0 a 1: condensa sul vetro, come su un obiettivo passato dal caldo al freddo. Vuoto: nessuna",lensDirt:"Sporco",lensDirtTitle:"Da 0 a 1: sporco, unto o impronte sul vetro. Vuoto: nessuno",lensSheltered:"Al riparo dalla pioggia",lensShelteredTitle:"Il vetro esterno era fuori dalla pioggia o dalla neve: sotto un tetto, o dietro un parabrezza con i tergicristalli in funzione",lightPollution:"Cielo notturno",lightPollutionTitle:"Lo zenit di una notte senza Luna in questo luogo, in magnitudini per secondo d'arco quadrato, come lo legge uno Sky Quality Meter o lo dà l'atlante mondiale della brillanza artificiale del cielo (Falchi et al. 2016, lightpollutionmap.info, «SQM»). 22 è un cielo naturale; una periferia è intorno a 19, un centro città a 17. Vuoto: un cielo naturale",observationTime:"Inizio dell'osservazione",observationEndTime:"Fine dell'osservazione",assessmentGroup:"Valutazione",assessmentNames:{coverage:"Dati dell'osservatore"},assessmentVerdicts:{"hynek.nl":"NL — luce notturna","hynek.dd":"DD — disco diurno","hynek.rv":"RV — radar-visivo","hynek.ce1":"IR1 — incontro ravvicinato","hynek.ce2":"IR2 — con traccia fisica","hynek.ce3":"IR3 — con entità"},timeQualifierApproximate:"Approssimativa",timeQualifierUncertain:"Incerta",timeQualifierBoth:"Incerta e approssimativa",timeSeasonSpring:"Primavera",timeSeasonSummer:"Estate",timeSeasonAutumn:"Autunno",timeSeasonWinter:"Inverno",summaryGroups:{observation:"Osservazione",location:"Posizione",temporal:"Tempo",weather:"Meteo",sound:"Suono"},summaryGroup:"Riepilogo",summaryDescription:"Descrizione",closeDescription:"Chiudi la descrizione",observerGroup:"Osservatore",observerId:"ID",observerTitle:"Titolo",observerLastName:"Cognome",observerFirstNames:"Nomi",sightingId:"ID",tags:"Etichette",cloudCover:"Copertura nuvolosa",highCloudCover:"Nubi di ghiaccio (cirri)",focalLength:"Lunghezza focale",fieldOfView:"Campo visivo",aperture:"Apertura",exposure:"Esposizione",focusDistance:"Messa a fuoco a",iceCrystalAlignment:"Allineamento dei cristalli",rareIceCrystals:"Cristalli rari",cloudDarkness:"Oscurità delle nuvole",precipitationType:"Precipitazioni",precipitationNone:"Nessuna",precipitationRain:"Pioggia",precipitationSnow:"Neve",precipitationHail:"Grandine",precipitationIntensity:"Intensità",windDirection:"Direzione del vento",windSpeed:"Velocità del vento",storm:"Temporale",cloudsGroup:"Nuvole",precipitationGroup:"Precipitazioni",windGroup:"Vento",soundKind:"Suono",soundNone:"Nessuno (silenzioso)",soundHum:"Ronzio",soundWhistle:"Fischio",soundRumble:"Rombo",soundCrackle:"Crepitio",soundVolume:"Volume",soundPitch:"Tono",soundSrc:"Registrazione",instrument:"Osservato con",filter:"Davanti",filterNone:"niente",filterSolarVisual:"un filtro solare per l'occhio (occhiali da eclissi, densità 5)",filterSolarPhoto:"una pellicola solare per fotocamera (densità 3,8)",decorAircraft:"Aeromobile",decorEntity:"Essere",decorAltitude:"Altitudine",decorLights:"Luci",decorLightsNone:"nessuna",decor:"Ambiente",decorBuilding:"Edificio",decorTree:"Albero",decorShrub:"Cespuglio",decorBridge:"Ponte",decorWire:"Linea aerea",decorCrop:"Filare di coltura",decorTerrace:"Terrazzamento",decorMound:"Mucchio di pietre",decorWall:"Muretto a secco",decorStreetlight:"Lampione",decorTrafficLight:"Semaforo",decorCrossing:"Attraversamento pedonale",decorRoadSign:"Segnale stradale",decorVehicle:"Veicolo",decorObserver:"Altro osservatore",decorEast:"Distanza a est",decorNorth:"Distanza a nord",decorHeading:"Orientamento",decorColor:"Colore",decorLit:"Acceso",decorTitle:"Nome",milestones:"Momenti",milestoneLabel:"Etichetta",milestoneNote:"Cosa succede",addMilestone:"Dai un nome a questo momento",deleteMilestone:"Elimina momento",goToMilestone:"Vai a questo momento",decorWidth:"Larghezza",decorLength:"Lunghezza",decorHeight:"Altezza",decorModel:"Modello 3D",decorModelAdvanced:"Modello da un indirizzo",decorModelUrl:"Indirizzo glTF/GLB",decorModelTitle:"Nome del modello",decorModelAuthor:"Autore",decorModelLicense:"Licenza",decorModelSource:"Provenienza",decorObserverSide:"Posizione dell'osservatore",decorObserverSideNone:"Non presente",decorSideFront:"Davanti",decorSideBehind:"Dietro",decorSideLeft:"Sinistra",decorSideRight:"Destra",decorSideFrontLeft:"Davanti a sinistra",decorSideFrontRight:"Davanti a destra",decorSideBehindLeft:"Dietro a sinistra",decorSideBehindRight:"Dietro a destra"},a={...o,oval:"Ovale",polygon:"Poligono",modelTriangle:"Triangolo",modelSaucer:"Disco volante",modelCigar:"Sigaro",modelChevron:"Chevron",modelLight:"Luce",modelPartDisc:"disco",modelPartDome:"cupola",addVertex:"Aggiungi vertice",deleteVertex:"Elimina vertice",notAPolygon:"Seleziona una sola forma poligonale",tooFewVertices:"Una forma ha bisogno di almeno 3 punti",shape:"Forma",apparentWidth:"Larghezza apparente",realWidth:"Larghezza reale",distance:"Distanza",shapeRotation:"Rotazione",shapeRotationTitle:"Di quanto la forma è ruotata nel disegno, in senso orario, in gradi: ciò che regola la sua maniglia di rotazione",sizeLock:"Mantieni",lockNone:"niente",lockApparent:"la larghezza apparente",lockReal:"la larghezza reale",lockDistance:"la distanza",apparentSize:"{moons}× la Luna",utcOffsetPlaceholder:"dalla longitudine",realSizeBetween:"La scena delimita quella larghezza: tra {min} e {max} m, in base a ciò che attraversa",realSizeAtLeast:"La scena delimita quella larghezza: almeno {min} m, in base a ciò dietro cui passa",realSizeAtMost:"La scena delimita quella larghezza: al massimo {max} m, in base a ciò davanti a cui passa",realSizeUnknown:"Nulla nella scena delimita quella larghezza: è solo ciò che la distanza implica",realSizeOutside:" — la larghezza qui sopra ne è fuori",blurBound:"Sfocato attraverso questo obiettivo: più vicino di {max} m",blurBoundNoInstrument:"La sfocatura a occhio nudo non delimita alcuna distanza — un occhio non ha un diaframma con cui andare fuori fuoco",blurBoundNotAtInfinity:"La sfocatura delimita una distanza solo per un obiettivo messo a fuoco all'infinito: questo è a fuoco a {focus} m, il che sfoca da entrambi i lati",realSizeContradiction:"Contraddizione: gli attraversamenti dichiarati non possono essere tutti veri",realDistanceHere:" — cioè qui tra {min} e {max} m",clearDistanceHypothesis:"Ritira l'ipotesi di distanza",clearDistanceHypothesisTitle:"Torna a ciò che la registrazione stabilisce",depthStated:"Disegnato a {m} m, come dichiara la registrazione",depthHypothesis:"Disegnato a {m} m: la tua ipotesi — ciò che la scenografia ne nasconde è ciò che perderebbe una cosa così lontana",depthDerived:"Disegnato a {m} m, in base alla camminata stessa dell'osservatore",depthBounded:"Disegnato a {m} m, in base a ciò dietro e davanti a cui passa",depthConventional:"Disegnato a {m} m per convenzione: nulla nella registrazione stabilisce una distanza",addShape:"Aggiungi forma",deleteShape:"Elimina forma",play:"Riproduci",pause:"Pausa",noDuration:"Nessuna durata di osservazione",previousKeyframe:"Fotogramma chiave precedente",nextKeyframe:"Fotogramma chiave successivo",keyframeMark:"Fotogramma chiave",shapesTrack:"forme",observerTrack:"osservatore",weatherTrack:"meteo",soundTrack:"suono",group:"Raggruppa",ungroup:"Separa",duplicate:"Duplica",bringToFront:"Porta in primo piano",sendToBack:"Porta in fondo",contextMenuDelete:"Elimina",onlyOneShape:"C'è una sola forma",alreadyAtFront:"Questa forma è già in primo piano",alreadyAtBack:"Questa forma è già in fondo",needTwoShapesToGroup:"Seleziona almeno due forme per raggrupparle",notGrouped:"Questa forma non fa parte di un gruppo",multipleShapesSelected:"Più forme selezionate — selezionane una sola per modificare questo",samplingRate:"Frequenza di campionamento",currentPosition:"Posizione attuale",switchToElapsed:"clicca per mostrare il tempo trascorso",switchToClockTime:"clicca per mostrare l'ora del giorno",durationPlaceholder:"durata dell'osservazione",durationImprecise:"Queste date non determinano con sufficiente precisione una durata — inseriscila manualmente.",export:"Salva",frozenTitle:"Dati congelati",frozenHint:"Ciò che la scena chiederebbe altrimenti a terzi a ogni riproduzione (rilievo, foto del suolo, strade, acqua, ferrovie, alta atmosfera), rilevato al salvataggio e conservato in file accanto alla registrazione, perché si riproduca uguale senza chiedere nulla a nessuno.",frozenLive:"Interrogare le fonti a ogni riproduzione (non congelare nulla)",frozenRelief:"Rilievo",frozenImagery:"Foto del suolo",frozenRoads:"Strade",frozenWater:"Acqua",frozenRailways:"Ferrovie",frozenUpperAir:"Alta atmosfera",frozenMap:"Foto della mappa",fileItemRecording:"Registrazione",fileItemWeather:"Meteo",fileItemPlace:"Luogo",fileItemLightPollution:"Inquinamento luminoso",fileItemDecor:"Scenografia",weatherStatedByObserver:"come l'ha data l'osservatore",annexSource:"File",annexStorageInline:"dentro la registrazione stessa",annexEditorLabel:"L'allegato come testo JSON",annexUnreadable:"Questo file non è un allegato di questo tipo: non è cambiato nulla.",frozenTakenOn:"rilevato il {date}",frozenPending:"rilevato al salvataggio",frozenLiveState:"chiesto in diretta",frozenRefresh:"Aggiorna",frozenTaking:"Rilevamento: {group}… {done}/{of}",frozenFailed:"{group}: la fonte non ha risposto, nulla è stato rilevato.",frozenMissing:"{file} illeggibile: lasciato fuori dall'archivio.",frozenExported:"Salvato con {count} allegati ({size}), in un archivio da decomprimere dove la registrazione è pubblicata.",identityHint:"Nomina qualcuno solo se vi ha acconsentito o ha pubblicato lui stesso la propria testimonianza; altrimenti bastano le iniziali.",identityAsk:"Questa registrazione nomina o colloca una persona. Rispondi di ciò che pubblichi: nomina qualcuno solo se vi ha acconsentito, o se ha pubblicato lui stesso la propria testimonianza. Altrimenti bastano le iniziali.",identityLastName:"Cognome: {value}",identityFirstNames:"Nome: {value}",identityNameInId:"Nome in un identificativo: {value}",identityNameInText:"Nome nel testo: {value}",identityAddress:"Indirizzo: {value}",identityEmail:"Indirizzo e-mail: {value}",identityPhone:"Numero di telefono: {value}",identityInitials:"Sostituisci con le iniziali",identityKeep:"Salva comunque",identityBack:"Torna indietro",importFile:"Carica un file di osservazione",paramSummaryTitle:"Ciò che indica la registrazione ({n})",wholeKeyframes:"Ogni fotogramma chiave per intero",wholeKeyframesHint:"Altrimenti un fotogramma chiave dice solo ciò che è cambiato dal precedente, come si scrive una registrazione a mano. Cambiare questa scelta svuota la cronologia di annullamento.",importUrlPlaceholder:"https://…/sighting.json",inputFileFromFile:"dal proprio disco",inputFileFromUrl:"da un indirizzo",inputFileModeHint:"Fare clic per darlo nell'altro modo: un proprio file o un indirizzo",inputFileLoad:"Carica",positionRelative:"relativa",positionAbsolute:"assoluta",positionModeHint:"Fare clic per dirla in un altro modo: rispetto a qualcos'altro, o in latitudine e longitudine",positionNoPlace:"La registrazione non ha ancora un luogo: dare prima una latitudine e una longitudine all'osservatore",positionFrom:"rispetto a",positionObserver:"l'osservatore",positionEast:"Est",positionNorth:"Nord",positionLatitude:"Latitudine",positionLongitude:"Longitudine",positionLabel:"Posizione",positionBasisHint:"Da dove viene questa posizione",positionBasisStated:"dichiarata",positionBasisMeasured:"misurata",positionBasisDerived:"dedotta",positionBasisAssumed:"supposta",importError:"Impossibile caricare questa registrazione — controlla il file o l'URL e riprova.",importErrorCors:`Questo indirizzo risponde, ma il browser non ha il permesso di leggerlo da questa pagina. Il file in sé va bene: è il suo server che deve inviarlo con l'intestazione "Access-Control-Allow-Origin: *". Se il server non è tuo, è questo che devi chiedere al suo amministratore.`,importErrorMixedContent:"Una pagina sicura non può caricare un indirizzo che inizia con http://. Usa https:// se quel server lo offre.",importErrorUnreachable:"Nulla ha risposto a questo indirizzo. Controlla come è scritto e di essere connesso.",importErrorStatus:"Quel server ha risposto con un errore ({status}). Probabilmente l'indirizzo è sbagliato o il file è stato spostato.",importErrorMalformed:"Questo indirizzo ha risposto, ma ciò che è tornato non è una registrazione.",formatVersionError:"Questo file indica la versione {found} del suo formato; questo UFO@home legge fino alla versione {supported}. Lo apra con un UFO@home più recente.",record:"Registra",stop:"Ferma",according:"secondo",sourceElevation:"Rilievo",sourceImagery:"Immagini",sourceAircraft:"Traffico aereo",sourceFile:"File",sourceKind:"Dati",placeNamePlaceholder:"Valensole, Francia",searchPlace:"Localizza",placeMatch:"Corrispondenze",placeSearching:"Ricerca del luogo…",placeMatchFound:"luogo trovato",placeMatchesFound:"luoghi trovati",placeNotFound:"Nessun luogo con questo nome",placeSearchFailed:"Ricerca dei luoghi momentaneamente non disponibile",utcOffsetNoZone:"Nessun fuso indica questo scarto quel giorno",utcOffsetImplausible:"Questo fuso orario non corrisponde alla longitudine inserita, la cui ora solare è UTC{solar} — eppure la scena e il rilevamento meteo obbediscono a ciò che è dichiarato qui. Svuota il campo per ricavarlo dalla longitudine.",timeZoneManual:"sconosciuto",altitudeAboveSeaLevel:"Altitudine dell'osservatore sul livello del mare — il suolo del luogo inserito ne fissa il minimo: un osservatore sulle Alpi non è a 0 m.",groundAt:"suolo a {m} m",headingPlaceholder:"sconosciuto",edtfInvalid:"Data/ora EDTF non valida (es. 1965-07-01T05:00, 2025-06?, 2025~).",edtfPlaceholder:"AAAA-MM-GGThh:mm[?~%] o hh:mm",observationTimeHint:"EDTF — es. 1965-07-01T05:00, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:00 se la data non è nota",observationEndTimeHint:"EDTF — es. 1965-07-01T05:10, 2025-06? (incerto), 2025~ (approssimativo), o solo 05:10 se la data non è nota",presetsGroupLabel:"Forma dell'UFO",description:"Descrizione",tagsPlaceholder:"separati da virgole",weather:"Meteo",shapeGroup:"Fenomeno",shapesSubgroup:"Forme",bodiesSubgroup:"Corpi",launchesSubgroup:"Lanci",sky:"Cielo",dataSources:"Fonti dei dati",beamsSubgroup:"Fasci",lanternsSubgroup:"Lanterne",soundGroup:"Suono",close:"Chiudi",editorKicker:"Editor di avvistamento",witnessError:e,expandTracks:"Espandi le tracce",collapseTracks:"Comprimi le tracce",addKeyframeHere:"Aggiungi un fotogramma chiave qui",keyframeHere:"Qui c'è un fotogramma chiave: modificarlo lo cambia",overlayHorizon:"Orizzonte · inclinazione {deg}°",overlayFov:"Campo visivo {v}° × {h}°",overlayWind:"Soffia verso {point} · {speed} m/s",sectionIdentity:"Identità",sectionProfile:"Profilo",sectionTestimony:"Testimonianza",sectionVision:"Visione",sectionPerception:"Percezione",sectionCoordinates:"Coordinate",sectionGaze:"Sguardo",sectionNightSky:"Cielo notturno",sectionPeriod:"Periodo",sectionSurvey:"Scenario da un rilievo",sectionHeard:"Ciò che è stato udito",sectionSoundRecording:"Registrazione",sectionPicture:"Foto",sectionPose:"Posa",sectionAppearance:"Aspetto",sectionSize:"Dimensioni e distanza",sectionPath:"Traiettoria",moreSettings:"Altre impostazioni ({n})",lessSettings:"Meno impostazioni",showSettings:"Mostra ({n} impostazioni)",showSettingsOne:"Mostra (1 impostazione)",showSettingsAny:"Mostra",hideSettings:"Nascondi",save:"Salva",stateNew:"Nuova registrazione",panelIntroObservation:"Cosa è successo, in poche righe, e cosa resta da completare.",panelIntroObserver:"Chi ha visto, e con cosa. Ogni osservatore ha il proprio punto di vista nella scena.",panelIntroLocation:"Da dove guardava l'osservatore, e in quale direzione.",panelIntroTemporal:"Quando è iniziato, quanto è durato, e i momenti del racconto.",panelIntroDecor:"Ciò che circondava l'osservatore: veicoli, edifici, vegetazione.",panelIntroWeather:"Il tempo che faceva, e ciò che attraversava il cielo senza essere il fenomeno: lanci, fasci.",panelIntroShape:"Ciò che è stato visto, disegnato nella scena dal punto di vista dell'osservatore.",panelIntroSound:"Ciò che è stato udito.",panelIntroReference:"Foto e schizzi, allineati alla scena per confrontarla.",panelIntroFile:"La registrazione completa, da salvare o ricaricare.",temporalGroup:"Data",fileGroup:"File",fileLoading:"Caricamento dell'editor…",weatherEditedAsk:"Questa modifica tocca il meteo, un dato letto dinamicamente da {source}. Vuoi smettere di leggerlo da {source}?",weatherEditedStop:"Smetti di leggerlo",weatherEditedKeep:"Continua a leggerlo (annulla la mia modifica)",fileEditorLabel:"La registrazione come testo JSON",fileSearchPhrases:{Find:"Cerca",Replace:"Sostituisci",next:"successivo",previous:"precedente",all:"tutti","match case":"maiuscole","by word":"parola intera",regexp:"regexp",replace:"sostituisci","replace all":"sostituisci tutto",close:"chiudi","current match":"corrispondenza corrente","on line":"alla riga","replaced $ matches":"$ corrispondenze sostituite","replaced match on line $":"corrispondenza sostituita alla riga $","Go to line":"Vai alla riga",go:"vai"},timeQualifierExact:"Esatta",durationPrecise:"precisa",durationIso:"imprecisa",durationModeTitle:"Dire la durata esattamente, o come è stata enunciata: circa, tra due durate",durationInvalid:"Non è una durata: PT10M, PT1H30M, PT5M/PT10M…",durationHelpTitle:"Che cosa accetta il testo (EDTF)",durationHelpLines:`PT45S — 45 secondi
|
|
2
2
|
PT10M — 10 minuti
|
|
3
3
|
PT1H30M — 1 ora 30 minuti
|
|
4
4
|
PT5M/PT10M — tra 5 e 10 minuti
|
package/dist-embed-sighting-editor/{SightingFileEditor-IEZGobI0.js → SightingFileEditor-B_d4jvL8.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{S as T,g as de,E as M,a as it,s as rt,b as O,P as ot,c as V,d as Le,F as me,e as pe,f as lt,h as at,V as Qe,D as P,R as _,i as ce,j as ct,C as L,k as Ee,l as b,r as ht,L as ut,m as ft,t as w,n as dt,o as mt,p as pt,q as ke,u as gt,v as xt,w as vt,x as We,y as Ie,z as bt,A as yt,G as Ne,W as Ot,B as wt,H as kt,I as Ce,J as Ct,K as St,M as Mt,N as Pt,O as Rt,Q as Tt,T as At,U as Lt,X as Qt,Y as Et,Z as Wt,_ as It,$ as Nt,a0 as Dt,a1 as Bt,a2 as $t,a3 as qt,a4 as Vt,a5 as Ht,a6 as Kt,a7 as jt,a8 as Xt,a9 as Gt,aa as zt,ab as Ft}from"./index-DSNA74v6.js";import Yt from"./sightingSchema-
|
|
1
|
+
import{S as T,g as de,E as M,a as it,s as rt,b as O,P as ot,c as V,d as Le,F as me,e as pe,f as lt,h as at,V as Qe,D as P,R as _,i as ce,j as ct,C as L,k as Ee,l as b,r as ht,L as ut,m as ft,t as w,n as dt,o as mt,p as pt,q as ke,u as gt,v as xt,w as vt,x as We,y as Ie,z as bt,A as yt,G as Ne,W as Ot,B as wt,H as kt,I as Ce,J as Ct,K as St,M as Mt,N as Pt,O as Rt,Q as Tt,T as At,U as Lt,X as Qt,Y as Et,Z as Wt,_ as It,$ as Nt,a0 as Dt,a1 as Bt,a2 as $t,a3 as qt,a4 as Vt,a5 as Ht,a6 as Kt,a7 as jt,a8 as Xt,a9 as Gt,aa as zt,ab as Ft}from"./index-DSNA74v6.js";import Yt from"./sightingSchema-C5EbtAl0.js";const Se=typeof String.prototype.normalize=="function"?i=>i.normalize("NFKD"):i=>i;class K{constructor(e,n,t=0,s=e.length,r,l){this.test=l,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(t,s),this.bufferStart=t,this.normalize=r?o=>r(Se(o)):Se,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return lt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=ct(e),t=this.bufferStart+this.bufferPos;this.bufferPos+=at(e);let s=this.normalize(n);if(s.length)for(let r=0,l=t,o=!0;;r++){let a=s.charCodeAt(r),c=this.match(a,l,o,this.bufferPos+this.bufferStart,r==s.length-1);if(c)return this.value=c,this;if(r==s.length-1)break;o&&r<n.length&&n.charCodeAt(r)==a?l++:o=!1}}}match(e,n,t,s,r){let l=null;for(let o=0;o<this.matches.length;){let a=this.matches[o],c=!1;this.query.charCodeAt(a.index)==e&&(a.index==this.query.length-1?l={from:a.from,to:s,precise:r&&a.precise}:(a.index++,c=!0)),c?o++:this.matches.splice(o,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?l={from:n,to:s,precise:t&&r}:this.matches.push({from:n,index:1,precise:t})),l&&this.test&&!this.test(l.from,l.to,this.buffer,this.bufferStart)&&(l=null),l}}typeof Symbol<"u"&&(K.prototype[Symbol.iterator]=function(){return this});const De={from:-1,to:-1,match:/.*/.exec(""),precise:!0},ge="gm"+(/x/.unicode==null?"":"u");class Be{constructor(e,n,t,s=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=De,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new $e(e,n,t,s,r);this.re=new RegExp(n,ge+(t?.ignoreCase?"i":"")),this.test=t?.test,this.iter=e.iter();let l=e.lineAt(s);this.curLineStart=l.from,this.matchPos=ee(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let t=this.curLineStart+n.index,s=t+n[0].length;if(this.matchPos=ee(this.text,s+(t==s?1:0)),t==this.curLineStart+this.curLine.length&&this.nextLine(),(t<s||t>this.value.to)&&(!this.test||this.test(t,s,n)))return this.value={from:t,to:s,precise:!0,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const le=new WeakMap;class ${constructor(e,n){this.from=e,this.text=n}get to(){return this.from+this.text.length}static get(e,n,t){let s=le.get(e);if(!s||s.from>=t||s.to<=n){let o=new $(n,e.sliceString(n,t));return le.set(e,o),o}if(s.from==n&&s.to==t)return s;let{text:r,from:l}=s;return l>n&&(r=e.sliceString(n,l)+r,l=n),s.to<t&&(r+=e.sliceString(s.to,t)),le.set(e,new $(l,r)),new $(n,r.slice(n-l,t-l))}}class $e{constructor(e,n,t,s,r){this.text=e,this.to=r,this.done=!1,this.value=De,this.matchPos=ee(e,s),this.re=new RegExp(n,ge+(t?.ignoreCase?"i":"")),this.test=t?.test,this.flat=$.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let t=this.flat.from+n.index,s=t+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,s,n)))return this.value={from:t,to:s,precise:!0,match:n},this.matchPos=ee(this.text,s+(t==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=$.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Be.prototype[Symbol.iterator]=$e.prototype[Symbol.iterator]=function(){return this});function Zt(i){try{return new RegExp(i,ge),!0}catch{return!1}}function ee(i,e){if(e>=i.length)return e;let n=i.lineAt(e),t;for(;e<n.to&&(t=n.text.charCodeAt(e-n.from))>=56320&&t<57344;)e++;return e}const Ut=i=>{let e=it(i,"cm-goto-line");if(e){let l=e.dom.querySelector("input[type=text]");return l&&l.select(),!0}let{state:n}=i,t=String(n.doc.lineAt(i.state.selection.main.head).number),{close:s,result:r}=rt(i,{class:"cm-goto-line",label:n.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:n.phrase("go")});return r.then(l=>{let o=l&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(l.elements.line.value);if(!o){i.dispatch({effects:s});return}let a=n.doc.lineAt(n.selection.main.head),[,c,u,h,f]=o,d=h?+h.slice(1):0,m=u?+u:a.number;if(u&&f){let S=m/100;c&&(S=S*(c=="-"?-1:1)+a.number/n.doc.lines),m=Math.round(n.doc.lines*S)}else u&&c&&(m=m*(c=="-"?-1:1)+a.number);let g=n.doc.line(Math.max(1,Math.min(n.doc.lines,m))),x=M.cursor(g.from+Math.max(0,Math.min(d,g.length)));i.dispatch({effects:[s,O.scrollIntoView(x.from,{y:"center"})],selection:x})}),!0},Jt=({state:i,dispatch:e})=>{let{selection:n}=i,t=M.create(n.ranges.map(s=>i.wordAt(s.head)||M.cursor(s.head)),n.mainIndex);return t.eq(n)?!1:(e(i.update({selection:t})),!0)};function _t(i,e){let{main:n,ranges:t}=i.selection,s=i.wordAt(n.head),r=s&&s.from==n.from&&s.to==n.to;for(let l=!1,o=new K(i.doc,e,t[t.length-1].to);;)if(o.next(),o.done){if(l)return null;o=new K(i.doc,e,0,Math.max(0,t[t.length-1].from-1)),l=!0}else{if(l&&t.some(a=>a.from==o.value.from))continue;if(r){let a=i.wordAt(o.value.from);if(!a||a.from!=o.value.from||a.to!=o.value.to)continue}return o.value}}const en=({state:i,dispatch:e})=>{let{ranges:n}=i.selection;if(n.some(r=>r.from===r.to))return Jt({state:i,dispatch:e});let t=i.sliceDoc(n[0].from,n[0].to);if(i.selection.ranges.some(r=>i.sliceDoc(r.from,r.to)!=t))return!1;let s=_t(i,t);return s?(e(i.update({selection:i.selection.addRange(M.range(s.from,s.to),!1),effects:O.scrollIntoView(s.to)})),!0):!1},I=me.define({combine(i){return pe(i,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new gn(e),scrollToMatch:e=>O.scrollIntoView(e)})}});function tn(i){return i?[I.of(i),ue]:ue}class qe{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Zt(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,t)=>t=="n"?`
|
|
2
2
|
`:t=="r"?"\r":t=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new an(this):new rn(this)}getCursor(e,n=0,t){let s=e.doc?e:ce.create({doc:e});return t==null&&(t=s.doc.length),this.regexp?B(this,s,n,t):D(this,s,n,t)}}class Ve{constructor(e){this.spec=e}}function nn(i,e,n){return(t,s,r,l)=>{if(n&&!n(t,s,r,l))return!1;let o=t>=l&&s<=l+r.length?r.slice(t-l,s-l):e.doc.sliceString(t,s);return i(o,e,t,s)}}function D(i,e,n,t){let s;return i.wholeWord&&(s=sn(e.doc,e.charCategorizer(e.selection.main.head))),i.test&&(s=nn(i.test,e,s)),new K(e.doc,i.unquoted,n,t,i.caseSensitive?void 0:r=>r.toLowerCase(),s)}function sn(i,e){return(n,t,s,r)=>((r>n||r+s.length<t)&&(r=Math.max(0,n-2),s=i.sliceString(r,Math.min(i.length,t+2))),(e(te(s,n-r))!=L.Word||e(ne(s,n-r))!=L.Word)&&(e(ne(s,t-r))!=L.Word||e(te(s,t-r))!=L.Word))}class rn extends Ve{constructor(e){super(e)}nextMatch(e,n,t){let s=D(this.spec,e,t,e.doc.length).nextOverlapping();if(s.done){let r=Math.min(e.doc.length,n+this.spec.unquoted.length);s=D(this.spec,e,0,r).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==t?null:s.value}prevMatchInRange(e,n,t){for(let s=t;;){let r=Math.max(n,s-1e4-this.spec.unquoted.length),l=D(this.spec,e,r,s),o=null;for(;!l.nextOverlapping().done;)o=l.value;if(o)return o;if(r==n)return null;s-=1e4}}prevMatch(e,n,t){let s=this.prevMatchInRange(e,0,n);return s||(s=this.prevMatchInRange(e,Math.max(0,t-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=n||s.to!=t)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,n){let t=D(this.spec,e,0,e.doc.length),s=[];for(;!t.next().done;){if(s.length>=n)return null;s.push(t.value)}return s}highlight(e,n,t,s){let r=D(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(t+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function on(i,e,n){return(t,s,r)=>(!n||n(t,s,r))&&i(r[0],e,t,s)}function B(i,e,n,t){let s;return i.wholeWord&&(s=ln(e.charCategorizer(e.selection.main.head))),i.test&&(s=on(i.test,e,s)),new Be(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:s},n,t)}function te(i,e){return i.slice(Ee(i,e,!1),e)}function ne(i,e){return i.slice(e,Ee(i,e))}function ln(i){return(e,n,t)=>!t[0].length||(i(te(t.input,t.index))!=L.Word||i(ne(t.input,t.index))!=L.Word)&&(i(ne(t.input,t.index+t[0].length))!=L.Word||i(te(t.input,t.index+t[0].length))!=L.Word)}class an extends Ve{nextMatch(e,n,t){let s=B(this.spec,e,t,e.doc.length).next();return s.done&&(s=B(this.spec,e,0,n).next()),s.done?null:s.value}prevMatchInRange(e,n,t){for(let s=1;;s++){let r=Math.max(n,t-s*1e4),l=B(this.spec,e,r,t),o=null;for(;!l.next().done;)o=l.value;if(o&&(r==n||o.from>r+10))return o;if(r==n)return null}}prevMatch(e,n,t){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,t,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,t)=>{if(t=="&")return e.match[0];if(t=="$")return"$";for(let s=t.length;s>0;s--){let r=+t.slice(0,s);if(r>0&&r<e.match.length)return e.match[r]+t.slice(s)}return n})}matchAll(e,n){let t=B(this.spec,e,0,e.doc.length),s=[];for(;!t.next().done;){if(s.length>=n)return null;s.push(t.value)}return s}highlight(e,n,t,s){let r=B(this.spec,e,Math.max(0,n-250),Math.min(t+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const j=T.define(),xe=T.define(),Q=V.define({create(i){return new ae(he(i).create(),null)},update(i,e){for(let n of e.effects)n.is(j)?i=new ae(n.value.create(),i.panel):n.is(xe)&&(i=new ae(i.query,n.value?ve:null));return i},provide:i=>Le.from(i,e=>e.panel)});class ae{constructor(e,n){this.query=e,this.panel=n}}const cn=P.mark({class:"cm-searchMatch"}),hn=P.mark({class:"cm-searchMatch cm-searchMatch-selected"}),un=Qe.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(Q))}update(i){let e=i.state.field(Q);(e!=i.startState.field(Q)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return P.none;let{view:n}=this,t=new _;for(let s=0,r=n.visibleRanges,l=r.length;s<l;s++){let{from:o,to:a}=r[s];for(;s<l-1&&a>r[s+1].from-500;)a=r[++s].to;i.highlight(n.state,o,a,(c,u)=>{let h=n.state.selection.ranges.some(f=>f.from==c&&f.to==u);t.add(c,u,h?hn:cn)})}return t.finish()}},{decorations:i=>i.decorations});function z(i){return e=>{let n=e.state.field(Q,!1);return n&&n.query.spec.valid?i(e,n):be(e)}}const se=z((i,{query:e})=>{let{to:n}=i.state.selection.main,t=e.nextMatch(i.state,n,n);if(!t)return!1;let s=M.single(t.from,t.to),r=i.state.facet(I);return i.dispatch({selection:s,effects:[ye(i,t),r.scrollToMatch(s.main,i)],userEvent:"select.search"}),Ke(i),!0}),ie=z((i,{query:e})=>{let{state:n}=i,{from:t}=n.selection.main,s=e.prevMatch(n,t,t);if(!s)return!1;let r=M.single(s.from,s.to),l=i.state.facet(I);return i.dispatch({selection:r,effects:[ye(i,s),l.scrollToMatch(r.main,i)],userEvent:"select.search"}),Ke(i),!0}),fn=z((i,{query:e})=>{let n=e.matchAll(i.state,1e3);return!n||!n.length?!1:(i.dispatch({selection:M.create(n.map(t=>M.range(t.from,t.to))),userEvent:"select.search.matches"}),!0)}),dn=({state:i,dispatch:e})=>{let n=i.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:t,to:s}=n.main,r=[],l=0;for(let o=new K(i.doc,i.sliceDoc(t,s));!o.next().done;){if(r.length>1e3)return!1;o.value.from==t&&(l=r.length),r.push(M.range(o.value.from,o.value.to))}return e(i.update({selection:M.create(r,l),userEvent:"select.search.matches"})),!0},Me=z((i,{query:e})=>{let{state:n}=i,{from:t,to:s}=n.selection.main;if(n.readOnly)return!1;let r=e.nextMatch(n,t,t);if(!r)return!1;let l=r,o=[],a,c,u=[];l.precise?l.from==t&&l.to==s&&(c=n.toText(e.getReplacement(l)),o.push({from:l.from,to:l.to,insert:c}),l=e.nextMatch(n,l.from,l.to),u.push(O.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(t).number)+"."))):l=e.nextMatch(n,l.from,l.to);let h=i.state.changes(o);return l&&(a=M.single(l.from,l.to).map(h),u.push(ye(i,l)),u.push(n.facet(I).scrollToMatch(a.main,i))),i.dispatch({changes:h,selection:a,effects:u,userEvent:"input.replace"}),!0}),mn=z((i,{query:e})=>{if(i.state.readOnly)return!1;let n=[];for(let s of e.matchAll(i.state,1e9)){let{from:r,to:l,precise:o}=s;o&&n.push({from:r,to:l,insert:e.getReplacement(s)})}if(!n.length)return!1;let t=i.state.phrase("replaced $ matches",n.length)+".";return i.dispatch({changes:n,effects:O.announce.of(t),userEvent:"input.replace.all"}),!0});function ve(i){return i.state.facet(I).createPanel(i)}function he(i,e){var n,t,s,r,l;let o=i.selection.main,a=o.empty||o.to>o.from+100?"":i.sliceDoc(o.from,o.to);if(e&&!a)return e;let c=i.facet(I);return new qe({search:((n=e?.literal)!==null&&n!==void 0?n:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(t=e?.caseSensitive)!==null&&t!==void 0?t:c.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:c.literal,regexp:(r=e?.regexp)!==null&&r!==void 0?r:c.regexp,wholeWord:(l=e?.wholeWord)!==null&&l!==void 0?l:c.wholeWord})}function He(i){let e=de(i,ve);return e&&e.dom.querySelector("[main-field]")}function Ke(i){let e=He(i);e&&e==i.root.activeElement&&e.select()}const be=i=>{let e=i.state.field(Q,!1);if(e&&e.panel){let n=He(i);if(n&&n!=i.root.activeElement){let t=he(i.state,e.query.spec);t.valid&&i.dispatch({effects:j.of(t)}),n.focus(),n.select()}}else i.dispatch({effects:[xe.of(!0),e?j.of(he(i.state,e.query.spec)):T.appendConfig.of(ue)]});return!0},je=i=>{let e=i.state.field(Q,!1);if(!e||!e.panel)return!1;let n=de(i,ve);return n&&n.dom.contains(i.root.activeElement)&&i.focus(),i.dispatch({effects:xe.of(!1)}),!0},pn=[{key:"Mod-f",run:be,scope:"editor search-panel"},{key:"F3",run:se,shift:ie,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:se,shift:ie,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:je,scope:"editor search-panel"},{key:"Mod-Shift-l",run:dn},{key:"Mod-Alt-g",run:Ut},{key:"Mod-d",run:en,preventDefault:!0}];class gn{constructor(e){this.view=e;let n=this.query=e.state.field(Q).query.spec;this.commit=this.commit.bind(this),this.searchField=b("input",{value:n.search,placeholder:k(e,"Find"),"aria-label":k(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=b("input",{value:n.replace,placeholder:k(e,"Replace"),"aria-label":k(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=b("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=b("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=b("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function t(s,r,l){return b("button",{class:"cm-button",name:s,onclick:r,type:"button"},l)}this.dom=b("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,t("next",()=>se(e),[k(e,"next")]),t("prev",()=>ie(e),[k(e,"previous")]),t("select",()=>fn(e),[k(e,"all")]),b("label",null,[this.caseField,k(e,"match case")]),b("label",null,[this.reField,k(e,"regexp")]),b("label",null,[this.wordField,k(e,"by word")]),...e.state.readOnly?[]:[b("br"),this.replaceField,t("replace",()=>Me(e),[k(e,"replace")]),t("replaceAll",()=>mn(e),[k(e,"replace all")])],b("button",{name:"close",onclick:()=>je(e),"aria-label":k(e,"close"),type:"button"},["×"])])}commit(){let e=new qe({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:j.of(e)}))}keydown(e){ht(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ie:se)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Me(this.view))}update(e){for(let n of e.transactions)for(let t of n.effects)t.is(j)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(I).top}}function k(i,e){return i.state.phrase(e)}const Y=30,Z=/[\s\.,:;?!]/;function ye(i,{from:e,to:n}){let t=i.state.doc.lineAt(e),s=i.state.doc.lineAt(n).to,r=Math.max(t.from,e-Y),l=Math.min(s,n+Y),o=i.state.sliceDoc(r,l);if(r!=t.from){for(let a=0;a<Y;a++)if(!Z.test(o[a+1])&&Z.test(o[a])){o=o.slice(a);break}}if(l!=s){for(let a=o.length-1;a>o.length-Y;a--)if(!Z.test(o[a-1])&&Z.test(o[a])){o=o.slice(0,a);break}}return O.announce.of(`${i.state.phrase("current match")}. ${o} ${i.state.phrase("on line")} ${t.number}.`)}const xn=O.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ue=[Q,ot.low(un),xn],vn=ft({String:w.string,Number:w.number,"True False":w.bool,PropertyName:w.propertyName,Null:w.null,", :":w.separator,"[ ]":w.squareBracket,"{ }":w.brace}),bn=ut.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[vn],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),yn=()=>i=>{try{JSON.parse(i.state.doc.toString())}catch(e){if(!(e instanceof SyntaxError))throw e;const n=On(e,i.state.doc);return[{from:n,message:e.message,severity:"error",to:n}]}return[]};function On(i,e){let n;return(n=i.message.match(/at position (\d+)/))?Math.min(+n[1],e.length):(n=i.message.match(/at line (\d+) column (\d+)/))?Math.min(e.line(+n[1]).from+ +n[2]-1,e.length):0}const Xe=mt.define({name:"json",parser:bn.configure({props:[pt.add({Object:ke({except:/^\s*\}/}),Array:ke({except:/^\s*\]/})}),gt.add({"Object Array":xt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function wn(){return new dt(Xe)}class Pe{constructor(e,n,t){this.from=e,this.to=n,this.diagnostic=t}}class W{constructor(e,n,t){this.diagnostics=e,this.panel=n,this.selected=t}static init(e,n,t){let s=t.facet(R).markerFilter;s&&(e=s(e,t));let r=e.slice().sort((d,m)=>d.from-m.from||d.to-m.to),l=new _,o=[],a=0,c=t.doc.iter(),u=0,h=t.doc.length;for(let d=0;;){let m=d==r.length?null:r[d];if(!m&&!o.length)break;let g,x;if(o.length)g=a,x=o.reduce((v,y)=>Math.min(v,y.to),m&&m.from>g?m.from:1e8);else{if(g=m.from,g>h)break;x=m.to,o.push(m),d++}for(;d<r.length;){let v=r[d];if(v.from==g&&(v.to>v.from||v.to==g))o.push(v),d++,x=Math.min(v.to,x);else{x=Math.min(v.from,x);break}}x=Math.min(x,h);let S=!1;if(o.some(v=>v.from==g&&(v.to==x||x==h))&&(S=g==x,!S&&x-g<10)){let v=g-(u+c.value.length);v>0&&(c.next(v),u=g);for(let y=g;;){if(y>=x){S=!0;break}if(!c.lineBreak&&u+c.value.length>y)break;y=u+c.value.length,u+=c.value.length,c.next()}}let N=_e(o);if(S)l.add(g,g,P.widget({widget:new Qn(N),diagnostics:o.slice()}));else{let v=o.reduce((y,F)=>F.markClass?y+" "+F.markClass:y,"");l.add(g,x,P.mark({class:"cm-lintRange cm-lintRange-"+N+v,diagnostics:o.slice(),inclusiveEnd:o.some(y=>y.to>x)}))}if(a=x,a==h)break;for(let v=0;v<o.length;v++)o[v].to<=a&&o.splice(v--,1)}let f=l.finish();return new W(f,n,E(f))}}function E(i,e=null,n=0){let t=null;return i.between(n,1e9,(s,r,{spec:l})=>{if(!(e&&l.diagnostics.indexOf(e)<0))if(!t)t=new Pe(s,r,e||l.diagnostics[0]);else{if(l.diagnostics.indexOf(t.diagnostic)<0)return!1;t=new Pe(t.from,r,t.diagnostic)}}),t}function Ge(i,e){let n=e.pos,t=e.end||n,s=i.state.facet(R).hideOn(i,n,t);if(s!=null)return s;let r=i.startState.doc.lineAt(e.pos);return!!(i.effects.some(l=>l.is(re))||i.changes.touchesRange(r.from,Math.max(r.to,t)))}function ze(i,e){return i.field(C,!1)?e:e.concat(T.appendConfig.of(st))}function kn(i,e){return{effects:ze(i,[re.of(e)])}}const re=T.define(),Oe=T.define(),Fe=T.define(),C=V.define({create(){return new W(P.none,null,null)},update(i,e){if(e.docChanged&&i.diagnostics.size){let n=i.diagnostics.map(e.changes),t=null,s=i.panel;if(i.selected){let r=e.changes.mapPos(i.selected.from,1);t=E(n,i.selected.diagnostic,r)||E(n,null,r)}!n.size&&s&&e.state.facet(R).autoPanel&&(s=null),i=new W(n,s,t)}for(let n of e.effects)if(n.is(re)){let t=e.state.facet(R).autoPanel?n.value.length?X.open:null:i.panel;i=W.init(n.value,t,e.state)}else n.is(Oe)?i=new W(i.diagnostics,n.value?X.open:null,i.selected):n.is(Fe)&&(i=new W(i.diagnostics,i.panel,n.value));return i},provide:i=>[Le.from(i,e=>e.panel),O.decorations.from(i,e=>e.diagnostics)]}),Cn=P.mark({class:"cm-lintRange cm-lintRange-active"});function Sn(i,e,n){let{diagnostics:t}=i.state.field(C),s,r=-1,l=-1;t.between(e-(n<0?1:0),e+(n>0?1:0),(a,c,{spec:u})=>{if(e>=a&&e<=c&&(a==c||(e>a||n>0)&&(e<c||n<0)))return s=u.diagnostics,r=a,l=c,!1});let o=i.state.facet(R).tooltipFilter;return s&&o&&(s=o(s,i.state)),s?{pos:r,end:l,above:!0,create(){return{dom:Ye(i,s)}}}:null}function Ye(i,e){return b("ul",{class:"cm-tooltip-lint"},e.map(n=>Je(i,n,!1)))}const Mn=i=>{let e=i.state.field(C,!1);(!e||!e.panel)&&i.dispatch({effects:ze(i.state,[Oe.of(!0)])});let n=de(i,X.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},Re=i=>{let e=i.state.field(C,!1);return!e||!e.panel?!1:(i.dispatch({effects:Oe.of(!1)}),!0)},Pn=i=>{let e=i.state.field(C,!1);if(!e)return!1;let n=i.state.selection.main,t=E(e.diagnostics,null,n.to+1);return!t&&(t=E(e.diagnostics,null,0),!t||t.from==n.from&&t.to==n.to)?!1:(i.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0}),vt(i,t.from,1,{tooltip:nt,until:s=>s.docChanged||s.newSelection.main.head<t.from||s.newSelection.main.head>t.to}),!0)},Rn=[{key:"Mod-Shift-m",run:Mn,preventDefault:!0},{key:"F8",run:Pn}],Ze=Qe.fromClass(class{constructor(i){this.view=i,this.timeout=-1,this.set=!0;let{delay:e}=i.state.facet(R);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let i=Date.now();if(i<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-i);else{this.set=!1;let{state:e}=this.view,{sources:n}=e.facet(R);n.length&&Tn(n.map(t=>Promise.resolve(t(this.view))),t=>{this.view.state.doc==e.doc&&this.view.dispatch(kn(this.view.state,t.reduce((s,r)=>s.concat(r))))},t=>{wt(this.view.state,t)})}}update(i){let e=i.state.facet(R);(i.docChanged||e!=i.startState.facet(R)||e.needsRefresh&&e.needsRefresh(i))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function Tn(i,e,n){let t=[],s=-1;for(let r of i)r.then(l=>{t.push(l),clearTimeout(s),t.length==i.length?e(t):s=setTimeout(()=>e(t),200)},n)}const R=me.define({combine(i){return{sources:i.map(e=>e.source).filter(e=>e!=null),...pe(i.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Te,tooltipFilter:Te,needsRefresh:(e,n)=>e?n?t=>e(t)||n(t):e:n,hideOn:(e,n)=>e?n?(t,s,r)=>e(t,s,r)||n(t,s,r):e:n,autoPanel:(e,n)=>e||n})}}});function Te(i,e){return i?e?(n,t)=>e(i(n,t),t):i:e}function An(i,e={}){return[R.of({source:i,config:e}),Ze,st]}function Ln(i){let e=i.plugin(Ze);e&&e.force()}function Ue(i){let e=[];if(i)e:for(let{name:n}of i){for(let t=0;t<n.length;t++){let s=n[t];if(/[a-zA-Z]/.test(s)&&!e.some(r=>r.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function Je(i,e,n){var t;let s=n?Ue(e.actions):[];return b("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},b("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(i):e.message),(t=e.actions)===null||t===void 0?void 0:t.map((r,l)=>{let o=!1,a=d=>{if(d.preventDefault(),o)return;o=!0;let m=E(i.state.field(C).diagnostics,e);m&&r.apply(i,m.from,m.to)},{name:c}=r,u=s[l]?c.indexOf(s[l]):-1,h=u<0?c:[c.slice(0,u),b("u",c.slice(u,u+1)),c.slice(u+1)],f=r.markClass?" "+r.markClass:"";return b("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:a,onmousedown:a,"aria-label":` Action: ${c}${u<0?"":` (access key "${s[l]})"`}.`},h)}),e.source&&b("div",{class:"cm-diagnosticSource"},e.source))}class Qn extends Ot{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return b("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Ae{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Je(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class X{constructor(e){this.view=e,this.items=[];let n=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)Re(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],l=Ue(r.actions);for(let o=0;o<l.length;o++)if(l[o].toUpperCase().charCodeAt(0)==s.keyCode){let a=E(this.view.state.field(C).diagnostics,r);a&&r.actions[o].apply(e,a.from,a.to)}}else return;s.preventDefault()}},t=s=>{for(let r=0;r<this.items.length;r++)this.items[r].dom.contains(s.target)&&this.moveSelection(r)};this.list=b("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:t}),this.dom=b("div",{class:"cm-panel-lint"},this.list,b("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Re(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(C).selected;if(!e)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==e.diagnostic)return n;return-1}update(){let{diagnostics:e,selected:n}=this.view.state.field(C),t=0,s=!1,r=null,l=new Set;for(e.between(0,this.view.state.doc.length,(o,a,{spec:c})=>{for(let u of c.diagnostics){if(l.has(u))continue;l.add(u);let h=-1,f;for(let d=t;d<this.items.length;d++)if(this.items[d].diagnostic==u){h=d;break}h<0?(f=new Ae(this.view,u),this.items.splice(t,0,f),s=!0):(f=this.items[h],h>t&&(this.items.splice(t,h-t),s=!0)),n&&f.diagnostic==n.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),r=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),t++}});t<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Ae(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:o,panel:a})=>{let c=a.height/this.list.offsetHeight;o.top<a.top?this.list.scrollTop-=(a.top-o.top)/c:o.bottom>a.bottom&&(this.list.scrollTop+=(o.bottom-a.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function n(){let t=e;e=t.nextSibling,t.remove()}for(let t of this.items)if(t.dom.parentNode==this.list){for(;e!=t.dom;)n();e=t.dom.nextSibling}else this.list.insertBefore(t.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(C),t=E(n.diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Fe.of(t)})}static open(e){return new X(e)}}function J(i,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(i)}</svg>')`}function U(i){return J(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${i}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const En=O.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:U("#f11")},".cm-lintRange-warning":{backgroundImage:U("orange")},".cm-lintRange-info":{backgroundImage:U("#999")},".cm-lintRange-hint":{backgroundImage:U("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function Wn(i){return i=="error"?4:i=="warning"?3:i=="info"?2:1}function _e(i){let e="hint",n=1;for(let t of i){let s=Wn(t.severity);s>n&&(n=s,e=t.severity)}return e}class et extends Ne{constructor(e){super(),this.diagnostics=e,this.severity=_e(e)}toDOM(e){let n=document.createElement("div");n.className="cm-lint-marker cm-lint-marker-"+this.severity;let t=this.diagnostics,s=e.state.facet(oe).tooltipFilter;return s&&(t=s(t,e.state)),t.length&&(n.onmouseover=()=>Nn(e,n,t)),n}}function In(i,e){let n=t=>{let s=e.getBoundingClientRect();if(!(t.clientX>s.left-10&&t.clientX<s.right+10&&t.clientY>s.top-10&&t.clientY<s.bottom+10)){for(let r=t.target;r;r=r.parentNode)if(r.nodeType==1&&r.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",n),i.state.field(tt)&&i.dispatch({effects:we.of(null)})}};window.addEventListener("mousemove",n)}function Nn(i,e,n){function t(){let l=i.elementAtHeight(e.getBoundingClientRect().top+5-i.documentTop);i.coordsAtPos(l.from)&&i.dispatch({effects:we.of({pos:l.from,above:!1,clip:!1,create(){return{dom:Ye(i,n),getCoords:()=>e.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,In(i,e)}let{hoverTime:s}=i.state.facet(oe),r=setTimeout(t,s);e.onmouseout=()=>{clearTimeout(r),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(r),r=setTimeout(t,s)}}function Dn(i,e){let n=Object.create(null);for(let s of e){let r=i.lineAt(s.from);(n[r.from]||(n[r.from]=[])).push(s)}let t=[];for(let s in n)t.push(new et(n[s]).range(+s));return We.of(t,!0)}const Bn=Ie({class:"cm-gutter-lint",markers:i=>i.state.field(fe),widgetMarker:(i,e,n)=>{let t=[];return i.state.field(fe).between(n.from,n.to,(s,r,l)=>{s>n.from&&s<n.to&&t.push(...l.diagnostics)}),t.length?new et(t):null}}),fe=V.define({create(){return We.empty},update(i,e){i=i.map(e.changes);let n=e.state.facet(oe).markerFilter;for(let t of e.effects)if(t.is(re)){let s=t.value;n&&(s=n(s||[],e.state)),i=Dn(e.state.doc,s.slice(0))}return i}}),we=T.define(),tt=V.define({create(){return null},update(i,e){return i&&e.docChanged&&(i=Ge(e,i)?null:{...i,pos:e.changes.mapPos(i.pos)}),e.effects.reduce((n,t)=>t.is(we)?t.value:n,i)},provide:i=>bt.from(i)}),$n=O.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:J('<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>')},".cm-lint-marker-warning":{content:J('<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>')},".cm-lint-marker-error":{content:J('<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>')}}),nt=yt(Sn,{hideOn:Ge}),st=[C,O.decorations.compute([C],i=>{let{selected:e,panel:n}=i.field(C);return!e||!n||e.from==e.to?P.none:P.set([Cn.range(e.from,e.to)])}),nt,En],oe=me.define({combine(i){return pe(i,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function qn(i={}){return[oe.of(i),fe,Bn,$n,tt]}class H{constructor(e=[],n=H.FIELDS){this.at=e,this.format=n}static FIELDS=Yt;fieldsAt(e){let n=this.format;for(const t of e)n=n?.[t]?.fields;return n}pathTo(e,n){const t=[];for(let s=e;s;s=s.parent)if(s.name==="Property"){const r=s.getChild("PropertyName");r&&t.unshift(n.slice(r.from,r.to).replace(/^"|"$/g,""))}return[...this.at,...t]}keyCompletions(e){return Object.entries(e).map(([n,t])=>({label:`"${n}"`,apply:`"${n}": `,type:t.type==="enum"?"enum":t.type==="object"||t.type==="array"?"class":"property",detail:t.type==="enum"?t.values?.join(" | "):t.type,...t.doc===void 0?{}:{info:t.doc}}))}valueCompletions(e){return(e.values??e.suggest??[]).map(n=>({label:`"${n}"`,apply:`"${n}"`,type:"enum"}))}get source(){return e=>{const n=e.state.doc.toString(),t=kt(e.state).resolveInner(e.pos,-1),s=n.slice(0,e.pos);if(t.name==="PropertyName")return this.keys(this.pathTo(t.parent?.parent??null,n),t.from,t.to);if(t.name==="String"&&t.parent?.name==="Property")return this.values(this.fieldAt(this.pathTo(t.parent,n)),t.from,t.to);if(/:\s*$/.test(s)){const l=t.name==="Property"?t:this.propertyBefore(t,e.pos);return this.values(l?this.fieldAt(this.pathTo(l,n)):void 0,e.pos)}if(!e.explicit&&!/[{,[]\s*$/.test(s))return null;const r=t.name==="Object"?t:t.parent?.name==="Object"?t.parent:t;return this.keys(this.pathTo(r,n),e.pos)}}keys(e,n,t){const s=this.fieldsAt(e);return s===void 0?null:{from:n,...t===void 0?{}:{to:t},options:this.keyCompletions(s),validFor:H.WORD}}values(e,n,t){return e?.values===void 0&&e?.suggest===void 0?null:{from:n,...t===void 0?{}:{to:t},options:this.valueCompletions(e),validFor:H.WORD}}static WORD=/^"?[\w-]*"?$/;fieldAt(e){return this.fieldsAt(e.slice(0,-1))?.[e[e.length-1]]}propertyBefore(e,n){let t;for(let s=e.firstChild;s;s=s.nextSibling)s.name==="Property"&&s.from<n&&(t=s);return t}}class q{static at(e,n){const t=Ce(e,e.doc.length,50);if(t===null)return[];const s=[];let r=null;for(let l=t.resolveInner(n,-1);l!==null;r=l,l=l.parent)if(l.name==="Property"){const o=l.getChild("PropertyName");o!==null&&s.unshift(JSON.parse(e.sliceDoc(o.from,o.to)))}else l.name==="Array"&&r!==null&&s.unshift(q.indexOf(l,r));return s}static range(e,n){const t=Ce(e,e.doc.length,50);if(t===null)return;let s=t.topNode.firstChild,r;for(const l of n){if(s===null)return;if(typeof l=="number"){if(s.name!=="Array"||(s=q.elements(s)[l]??null,s===null))return;r={from:s.from,to:s.to}}else{if(s.name!=="Object")return;let o=null;for(let a=s.firstChild;a!==null;a=a.nextSibling){if(a.name!=="Property")continue;const c=a.getChild("PropertyName");if(c!==null&&JSON.parse(e.sliceDoc(c.from,c.to))===l){o=a;break}}if(o===null)return;r={from:o.from,to:o.to},s=o.lastChild}}return r}static elements(e){const n=[];for(let t=e.firstChild;t!==null;t=t.nextSibling)["[","]",",","LineComment","BlockComment"].includes(t.name)||n.push(t);return n}static indexOf(e,n){return q.elements(e).findIndex(t=>t.from===n.from&&t.to===n.to)}}class A{static MAX_EDITS=1500;static MAX_WORK=1e6;static changed(e,n){return A.compare(e,n).changed}static compare(e,n){let t=0;for(;t<e.length&&t<n.length&&e[t]===n[t];)t++;let s=e.length,r=n.length;for(;s>t&&r>t&&e[s-1]===n[r-1];)s--,r--;const l=e.slice(t,s),o=n.slice(t,r),a=(g,x)=>Array.from({length:Math.max(0,x-g)},(S,N)=>g+N);if(l.length===0)return{changed:a(t,t+o.length),removed:[]};if(o.length===0)return{changed:[],removed:[t]};const c=A.matchedOf(l,o);if(c===void 0){const g=A.nearOf(l,o);return{changed:g.changed.map(x=>t+x),removed:g.removed.map(x=>t+x)}}const u=[],h=[];let f=-1,d=-1;const m=(g,x)=>{g-f-1>x-d-1&&h.push(t+x)};for(let g=0;g<o.length;g++){const x=c.get(g);if(x===void 0){u.push(t+g);continue}m(x,g),f=x,d=g}return m(l.length,o.length),{changed:u,removed:h}}static LOOKAHEAD=64;static nearOf(e,n){const t=[],s=[];let r=0,l=0;const o=(a,c,u)=>{for(let h=1;h<=A.LOOKAHEAD&&c+h<a.length;h++)if(a[c+h]===u)return h;return 0};for(;r<e.length&&l<n.length;){if(e[r]===n[l]){r++,l++;continue}const a=o(n,l,e[r]),c=o(e,r,n[l]);if(a>0&&(c===0||a<=c)){for(let u=0;u<a;u++)t.push(l+u);l+=a}else c>0?(s.push(l),r+=c):(t.push(l),r++,l++)}for(;l<n.length;l++)t.push(l);return r<e.length&&s.push(n.length),{changed:t,removed:s}}static matchedOf(e,n){const t=e.length,s=n.length,r=Math.min(t+s,A.MAX_EDITS),l=r+1,o=new Int32Array(2*r+3),a=[];let c=0;for(let u=0;u<=r;u++){a.push(o.slice());for(let h=-u;h<=u;h+=2){const f=h===-u||h!==u&&o[l+h-1]<o[l+h+1];let d=f?o[l+h+1]:o[l+h-1]+1,m=d-h;for(;d<t&&m<s&&e[d]===n[m];)d++,m++;if(c+=1+d-(f?o[l+h+1]:o[l+h-1]+1),c>A.MAX_WORK)return;if(o[l+h]=d,d>=t&&m>=s)return A.walkBack(a,u,t,s,l)}}}static walkBack(e,n,t,s,r){const l=new Map;let o=t,a=s;for(let c=n;c>0;c--){const u=e[c],h=o-a,d=h===-c||h!==c&&u[r+h-1]<u[r+h+1]?h+1:h-1,m=u[r+d],g=m-d;for(;o>m&&a>g;)o--,a--,l.set(a,o);o=m,a=g}for(;o>0&&a>0;)o--,a--,l.set(a,o);return l}}class G{static CHUNK=65536;static commonPrefix(e,n){const t=Math.min(e.length,n.length),s=G.CHUNK;let r=0;for(;r+s<=t&&e.slice(r,r+s)===n.slice(r,r+s);)r+=s;for(;r<t&&e.charCodeAt(r)===n.charCodeAt(r);)r++;return r}static commonSuffix(e,n,t){const s=G.CHUNK;let r=0;for(;r+s<=t&&e.slice(e.length-r-s,e.length-r)===n.slice(n.length-r-s,n.length-r);)r+=s;for(;r<t&&e.charCodeAt(e.length-1-r)===n.charCodeAt(n.length-1-r);)r++;return r}}class p{static COLOURS=Ct.define([{tag:w.propertyName,color:"var(--file-key)"},{tag:[w.string,w.attributeValue],color:"var(--file-string)"},{tag:[w.number,w.bool,w.null],color:"var(--file-literal)"},{tag:w.invalid,color:"var(--rr0-alert)"}]);view;placement;changing=!1;cachedText;editedSinceWritten=!1;changedField;silent=!1;static SET_BASELINE=T.define();static WHOLE_TEXT=St.define();static marker(e,n){return new class extends Ne{toDOM(){const t=document.createElement("div");if(t.className=e?"cm-changed-bar":"cm-changed-none",n){const s=document.createElement("div");s.className="cm-removed-tick",t.appendChild(s)}return t}}}static JSON_LINT=yn();static CHANGED_MARKER=p.marker(!0,!1);static REMOVED_MARKER=p.marker(!1,!0);static BOTH_MARKER=p.marker(!0,!0);static REVEAL=T.define();static revealed=V.define({create:()=>null,update:(e,n)=>{for(const t of n.effects)if(t.is(p.REVEAL))return t.value;return e===null?null:{from:n.changes.mapPos(e.from,1),to:n.changes.mapPos(e.to,-1)}},provide:e=>O.decorations.compute([e],n=>{const t=n.field(e),s=new _;if(t!==null)for(let r=n.doc.lineAt(t.from).number;r<=n.doc.lineAt(Math.min(t.to,n.doc.length)).number;r++)s.add(n.doc.line(r).from,n.doc.line(r).from,P.line({class:"cm-revealed-line"}));return s.finish()})});static removedLines(e,n){return new Set([...n].map(t=>Math.min(t,e.doc.lines-1)))}static changeMarks(e){const n=o=>({text:o,doc:Ft.of(o.split(`
|
|
3
3
|
`))}),t=(o,a,c)=>{const u=c??a.doc.toString(),h=p.commonPrefix(o.text,u);if(h===o.text.length&&h===u.length)return{baseline:o,changed:new Set,removed:new Set};const f=p.commonSuffix(o.text,u,Math.min(o.text.length,u.length)-h),d=a.doc.lineAt(h).number,m=o.doc.lineAt(o.text.length-f).number,g=a.doc.lineAt(u.length-f).number,x=(y,F)=>y.sliceString(y.line(d).from,y.line(F).to).split(`
|
|
4
4
|
`),{changed:S,removed:N}=A.compare(x(o.doc,m),x(a.doc,g)),v=d-1;return{baseline:o,changed:new Set(S.map(y=>y+v)),removed:new Set(N.map(y=>y+v))}},s=V.define({create:o=>t(n(e),o),update:(o,a)=>{let c=o.baseline;for(const u of a.effects)u.is(p.SET_BASELINE)&&(c=n(u.value));return!a.docChanged&&c===o.baseline?o:t(c,a.state,a.annotation(p.WHOLE_TEXT))}}),r=O.decorations.compute([s],o=>{const a=o.field(s),c=p.removedLines(o,a.removed),u=new Set([...a.changed,...c]),h=new _;for(const f of[...u].sort((d,m)=>d-m)){if(f>=o.doc.lines)continue;const d=[a.changed.has(f)?"cm-changed-line":"",[...a.removed].some(m=>m===f)?"cm-removed-above":"",[...a.removed].some(m=>m>=o.doc.lines)&&f===o.doc.lines-1?"cm-removed-below":""].filter(Boolean).join(" ");h.add(o.doc.line(f+1).from,o.doc.line(f+1).from,P.line({class:d}))}return h.finish()}),l=Ie({class:"cm-changed-gutter",lineMarker:(o,a)=>{const c=o.state.field(s),u=o.state.doc.lineAt(a.from).number-1,h=c.changed.has(u),f=p.removedLines(o.state,c.removed).has(u);return h&&f?p.BOTH_MARKER:h?p.CHANGED_MARKER:f?p.REMOVED_MARKER:null},lineMarkerChange:o=>o.docChanged||o.transactions.some(a=>a.effects.some(c=>c.is(p.SET_BASELINE))),initialSpacer:()=>p.CHANGED_MARKER});return{field:s,extensions:[s,r,l]}}constructor(e,n,t,s,r={}){const l=[...Nt,...Dt,...Bt,...$t,...qt,...Rn,...pn,Vt],o=p.changeMarks(r.baseline??n);this.changedField=o.field,l.unshift({key:"F7",run:()=>this.gotoChange(1),preventDefault:!0},{key:"Shift-F7",run:()=>this.gotoChange(-1),preventDefault:!0}),this.view=new O({...p.rootOf(e),doc:n,extensions:[...o.extensions,p.revealed,Mt(),tn({top:!0}),ce.phrases.of(r.phrases??{}),Pt(),Rt(),Tt(),At(),Lt(),Qt(),Et(),Wt(),It.of(l),ce.tabSize.of(2),Ht(p.COLOURS,{fallback:!0}),wn(),Xe.data.of({autocomplete:new H([],r.schema).source}),qn(),An(a=>a.dom.isConnected?p.JSON_LINT(a):[]),O.contentAttributes.of({"aria-label":s}),O.theme({"&":{maxHeight:"28rem",fontSize:"0.82em",border:"1px solid color-mix(in srgb, currentColor 25%, transparent)",borderRadius:"4px"},"&.cm-focused":{outline:"2px solid color-mix(in srgb, currentColor 45%, transparent)"},".cm-scroller":{overflow:"auto",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},".cm-tooltip":{backgroundColor:"Canvas",color:"CanvasText",border:"1px solid color-mix(in srgb, CanvasText 30%, transparent)"},".cm-tooltip-autocomplete > ul > li[aria-selected]":{backgroundColor:"Highlight",color:"HighlightText"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"currentColor"},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"color-mix(in srgb, currentColor 22%, transparent)"},".cm-gutters":{backgroundColor:"transparent",color:"color-mix(in srgb, currentColor 55%, transparent)",border:"none"},".cm-changed-gutter":{width:"4px"},".cm-changed-bar":{width:"3px",height:"100%",backgroundColor:"#2f81f7"},".cm-changed-gutter .cm-gutterElement":{position:"relative"},".cm-changed-none":{width:"3px",height:"100%"},".cm-removed-tick":{position:"absolute",left:"0",top:"0",width:"0",height:"0",borderTop:"4px solid transparent",borderBottom:"4px solid transparent",borderLeft:"6px solid #e5534b"},".cm-removed-above":{boxShadow:"inset 0 2px 0 #e5534b"},".cm-removed-below":{boxShadow:"inset 0 -2px 0 #e5534b"},".cm-changed-line":{backgroundColor:"color-mix(in srgb, #2f81f7 13%, transparent)"},".cm-revealed-line":{backgroundColor:"color-mix(in srgb, #f2cc60 30%, transparent)",boxShadow:"inset 3px 0 0 #f2cc60"},".cm-panels":{backgroundColor:"color-mix(in srgb, currentColor 6%, transparent)",color:"inherit",borderColor:"color-mix(in srgb, currentColor 25%, transparent)"},".cm-panel.cm-search input, .cm-panel.cm-search button":{fontSize:"inherit",color:"inherit"},".cm-panel.cm-search input[type=text], .cm-panel.cm-search input:not([type])":{backgroundColor:"color-mix(in srgb, currentColor 8%, transparent)",border:"1px solid color-mix(in srgb, currentColor 35%, transparent)",borderRadius:"3px",padding:"2px 5px"},".cm-panel.cm-search button":{backgroundImage:"none",backgroundColor:"color-mix(in srgb, currentColor 12%, transparent)",border:"1px solid color-mix(in srgb, currentColor 35%, transparent)",borderRadius:"3px"},".cm-panel.cm-search label, .cm-panel.cm-search [name=close]":{color:"inherit"},".cm-searchMatch":{backgroundColor:"color-mix(in srgb, #f2cc60 40%, transparent)"},".cm-searchMatch-selected":{backgroundColor:"color-mix(in srgb, #f2cc60 75%, transparent)"}}),O.updateListener.of(a=>{a.docChanged&&(this.cachedText=void 0),a.docChanged&&!this.changing&&(this.editedSinceWritten=!0,t(this.text)),a.selectionSet&&!this.silent&&!this.changing&&a.view.hasFocus&&(a.state.field(p.revealed)!==null&&queueMicrotask(()=>this.view.dispatch({effects:p.REVEAL.of(null)})),r.caretMoved?.(q.at(a.state,a.state.selection.main.head)))})]}),this.placement=this.placeWhileShown(e)}placeWhileShown(e){const n=()=>{e.append(this.view.dom),Ln(this.view);const{root:s}=p.rootOf(e);s&&s!==this.view.root&&this.view.setRoot(s)};if((typeof e.checkVisibility!="function"||e.checkVisibility())&&n(),typeof ResizeObserver>"u")return;const t=new ResizeObserver(s=>{const r=s[s.length-1].contentRect.width>0;r&&!this.view.dom.isConnected?(n(),this.view.requestMeasure()):!r&&this.view.dom.isConnected&&this.view.dom.remove()});return t.observe(e),t}get text(){return this.cachedText??=this.view.state.doc.toString()}get edited(){return this.editedSinceWritten}set text(e){this.replaceText(e,!1)}replaceText(e,n){const t=this.text;if(e!==t){this.changing=!0;try{const s=Math.min(this.view.state.selection.main.head,e.length);this.view.dispatch({changes:p.changesBetween(t,e),selection:{anchor:s},annotations:[Kt.of("full"),p.WHOLE_TEXT.of(e)]})}finally{this.changing=!1}this.cachedText=e,this.editedSinceWritten=!1,n&&this.revealChange(t,p.MOST_LINES_SHOWN)}}static rootOf(e){const n=e.getRootNode();return n instanceof Document||n instanceof ShadowRoot?{root:n}:{}}static changeBetween(e,n){const t=p.commonPrefix(e,n),s=p.commonSuffix(e,n,Math.min(e.length,n.length)-t);return{from:t,to:e.length-s,insert:n.slice(t,n.length-s)}}static changesBetween(e,n){const t=p.commonPrefix(e,n);if(t===e.length&&t===n.length)return[];const s=p.commonSuffix(e,n,Math.min(e.length,n.length)-t),r=e.lastIndexOf(`
|